Flutter nije “no-code” rješenje ni čarobni štapić, ali je odličan za brz razvoj mobilnih aplikacija - Android

Get it on Google Play

Flutter nije “no-code” rješenje ni čarobni štapić, ali je odličan za brz razvoj mobilnih aplikacija - Android

Ako niste developer, možda niste ni čuli za Flutter - a ako jeste, vjerojatno imate snažno mišljenje o njemu. U čemu je tu stvar?

The post Flutter nije “no-code” rješenje ni čarobni štapić, ali je odličan za brz razvoj mobilnih aplikacija appeared first on Netokracija.

Tijekom posljednjih nekoliko godina sve se više govori o pojednostavljivanju programiranja. Veliki tehnološki igrači, Facebook i Google, odlučili su se na razvoj vlastitih frameworka koji bi trebali učiniti razvoj mobilnih aplikacija lakšim. Tako danas imamo React Native sa strane Facebooka i Flutter, o kojem danas govorimo, kao Googleov alat.

O Flutteru sam razgovarao s Ivanom Celijom, CTO-m Implementacije snova, kao i s Andrijom Frinčićem, CEO-m ove tvrtke. Tvrtka Implementacija Snova uvelike se koristi Flutterom i organizira čak i Flutter ZG Meetup koji je odnedavno našao velikog partnera u Infinumu. No, što je Flutter uopće? Andrija:

Flutter je Googleov toolkit za razvoj atraktivnih mobilnih aplikacija. Posebno je privlačna činjenica to da se jedan kod prevodi u native mobilnu aplikaciju za iOS i za Android operativne sustave, što skraćuje vrijeme razvoja mobilnih aplikacija i samim tim smanjuje i trošak za naručitelja. Mi pak kao razvojna agencija imamo manje koda koji treba održavati na dnevnoj bazi. Prilika da krajnjim korisnicima ponudimo kvalitetniji proizvod (mobilnu aplikaciju) po povoljnijim komercijalnim uvjetima, a da pri tome sebi pojednostavnimo život, nama je bila glavnim motivator za usvajanje ove tehnologije.

Flutter prati stigma jer je – nov

Prema tome, ako razvijate aplikacije za telefone, Flutter bi vam trebao biti na umu od samog početka razvoja. Prednost Fluttera u ovom smislu leži u tome što kroz jednu platformu radite aplikaciju za različite uređaje i time si smanjujete količinu posla. Danas tvrtke koriste Flutter kada u kratkom vremenu žele stvoriti nekoliko verzija aplikacije istovremeno, zbog budžeta ili zbog brzine i jednostavnosti njegovog korištenja.

Ova jednostavnost i lakoća korištenja automatski stavlja Flutter “ispred nišana” developera koji prema njemu gaje određenu stigmu. Andrija kaže kako vjeruje da je Flutter stigmatiziran više zbog činjenice da se radi o novom frameworku iza kojeg stoji Google, nego ičeg drugog. Razvoj aplikacija u Flutteru ne razlikuje se po ničemu od razvoja aplikacija u nekom od drugih toolkitovasamo što je Flutter malo lakše pratiti, po Andrijinom mišljenju:

Za Flutter/Dart postoji razvojno okruženje (Android Studio), postoji odličan debugger i profiler, postoji tona pluginova koji rješavaju specifične probleme. Dakle, ne radi se o nekoj “no-code” platformi, već se radi o klasičnom razvojnom okruženju s cool jezikom i sustavom koji brutalno brzo renderira 2D objekte na ekranu mobilnog uređaja. Ako Flutter ne smatramo pravim programiranjem, onda isto tako ne trebamo pravim programiranjem smatrati i razvoj web aplikacija u Djangu ili Ruby on Railsu.

Andrija stoga kaže da za svaki problem treba gledati adekvatno rješenje. Ako ćemo raditi serversku aplikaciju koja mora raditi u distribuiranom okruženju i obraditi ogromnu količinu evenata, onda ćemo odabrati Erland i odgovarajuće frameworke, kaže Andrija. Ako nam treba “seksi” aplikacija – odabrat ćemo Flutter.

Implementacija Snova
Andrija i Ivan već dugo vremena u Zagrebu organiziraju Flutter Meetup.

Za što Flutter nije?

Ipak, kako ne rade svi “seksi” aplikacije, Andrija pojašnjava da postoje neki slučajevi gdje Flutter nije dobar fit. Prvenstveno se tu radi o 3D igrama, zbog načina na koji Flutter stvara korisničko sučelje, a zatim kada se radi o aplikacijama koje intenzivno komuniciraju s nekim specifičnim komadom hardvera. Andrija i Ivan pojašnjavaju:

Ako se procjeni da je taj dio specifične funkcionalnosti čini manji dio baze koda projekta, onda čak i u takvim slučajevima ima pozitivnih učinaka od korištenja Fluttera dok se specifične stvari implementiraju u native kodu korištenjem kanala.

