User:Bolemax/sandbox

From Wikipedia, the free encyclopedia
Flutter
Original author(s)Google
Developer(s)Гугл и заједница
Initial releaseAlpha (v0.0.6) / May 12, 2017; 6 years ago (2017-05-12)[1]
Stable release
3.19.0[2] Edit this on Wikidata / 15 February 2024; 2 months ago (15 February 2024)
Written inC, C++, Dart[3]
PlatformAndroid, iOS, Google Fuchsia, Web platform, Linux, macOS и Windows
TypeФрејмворк за развој апликација
LicenseNew BSD License
Websiteflutter.dev

Flutter (софтвер)[edit]

Flutter је скуп алата отвореног кода за развој софтвера корисничких интервијеса развијен од стране Google-a. Користи се за развој апликација на платформама: Android, iOS, Linux, macOS, Windows, Google Fuchsia, као и на веб платформе, све помоћу једне базе кода.[4]

Flutter је први пут представљен 2015. године,[5][6] а прво стабилно издање постало је доступно 2017. године.[1]

Историја[edit]

Прва верзија Flutter-a, под називом "Sky" радила је искључиво на Андроид оперативном систему. Представљена је 2015. године на скупу Dart програмског језика[7], са циљем да рендерује корисничке интерфејсе на конзизтентних 120 фрејмова по секунди.[8] Током септрембра 2018. године у Шангају, Google је објавио "Flutter Release Preview 2", задњу верзију Flutter-a пре прве стабилне 1.0 верзије. Четвртог децембра исте године, Flutter 1.0 је представљен током "Flutter Live" догађаја и представљао је прву стабилну верзију фрејмворка. Једанаестог децембра 2019. године, Flutter 1.12 је представљен током "Flutter Interactive" догађаја.[9]


Шестог маја 2020. године представљени су Dart SDK 2.8, као и Flutter 1.17.0, са подршком за Metal API која побољшава перформансе на iOS уређајима за око 50%, као и са новим Meterial виџетима и алатима за развој пратње мрежа.


Трећег марта 2021. године, Google је избацио Flutter 2 током онлајн Flutter Engage догађаја. Овај значајан апдејт је довео официјалну подршку за веб-базиране апликације помоћу новог "Canvas Kit" рендерера, нове веб-специфичне виџете, као и рану подршку за десктоп апликације на Windows, macOS i Linux платформама, као и подршку за Add-to-App API-је.[10] Ово издање је такође донело подршку за Dart 2.0 "null-safety", што је са собом донело и промене којима је прекинута подршка за раније верзије кода Дарт програмског језика. Међутим, Flutter тим је доставио и инструкције за заобилазак тих проблема.[11]


Осмог септембра 2021. године, Dart 2.14 и Flutter 2.5 су избачени од стране Google-a. Ове верзије са собом донеле су побољшања за Android режим пуног екрана као и најновију верзију гугловог "Material Design" апстракта названог "Material You". Dart је такође добио два нова ажурирања: стандардизоване услове за линтер, као и стабилну подршку за уређаје засноване на Apple Silicon платформи.[12][13]


Дванаестог маја 2022. године, Google је објавио издања Flutter 3 и Dart 2.17. Ова ажурирања са собом су донела експанзије за подршку подржаних платформа (6 укупно подржаних платформа), уклучујући стабилну подршку за Linux и macOS платформе на Intel i Apple Silicon платформама.[14]


Тридесетог августа 2022. године, Flutter 3.3 је објављен. Ово издање долази са подршком за интеракцију међу Objective-C и Swift језицима као и рани преглед нове платформе за рендеровање назване "Impeller", чији је циљ да умањи "сецкање" изазвано компилацијом шејдера.[15]


25. јануара 2023. године, објављен је и Flutter 3.7

Архитектура фрејмворка[edit]

Значајне компоненте Флуттера укључују:

  • Dart платформу
  • Flutter енџин
  • "Foundation" библиотека
  • Дизајн-специфичне виџете
  • Flutter алате за развој (DevTools)

Дарт језик[edit]

Flutter апликације написане су у Dart језику и служе се његовим широким асортманом напредних функција[16]


За боље перформансе, верзије Flutter апликација намењене за крајње кориснике користе се методом АОТ компилације[17], осим на веб платформе на којој је Dart код транспајлиран у JavaScript.[18]


Flutter наслеђује Dart-ов Pub менаџер пакета и репозиторијум софтвера, који дозвољавају корисницима да публикују сопствене пакете и Flutter-специфичне плагине.[19]

Foundation библиотека[edit]

Foundation библиотека, написана у Dart-у, доставља основне класе и функције које се користе за развој Flutter апликација, као што су API-ји за комуникацију са енџином.[16][20]

Дизајн-специфични виџети[edit]

