# Flutter (programmalıq támiynat)Kirill

**Flutter** –Google tárepinen jaratılǵan ashıq kodlı UI (dizayn, yaǵnıy paydalanıwshı interfeys) programmalıq támiynat jaratıw kompleksi bolıp tabıladı. Onı veb, Fuchsia, Android, iOS, Linux, macOS hám Windows ushın bir kod bazasınan kross-platformalıq qosımshalardı jaratıw ushın paydalanıwǵa boladı. Dáslepki ret 2015-jılı atalǵan, Flutter 2017-jıldıń may ayında shıǵarıldı. Flutterdi Google kompaniyası Google Pay hám Google Earth sıyaqlı qosımshalarda, sonday-aq ByteDance hám Alibaba sıyaqlı basqa programmalıq támiynat islep shıǵarıwshıları paydalanadı.

Flutter UI *(ingl. User interface - paydalanıwshı interfeysi)* tili menen rendering mexanizminen ibarat. Flutter qosımshası kompilyaciyalanǵanda, ol UI kodı menen de, 4 MB qısılǵan rendering mexanizmi menen de jetkiziledi. Bul bólek kórsetiw mexanizmine tiykarlanǵan hám tek UI kodın jiberetuǵın kóplegen basqa UI freymvorklardan ayırmashılıǵı, mısalı qurılma dárejesindegi Android SDK tiykarındaǵı Android qosımshaları yamasa paydalanıwshınıń HTML mexanizmine tiykarlanǵan HTML/JavaScript veb qosımshaları hám JavaScript mexanizmi bolıp tabıladı. Flutterdiń renderlew liniyasın tolıq basqarıw birneshe platformalarǵa qollawdı jeńilletedi, óytkeni oǵan Flutter UI modelin tolıǵı menen qollawdıń ornına Android Java Native interfeysi sıyaqlı iske qosılǵan jergilikli kodtı qollaw ushın platforma kerek.

## Vidjetler

Flutter baǵdarlamasındaǵı tiykarǵı komponent «vidjet» bolıp tabıladı, ol óz gezeginde basqa vidjetlerden ibarat bolıwı múmkin. Vidjet UI elementiniń logikasın, óz-ara háreketin hám dizaynın React-ke uqsas ámelge asırıw menen sáwlelendiredi. Original platforma komponentlerin paydalanıp vidjetlerdi sızatuǵın React Native hám Xamarin sıyaqlı basqa kross-platformalıq qurallar kompleksinen ayırmashılıǵı, Flutter vidjetlerdiń ózin piksel retinde kórsetedi.

Vidjetlerdiń eki túri bar: *stateless* hám *stateful*. Stateless vidjetlerdiń kirgiziwleri ózgergen jaǵdayda ǵana jańalanadı, yaǵnıy ekrannıń basqa elementleri ózgergende olardı qayta tiklew kerek bolmaydı, al stateful vidjetler ishki statustı jańalaw hám qayta sızıw ushın `setState()` metodın shaqıra aladı.

Vidjetler Flutter qosımshaların jaratıwdıń tiykarǵı metodı bolǵanı menen, olardı tikkeley súwret salıw paydasınan aylanıp ótiwge boladı. Bul imkaniyat geyde Flutter sistemasında oyın mexanizmlerin kirgiziw ushın paydalanıladı.

## Freymvork arxitekturası

### Dart tili

Flutter qosımshaları Dart tilinde jazılǵan. Barlıq platformalardaǵı Flutter qollanbalarınıń reliz versiyaları kodı JavaScript-ke kóshiriletuǵın Internetti qospaǵanda, aldınnan jıynawdı paydalanadı.

Flutter  paydalanıwshılarǵa retlenetuǵın paketlerdi, sonday-aq Flutter arnawlı plaginlerdi járiyalawǵa imkaniyat beretuǵın Dart's Pub paket menedjeri menen programmalıq támiynat repozitoriyin miyras etedi.

### Flutter engine (mexanizmi)

Tiykarınan C++ tilinde jazılǵan Flutter engine Google Skia grafikalıq kitapxanasınan yamasa retlenetuǵın «Impeller» grafikalıq qabatın paydalanıp, tómen dárejeli renderlewdi támiyinleydi. Sonıń menen bir qatarda, ol qoljetimlilik, fayl hám tarmaq kirgiziw/shıǵarıw, jergilikli plagindi qollaw h.t.b. sıyaqlı qásiyetlerdi ámelge asırıw ushın Android hám iOS tárepinen usınılǵan platformaǵa sáykes SDK-lar menen interfeyske iye.

### Foundation kitapxanası

Dart tilinde jazılǵan Foundation kitapxanası engine menen baylanısıw ushın API sıyaqlı Flutter járdemi menen qosımshalardı jaratıw ushın paydalanılatuǵın tiykarǵı klaslar menen funkciyalardı támiyinleydi.

## IDE qollawı

Flutter plaginler arqalı tómendegi IDE hám redaktorlarǵa rásmiy qollawdı ámelge asıradı:

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

Basqa IDE-lerdi jámiyetshilik qollaytuǵın plaginler menen yamasa buyrıq (komanda) qatarındaǵı Flutter quralların paydalanıw arqalı qollanıwǵa boladı. Bazarda rásmiy Flutter IDE Framework qollanıla basladı hám sáykeslendirilgen grafikalıq paydalanıwshı interfeysin dúziwshilerdi usınatuǵın birneshe qurallar payda boldı.

## Derekler

## Sırtqı siltemeler