Google Flutteri ülevaade - miks armastavad mobiilirakenduste arendajad lehvimist

Miks rakenduste loojad Flutterit armastavad? Sest Flutter on hämmastav.

Flutter pakub nii ettevõtetele (pakkudes mõistlikke arenduskulusid) kui ka arendajatele (pakkudes suurepärast kasutatavust ja kiirust). Seetõttu on mõned suured ettevõtted Flutterile üle läinud, näiteks Google Ads, Alibaba, Reflectly ja paljud teised.

Google on Flutteri loomisel teinud suurepärast tööd ja nad muudavad selle raamistiku veelgi paremaks.

Selles postituses annan kiire ülevaate Flutterist ja selle uhiuutest hüvedest ning räägin, miks see raamistik tasub töötada. Lisaks arutlen selle üle, mis võib suuri ettevõtteid Flutteri kasutuselevõtmist tagasi hoida.

Aga kõigepealt kõigepealt.

Mis on laperdamise põhisisu?

Siin on asju Flutteri kohta, mida võite juba teada:

  • see on avatud lähtekoodiga platvormidevaheline tööriistakomplekt
  • rakendused on kirjutatud programmeerimiskeeles Dart
  • tal on oma graafikamootor (Skia)
  • see toetab ametlikult kolme platvormi: iOS, Android ja veeb (beetaversioonis)
  • mitteametlikult - see toetab ka töölauda

Google tutvustas Flutteri esimest versiooni 2018. aasta veebruari lõpus. Alates 2020. aasta aprillist on saadaval 1.12 versioon.

Mis on Flutteris nii erilist?

Flutter ühendab kohalike rakenduste kvaliteedi platvormidevahelise arenduse paindlikkusega.

Tegelikult lasevad paljud platvormidevahelised tööriistad koodi üks kord kirjutada ja kasutada nii iOS-is kui ka Androidis. Kuid mitte kõik ei saa samasugust välimust nagu kohalik rakendus.

Kuid just seda teeb Flutter: selle asemel, et olla kohalike kasutajaliidese komponentide (nagu React Native ja Xamarin) peal, tõmbab Flutter kasutajaliidese nullist.

Flutter säilitab rakenduse loomuliku kogemuse ja tunde ning te ei pea muretsema selle jõudluse pärast ühelgi platvormil.

Pealegi, kuna Flutter on avatud lähtekoodiga raamistik, võib iga arendaja seda GitHubis muuta ja ühendamisnõudeid saata. Ja kui heita pilk Flutteri populaarsusele - 90,4 tuhat GitHubi tähte , 12 tuhat kahvlit ja 18 445 kohustust -, saate idee, et devid armastavad Flutterit ja aitavad selle paremaks muuta.

Kuidas lehvimine töötab?

Flutterit ei kompileerita otse iOS-i ega Androidi rakendustesse . Rakendused käivitatakse renderdamismootori (ehitatud C ++) ja Flutteri (Dartile ehitatud) kombinatsiooni põhjal. Kõik sel viisil loodud failid kinnitatakse igale rakendusele ja SDK komplekteerib konkreetse platvormi tarkvara.

See on nagu mänguarendus: mäng ei eralda oma raamistikku ja funktsionaalsus viiakse läbi mängumootoriga. Sama Flutteri tarkvara puhul - kõik Flutteri SDK-l põhinevad rakendused asendavad natiivsete raamistike osad Flutteri elementidega.

Kuigi see võib mõjutada lõpprakenduse suurust, on jõudlus siiski üsna hea - renderdamine toimub kiirusega kuni 120 kaadrit sekundis .

Tänu ARM-protsessorite omakeelsele kompileerimisele, lihtsale renderdamisele ning integreeritud vidinate ja tööriistade komplektile muudab Flutter arendusprotsessi lihtsamaks.

Lisaks pakub see mõnda väga maitsvat funktsiooni, nagu Hot Reload .

See töötab nii:

Kui klõpsate nupul Kuum uuesti laadimine, kuvatakse kõik koodimuudatused kohe vidinates, emulaatorites ja simulaatorites. Rakendus töötab edasi kohast, kus see oli enne kuuma uuesti laadimist: kood värskendab, kuid käivitamine jätkub.

Miks valida platvormiüleste rakenduste jaoks lehvimine?

Uued Flutteri versioonid tulevad varrukatelt välja täiustatud funktsioonidega. Kuid juba on palju täiustatud funktsioone, mis selgitavad suurepäraselt, miks Flutter on nii armastatud.

Esiteks , platvormidevaheline arendamine Flutteriga, vastupidiselt levinud arvamusele, ei muuda tarkvara hullemaks.

