Flutter (software)

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Flutter je open-source uživatelské rozhraní SDK na vývoj softwaru, vytvořené společností Google. Používá se na vývoj aplikací pro Android, iOS, Windows, MacOS, Linux, Google Fuchsia a web.

První verze Flutteru byla známá pod označením „Sky“ a běžela na operačním systému Android. Byla odhalena na vývojářském summitu Dart v roce 2015, s tím, že je možné v této verzi Flutteru vykreslit na obrazovku 120 snímků za sekundu konzistentní rychlostí. +more Hlavním tématem během Google Developer Dní v Šanghaji bylo oznámení ukázky vydání Flutter Release 2 společností Google, což představovalo poslední velké vydání před oficiální verzí Flutter 1. Následně 4. prosince 2018 byla na akci Flutter Live vydána verze Flutter 1. 0, která označuje první „stabilní“ verzi tohoto Frameworku. 11. prosince 2019 byla na události Flutter Interactive vydána verze Flutter 1. 12.

Architektura frameworku

Mezi hlavní komponenty Flutteru patří:

* Platforma Dart * Flutter modul * Základní knihovna * Designově specifické widgety

Platforma Dart

Flutter aplikace jsou napsány v jazyce Dart a využívají mnohé pokročilejší funkce jazyka.

V systémech Windows, MacOS a Linux se prostřednictvím polooficiálního projektu Flutter Desktop Embedding, spouští Flutter ve virtuálním stroji Dartu, který obsahuje spouštěcí modul just-in-time. Při psaní a ladění aplikace používá Flutter „Just In Time“ (okamžitou) kompilaci, která umožňuje „hot reload“ (Rychlé obnovení), pomocí kterého je možné vložit změny zdrojových souborech do běžící aplikace. +more Flutter dokonce rozšiřuje tuto funkci o podporu okamžitého obnovení stavu aplikace (Stateful hot reload), kde ve většině případů se změny zdrojového kódu mohou okamžitě projevit v běžící aplikaci, aniž ji bylo nutné restartovat nebo by se ztratil její aktuální stav.

Vydané verze Flutter aplikací jsou kompilované s ahead-of-time (AOT) kompilací v systémech Android i iOS, což umožňuje vysoký výkon Flutteru na mobilních zařízeních.

Flutter modul

Flutter modul, je primárně napsán v C++ a poskytuje podporu renderování (vykreslování) na low-level (nízké úrovni) pomocí grafické knihovny Skia od společnosti Google. Kromě toho se připojuje k SDK nástrojem specifickým pro platformu, jako je Android a iOS. +more Flutter modul je přenosný runtime modul na hostování Flutter aplikací. Implementuje základní knihovny Flutteru včetně animace a grafiky, vstupně-výstupních souborů a sítí, podporu přístupnosti, architekturu doplňků a Dart runtime s kompilaci Dart nástrojů. Většina vývojářů bude interagovat s Flutterem pouze prostřednictvím Flutter frameworku, který poskytuje moderní, reaktivní rozhraní a bohatou sadu základních widgetů i widgetů pro platformu a základní rozložení aplikací.

Základní knihovna

Základní knihovna, napsaná v jazyce Dart, poskytuje základní třídy a funkce, které se používají k vytváření aplikací pomocí Flutteru, jako jsou API rozhraní pro komunikaci s Flutter modulem.

Widgety

Uživatelský Design ve Flutteru zahrnuje použití kompozice na sestavení / vytváření „Widgetů“ z jiných Widgetů. Trik na pochopení tohoto je uvědomit si, že každý strom komponentů (Widgetů), který je sestaven pod jedinou metodou build, se také označuje jako samostatný Widget. +more Důvodem je skutečnost, že tyto menší Widgety se skládají z ještě dalších menších Widgetů a každý z nich má svou vlastní metodu build. Takto Flutter využívá kompozici.

Podle dokumentace: „Widget je neměnný popis části uživatelského rozhraní. “ Zjednodušeně lze o tom přemýšlet jako o neměnném modelu. +more Nutné je však mít na paměti, že ve Flutteru je mnoho typů Widgetů a ne všechny je možné vidět nebo je upravovat. Například Text je Widget, ale i jeho TextStyle je Widget, který definuje věci jako velikost, barvu, font a tloušťku písma. Existují Widgety, které reprezentují objekty (Text), jiné představující charakteristiky (TextStyle), a dokonce takové, které budují další objekty, jako například FutureBuilder a StreamBuilder.

Složité Widgety lze vytvořit kombinací mnoha jednodušších Widgetů a aplikace je vlastně následně pouze největším Widgetem z nich (často nazývaný „MyApp“). Widget „MyApp“ obsahuje všechny ostatní Widgety, které mohou obsahovat ještě menší Widgety, a spolu tvoří celou aplikaci.

Na sestavení Flutter aplikací se však striktně nevyžaduje použití Widgetů. Alternativní možností, kterou obvykle používají pouze lidé, kteří rádi ovládají každý pixel vykreslen na obrazovce, je přímé použití základních metod knihovny. +more Tyto metody se dají použít na vykreslení různých tvarů, textu a snímků přímo na plátno obrazovky. Tato schopnost Flutteru se využívá v některých herních enginech.

Flutter i obecně funguje spíše jako herní engine. Uživatelské rozhraní je sestaveno a vykreslené na plátno (canvas Skia) podle toho, jak se mění pomocí metody každého Widgetu 'build'. +more Flutter aktualizuje uživatelské rozhraní rychlostí 60 snímků / s (60 fps) nebo 120 fps na zařízeních, které jsou schopny se aktualizovat frekvencí 120 Hz.

Designově specifické Widgety

Flutter framework obsahuje dvě sady Widgetů, které odpovídají konkrétnímu designu jazyků. Material Design Widgety implementují designový jazyk Google se stejným názvem (Material Design) a Cupertino Widgety implementují pokyny společnosti Apple pro iOS Human rozhraní.

Příklad

Ahoj Svět

Program Ahoj Svět ve Flutteru vypadá následovně: import 'package:flutter/material.dart';

void main => runApp(MyApp);

class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Ahoj Svet', home: Scaffold( appBar: AppBar( title: Text('Ahoj Svet')), body: Center( child: Text('Ahoj Svet')))), } }

Odkazy

Reference

Externí odkazy

[url=https://himdeve.com/flutter-sk-cz-tutorialy]Příručka Flutter tutoriálů na Himdeve.com[/url]

Kategorie:Programovací software Kategorie:Software Googlu Kategorie:Software pod licencí BSD

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top