Hasznos Flutter csomagok

Dobszai János

2022. június 20.

Dolgoznék ezen a projekten

alt_text

 

A Flutter platformfüggetlen alkalmazások fejlesztésére tervezett keretrendszer. Fő hangsúlya a felhasználói felület (UI) implementációjának intuitív megvalósítására helyezkedik, hasonlóan a LEGO építéséhez. 

Az állapotkezelés, függőséginjekció, perzisztencia és hálózati objektumok leképezése olyan feladatok, amelyeket a fejlesztőnek kell kezelnie. Ugyanakkor a Flutter hatalmas közössége megkönnyíti és hatékonyabbá teszi ezen feladatokat, folyamatosan dolgozva hasznos, magas minőségű csomagokon. Ezek elérhetőek a Dart hivatalos csomagtárában – pub.dev 

Ebben a cikkben tíz olyan csomagot gyűjtöttem össze, amelyeket különösen hasznosnak találtam a Flutterrel való tapasztalataim során. 

 

1) Flutter Display Mode 

A Flutter Display Mode egy olyan csomag, amelyet a magas frissítési frekvenciájú kijelzőkkel kapcsolatos igények kielégítésére terveztek az elmúlt években. 

A 120 Hz-es kijelző simaságát és folyadékonyságát kihasználva van egy ára: a telefonnak kétszer annyi képkockát kell kirajzolnia, így több akkumulátort merítve. Néhány okostelefon gyártó (pl. Oppo és OnePlus) ezt megpróbálja megoldani egy alkalmazásfehérlistával, amely alapértelmezés szerint 120 Hz-en futó alkalmazásokat tartalmaz. Ezek a rendszerek minden más alkalmazást 60 Hz-re korlátoznak, hacsak az alkalmazás kifejezetten nem kéri a magasabb képfrissítési arányt. 

A Flutter keretrendszerben nincs beépített módszer ennek engedélyezésére, ezért létrehozták a flutter_displaymode csomagot. Ez a csomag arra utasítja a platformot, hogy fusson az alkalmazást a rendelkezésre álló legmagasabb frissítési frekvencián. 

Fontos megjegyezni, hogy ez a csomag egy ideiglenes megoldás, és a Flutter csapata már dolgozik egy hivatalos módszer kifejlesztésén ezen probléma kezelésére: flutter.dev/go/variable-refresh-rate. 

 

2) Flutter Secure Storage 

Az alkalmazásoknak gyakran tárolniuk kell érzékeny adatokat, például egy webtoken-t az azonosításhoz. Egy egyszerű fájlalapú adatbázis vagy a shared_preferences használata más, rosszindulatú alkalmazások általi eltérítésnek lehet kitéve a készüléken, és a felhasználó bejelentkezési munkamenete kompromittálható lehet. 

A flutter_secure_storage nevű csomag egyszerű megoldást kínál erre a problémára. Az iOS-en a Keychain, Android esetében pedig a KeyStore segítségével biztosítja, hogy az összes tárolt adat titkosítva legyen, és csak az ön alkalmazása számára legyen hozzáférhető. 

Nagy mennyiségű adat esetén javasolt egy titkosítási kulcs létrehozása és tárolása a flutter_secure_storage-ben, majd ezt a kulcsot használni a készüléken lévő fájlok titkosításához/lebontásához. Ez a technika kevesebb korlátot biztosít a biztonság fenntartása mellett. Egy útmutatót itt találhat. 

Egy másik csomag, a flutter_secure_file_storage, ezt a bonyolultságot igyekszik elrejteni, egy egyszerű API-t kínálva, miközben továbbra is a flutter_secure_storage-t használja a háttérben. 

 

3) Flutter Flavorizr 

Előfordulhatott már olyan helyzet, amikor újra kellett használnod az alkalmazás kódját, hogy hasonló alkalmazást hozz létre kisebb változtatásokkal egy másik környezetben. Az alkalmazáson belüli változásokat (például különböző Flutter témát) implementálhatod a –dart-define parancssori argumentum vagy környezetalapú konfigurációs fájlok segítségével. Azonban ezek a módszerek korlátozottak a Darton belül és nem képesek megváltoztatni a natív beállításokat, mint például az alkalmazás nevét, ikonját, indulóképernyőjét, bundle azonosítóját és a Firebase projekt konfigurációit. 