Flutter on varustatud kõigi Androidi ja iOS-i liideste jaoks mõeldud kohalike vidinatega, nagu materjalidisain ja Cupertino. Pealegi võib raamistik muuta eraldi elementide käitumist, et luua rakenduse kasutajatele sarnane UX.

Teiseks võimaldab Flutter rakendada diskreetset failide kompileerimist režiimis dev. JiT kompileerimine kiirendab arendamist ja tarkvara silumist.

Kolmandaks , Flutter võimaldab paindlikku ja skaleeritavat taustaprogrammi.

See toetab selliseid pistikprogramme nagu Firebase, SQLite ja nii edasi (pub.dev aitab teil vajaliku leida). Firebase muudab rakenduse infrastruktuuri mastaapseks, serverivabaks ja üleliigseks.

Nii et kui töötate rakendustega, mis vajavad reaalajas andmebaase või pilvefunktsioone, on Flutter teie jaoks tagasi.

Ja viimane: lehvimist on väga lihtne õppida .

Juba algusest peale seadsid Google'i arendajad eesmärgi langetada sisenemistõke. Nad töötasid hoolikalt välja dokumentatsiooni ja ressursse, mida arendajad saavad kasutada. Sellel on isegi spetsiaalsed jaotised, mida saate raamistiku õppimiseks alustada sõltuvalt teie erialast:

  • Lehvimine Androidi arendajatele
  • Lehvimine iOS-i arendajatele
  • Reageerivate põlisrahvaste lehvimine
  • Xamarini lehvimine. Kujundused
  • Veebikursuste lehvimine

Flutteri üksikasjaliku dokumentatsiooni tõttu saate teada, kuidas Dartisse koodi kirjutada, isegi kui teil on ainult Androidi mängude valmistamiseks Unity graafiliste tööriistadega kogemusi.

Flutter 1.12 (uusim versioon) ja selle hüved

Vaatame, milliseid uusi funktsioone tutvustas Flutter oma uusimas versioonis 1.12:

iOS-i tume režiim

Nüüdsest toetab Flutter iOS 13 väljanägemist, sealhulgas Cupertino vidinate täielikku pimedas režiimis tuge. Ja see ei seisne mitte ainult tausta vahetamises, vaid ka ülejäänud värvide sobivaks sobitamises.

Rakenduse lisamise tugi

Teine suur edasiminek on Add-to-App värskendus, mis on mõeldud Flutteri integreerimiseks juba olemasolevatesse iOS / Androidi rakendustesse.

Flutteri uus versioon toetab rakendusse ühe täisekraaniga Flutteri eksemplari lisamist koos järgmisega:

  • Stabiliseeritud API-de integreerimine Java, Kotlin, Objective-C ja Swift
  • Toetus pistikprogrammide kasutamiseks Flutteri moodulites
  • Täiendavad integreerimismehhanismid Androidi AAR-ide ja iOS-i raamistike kaudu

Beetaversioon veebis

Uued Flutteri põhi-, arendaja- ja beetakanalid pakuvad veebile paremat tuge. Kas soovite näiteid?

Siin on haridusprojekt Rivet , mis kasutas Flutterit ja Firebase'i oma rakenduse veebiversiooni loomiseks.

Noolemäng 2.7

Raamistiku uus versioon tutvustab Dart 2.7.

See värskendus täiustab Dart 2.5-ga töötamise kogemust selles, kuidas turvalised stringid võimete ja laiendusprotsessidega toime tulevad. See aitab arendajatel vältida vigu, kui muutujad saavad nulli väärtuse ja sõeluvad täisarvu.

Ja siin on mõned uusima Flutteri versiooni muud funktsioonid:

  • macOS töölaua tugi (alfa)
  • mitme seadme silumine
  • kuldse pildi testimine
  • Androidi ehituse täiustused
  • värskendatud DartPadi

See on hea, kuid mitte probleemideta: mis hoiab Devsi tagasi?

Flutter on tõeliselt lahe: lihtne käivitada, lihtne töötada ja seda pakub tohutu tehnoloogiaettevõte. Siin on siiski põhjused, miks teie vanemarendaja ei pruugi teie optimismi jagada.

Noolemängu (madal) populaarsus

Erinevalt Java-st / Kotlinist Androidile või Swiftist / Objective-C-st iOS-i jaoks pole Dartil veel suurt populaarsust. Ja see on väga ebatõenäoline.

Noolemängu pole liiga raske õppida ja seal on palju õpetusi (nagu see), kuid mõned arendajad jäävad Java ja muude tuttavate tööriistade juurde.

Samal ajal ei saa te Flutterit kasutada ja Dartit mitte kasutada: isegi Flutteri tapjafunktsioon - Hot Reload - ei tööta ilma Dartita.

