Flutter - effektiv støtte for utviklere av forretningsapplikasjoner

Flutter er en stadig mer populær teknologi blant utviklere. Marcin Ochyra, leder for mobilavdelingen hos Ideo Software, forteller oss hva som driver en slik popularitet.

**automatisk oversatt tekst**

Flutter er et rammeverk som, basert på en enkelt kildekodebase, muliggjør utvikling av native apper for både Android og iOS. Det forkorter og forenkler apputviklingsprosessen, reduserer kostnader, gjør det enklere å teste, vedlikeholde og oppdatere. Mens du gjør alt dette, sikrer det også høy ytelse av de opprettede applikasjonene.

Hvis du fortsatt lurer på om du skal bruke Flutter i ditt neste prosjekt, les hva vår ekspert Marcin Ochyra mener om det.

flutter-en.png [45.53 KB]

Marcin, du har jobbet i det mobile miljøet i nesten 10 år. Og i løpet av den tiden var det sannsynligvis mange teknologier for utvikling av mobilapplikasjoner og forskjellige tilnærminger. Hvordan så det ut?

Ja, det er riktig. Mens jeg fortsatte min karriere, har vi brukt de opprinnelige teknologiene, applikasjoner for Android og IOS ble skrevet separat.

Deretter dukket det opp rammer som ga en mulighet til å skrive én kode, slik at applikasjonen fungerer på mange plattformer. Det var React Native, som fortsatt er populært. Nylig har det dukket opp Flutter, og siden den gang har den blitt populær.


Hvis du skulle fortelle meg, fra utviklerens perspektiv, hva som gjør Flutter så spesiell, hvorfor den er bedre enn annen teknologi, antar jeg at det finnes forskjellige løsninger.

Jeg synes det er verdt å sammenligne Flutter med React Native. De skiller seg først og fremst fordi React Native bruker native elementer fra hver plattform, for eksempel en native kode for en plattform, som resulterer i visning av et gitt element.

For eksempel, hvis det ser ut til at det er behov for å vise tekst, vises det opprinnelige elementet i brukergrensesnittet fra en gitt plattform.

Dessuten har Flutter implementert en Skia-grafikkmotor, som er ansvarlig for å gjengi hele mobilapplikasjonen, så det er ikke nødvendig å bruke en egen kode. Det er Flutter som forbereder hele grensesnittet, noe som gjør at det fungerer raskere enn React Native.

 

Flutter er en relativt ny teknologi; den har imidlertid vært på markedet en stund nå. Fortell meg, på hvilket tidspunkt og hva som fikk deg til å tro at dette er teknologien du vil jobbe med.

Da Flutter dukket opp, ble jeg interessert i det faktum at den bruker programmeringsspråket Dart som ligner på alle andre språk, også JavaScript. Den er entrådet og asynkron, så det var veldig enkelt å bytte til den og prøve den i praksis.


Og hvorfor stjal Flutter hjertet ditt og fikk deg til å jobbe kun på dette systemet nå?

For det første var det samfunnet i stadig utvikling. Flutter vokser dynamisk, noe som er betydelig påvirket av det ovennevnte fellesskapet.

Det er mange møter og konferanser for å utvide kunnskapen, møte mennesker som er involvert i utviklingen av populære Flutter-utvidelser, eller til og med lage Flutter-løsningen selv.

 

Og for noen som ikke vet det ennå eller bare er i gang – hva kjennetegner Flutter, hvordan er det bygget, hvordan skiller det seg fra andre plattformer?

Faktisk forblir Flutter React Native når det gjelder å lage grensesnitt. Det er på grunn av widgets som brukes til å lage det, og i React Native er de bygget av komponenter, så faktisk la oss si "blokker" som vi leker med, legger sammen og bygger dermed et brukergrensesnitt.

 

Begrenser prosessen med å bygge blokker, eller widgets, i hverandre på en eller annen måte en utvikler?

Nei, det er ikke en begrensning. Vi kan faktisk skrive våre egne basert på andre, eller fra bunnen av. Vi kontrollerer ulike animasjoner og er i stand til å lage et rikt UY.