flutter_flavorizr megoldja ezeket a problémákat. Lehetővé teszi fejlesztők számára, hogy különböző natív konfigurációt hozzanak létre az alkalmazás minden változatához (flavor). 

Egy egyszerű YAML konfiguráció definiálása és a parancssorban történő futtatás után a Flavorizr végrehajt minden szükséges natív konfigurációs változtatást, és Dart fájlokat generál minden meghatározott változathoz. Fontos megjegyezni, hogy ez a folyamat felülírja és módosítja számos projekt fájlt, ezért minden változtatást javasolt elkövetni minden alkalommal, mielőtt elindítanád ezt az eszközt. 

 

4) Flutter Platform Widgets 

Bár a Flutter egy platformfüggetlen keretrendszer, a natív alkalmazások készítése kihívást jelenthet. Az iOS és Android felhasználók megszokták saját ökoszisztémájukat, és elvárják, hogy az újonnan telepített alkalmazások ugyanolyan kinézetűek és érzetűek legyenek. Természetesen a Flutter maga is átvesz néhány ilyen platform-specifikus viselkedést, de ahhoz, hogy teljes alkalmazást építsünk natív kinézettel mind Androidon, mind iOS-en, két külön widgetkönyvtárat kell használnunk: Material Androidra és Cupertino iOS-re. 

A fflutter_platform_widgets csomag segít elkerülni a felesleges munkát, mivel ezeket a könyvtárakat egyetlen, platformra érzékeny widget-választékká kombinálja. Lehetővé teszi a fejlesztők számára, hogy minden widgetet csak egyszer definiáljanak. Így nincs szükség külön widgetfa létrehozására vagy if-else állítások ismétlésére, amikor több platformra fejlesztünk. 

 

5) Swagger Dart Code Generator 

swagger_dart_code_generator egy olyan csomag, amely jelentősen felgyorsítja a munkafolyamatot. Ez a csomag egy OpenAPI / Swagger JSON specifikációt vesz át, majd létrehozza az összes szükséges modelleket, mappereket és klienseket az adott API használatához. Támogatja több specifikációs fájlra vonatkozó kliensek generálását is, és számos konfigurációs lehetőséget kínál. 

6) Jiffy 

A jiffyegy Flutter dátum-idő csomag, amelyet a momentjs inspirált. Sokkal több funkcionalitást kínál, mint a beépített DateTime osztály, beleértve a saját dátum-idő formátumokból történő parszolást és formázást, műveleteket a dátumok között, valamint akár relatív idő kinyomtatását is, mint például “5 órája” vagy “2 nap múlva”. 

 

7) Flutter Launcher Icons 

A Flutter alkalmazásokhoz ikonok készítése régebben hosszú és unalmas folyamat volt. Egy olyan képet kellett beszerezni, amely pontosan megfelel a megfelelő méretnek, feltölteni egy eszközre, például az appicon.co oldalra, majd kézzel átmásolni az ikonokat a megfelelő helyekre, ügyelve arra, hogy ne tévesszen el mappákat vagy fájlneveket. 

A flutter_launcher_icons eszköz egy képet vesz a projekt bármely részén, és indító ikonokat generál, valamint a hozzájuk tartozó konfigurációs fájlokat mind iOS, mind Android platformra. Csak egy PNG képre, néhány sor YAML kódra és egyetlen parancsra van szükség. 

 

8) Flutter Font Icons 

Rendszeresen használod a Font Awesome-ot, a Material Icons-ot vagy más ikoncsomagokat? 

react-native-vector-icons után inspirálódva, a  flutter_font_icons  csomag egy kényelmes megoldásnak tűnik a Flutter fejlesztők számára, akik gyakran használnak ikonokat. 15 különböző ikoncsomagot bundol össze, összesen 13 413 szabadon felhasználható ikont kínálva. Célja, hogy időt és erőfeszítést takarítson meg a fejlesztőknek a különféle ikoncsomagok keresésében és integrálásában.  

 

9) Package Info Plus 

Az alkalmazásodban egy “rólunk” szakasz megjelenítéséhez, ahol az aktuális alkalmazás nevét, verzióját, build számát és egyéb hasznos információkat jelenítesz meg, a package_info_plus csomagot használhatod ezeknek az adatoknak a lekéréséhez a projektben. 

 