Flutter фрејмворк састоји се из два сета виџета који конформирају "језицима дизајна": Material Design виџети имплементирају Гугло језик дизајна истог имена, као и Cupertino виџете који имплементирају "iOS Human interface guidelines".[16][21][22][23] Флуттер омогућава развојницима софтвера да користе било који од ова два сета виџета на сопственим платформама, па чак и Cupertino виџете на Android платформи. "Third party" пакети могу се користити како би се виџети апликације аутоматски прилагодили тренутној платформи.[24]

Подршка за интегрисана развојна окружења[edit]

Flutter одржава официјалну подршку за следећа интергрисана развојна окружења и едиторе текста помоћу плагина:

Остала интергрисана развојна окружења могу се користити помоћу плагина одржаваних од стане заједница развијача софтвера, или користећи Флуттер алате са командне линије.[8] Постоји и неколицина алата који су почели да се служе официјалним Flutter IDE фрејмворком и који нуде графичке интерфејсве за развој корисничких интерфејса.

Виџети[edit]

Основна компонента сваког Flutter програма је "виџет", који се може и састојати од осталих виџета. Виџет описује логику, интеракцију, као и дизајн елемента корисничком интерфесја са имплементацијом налик оној React фрејмворка. За разлику од цросс-платформ алата као што су React Native i Xamarin који исцртавају виџете помоћу нативних компоненти платформе, Flutter рендерује виџете пиксел-по-пиксел.


Постоје две основна типа виџета: виџета са стањем, и виџети без стања. Виџети без стања се мењају само у колико се и њихови улазни подаци мењају, па су самим тим и доста ефикасни, док се виџети са стањем могу променити позивом setState() методе, чиме се њихово интерно стање мења, и они се поново исцртавају.[25]


Иако су виџети примарни метод конструкције Флуттер апликација, они се исто тако могу и избећи у корист директног цртања на "платну". Та могућност се неретко користи како би се помоћу Флуттера имплементирали енџини за развој видео игара.

Такође видети[edit]

Референце[edit]

  1. ^ a b Chris Bracken. "Издање v0.0.6: Rev alpha branch version to 0.0.6, flutter 0.0.26 (#10010) · flutter/flutter". GitHub. Retrieved 2018-08-08.
  2. ^ Error: Unable to display the reference properly. See the documentation for details.
  3. ^ "FAQ - Flutter". Retrieved 2018-08-08.
  4. ^ Amadeo, Ron (2018-02-27). "Google starts a push for cross-platform app development with Flutter SDK". Ars Technica. Retrieved 2021-06-11.{{cite web}}: CS1 maint: url-status (link)
  5. ^ "With Flutter, Google Aims Dart to Mobile App Cross-Development". InfoQ. Retrieved 2022-03-17.
  6. ^ "Google announces Flutter 1.0, the first stable release of its cross-platform mobile development toolkit". Android Police. 2018-12-05. Retrieved 2022-03-17.
  7. ^ "Sky: An Experiment Writing Dart for Mobile (Dart Developer Summit 2015)". YouTube.
  8. ^ a b Amadeo, Ron (1 May 2015). "Google's Dart language on Android aims for Java-free, 120 FPS apps". Ars Technical.
  9. ^ "Flutter: the first UI platform designed for ambient computing". Flutter blog. Retrieved 2019-12-11.
  10. ^ "Version 2 of Google's Flutter toolkit adds support for desktop and web apps". TechCrunch. Retrieved 2021-03-06.
  11. ^ "Migrating to null safety". dart.dev. Retrieved 2022-02-04.
  12. ^ Sells, Chris (2021-09-08). "What's new in Flutter 2.5". Flutter. Retrieved 2022-02-04.
  13. ^ "Flutter 2.5.0 release notes". docs.flutter.dev. Retrieved 2022-02-04.
  14. ^ "Flutter 3 Release Notes". docs.flutter.dev. Retrieved 2022-08-09.
  15. ^ Sneath, Tim (2022-08-30). "Announcing Flutter 3.3 at Flutter Vikings". Flutter. Retrieved 2022-10-06.
  16. ^ a b c "Technical Overview - Flutter". flutter.dev. Retrieved 2017-12-13.
  17. ^ stephenwzl (2018-08-01). "Flutter's Compilation Patterns". ProAndroidDev. Retrieved 2018-12-06.
  18. ^ "Building a web application with Flutter". docs.flutter.dev. Retrieved 2022-10-06.
  19. ^ "Using packages". docs.flutter.dev. Retrieved 2022-10-06.
  20. ^ "foundation library - Dart API". docs.flutter.dev. Retrieved 2017-12-13.
  21. ^ "Material Design Widgets - Flutter". flutter.dev. Retrieved 2017-12-13.
  22. ^ "Cupertino (iOS-style) Widgets - Flutter". flutter.dev. Retrieved 2017-12-13.
  23. ^ "Human Interface Guidelines". developer.apple.com. Retrieved 2019-10-08.
  24. ^ "flutter_platform_widgets | Flutter Package". Dart packages. Retrieved 2023-01-14.
  25. ^ "Introduction to widgets". docs.flutter.dev. Retrieved 2022-10-06.