Ei toeta kõiki seadmeid

Te ei saa luua rakendusi 32-bitistele iOS-i seadmetele, nagu vanemad kui iPhone 5s. Sama Windowsi lauaarvutite puhul: te ei saa oma 32-bitises sülearvutis Flutterit käivitada.

Ja Flutter-arendajatel pole plaane selle parandamiseks, kuna "see tähendaks väga suurt hulka tööd".

Nii et kui soovite Flutteriga kodeerida, peate omama x64-bitise seadme või täiendama seda, mida praegu kasutate.

Piiratud arv raamatukogusid

Kuigi on palju Flutteri libereid nagu fl_chart (graafika joonistamiseks Flutteris ), path_provider (kasutatakse faili leidmiseks Androidis / iOS-is), flutter_sliding_tutorial ja palju muud, on nende arv siiski piiratud.

Seda pole raske seletada: Flutter on suhteliselt uus raamistik ja arendajatel pole olnud piisavalt aega, et arendada nii palju libe kui emakeel pakub.

Sellegipoolest on kõige olulisemad raamatukogud juba olemas ja uusi tuleb kogu aeg välja.

Flutter-rakendused on suuremad

... võrreldes kohalike arendatud rakendustega. Flutteri meeskond mõõtis rakenduse minimaalse suuruse (ilma materjalikomponentideta, vaid üks keskuse vidin, mis oli ehitatud lehvitava ehituse APK-ga - split-per-abi kohta), komplekteeritud ja tihendatud, 4,3 MB ARM-i jaoks ja 4,6 MB ARM 64 jaoks .

Põhirakendus on nüüd Androidis ~ 4MB ja iOS-is ~ 10MB .

Vähe tõestatud asjatundlikkust

Arendajad võivad flutterit armastada, kuid suured ettevõtted pole kiirustanud loobuma kohalike (või React Native) rakenduste valmistamisest ja pöörduma Flutteri poole.

Enamiku ettevõtete jaoks on suurim probleem Flutteri uudsus. Dart on uuem kui Java või C # ja Flutter ise on täiesti uus.

Muidugi on palju Flutteri avatud lähtekoodiga rakendusi, sealhulgas suuri nagu Google Ads või Hamilton (täielikku loendit vaadake siit), kuid siiski mitte liiga palju.

Ja keegi ei taha olla see inimene, kes võtab kasutusele uhiuue raamistiku, vaid selleks, et mõni kuu hiljem minna üle kohalikule arengule.

Kuid veelgi olulisem on see, et Flutter on see tee, mida mööda käid üksi:

  • kinnitatud parimaid tavasid pole palju (vähemalt suuremahuliste projektide puhul)
  • alati võimalus, et olete esimene, kes selle konkreetse probleemiga silmitsi seisab
  • vähe lootust, et keegi teid välja aitab - peate astuma iga sammu hoolikalt ja olema valmis tagajärgedega toime tulema

Kus lehvimist kasutada

Esiteks on parem kasutada Flutterit MVP alustavatel ettevõtetel, kui teil on ärimudeli kinnitamiseks piiratud aeg ja sageli raha.

Flutteri rakendus on odavam *:

  • * võrreldes kahe natiivrakenduse maksumusega
  • arendusmeeskond on 40% väiksem
  • lineaarsed protsessid
  • saate veeta rohkem aega rakenduse funktsioonide kallal töötamisel

Flutteri projekti valimisega vähendate arendustundide arvu. Laperdus ei võta nii palju aega kui kohalik.

Siin on näide. Oletame, et teete Instagrami sarnast rakendust kahele platvormile. iOS areng toimub võtta umbes nii, umbes 700 tundi, Android - ka 700H .

Flutteriga katate mõlemad platvormid ja säästate aega: 700h Android + 700h iOS vs 700h Flutter.

Säästate tonni aega, mida võite kulutada millelegi muule, näiteks funktsioonide poleerimisele.

Pakkimine

Kui loote rakendusi piiratud aja jooksul ja piiratud eelarvega, tasub Flutter kindlasti proovida.

See on täpselt nii hea, kui see näib olevat ja iga uue värskendusega lisavad Google'i arendajad platvormidevahelise arenduse jaoks ühtlasemaid tööriistu.

Muidugi võib see raamistik tunduda C # ja Java-austajatele ebatavaline, kuid see ei tähenda, et see sunnib teid mugavustsoonist välja minema. Olles õppinud väikesi süntaksierinevusi, näete peagi, et kasutajaliidese arendamine käib paar korda kiiremini kui algse arendusega.

Ja kui teil õnnestub ja kui Flutter jääb ringi, võib see teile tulevikus põnevat mobiiliarenduse kogemust ja võimalusi pakkuda.