Moji sugovornici pozivaju na istraživanje prije odluke o tome treba li koristiti Flutter ili ne, jer postoji niz manjih ili većih stvari koje Flutter još uvijek ne može raditi. Na vama je odluka uklapaju li se ova ograničenja u vašu buduću aplikaciju ili ne!

Cilj je olakšavanje posla za developere

Kritike za Flutter upućuju se najčešće prema njegovoj jednostavnosti, odnosno činjenici da nastoji što je moguće više olakšati posao developerima i time donekle mijenja paradigmu programiranja kao nešto što treba biti kompleksno da bi bilo kvalitetno. Andrija kaže kako danas alati i sustavi idu u smjeru olakšavanja svakodnevnog posla za programere:

Aplikacije koje svakodnevno lansiramo na tržište postaju sve kompliciranije i kompleksnije (u smislu funkcionalnosti koje isporučuju). Ako se fokusiramo na utjecaj koje ove dvije činjenice imaju na život prosječnog developera, mislim da možemo slobodno zaključiti da se u njihovom svakodnevnom životu neće ništa previše promijeniti

Ipak, iako Flutter omogućava da istu funkcionalnost riješite s 10 puta manje koda, sustavi koji se danas razvijaju su uvelike kompleksniji pa se za prosječnog developera život neće pretjerano olakšati. Prava prednost leži za krajnje korisnike, ne developere, jer oni će dobiti atraktivnije i kompleksnije aplikacije nego prije.

Developeri stoga ne bi trebali na Flutter ili React gledati kao na čarobne štapiće koji će im omogućiti da isključe mozak i za određeni problem uzmu prvo rješenje koje nađu na Stack Overflowu, kaže Ivan i dodaje:

Flutter samo na jedan efikasan i dobro osmišljen način donosi mogućnost razvoja za više platformi (od samog početka za Android i iOS, a u posljednje vrijeme sve više se radi na razvoju za web i desktop okruženja) te tako olakšava život developerima, no i dalje kvaliteta koda i isporučenog proizvoda ovisi o samom developeru od čega ga niti jedan alat ne može “spasiti”.

U teoriji – manje glavobolje tijekom razvoja

Ako ste developer, Ivan ističe kako je važna prednost hot reload, opcija koja omogućava osvježavanje aplikacije na uređaju ili simulatoru gotovo u trenutku uz zadržavanje postojećeg stanja, tako da odmah možete vidjeti promjene koje ste napravili u kodu. Ova funkcija može olakšati i proces pronalaska i ispravljanja grešaka u kodu, kaže Ivan i dodaje:

Uz hot reload, pisanje koda za izgradnju korisničkog sučelja direktno u Dartu je vrlo praktično. Native razvoj iOS i Android aplikacija je imao drugačiji pristup, korisničko sučelje se pisalo u posebnim .xib, odnosno .xml datotekama koje ste onda mogli vidjeti u previewu unutar razvojnog okruženja što kad jednom probate Flutterov pristup postaje izuzetno zamorno. Međutim, vjerojatno i pod utjecajem Fluttera, prvo je Apple predstavio SwiftUI, a odnedavno i Google s Jetpack Composeom su krenuli u istom smjeru reaktivnog pisanja korisničkog sučelja.

Posljednja istaknuta prednost po Ivanovom mišljenju su widgeti unutar Fluttera koji značajno olakšavaju posao developerima. Uz pomoć njih znatno je lakše složiti sučelje kakvo god poželite, a svako će izgledati isto na iOS-u i Androidu. Ivan dodaje kako Flutter podržava i veliku količinu Material i Cupertino widgeta, tako da je vrlo lako postići željeni izgled i osjećaj nativne aplikacije na obje velike mobilne platforme.

Google
Hot Reload opcija pokazuje vam što se u aplikaciji mijenja u realnom vremenu.

Raste interes malih – i velikih

Andrija i Ivan ove misli i lekcije nastoje prenijeti i na meetupu koji se održava u Zagrebu, ali Andrija priznaje kako interes za Flutter van njihove tvrtke prije meetupa nije ni postojao. Developeri su se prije početka pandemije polako zainteresirali za Flutter, dijelom i zbog činjenice da su ga veće agencije poput Infinuma počele istraživati. Najviše pitanja na meetupu vezano je uz Dart, jezik koji se koristi za razvoj Flutter aplikacija, sustav i raspoloživost pluginova te komunikaciju s hardverom.

Ovaj rast popularnosti Fluttera Andrija smatra trendom koji će se nastaviti i u idućim mjesecima. Određeni dio aplikacija će se i dalje razvijati u native razvojnim okolinama, no Andrija i Ivan smatraju kako će se većina mobilnih aplikacija koje koristimo svakog dana razvijati u Flutteru, React Nativeu, Kotlin Multiplatform mobileu ili Xamarinu. Ne smije se zanemariti ni to da iza Reacta i Fluttera stoje Facebook i Google, koji daju sve od sebe da baš njihov framework postane alat po izboru svakog developera.

The post Flutter nije “no-code” rješenje ni čarobni štapić, ali je odličan za brz razvoj mobilnih aplikacija appeared first on Netokracija.

21/10/2020 11:45 AM