====== Flutter ====== **Flutter** je open-source framework vytvořený společností Google pro vývoj nativně kompilovaných aplikací pro mobilní telefony (Android, iOS), web, desktop i vestavěné systémy (včetně [[raspberry_pi|Raspberry Pi]]) z jediné programové základny (codebase). Na rozdíl od konkurence Flutter nepoužívá nativní UI komponenty systému, ale vykresluje každý pixel sám pomocí vlastního vysoce výkonného enginu. ===== Klíčové technologie ===== ==== 1. Jazyk Dart ==== Flutter používá programovací jazyk **Dart**. Ten byl navržen tak, aby podporoval dva typy kompilace: * **JIT (Just-in-Time):** Používá se během vývoje pro funkci **Hot Reload** – změna v kódu se projeví v aplikaci během sekundy bez nutnosti restartu. * **AOT (Ahead-of-Time):** Používá se pro produkci. Kód se zkompiluje přímo do strojového kódu pro [[architektura_arm|ARM]] nebo [[x86|x86]], což zajišťuje bleskový start a plynulost. ==== 2. Rendering engine (Impeller / Skia) ==== Flutter funguje podobně jako herní engine. K vykreslování UI využívá knihovnu Skia (a nověji Impeller), která komunikuje přímo s GPU přes nízkoúrovňová API jako Metal (iOS) nebo Vulkan (Android). Díky tomu dosahují aplikace stabilních 60 až 120 FPS. ===== Koncept "Všechno je Widget" ===== Ve Flutteru neexistuje rozdíl mezi "pohledem", "kontrolerem" a "stylem". Vše od tlačítka přes zarovnání až po celé obrazovky je **Widget**. * **Stateless Widgets:** Pro prvky, které se nemění (např. textový popisek). * **Stateful Widgets:** Pro prvky s dynamickým obsahem (např. počítadlo nebo formulář). ===== Výhody a nevýhody ===== ^ Vlastnost ^ Výhoda ^ Nevýhoda ^ | **Rychlost vývoje** | Jedna codebase pro všechny platformy a Hot Reload. | Nutnost učit se nový jazyk (Dart). | | **Výkon** | Nativní rychlost díky AOT kompilaci. | Větší velikost výsledné aplikace (binárky). | | **Design** | Pixel-perfect kontrola nad každým prvkem UI. | Někdy těžší napodobit specifické chování nového iOS/Androidu ihned po vydání. | ===== Propojení s ekosystémem ===== Flutter je ideální volbou pro aplikace, které využívají další technologie v tvé Wiki: * **Backend:** Často se pojí s **Firebase** (součást [[gcp|GCP]]) pro real-time databáze a autentizaci. * **AI:** Díky balíčkům jako `google_generative_ai` lze do Flutteru snadno integrovat modely [[gemini_historie_a_soucasnost|Gemini]]. * **Hardware:** Skvěle běží na [[sbc|SBC]] zařízeních a je využíván v palubních systémech automobilů (např. značka Toyota). --- //Související pojmy: [[gcp|GCP]], [[architektura_arm|Architektura ARM]], [[raspberry_pi|Raspberry Pi]], [[gemini_historie_a_soucasnost|Gemini]]//