User:Bolemax/sandbox

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

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

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

Шестог маја 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-је. Ово издање је такође донело подршку за Dart 2.0 "null-safety", што је са собом донело и промене којима је прекинута подршка за раније верзије кода Дарт програмског језика. Међутим, Flutter тим је доставио и инструкције за заобилазак тих проблема.

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

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

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

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

Архитектура фрејмворка
Значајне компоненте Флуттера укључују:


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

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

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

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

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

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

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


 * IntelliJ IDEA
 * Android Studio
 * Visual Studio Code
 * Emacs

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

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

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

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

Такође видети

 * Apache Cordova
 * Titanium SDK
 * Codename One
 * Mobile development framework
 * NativeScript
 * GTK
 * React Native
 * Xamarin