Valódi cross-platform megoldás, vagy újabb prototipizáló eszköz?

Slides:



Advertisements
Hasonló előadás
HTML enhanced for web apps! Fodor Krisztián
Advertisements

RESTful Web Service tesztelése
A/B tesztelés mobilon App!mobile 2013 Körmendy Domonkos.
Miért jobb egy (nem csak) geolokációs mobil kutatási rendszer? 1 HWSW – App!mobile konferencia, MOM Budapest, november 13. Pintér Róbert.
Az algoritmizálás oktatás egy lehetséges útja: Visual Basic
Flex: csak rugalmasan! Kiss-Tóth Marcell Magyarországi Web Konferencia március 18.
Mobilitás Web-alkalmazások mobil eszközökre: Mobil értékesítési modul (MobileSales) Mobil szerviz modul (MobileService) Standard web-alkalmazások: ERPPDA.
Fischer Norbert. Szoftverfejlesztés jelenlegi problémái  Folyamatosan rövidülő határidők  Projekt indulásakor nem teljesen tiszta a funkcionalitás,
Webes java technológiák 2011
„Smart Apps Bigtime” Szalkai László Ozeki Informatikai Kft.
Iratkezelő rendszer fejlesztése WPF alapokon
Adminisztratív kérdések
Microsoft fejlesztőeszközök a szakképzésben Farkas Bálint Visual Studio 2008.
ASP.NET MVC 3 platform áttekintés
Weben publikált térképek a földrajzi kutatásokban Ádám Eszter Geográfus MSc hallgató.
Virtuális méréstechnika
Kincses Zoltán, Mingesz Róbert, Vadai Gergely
Mérés és adatgyűjtés laboratóriumi gyakorlat Makan Gergely, Mingesz Róbert, Nagy Tamás 2. óra szeptember 9., 10. v
WSDL alapismeretek A WSDL (Web Services Description Language – Web szolgáltatások leíró nyelv) egy XML-alapú nyelv a Web szolgáltatások leírására és azok.
Felső tagozatosok programozás oktatása
Instant alkalmazások SharePoint platformon. A fejlesztés és a testre szabás határai elmosódtak. A testre szabást végző legtöbbször nem programozó A.
Egy Nao robot szimulálása a Choregraphe programmal.
Szoftvertechnológia Szoftvergyártás 2..
Szoftvertechnológia Rendszertervezés.
WEB MES (webes gyártásirányító rendszer)
ESzabványok Workshop 1. előadás: Bevezető, eAdatmodell október 13.
Web Application for Resource Planning
Bátyai Krisztián NetAcademia Oktatóközpont oktató, fejlesztő MCT, MCPD
IWiW – második hullám Simó György T-Online Magyarország Zrt, vezérigazgató.
1 Add az APK-t! Add az APK-t! Automatizált apptesztelés 2013/10/13.
A platform nem létezik Game engine portolás mobilról webre.
Bevezetés a PRADO keretrendszerbe Kardos Gergely.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
A D programozási nyelv Angeli Dávid. Nagy vonalakban  C++  
Mobilra optimalizált webáruházak, avagy felkészülés az új évtizedre Zajdó Csaba.
Visual Basic 2008 Express Edition
Android alkalmazások tesztelése
Programozási tételek.
Generics Krizsán Zoltán. Bemutató A.NET 2.0 verziótól. A.NET 2.0 verziótól. Típusparaméter Típusparaméter Más nyelvben ez a template (sablon). Más nyelvben.
C++11. TÖRTÉNETI ÁTTEKINTŐ Bjarne Stroustrup, AT&T 1979 C with classes 1983 ipari alkalmazás 1998 első szabvány 2003 apróbb módosítások 2005 tr
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
OKOSTELEFON KÖZÉPRÉTEG, VALÓS IDEJŰ TELJESEN ELOSZTOTT ADATFELDOLGOZÁS
Hasznos mobilos alkalmazások Mobilos alkalmazások általában Példa ELTE tanrend Készítette: Kozma Réka.
Hogyan készítheti el egy laikus egy nap alatt az INFOÉRA konferencia programlistázó és értékelő mobilalkalmazását? Menyhárt László Gábor Zamárdi,
Webes alkalmazásfejlesztés
Alkalmazásfejlesztés T-Home Interaktív TV-re. Tartalomfogyasztás a tévéképernyőn A tévé mint képernyő „A háztartások többségében – saját bevallás alapján.
ASZTALI GÉPEK KONTRA TABLETEK Melyiket válasszam? Készítette: Kiss László IALMGR)
EZ AZ ÉN MŰVEM Készítette: Pörzsölt Krisztián
Mobil alkalmazások fejlesztése Vonalkód leolvasó Symbian alapú mobiltelefonra Készítette: Tóth Balázs Viktor.
A Windows Server 2003 termékcsalád A Windows Server 2003 termékcsaládnak 4 tagja van: Windows Server 2003, Standard Edition Windows Server 2003, Enterprise.
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks Összefoglalás M. Kozlovszky MTA SZTAKI
Farkas Zoltán mérnök informatikus Konzulens tanár: Seres Iván 2013.
.NET FRAMEWORK Röviden Krizsán Zoltán 1.0. Tulajdonságok I Rövidebb fejlesztés 20 támogatott nyelv (nyílt specifikáció) 20 támogatott nyelv (nyílt specifikáció)
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Vizuális programozás Előadó: Csapó Gábor.
Informatikai gyakorlatok 11. évfolyam
Egyszerű játékprogram szimultán fejlesztése – az Android és Windows Phone platform hasonlóságai és különbségei Kaczur Sándor, Friedel Attila
Nagyvállalati dokumentumkezelés 2. Fejér Gábor PYLON KFT DMS megoldás nyílt forráskódú környezetben – az XDocs rendszer.
Programok készítése és futtatása. Integrált fejlesztői környezet (IDE) tartalmaz:  szövegszerkesztőt a program forráskódjának szerkesztésére,  fordítóprogramot.
FELHŐ ALAPÚ INFORMATIKAI RENDSZEREK VS. LEXIKÁLIS ISMERETEK Networkshop 2016 Konferencia Debrecen Antal Péter, Eszterházy Károly Főiskola,
Alkalmazásfejlesztés F#-ban Dunaújvárosi Főiskola Kiss Gyula mérnökinformatikus hallgató Nemzeti Tehetség Program Tehetségútlevél Program „NTP-TÚP ”
Fodor Edina, App inventor 2 Fodor Edina,
Java Code Coverage Library
Adatkötés Sablonokkal
„Big Data” elemzési módszerek
Új kapukat nyit az IoT a parkolóházak digitalizálásánál
MySQL története, részei, felhasználhatóság, PHPMyAdmin
Google Data Studio A Bétán túl Pere Patrícia HWSW mobile!
Kotlin Multiplatform: Ilyen minek van?
Előadás másolata:

