SlideShare a Scribd company logo
>< nextprevious
FlutterAlla conquista del mobile Multi-Piattaforma
>< nextprevious
Google alla conquista del mobile multi piattaforma
Nell'ultimo decennio, lo sviluppo software si è “orizzontalizzato” anche e sopratutto nel campo mobile.

Le piattaforme ed i frameworks utili a tale scopo sono diversi, con i loro pro e contro.

Tra tutti spicca Flutter, un nuovo framework made by Google,

che riesce brillantemente ad unire la versatilità della programmazione ad alto livello, senza rinunciare alle performances

che solo il codice nativo può raggiungere. Il tutto "servito" per iOS ed Android.
Programma
01
Le criticità dello sviluppo Mobile
Quali sono le principali problematiche
relative allo sviluppo software in campo
Mobile
02
03
04
Soluzioni dei competitors
Le soluzioni alle problematiche del punto
01, proposte dai competitors. Si deve
scendere a dei compromessi
Flutter: LA Soluzione by Google
Capiremo cosa offre Google, quali sono
i vantaggi rispetto le altre soluzioni e
parleremo di performances
Live Coding
Creeremo un’app minimale per iOS ed
Android che esegua il retrieve di alcuni
dati da un backend
>< nextprevious
Senior Software developer, System Architect
Mike Gazzaruso
>< nextprevious
Full-Stack Developer (Devoloop, MGSoft…)
Mobile solutions iOS/Android (Devoloop, MGSoft, Keliweb…)
PEGA System Architect (Nexive, Zoppas, Porsche…)
Audio DSP Engineer (Devoloop Srls, Propellerheads Software…)
*nix System Administrator (UNIRoma3, RV Academy srl, h2I, Keliweb…)
Intelligenza Artificiale (definite.tech)
Flutter Evangelist (flutterdevelopers.com)
Italiancoders Group (https://italiancoders.it)
IoT (Raspberry, Arduino)
ASM, C, C++, Java, Python, JS, Angular, React, Flutter/Dart, Obj-C, Swift…
Sviluppo Mobile
>< nextprevious
Mobile Development
(Pro)
I dispositivi mobili consentono di avere l’informazione a portata di mano
La potenza di calcolo è esponenzialmente aumentata negli ultimi anni
Valido strumento di integrazione per gli applicativi Enterprise
Possibilità di inviare aggiornamenti, offerte, (…), In tempo reale
Scelta OS che verte ad oggi sui due main competitors: iOS / Android
>< nextprevious
Mobile Development
(Cons)
Sviluppo in parallelo su 2 codebases separate
Learning curve raddoppiata
Effort di manutenzione raddoppiato
Risorse raddoppiate
Aggiornamenti OS -> Aggiornamenti SDK
….
>< nextprevious
Le “soluzioni”
>< nextprevious
Cordova
Apache
‣ Sandbox (WebView)
‣ UI/JS Single threaded
Xamarin
Microsoft
‣ UI Components nativi
‣ C# 
‣ .NET Framework
‣ Boilerplate code
React Native
Facebook
‣ Bridge ad API Native
‣ Unstable
‣ Upgrade ostico
Le “soluzioni” ed i loro caveat
>< nextprevious
Flutter: LA Soluzione
>< nextprevious
Flutter
• Flutter è un Framework che utilizza il linguaggio Dart
• Prima versione nel 2015 (codename: Sky)
• Release Preview 2: Settembre 2018
• Flutter 1.0 Stable: 4 Dicembre 2018
>< nextprevious
PERFORMANCES
ISOLATES
Il codice viene compilato
per intero in nativo,
utilizzando NDK (C/C++)
su Android ed LLVM su
iOS. Le prestazioni sono
notevolmente superiori
rispetto agli altri
competitors
Cosa rende vincente Flutter
>< nextprevious
Dart può sfruttare la
Concurrency (approccio
multithread-like) grazie al
package ‘dart:isolate’, in
questo modo è possibile
attuare parallelizzazione
dei processi, qualora sia
richiesto dal nostro
applicativo
DART ED INSTANT RUN
PLATFORM CHANNELS
Dart (made by Google) è
stato concepito per
essere sia interpretato
che compilato. In fase di
sviluppo si possono
apprezzare le modifiche
effettuate al codice in
tempo reale grazie
all’Hot Reload
(istantaneo)
Cosa rende vincente Flutter
>< nextprevious
Si può scendere a
‘basso livello’ e
comunicare con le API
dell’OS, grazie ad un
meccanismo
estremamente semplice
e funzionale.
NON ESISTE UN EDITOR UI
FRAMEWORK GIOVANE
Non esiste ad oggi, uno
strumento per comporre
la UI in stile
“drag’n’drop” (come
succede in Android
Studio o XCode)
Bisogna fare attenzione:
>< nextprevious
Sebbene sia ‘made by
Google’ e ‘Ready for
production’, Flutter si
affaccia da poco sul
panorama, ciò ha un
impatto non di poco
conto, nonostante le
community ed il
supporto siano eccellenti
>< nextprevious
>< nextprevious
Struttura gerarchica
>< nextprevious
Relativo codice
Live Coding
>< nextprevious
Riferimenti
>< nextprevious
‣ Mike Gazzaruso: https://mike.gazzaruso.com / email:mike@gazzaruso.com
‣ Linkedin: https://it.linkedin.com/in/mikegazzaruso
‣ Documentazione Flutter: https://flutter.dev/
‣ Flutters Developers Italia Website: https://flutterdevelopers.com
‣ Italiancoders Website: https://italiancoders.it/
‣ Flutter Devs Italia FB: https://www.facebook.com/groups/flutterdevelopersitalia/

More Related Content

Flutter: Google alla conquista del mobile multi piattaforma

  • 1. >< nextprevious FlutterAlla conquista del mobile Multi-Piattaforma
  • 2. >< nextprevious Google alla conquista del mobile multi piattaforma Nell'ultimo decennio, lo sviluppo software si è “orizzontalizzato” anche e sopratutto nel campo mobile. Le piattaforme ed i frameworks utili a tale scopo sono diversi, con i loro pro e contro. Tra tutti spicca Flutter, un nuovo framework made by Google, che riesce brillantemente ad unire la versatilità della programmazione ad alto livello, senza rinunciare alle performances che solo il codice nativo può raggiungere. Il tutto "servito" per iOS ed Android.
  • 3. Programma 01 Le criticità dello sviluppo Mobile Quali sono le principali problematiche relative allo sviluppo software in campo Mobile 02 03 04 Soluzioni dei competitors Le soluzioni alle problematiche del punto 01, proposte dai competitors. Si deve scendere a dei compromessi Flutter: LA Soluzione by Google Capiremo cosa offre Google, quali sono i vantaggi rispetto le altre soluzioni e parleremo di performances Live Coding Creeremo un’app minimale per iOS ed Android che esegua il retrieve di alcuni dati da un backend >< nextprevious
  • 4. Senior Software developer, System Architect Mike Gazzaruso >< nextprevious Full-Stack Developer (Devoloop, MGSoft…) Mobile solutions iOS/Android (Devoloop, MGSoft, Keliweb…) PEGA System Architect (Nexive, Zoppas, Porsche…) Audio DSP Engineer (Devoloop Srls, Propellerheads Software…) *nix System Administrator (UNIRoma3, RV Academy srl, h2I, Keliweb…) Intelligenza Artificiale (definite.tech) Flutter Evangelist (flutterdevelopers.com) Italiancoders Group (https://italiancoders.it) IoT (Raspberry, Arduino) ASM, C, C++, Java, Python, JS, Angular, React, Flutter/Dart, Obj-C, Swift…
  • 6. Mobile Development (Pro) I dispositivi mobili consentono di avere l’informazione a portata di mano La potenza di calcolo è esponenzialmente aumentata negli ultimi anni Valido strumento di integrazione per gli applicativi Enterprise Possibilità di inviare aggiornamenti, offerte, (…), In tempo reale Scelta OS che verte ad oggi sui due main competitors: iOS / Android >< nextprevious
  • 7. Mobile Development (Cons) Sviluppo in parallelo su 2 codebases separate Learning curve raddoppiata Effort di manutenzione raddoppiato Risorse raddoppiate Aggiornamenti OS -> Aggiornamenti SDK …. >< nextprevious
  • 9. Cordova Apache ‣ Sandbox (WebView) ‣ UI/JS Single threaded Xamarin Microsoft ‣ UI Components nativi ‣ C#  ‣ .NET Framework ‣ Boilerplate code React Native Facebook ‣ Bridge ad API Native ‣ Unstable ‣ Upgrade ostico Le “soluzioni” ed i loro caveat >< nextprevious
  • 10. Flutter: LA Soluzione >< nextprevious
  • 11. Flutter • Flutter è un Framework che utilizza il linguaggio Dart • Prima versione nel 2015 (codename: Sky) • Release Preview 2: Settembre 2018 • Flutter 1.0 Stable: 4 Dicembre 2018 >< nextprevious
  • 12. PERFORMANCES ISOLATES Il codice viene compilato per intero in nativo, utilizzando NDK (C/C++) su Android ed LLVM su iOS. Le prestazioni sono notevolmente superiori rispetto agli altri competitors Cosa rende vincente Flutter >< nextprevious Dart può sfruttare la Concurrency (approccio multithread-like) grazie al package ‘dart:isolate’, in questo modo è possibile attuare parallelizzazione dei processi, qualora sia richiesto dal nostro applicativo
  • 13. DART ED INSTANT RUN PLATFORM CHANNELS Dart (made by Google) è stato concepito per essere sia interpretato che compilato. In fase di sviluppo si possono apprezzare le modifiche effettuate al codice in tempo reale grazie all’Hot Reload (istantaneo) Cosa rende vincente Flutter >< nextprevious Si può scendere a ‘basso livello’ e comunicare con le API dell’OS, grazie ad un meccanismo estremamente semplice e funzionale.
  • 14. NON ESISTE UN EDITOR UI FRAMEWORK GIOVANE Non esiste ad oggi, uno strumento per comporre la UI in stile “drag’n’drop” (come succede in Android Studio o XCode) Bisogna fare attenzione: >< nextprevious Sebbene sia ‘made by Google’ e ‘Ready for production’, Flutter si affaccia da poco sul panorama, ciò ha un impatto non di poco conto, nonostante le community ed il supporto siano eccellenti
  • 19. Riferimenti >< nextprevious ‣ Mike Gazzaruso: https://mike.gazzaruso.com / email:mike@gazzaruso.com ‣ Linkedin: https://it.linkedin.com/in/mikegazzaruso ‣ Documentazione Flutter: https://flutter.dev/ ‣ Flutters Developers Italia Website: https://flutterdevelopers.com ‣ Italiancoders Website: https://italiancoders.it/ ‣ Flutter Devs Italia FB: https://www.facebook.com/groups/flutterdevelopersitalia/