Flutter

Flutter on avoimen lähdekoodin käyttöliittymäkehitystyökalu, jonka Google on kehittänyt. Sen avulla ohjelmistosuunnittelijat voivat rakentaa natiiveja sovelluksia useille eri alustoille yhdestä koodipohjasta käyttäen Dart ohjelmointikieltä.

Historia
Flutterin ensimmäinen versio julkaistiin nimellä "Sky". Se esiteltiin Dart-päivämääräkonferenssissa vuonna 2015. Sky rajoittui alun perin vain Android-laitteille, mutta ideana oli luoda ohjelmisto, joka voisi tuottaa 120 kuvaa sekunnissa jatkuvasti.

Vuonna 2017 Google julkaisi Flutterin ensimmäisen betaversion. Tämä alkuperäinen versio tarjosi jo useita merkittäviä ominaisuuksia, kuten Hot Reload -ominaisuuden, joka mahdollisti välittömän koodimuutosten esikatselun ilman sovelluksen uudelleenkäynnistämistä.

Flutterin 1.0 versio julkistettiin vuoden 2018 lopussa, joka laajensi tukensa iOS:lle ja tarjosi kehittäjille vakaan alustan rakentaa korkealaatuisia sovelluksia molemmille suosituimmille mobiilialustoille.

Vuoden 2021 maaliskuussa Google julkaisi Flutter 2:n. Tämä merkittävä päivitys toi virallisen tuen verkkosovelluksille uuden Canvas Kit -renderöinnin ja verkkosovelluksille tarkoitettujen widgettien avulla, sekä aikaisen tuen työpöytäsovelluksille Windowsille, macOS:lle ja Linuxille sekä parannetut Add-to-App -API:t. Tämä julkaisu käytti myös Dart 2.0:aa, joka sisälsi äänilukotuksen (sound null-safety), aiheuttaen monia rikkinäisiä muutoksia ja ongelmia useissa ulkoisissa paketeissa. Flutter-tiimi kuitenkin tarjosi ohjeita ja työkaluja näiden ongelmien lieventämiseksi.

Syyskuun 8. päivänä 2021 Google julkaisi Dart 2.14:n ja Flutter 2.5:n. Päivitys toi parannuksia Androidin koko näytön tilaan ja Google'n uusimpaan Material Design -versioon, joka tunnetaan nimellä "Material You". Dart sai kaksi uutta päivitystä, joissa standardoitiin lint-ehdot ja merkittiin tuki Apple Siliconille vakaaksi.

Toukokuun 12. päivänä 2022 Google ilmoitti Flutter 3:n ja Dart 2.17:n julkaisusta. Tämä päivitys laajensi tuettujen alustojen kokonaismäärän kuuteen, mukaan lukien vakaa tuki Linuxille ja macOS:lle sekä Intel- että Apple Silicon -prosessoreilla.

Elokuun 30. päivänä 2022 julkaistiin Flutter 3.3. Tämä julkaisu sisälsi Objective-C:n ja Swiftin interop-tuen ja varhaisen esikatselun uudesta renderöintimoottorista nimeltä "Impeller", jonka tavoitteena on vähentää nykimistä, joka johtuu shader-kompilaatiosta.

Tammikuun 25. päivänä 2023 julkaistiin Flutter 3.7.

Tekniikka

Flutterin rakenne perustuu neljään pääkomponenttiin: Dart-ohjelmointikieleen, Flutter-moottoriin, Foundation-kirjastoon ja Widget-kirjastoihin.

 Dart: Flutter käyttää Dartin ohjelmointikieltä, joka on Googlen kehittämä. Dart tukee sekä AOT (Ahead Of Time) -kompilointia, joka on tärkeä korkean suorituskyvyn saavuttamiseksi, että JIT (Just In Time) -kompilointia, joka mahdollistaa Hot Reload -ominaisuuden ja tukee kehittäjää sovelluksen kehittämisprosessissa.
 Flutter-moottori: Flutter-moottori on kirjoitettu pääasiassa C++:lla ja se tarjoaa alhaisen tason renderöinnin. Se tarjoaa pääsyn Skia (Googlen 2D-renderointimoottori) -palveluihin ja käyttää Dartia sekä perus- että käyttöliittymäkerroksen koodina.
 Foundation-kirjasto: Tämä Dartilla kirjoitettu kirjasto tarjoaa korkean tason abstraktioita, jotka käyttävät Flutter-moottoria. Se tarjoaa myös satoja luokkia, jotka sisältävät keskeiset, yleiskäyttöiset algoritmit ja apuohjelmat.
 Widgetit: Flutterin käyttöliittymä rakennetaan widgeteistä, jotka ovat käyttöliittymän peruselementtejä. Jokainen widget on itsenäinen ja voi sisältää muita widgettejä luoden hierarkisen rakenteen.

Ominaisuudet
Flutterin keskeiset ominaisuudet sisältävät Hot Reload -ominaisuuden, widget-pohjaisen järjestelmän, yhden koodipohjan useille alustoille ja hyvän suorituskyvyn.

 Hot Reload: Tämä ominaisuus mahdollistaa muutosten tekemisen koodiin lennossa ja niiden välittömän esikatselun, mikä tekee sovelluksen debuggaamisesta ja iteroinnista huomattavasti nopeampaa.
 Widget-pohjainen: Flutterin käyttöliittymä on rakennettu widgeteistä. Ne ovat kuin rakennuspalikoita, jotka auttavat luomaan räätälöityjä ja monimutkaisia käyttöliittymiä.
 Yksi koodipohja: Flutter mahdollistaa sovelluksen kehittämisen Androidille, iOS:lle, Webille, Windowsille, Linuxille ja MacOS:lle samalla koodipohjalla. Tämä vähentää kehityksen aikaa ja yksinkertaistaa ylläpitoa.
 Suorituskyky: Koska Flutter kompiloi Dart-koodin natiiviksi koodiksi, se pystyy tarjoamaan erinomaisen suorituskyvyn.

Esimerkkejä sovelluksista

Useat tunnetut yritykset ovat jo hyödyntäneet Flutteria sovellustensa kehittämisessä. Esimerkkeinä ovat:

Alibaba: Maailman suurimpiin kuuluva verkkokauppa Alibaba on käyttänyt Flutteria mobiilisovelluksensa kehittämisessä.

Google Pay: myös Googlen omat sovellukset, kuten Google Pay, on rakennettu Flutterin avulla.

Reflectly: Reflectly, suosittu mindfulness- ja päiväkirjasovellus, rakennettiin alun perin natiivilla koodilla, mutta yritys päätti siirtyä Flutteriin sen joustavuuden ja suorituskyvyn vuoksi.

Flutterin suosio on kasvanut huomattavasti sen julkaisun jälkeen, ja sen aktiivinen kehittäjäyhteisö, jatkuva kehitys ja laaja-alainen tuki tekevät siitä houkuttelevan vaihtoehdon monille sovelluskehittäjille.

Lähteet

Ohjelmakehykset
Vapaat_ohjelmistot