Valódi cross-platform megoldás, vagy újabb prototipizáló eszköz? Flutter Valódi cross-platform megoldás, vagy újabb prototipizáló eszköz? Gerlei Balázs @balazsgerlei

Mi a Flutter? Új cross-platfom mobil SDK Androidra és iOS-re Nyílt forráskódú Még csak alpha verzió Közös forráskód, dizájn és fejlesztői csapat lehetővé tétele a cél Testreszabható, gyors és magas performanciájú appok Dart nyelven lehet alkalmazásokat írni

Mi a Dart? Nyílt forráskódú programnyelv a Google-től Szintaktikailag hasonló a Java-hoz, JavaScript- hez (és Kotlinhoz) Opcionálisan (egyelőre), de erősen típusos Generational garbage collection “Tree-shaking” compiler, nem használt (dead) kód eltávolítása, kis méretű binárisok A Google-nél széles körben használják webfejlsztésre, jól skálázódik

Motiváció Mobilra fejleszteni nem könnyű Kétszereplős piac, az Android és az iOS között megosztva Két külön fejlesztői csapat menedzselése, két külön app fejlesztése körülményes “Write once, run everywhere” – ismerjük a szlogent, de ki látott valóban ilyet? Jó lenne, ha biztosak lehetnénk, hogy amit fejlesztés közben látunk, azt látják majd a felhasználók is

A Flutter megoldása Cross-platform SDK a lassú, natív és cross- platform környezet közötti bridge szükségessége nélkül A Dart kód tejesen natívra fordul A teljes UI-t a Flutter rendereli, nem használ natív UI komponenseket Skia (a Chrome render motorja) OpenGL vagy Vulkan API Produktív fejlesztői környezetet biztosít Cross platform megoldások UI-ra: Web komponensek – teljesítmény, look and feel problémák Wrappelt natív komponensek – legkisebb közös nevező, nehezen modularizálható, testreszabható Egyedi renderelés – teljesítmény