10) Dependency Validator 

Kerültél már olyan helyzetbe, hogy túl sok csomag van a pubspec.yaml fájlodban? 

Gyakran könnyű kipróbálni egy csomagot, majd elfelejteni eltávolítani a függőséget a projektedből. Vagy talán használtál egy csomagot a projektben, de nem adtad hozzá a pubspec fájlhoz, így csak közvetett függőségként jelenik meg valami más által. Ezek a nyilatkozatlan függőségek problémákat okozhatnak a későbbi build során. 

dependency_validator ezen problémákra kínál megoldást: elemzi a projektet, és jelzi, melyek a nyilatkozatlan függőségek, valamint melyek azok, amelyeket biztonságosan lehet eltávolítani. 

 

 

Itt találkozhatsz velünk

Rendezvény
Lezajlott

Ami egy senior fejlesztőt sem hagy aludni

2022. június 9. - 2022. június 9.

Budapest, Óbudai Egyetem, 18.00

Ezúttal egy rendkívüli nyárindító MeetUp-al jelentkezünk... Aki senior fejlesztőként dolgozik sokszor nehezen alszik el... De mi az ami ébren tart? És hogy tudod kezelni a senioritással járó kihívásokat.. és végre egy rendeset aludni.... A meglepetés nyitóelőadást / workshopot követően Szerémi Péter kommunikációs szakértő és Pál András a Radnóti Színház színésze ad elő és dolgoz fel agilis élethelyzeteket... olyanokat amelyekkel minden senior fejlesztő találkozik... Annyit ígérhetünk, hogy szórakoztató és tanulságos lesz. ...és a MeetUp után egész biztos jól fogsz aludni :)

Rendezvény
Lezajlott

Data Management 13.0

2022. május 12. - 2022. május 12.

Budapest, 18.00

Érdekel a Data Management? Akkor van egy jó programötletünk a számodra! Regisztrálj a május 12. -i Data Management 13.0 MeetUp-unkra. Előadóink sorát Gyöngyi fogja megkezdeni, aki Data Management megoldásokról fog beszélni - majd ezt követően egy panelbeszélgetést hallgathatunk meg Csite László, Kasler Lóránd Péter, Kelemen Márton és Szőke József részvételével. Végezetül pedig László Zoltán, az UpScale kollégája mutatja be a TiDB NewSQL POC-unkat.

Rendezvény
Lezajlott

AI, a megoldás!

2021. október 13. - 2021. október 13.

Budapest, 9.00

AI, a megoldás UpScale előadás Banking Technology 2021 / Portfolio konferencia 2021. október 13. Corinthia Hotel Budapest A prezentáció főbb üzenetei: A mesterséges intelligencia (AI) igazi versenyelőnyként tud szolgálni a nagyvállalatok / nagy pénzintézetek számára, amelyeknek rendkívüli mennyiségű adat áll a rendelkezésre. Az AI ugyanakkor több mint egy analitikai eszköz és a bevezetése megfelelő szemléletmódot igényel. A legacy rendszerek modernizációja, az új generációs adatbázisok, holisztikus use-casek és az AI jól definiált szerepe az üzleti folyamatokban egyaránt fontos elemei egy jól átgondolt stratégiának.

Rendezvény
Lezajlott

Modern technológiák Enterprise környezetben

2021. június 3. - 2021. június 3.

Budapest, 9.00

Modern technológiák Enterprise környezetben UpScale előadás Financial & Corporate IT 2021 Portfolio hybrid konferencia 2021. június 3. Kempinski Hotel Corvinus Budapest Az előadás az UpScale négy éves tapasztalatára építve, konkrét esettanulmányokon keresztül mutatja be, hogyan tehetők modern (akár open source) technológiai megoldások enterprise kompatibilissé.

Vedd fel velünk a kapcsolatot!

Minden problémára professzionális megoldást kínálunk. Keress minket bizalommal!

Kapcsolatfelvétel

Legyél te is a csapat tagja!

Nézd meg nyitott pozícióinkat, és ha felkeltettük érdeklődésed, keress minket bizalommal!

Jelentkezz hozzánk!