Flutter
Flutter | |
---|---|
![]() |
|
Kehittäjä | |
Kehityshistoria | |
Ensijulkaisu | Alpha (v0.0.6) |
Vakaa versio | 3.10.2 / 24.5.2023 |
Tiedot | |
Ohjelmistotyyppi | Ohjelmistokehys |
Alusta |
Android iOS Linux MacOS Windows |
Ohjelmointikielet | C, C++, Dart [1] |
Lisenssi | BSD-lisenssi |
Aiheesta muualla | |
Verkkosivusto |
Flutter[2] 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[muokkaa | muokkaa wikitekstiä]
Flutterin ensimmäinen versio julkaistiin nimellä "Sky"[3]. 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.[4]
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ä.[5]
Flutterin 1.0 versio julkistettiin vuoden 2018 lopussa[6], joka laajensi tukensa iOS:lle ja tarjosi kehittäjille vakaan alustan rakentaa korkealaatuisia sovelluksia molemmille suosituimmille mobiilialustoille.[6]
Vuoden 2021 maaliskuussa Google julkaisi Flutter 2:n.[7] 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.[8]
Syyskuun 8. päivänä 2021 Google julkaisi Dart 2.14:n ja Flutter 2.5:n[9]. 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.[10]
Toukokuun 12. päivänä 2022 Google ilmoitti Flutter 3:n ja Dart 2.17:n julkaisusta[11]. 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.[12]
Elokuun 30. päivänä 2022 julkaistiin Flutter 3.3. [13]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.[14]
Tammikuun 25. päivänä 2023 julkaistiin Flutter 3.7.[15]
Tekniikka[muokkaa | muokkaa wikitekstiä]
Flutterin rakenne perustuu neljään pääkomponenttiin:[16] Dart-ohjelmointikieleen, Flutter-moottoriin, Foundation-kirjastoon ja Widget-kirjastoihin.[16]
- 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[muokkaa | muokkaa wikitekstiä]
Flutterin keskeiset ominaisuudet sisältävät Hot Reload -ominaisuuden, widget-pohjaisen järjestelmän, yhden koodipohjan useille alustoille ja hyvän suorituskyvyn.[17]
- Hot Reload:[5] Tämä ominaisuus mahdollistaa muutosten tekemisen koodiin lennossa ja niiden välittömän esikatselun, mikä tekee sovelluksen debuggaamisesta ja iteroinnista huomattavasti nopeampaa.[5]
- Widget-pohjainen:[18] Flutterin käyttöliittymä on rakennettu widgeteistä. Ne ovat kuin rakennuspalikoita, jotka auttavat luomaan räätälöityjä ja monimutkaisia käyttöliittymiä.[19]
- Yksi koodipohja:[20] 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.[21]
- Suorituskyky:[22] Koska Flutter kompiloi Dart-koodin natiiviksi koodiksi, se pystyy tarjoamaan erinomaisen suorituskyvyn.[23]
Esimerkkejä sovelluksista[muokkaa | muokkaa wikitekstiä]
Useat tunnetut yritykset ovat jo hyödyntäneet Flutteria sovellustensa kehittämisessä. Esimerkkeinä ovat:
- Alibaba: Maailman suurimpiin kuuluva verkkokauppa Alibaba[24] on käyttänyt Flutteria mobiilisovelluksensa kehittämisessä.[25]
- Google Pay: myös Googlen omat sovellukset, kuten Google Pay[26], on rakennettu Flutterin avulla.[27]
- Reflectly: Reflectly[28], suosittu mindfulness- ja päiväkirjasovellus, rakennettiin alun perin natiivilla koodilla, mutta yritys päätti siirtyä Flutteriin sen joustavuuden ja suorituskyvyn vuoksi.[29]
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.[30]
Lähteet[muokkaa | muokkaa wikitekstiä]
- ↑ FAQ - Flutter flutter.dev.
- ↑ Flutter: Google's Answer to Cross-platform Mobile Development CityLife. 18.6.2023. Viitattu 18.6.2023. (englanniksi)
- ↑ Tomic Riedel: The History of Flutter in less than 3 minutes! Medium. 17.10.2022. Viitattu 18.6.2023. (englanniksi)
- ↑ Ron Amadeo: Google’s Dart language on Android aims for Java-free, 120 FPS apps Ars Technica. 1.5.2015. Viitattu 19.6.2023. (englanniksi)
- ↑ a b c Hot reload docs.flutter.dev. Viitattu 18.6.2023. (englanniksi)
- ↑ a b Flutter 1.0 released: The first stable release of Google's mobile UI toolkit Android Authority. 4.12.2018. Viitattu 18.6.2023. (englanniksi)
- ↑ Announcing Flutter 2 developers.googleblog.com. Viitattu 18.6.2023. (englanniksi)
- ↑ Migrating to null safety dart.dev. Viitattu 19.6.2023. (englanniksi)
- ↑ Chris Sells: What’s new in Flutter 2.5 Flutter. 8.9.2021. Viitattu 18.6.2023. (englanniksi)
- ↑ Hotfixes to the Stable Channel GitHub. Viitattu 19.6.2023. (englanniksi)
- ↑ Tim Sneath: Introducing Flutter 3 Flutter. 11.5.2022. Viitattu 18.6.2023. (englanniksi)
- ↑ Flutter 3.0.0 release notes docs.flutter.dev. Viitattu 19.6.2023. (englanniksi)
- ↑ Kevin Chisholm: What’s new in Flutter 3.3 Flutter. 31.8.2022. Viitattu 18.6.2023. (englanniksi)
- ↑ Tim Sneath: Announcing Flutter 3.3 at Flutter Vikings Flutter. 30.8.2022. Viitattu 19.6.2023. (englanniksi)
- ↑ Nikul Kukadiya: Flutter 3.7.3 Updates Medium. 16.2.2023. Viitattu 18.6.2023. (englanniksi)
- ↑ a b Christian Findlay: Components of Flutter State Management www.christianfindlay.com. 18.4.2023. Viitattu 18.6.2023. (englanniksi)
- ↑ Tim Sneath: Announcing Flutter 3.3 at Flutter Vikings Flutter. 30.8.2022. Viitattu 19.6.2023. (englanniksi)
- ↑ Introduction to widgets docs.flutter.dev. Viitattu 18.6.2023. (englanniksi)
- ↑ Flutter Widgets - Introduction to Flutter Widgets Edureka. 12.4.2023. Viitattu 19.6.2023. (englanniksi)
- ↑ Multi-Platform flutter.dev. Viitattu 18.6.2023. (englanniksi)
- ↑ Speeding up development with Flutter somniosoftware.com. Viitattu 19.6.2023. (englanniksi)
- ↑ Batuhan Sahin: Flutter Performance Tips Codimis. 2.8.2022. Viitattu 18.6.2023. (englanniksi)
- ↑ Pinedamg: How Flutter & Dart Code Gets Compiled To Native Apps Medium. 9.2.2022. Viitattu 19.6.2023. (englanniksi)
- ↑ What Technical Advantages Does Alibaba Have in Building a Flutter System? Alibaba Cloud Community. Viitattu 18.6.2023. (englanniksi)
- ↑ Flutter Showcase | Alibaba Group flutter.dev. Viitattu 19.6.2023. (englanniksi)
- ↑ Showcase - Flutter apps in production flutter.dev. Viitattu 18.6.2023. (englanniksi)
- ↑ Flutter Showcase |Google Pay flutter.dev. Viitattu 19.6.2023. (englanniksi)
- ↑ Reflectly - Made With Flutter madewithflutter.net. 7.6.2021. Viitattu 18.6.2023. (englanniksi)
- ↑ Flutter Showcase | Reflectly flutter.dev. Viitattu 19.6.2023. (englanniksi)
- ↑ Guest Post: Why Flutter is the most popular cross-platform mobile SDK Stack Overflow Blog. 21.2.2022. Viitattu 18.6.2023. (englanniksi)