Layout és painting egy menetben Gyors lehet, mert maga intézi a renderelést Más platformok sokszor multi-pass O(Nˆ2) layout megoldást használnak A Flutter one-pass (egy meneteben), O(N) komplexitású, elkülönített layout és painting fázist alkalmaz Egyszerű, kényszer (constraint) alapú modell: min és max szélességek és magasságok Nem téglalapokat, hanem a UI hierarchia egy részfáját (subtree) invalidálja Multi pass layout: 1. UI elemek egymáshoz való viszonya, 2. UI elemek végső pozíciója. Szükséges lehet, ha a fában bármelyik elem befolyásolhatja a maradék elemek méretét/pozícióját, pl. fix méretű és maradék helyet kitöltő elemek.

A UI is kód A UI-t is kódként kell írni az app többi részével együtt, nem egy elkülönülő leíró nyelven A kompozíciót részesíti előnyben az örökléssel szemben, minden Widget, még a Padding is Kétféle Widget: StatelessWidget: állapotmentes (immutable) nézetek, pl. szimpla szöveg StatefullWidget: állapottal rendelkező (mutable) nézetek, pl. hálózatról letöltött elemek listája

Widget kompozíció class ExampleWidget extends StatelessWidget { @override Widget build(BuildContext context) { return new Column( children: <Widget>[ new Text("One"), new Center(Text child: new ("Hello, world!"), ), ], ); } }

Hot Reload Az Android Studio ”Instant Run” funkciójához hasonló Működik iOS-en is Megtartja az alkalmazás állapotát (heap and stack) Gyors és megbízható UI debuggoláshoz kiváló

Flutter reflektorfényben

Flutter reflektorfényben: a Hamilton app A méltán híres amerikai musical, a Hamilton hivatalos appja Flutter-rel készült Teljesen egyedi dizájn (alig használ platform specifikus View-kat/Widget-eket) Nagy felhasználói bázis, több, mint 900.000 telepítés, több, mint 450.000 napi aktív felhasználó, több, mint 2 millió nevezés a jegy- nyereményjátékoknál

Flutter reflektorfényben: a Hamilton app A méltán híres amerikai musical, a Hamilton hivatalos appja Flutter-rel készült Teljesen egyedi dizájn (alig használ platform specifikus View-kat/Widget-eket) Nagy felhasználói bázis, több, mint 900.000 telepítés, több, mint 450.000 napi aktív felhasználó, több, mint 2 millió nevezés a jegy- nyereményjátékoknál

Használható-e production környezetben? Talán… Még mindig nagyon korai fázisban van Vegytiszta Material Design, vagy teljesen egyedi UI-jú alkalmazásokhoz használható jól, melyek nem integrálódnak mélyen a rendszerrel Promóció-jellegű alkalmazások (mint a Hamilton) jó példák (Még) nem ajánlanám komplex alkalmazásokhoz

Használható-e production környezetben? Előnyök Hátrányok Legteljesebb Material Design implementáció Az appok minden platform verzión ugyanúgy néznek ki Hot Reload jól működik, gyors fejlesztési ciklusok Jól működő és gyorsan fejlődő statikus analízis Nagyon kevés bug Aktív és elkötelezett közösség Headless futtatási mód UI teszteléshez Még mindig alpha, kevesen használják Új programozási nyelvet kell megtanulni Még fejlesztés alatt Könnyen keveredik a UI kód és az alkalmazás logika (MVP-vel vagy MVVM-el elkerülhető) Beépített Widgetek korlátozottak – van egy (általában Material Design inspirálta) működés, amire kitalálták őket Kevés elérhető library Nem mindig működnek jól mindkét platformon (általában Android a prioritás) Implementáltak jónéhány platform specifikus gesztúrát és UI pattern Gyors fejlesztési ciklusok (kód módosítás és futtatás között eltelt idő) nagy kincs valóban. Azt állítják, lehet közös nyelv fejlesztő és dizájner között – nagyon együttműködőnek kell lennie mindkét félnek ehhez.

Köszönöm a figyelmet! Flutter hivatalos weboldala flutter.io Flutter GitHub oldala github.com/flutter A POSSE előadása a Hamilton app fejlesztéséről youtu.be/prlK_QL_qOA Eric Seidel előadása a Strange Loop 2017 konferenciáról youtu.be/VUiVkDpikDI Single Codebase, Two Apps with Flutter and Firebase (Google I/O '17) youtu.be/w2TcYP8qiRI speakerdeck.com/balazsgerlei Gerlei Balázs @balazsgerlei