Flutter bruker sin egen grafikkmotor, og som et resultat av det vises animasjonene jevnt. Løsningen garanterer 60 bilder per sekund, så det går ikke tapt på ytelsen selv når du lager en svært omfattende, animert UY.


Vi må nevne at på den ene siden er det et klart sett med elementer, og på den andre, mye frihet når det gjelder å legge til nye eller modifisere de som allerede eksisterer. Det er ikke det at vi lager noe kun for personlig bruk. Som en del av et så stort fellesskap kan vi til og med si at vi påvirker utviklingen av denne teknologien.

Til tross for at det er de allerede forberedte settene med "blokker", widgets, av Flutter-teamet, har vi også full frihet til å lage våre egne utvidelser.

Vi kan publisere dem på det offisielle depotet kalt Pub Dev, der alle kan bruke dem. Vi kan invitere andre til å utvikle prosjektet vårt, og i tillegg til widgets kan vi lage utvidelser som bruker den opprinnelige koden til en gitt plattform.

For eksempel, ved å bruke forskjellige typer enhetssensorer viser WebView, dvs. innholdet på nettstedet, og kommuniserer også via Bluetooth.

 

Du snakker om disse innfødte løsningene. Flutter, på den ene siden, er en av de beste plattformene for å lage hybride. Men fortell meg, hvis vi skulle sammenligne, er de verre enn de innfødte?

De er ikke verre. Vi kan lage en kode som er kompilert inn i den opprinnelige koden til en gitt plattform, slik at den fungerer veldig raskt. Det kan være litt tregere.

Jeg mener, det er veldig raskt, men det er behov for å kommunisere med den opprinnelige plattformen. Faktisk, når det kommer til selve brukergrensesnittet er det veldig jevnt, slik at brukere ikke kan merke noen forskjeller.

Hvis vi ønsker å implementere noe naturlig, må vi skrive en innfødt kode, da det selvfølgelig ikke finnes noen slik utvidelse til depotet. Da må vi utarbeide en slik kode for hver av plattformene, det vil si Android, for IOS.

 

Så i en slik situasjon trenger jeg ikke å lage en egen native app. Bare det opprinnelige fragmentet legges til appen som ble opprettet i Flutter, og jeg kan fortsatt bruke denne teknologien og tilnærmingen til å lage applikasjoner.

Ja nøyaktig. Vi kan bare skrive en utvidelse som vil støtte noen spesifikk funksjonalitet. Det som er interessant, i en innebygd applikasjon for Android eller IOS, kan vi plassere en applikasjon opprettet i Flutter.

Så mens vi bruker en innebygd kode, kan vi åpne visningene fra Flutter, og omvendt - på Flutter kan vi legge visningene fra native plattformer.

 

Er det et poeng å lage native applikasjoner?

Det avhenger av formålet. For eksempel, hvis vi ikke ønsker å lage applikasjoner for flere operativsystemer, bør vi fokusere på den opprinnelige plattformen.

Men hvis vi skriver applikasjoner som skal støtte flere plattformer, så er det best å fokusere på noe som sparer tid på å lage en slik applikasjon ved å skrive bare én kode som kjører på flere plattformer.


Som vi sa, Flutter fortsetter å vokse. Jeg liker det faktum at det ikke er begrenset til mobile enheter, som smarttelefoner, men også til andre kanaler. Hvordan ser du på den videre utviklingen av teknologi i så henseende? Jeg mener videreutviklingen av Flutter – hvilken retning vil den ta, hvilke muligheter vil den gi?

I begynnelsen var Flutter designet for å skrive mobilapplikasjoner, det fungerte bare på Android og IOS. Den har vært tilgjengelig som en stabil versjon en god stund.

Som et resultat kan vi skrive en stabil kode på plattformen, og lage ulike typer dashboards for nettapper.

Bokstavelig talt for noen dager siden dukket Flutter opp i en stabil versjon for Windows, så vi kan allerede lage applikasjoner for dette systemet, så vel som i beta- og alfaversjoner på MacOS og Linux. Flutter har som mål å være et verktøy for å lage applikasjoner for alle enheter.

 

Inkludert kjøleskap og TV?

Nøyaktig. TV-er og kjøleskap er ofte utstyrt med et Android-system.

 

Og dette gjør Flutter til et universelt språk. Dessuten kan det om et øyeblikk vise seg at du hadde rett i å fokusere på mobilapper, siden du takket være teknologien kan gå tilbake til å lage universelle, enhetsuavhengige applikasjoner.

Ja nettopp. En utvikler skriver én kode, og en app fungerer overalt.

 

Så det kan vise seg at Flutter vil erstatte prosessen med å lage applikasjoner på alle andre språk og plattformer? Hva tror du?

Ikke nødvendigvis, det er alltid behov for å skrive innfødt kode, så innfødte plattformer vil fortsatt eksistere. Flutter vil imidlertid være et slags lag av brukergrensesnittet. Jeg mener, den vil kommunisere med brukere, vise individuelle elementer, svare på brukerinteraksjoner og overføre data til den opprinnelige plattformen.

Men når det kommer til kommunikasjon, for eksempel backend - HTTP-protokollen, kommuniserer Dart også uten problemer, og det samme gjør filsystemer - også støttet av Dart.


Og fra kundens synspunkt, virksomheten. Hva bør man være oppmerksom på når man velger den beste teknologien for å lage en mobilapplikasjon. Hvordan nærme seg etableringen av disse applikasjonene for å faktisk få det man ønsker .

Fra kundens side er det viktigste kostnadene. Flutter gjør det mulig å lage én kode som fungerer på flere plattformer.

Det er selvsagt ikke hundre prosent at én kode dekker hele appen. Det kan dukke opp behov for å endre noe for en bestemt plattform.

Først av alt må vi verifisere om en slik applikasjon fungerer som den skal. Flutter støtter først og fremst funksjonen til Hot Reload, slik at endringer i grensesnittet er synlige umiddelbart etter lagring av filen, noe som utvilsomt er en tidsbesparelse.

 

Så det er lettere for en kunde å bekrefte om det ser ut som en slik person ønsket det. Kommentarene kan komme med, og rettelsene introduseres allerede på stadiet med å lage en løsning.

For det første ser det ut til å være mye enklere for utvikleren. Når en slik person ser appens grafiske grensesnitt, som skal implementeres, er alle endringene synlige.

Som et resultat er ikke tiden bortkastet for å rekompilere hele koden og starte en applikasjon på nytt. Den vises på samme sted der den ble lansert og beholder sin status.

 

Så ikke bare skriver vi én kode i stedet for flere, for flere systemer, men vi kan verifisere den enda raskere og sjekke om alt er som det skal.

Helt klart.

 

Så fortell meg. Forutsatt at jeg er en utvikler, vil jeg gjerne bli bedre kjent med Flutter, uansett om jeg ikke kan det i det hele tatt eller jeg allerede kjenner det ganske godt og ønsker å utvide kunnskapen min. Hvor bør jeg se etter mer informasjon?

Sosiale fora og Facebook-grupper er veldig nyttige. Det er også mulighet for å bruke ulike kurs på plattformer som Udemy, og den virkelig gjennomsiktige Flutters dokumentasjon.

 

Du sa at en utvilsom fordel med Flutter er et godt utviklet fellesskap, så jeg tror at hvis noen søker hjelp, kan det være nyttig.

Akkurat, veldig ofte organiserer vi ulike typer treff som en del av GDG – Google Developers Group, hvor Flutter diskuteres.

Det er også verdt å merke seg at et lite Warszawa-samfunn klarte å organisere en europeisk konferanse om Flutter, som tiltrakk seg mange mennesker fra forskjellige deler av verden – ikke bare fra Polen eller Europa, men til og med fra Argentina.

 

Ja, siden det er en veldig interessant teknologi, ønsker folk å bruke denne typen informasjonskilder.

Jeg er helt enig. For det første er det folk som er involvert i etableringen av selve Flutter. Også ansatte fra Google forberedte presentasjoner, og det er hyggelig å snakke med dem.

 

Det er definitivt et viktig element. Avslutningsvis, hvis du er en utvikler og tenker på Flutter - jeg tror ikke du bør gjøre dette lenger, og hvis du er en klient - tror jeg Flutter er et riktig valg. Takk for intervjuet, Marcin.

Takk skal du ha.

 Vil du vite mer om oss?

Flutter

forretningsapplikasjoner