SlideShare a Scribd company logo
Mobile Development
...per web developer!
MOBILE
Mobile
Mobile
The IBM Simon Personal Communicator (AKA IBM Simon)
“World’s First Smartphone.”
1994
Mobile
NEC e606
2001
Motorola A830
Mobile
Mobile
iPhone 2G
2007
Mobile
HTC Dream (T-Mobile G1)
2008
IL MERCATO
IL MERCATO
CODICE NATIVO
iOS
● In iOS Objective-C è stato il linguaggio nativo di riferimento
● Sviluppato negli anni 80 come estensione a oggetti di C
● La sua diffusione si deve a NeXT e OpenStep, che divenne l’API di
base per lo sviluppo delle librerie grafiche di macOS (poi Cocoa)
● Swift è stato presentato al WWDC 2014 come nuovo linguaggio iOS
● Sintassi più semplice, più moderna, invitante per nuovi dev
● Miglioramento prestazioni del compilato vs Obj-C
NATIVE CODE
Swift
Obj-C / Swift comparison
Objective-C
Android
● Il linguaggio di riferimento per l’Android SDK è Java
● Esiste un NDK per compilare librerie in C e C++ e importarle in Java
● Kotlin sviluppato da JetBrains come estensione di Java
● Completamente compatibile con programmi Java e la JVM
● Sintassi molto meno verbosa
● Compilazione un po’ più lenta rispetto a Java
● Possibilità di compilare anche per iOS
NATIVE CODE
Kotlin
Java / Kotlin comparison
Java
The meme
IONIC FRAMEWORK
Cos’è Ionic Framework
● Un framework per creare applicazioni ibride: ovvero utilizza HTML
/ CSS e JavaScript per creare applicazioni mobile (e non solo) ed è
integrato con i due framework frontend più popolari, Angular e
React. Dunque utilizza componenti standard di mercato.
● Permette di fornire un’esperienza quanto più simile alle applicazioni
native attraverso componenti che emulano i widget nativi di
sistema di iOS e Android e plugin Cordova/Capacitor per accedere
alle funzioni del sistema operativo mobile
● Supporto alle Progressive Web App
● Tra i primi 50 progetti su GitHub per numero di contributors
● Ha una community di sviluppo molto ampia
IONIC / CARATTERISTICHE
https://ionicframework.com/
I vantaggi dello
sviluppo di un’app
Ionic Framework
IONIC / CARATTERISTICHE
● Sfruttando la possibilità di utilizzare HTML, CSS e JavaScript
per lo sviluppo dell’applicazione, è possibile riutilizzare gran
parte di quanto in uso per i siti web
● Il pieno utilizzo di tecnologie web standard semplifica
l’approccio allo sviluppo e agevola la condivisione di assets
tra codebase anche differenti (vedi sito web)
● Facile ingresso di sviluppatori web
● L’uso dei plugin Cordova/Capacitor permette l’accesso a
funzionalità native degli smartphone
● Per sviluppare e testare l’app basta un browser web
REACT NATIVE
Cos’è React Native
● Creato da Facebook nel 2015 e supportato con continuità
● Un framework + una serie di tool che consentono di creare app
native scrivendo codice JavaScript
● Unisce tutti i vantaggi delle applicazioni native con quelli dello
sviluppo JavaScript con React
● Tra i primi 10 progetti su GitHub per numero di contributors
● Oggi è supportato da altri grandi nomi del mercato, tra cui
Microsoft
REACT NATIVE / CARATTERISTICHE
https://reactnative.dev
Quali vantaggi ha
React Native
REACT NATIVE / CARATTERISTICHE
● Tutta la potenza e la flessibilità di React, uno dei migliori e
più utilizzati framework JavaScript sul mercato, unito a tutti i
vantaggi delle applicazioni native
● Migliori performance rispetto a soluzioni ibride (Ionic)
● Cross-platform by design: un’unica codebase per le app iOS e
Android
● Tool automatici per sviluppo, test e debug multipiattaforma
● Ampia e attiva community di sviluppatori, supporto di grandi
aziende (Facebook, Microsoft)
● Facilità di ingresso per sviluppatori JavaScript/React
● Possibilità di esportazione in applicazione web
(react-native-web)
REACT NATIVE / CARATTERISTICHE
Facebook
Instagram
Twitter
Skype
Discord
Bloomberg
Tesla
Uber Eats
Salesforce
Chi sta usando React Native
https://reactnative.dev
Airbnb
Pinterest
Walmart
CBS Sports
Soundcloud
Vogue
Baidu Mobile
Wix
Adidas
PROPOSTA / COMPARATIVA
Applicazione nativa
➔ React Native genera app native, Ionic utilizza WebView e
plugin Cordova/Capacitor
Flessibilità dello stack di sviluppo
➔ Ionic permette una scelta più ampia del framework di
sviluppo, potendo utilizzare Angular, React o Vue, mentre
React Native è legato strettamente a React
Popolarità e community di sviluppatori
➔ React Native ha una popolarità superiore, anche se Ionic sta
recuperando, e una community di sviluppatori estremamente
attiva su GitHub
Comparativa React Native - Ionic Framework
Curva di apprendimento e ingresso nuovi sviluppatori
➔ Ionic ha una curva di apprendimento più docile e permette
più facilmente l’ingresso di nuovi sviluppatori
Performance
➔ React Native ha la meglio dal lato delle performance perché
genera codice nativo, non ci sono strati intermedi tra le
istruzioni dell’app e il sistema operativo
Tempi e Costi
➔ I tempi di realizzazione e i costi di un’app Ionic sono inferiori
grazie all’uso di strumenti web per sviluppo e testing
FLUTTER
Cos’è Flutter
● Un framework multipiattaforma per creare applicazioni e
interfacce native ad alte prestazioni
● Creato da Google, presentato nel 2015, versione 1.0 2018
● Si compone di Dart Platform, Flutter engine (C++), Foundation
library e widgets
● Non usa né WebView né i widget OEM disponibili con il dispositivo
● Sfrutta il proprio motore di rendering ad alte prestazioni per creare
i widget
● Con 110k+ star è il framework mobile più popolare su Github
FLUTTER / CARATTERISTICHE
https://flutter.dev
FLUTTER / CARATTERISTICHE
Chi sta usando Flutter
I vantaggi dello
sviluppo di un’app
Flutter
FLUTTER / CARATTERISTICHE
● Libreria di widget disponibili - Material e Cupertino
● Velocità di sviluppo (hot reload)
● Prestazioni native
● Widget estremamente personalizzabili in ogni aspetto, anche
le animazioni
● Rendering engine cross-platform Skia permette esecuzione
su ogni platform e semplifica il lavoro di adattamento
● Accesso a funzionalità native tramite plugin forniti da Google
o terze parti, possibilità di sviluppare codice
platform-specific tramite platform channels
● Esportazione per web e desktop
THANK YOU!

More Related Content

What's hot

Liferay DXP 7.1. - Filippo Frignocca at Liferay Symposium 2018
Liferay DXP 7.1. - Filippo Frignocca at Liferay Symposium 2018Liferay DXP 7.1. - Filippo Frignocca at Liferay Symposium 2018
Liferay DXP 7.1. - Filippo Frignocca at Liferay Symposium 2018
Teresa Dallera
 
kube-green | Davide Bianchi
kube-green | Davide Bianchikube-green | Davide Bianchi
kube-green | Davide Bianchi
KCDItaly
 
.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile
Pietro Libro
 
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
Codemotion
 
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Codemotion
 
CI/CD - Presentazione Introduttiva
CI/CD - Presentazione IntroduttivaCI/CD - Presentazione Introduttiva
CI/CD - Presentazione Introduttiva
Matteo Di Carlo
 
Angular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un frameworkAngular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un framework
Giovanni Buffa
 
Azure dev ops meetup one
Azure dev ops meetup oneAzure dev ops meetup one
Azure dev ops meetup one
Nicolò Carandini
 
Azure functions deep dive - Giorgio Di Nardo - Codemotion Rome 2017
Azure functions deep dive - Giorgio Di Nardo - Codemotion Rome 2017Azure functions deep dive - Giorgio Di Nardo - Codemotion Rome 2017
Azure functions deep dive - Giorgio Di Nardo - Codemotion Rome 2017
Codemotion
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScript
Roberto Messora
 
Enterprise Applications - Angular Day 2018
Enterprise Applications - Angular Day 2018Enterprise Applications - Angular Day 2018
Enterprise Applications - Angular Day 2018
Paolo Galfione
 
Introduzione a Docker
Introduzione a DockerIntroduzione a Docker
Introduzione a Docker
Antonio Di Motta
 
Introduzione a Python e GitHub
Introduzione a Python e GitHub Introduzione a Python e GitHub
Introduzione a Python e GitHub
Vincenzo Santopietro
 
GAE python GDG Milano - L01
GAE python GDG Milano - L01GAE python GDG Milano - L01
GAE python GDG Milano - L01
Paolo Dadda
 
Introduzione a React Native - Alessandro Giannini
Introduzione a React Native - Alessandro GianniniIntroduzione a React Native - Alessandro Giannini
Introduzione a React Native - Alessandro Giannini
Develer S.R.L.
 
ASP.NET AND Azure Function
ASP.NET AND Azure FunctionASP.NET AND Azure Function
ASP.NET AND Azure Function
Luca Congiu
 
Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...
Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...
Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...
Codemotion
 
Ubuntu Phone: the community smartphone
Ubuntu Phone: the community smartphoneUbuntu Phone: the community smartphone
Ubuntu Phone: the community smartphone
Giulio Collura
 
Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker
dotnetcode
 
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
dotnetcode
 

What's hot (20)

Liferay DXP 7.1. - Filippo Frignocca at Liferay Symposium 2018
Liferay DXP 7.1. - Filippo Frignocca at Liferay Symposium 2018Liferay DXP 7.1. - Filippo Frignocca at Liferay Symposium 2018
Liferay DXP 7.1. - Filippo Frignocca at Liferay Symposium 2018
 
kube-green | Davide Bianchi
kube-green | Davide Bianchikube-green | Davide Bianchi
kube-green | Davide Bianchi
 
.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile
 
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
 
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
 
CI/CD - Presentazione Introduttiva
CI/CD - Presentazione IntroduttivaCI/CD - Presentazione Introduttiva
CI/CD - Presentazione Introduttiva
 
Angular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un frameworkAngular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un framework
 
Azure dev ops meetup one
Azure dev ops meetup oneAzure dev ops meetup one
Azure dev ops meetup one
 
Azure functions deep dive - Giorgio Di Nardo - Codemotion Rome 2017
Azure functions deep dive - Giorgio Di Nardo - Codemotion Rome 2017Azure functions deep dive - Giorgio Di Nardo - Codemotion Rome 2017
Azure functions deep dive - Giorgio Di Nardo - Codemotion Rome 2017
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScript
 
Enterprise Applications - Angular Day 2018
Enterprise Applications - Angular Day 2018Enterprise Applications - Angular Day 2018
Enterprise Applications - Angular Day 2018
 
Introduzione a Docker
Introduzione a DockerIntroduzione a Docker
Introduzione a Docker
 
Introduzione a Python e GitHub
Introduzione a Python e GitHub Introduzione a Python e GitHub
Introduzione a Python e GitHub
 
GAE python GDG Milano - L01
GAE python GDG Milano - L01GAE python GDG Milano - L01
GAE python GDG Milano - L01
 
Introduzione a React Native - Alessandro Giannini
Introduzione a React Native - Alessandro GianniniIntroduzione a React Native - Alessandro Giannini
Introduzione a React Native - Alessandro Giannini
 
ASP.NET AND Azure Function
ASP.NET AND Azure FunctionASP.NET AND Azure Function
ASP.NET AND Azure Function
 
Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...
Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...
Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...
 
Ubuntu Phone: the community smartphone
Ubuntu Phone: the community smartphoneUbuntu Phone: the community smartphone
Ubuntu Phone: the community smartphone
 
Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker
 
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
 

Similar to Mobile Development: una introduzione per Web Developers

AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
Gabriele Gaggi
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatoreSMAU
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Gabriele Gaggi
 
Angular framework
Angular frameworkAngular framework
Angular framework
Luca Modica
 
Dal cloud al mobile con tecnologie Google
Dal cloud al mobile con tecnologie GoogleDal cloud al mobile con tecnologie Google
Dal cloud al mobile con tecnologie GoogleDiego Giorgini
 
Future Decoded Roma - Visual Studio, Cordova e Ionic Framework to create X-...
Future Decoded Roma  - Visual Studio, Cordova e Ionic Framework  to create X-...Future Decoded Roma  - Visual Studio, Cordova e Ionic Framework  to create X-...
Future Decoded Roma - Visual Studio, Cordova e Ionic Framework to create X-...
Michele Aponte
 
Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
 Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
Microsoft Mobile Developer
 
Visual COBOL - Conoscere Visual COBOL- Micro Focus
Visual COBOL - Conoscere Visual COBOL- Micro FocusVisual COBOL - Conoscere Visual COBOL- Micro Focus
Visual COBOL - Conoscere Visual COBOL- Micro Focus
Microfocusitalia
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web App
dotnetcode
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web App
dotnetcode
 
C# Mobile application architecture
C# Mobile application architectureC# Mobile application architecture
C# Mobile application architectureLeonardo Alario
 
RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...
RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...
RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...
EvolutionBook S.r.l.
 
Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5
Gabriele Gaggi
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
Andrea Dottor
 
Flutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaformaFlutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaforma
Commit University
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobile
Roberto Cappelletti
 
Rich Internet Application
Rich Internet ApplicationRich Internet Application
Rich Internet Application
Marcello Teodori
 
Sviluppare una app mobile net oriented
Sviluppare una app mobile net orientedSviluppare una app mobile net oriented
Sviluppare una app mobile net oriented
Alessandro Morvillo
 
Link. javascript ajax
  Link. javascript ajax  Link. javascript ajax
Link. javascript ajax
santi caltabiano
 

Similar to Mobile Development: una introduzione per Web Developers (20)

AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatore
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
 
Angular framework
Angular frameworkAngular framework
Angular framework
 
Dal cloud al mobile con tecnologie Google
Dal cloud al mobile con tecnologie GoogleDal cloud al mobile con tecnologie Google
Dal cloud al mobile con tecnologie Google
 
Future Decoded Roma - Visual Studio, Cordova e Ionic Framework to create X-...
Future Decoded Roma  - Visual Studio, Cordova e Ionic Framework  to create X-...Future Decoded Roma  - Visual Studio, Cordova e Ionic Framework  to create X-...
Future Decoded Roma - Visual Studio, Cordova e Ionic Framework to create X-...
 
Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
 Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
 
Visual COBOL - Conoscere Visual COBOL- Micro Focus
Visual COBOL - Conoscere Visual COBOL- Micro FocusVisual COBOL - Conoscere Visual COBOL- Micro Focus
Visual COBOL - Conoscere Visual COBOL- Micro Focus
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web App
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web App
 
C# Mobile application architecture
C# Mobile application architectureC# Mobile application architecture
C# Mobile application architecture
 
RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...
RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...
RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...
 
Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
 
Flutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaformaFlutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaforma
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobile
 
Rich Internet Application
Rich Internet ApplicationRich Internet Application
Rich Internet Application
 
Sviluppare una app mobile net oriented
Sviluppare una app mobile net orientedSviluppare una app mobile net oriented
Sviluppare una app mobile net oriented
 
Link. javascript ajax
  Link. javascript ajax  Link. javascript ajax
Link. javascript ajax
 
INTRO TO XAMARIN
INTRO TO XAMARININTRO TO XAMARIN
INTRO TO XAMARIN
 

More from sparkfabrik

KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetes
KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on KubernetesKCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetes
KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetes
sparkfabrik
 
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
sparkfabrik
 
IAD 2023 - 22 Years of Agile and all I got is this lousy t-shirt
IAD 2023 - 22 Years of Agile and all I got is this lousy t-shirtIAD 2023 - 22 Years of Agile and all I got is this lousy t-shirt
IAD 2023 - 22 Years of Agile and all I got is this lousy t-shirt
sparkfabrik
 
2023 - Drupalcon - How Drupal builds your pages
2023 - Drupalcon - How Drupal builds your pages2023 - Drupalcon - How Drupal builds your pages
2023 - Drupalcon - How Drupal builds your pages
sparkfabrik
 
2023 - TAC23 - Agile HR - Racconti dal fronte
2023 - TAC23 - Agile HR - Racconti dal fronte2023 - TAC23 - Agile HR - Racconti dal fronte
2023 - TAC23 - Agile HR - Racconti dal fronte
sparkfabrik
 
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
sparkfabrik
 
What is the Secure Supply Chain and the Current State of the PHP Ecosystem
What is the Secure Supply Chain and the Current State of the PHP EcosystemWhat is the Secure Supply Chain and the Current State of the PHP Ecosystem
What is the Secure Supply Chain and the Current State of the PHP Ecosystem
sparkfabrik
 
UX e Web sostenibile (UXday 2023).pdf
UX e Web sostenibile (UXday 2023).pdfUX e Web sostenibile (UXday 2023).pdf
UX e Web sostenibile (UXday 2023).pdf
sparkfabrik
 
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
sparkfabrik
 
Deep dive nella supply chain della nostra infrastruttura cloud
Deep dive nella supply chain della nostra infrastruttura cloudDeep dive nella supply chain della nostra infrastruttura cloud
Deep dive nella supply chain della nostra infrastruttura cloud
sparkfabrik
 
KCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with CrossplaneKCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with Crossplane
sparkfabrik
 
Come Drupal costruisce le tue pagine
Come Drupal costruisce le tue pagineCome Drupal costruisce le tue pagine
Come Drupal costruisce le tue pagine
sparkfabrik
 
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernoDrupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
sparkfabrik
 
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
sparkfabrik
 
Do you know what your Drupal is doing_ Observe it!
Do you know what your Drupal is doing_ Observe it!Do you know what your Drupal is doing_ Observe it!
Do you know what your Drupal is doing_ Observe it!
sparkfabrik
 
Progettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWSProgettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWS
sparkfabrik
 
From React to React Native - Things I wish I knew when I started
From React to React Native - Things I wish I knew when I startedFrom React to React Native - Things I wish I knew when I started
From React to React Native - Things I wish I knew when I started
sparkfabrik
 
Headless Drupal: A modern approach to (micro)services and APIs
Headless Drupal: A modern approach to (micro)services and APIsHeadless Drupal: A modern approach to (micro)services and APIs
Headless Drupal: A modern approach to (micro)services and APIs
sparkfabrik
 
Cloud-Native Drupal: a survival guide
Cloud-Native Drupal: a survival guideCloud-Native Drupal: a survival guide
Cloud-Native Drupal: a survival guide
sparkfabrik
 
Retro gaming machine made with Javascript and Kubernetes
Retro gaming machine made with Javascript and Kubernetes Retro gaming machine made with Javascript and Kubernetes
Retro gaming machine made with Javascript and Kubernetes
sparkfabrik
 

More from sparkfabrik (20)

KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetes
KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on KubernetesKCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetes
KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetes
 
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
 
IAD 2023 - 22 Years of Agile and all I got is this lousy t-shirt
IAD 2023 - 22 Years of Agile and all I got is this lousy t-shirtIAD 2023 - 22 Years of Agile and all I got is this lousy t-shirt
IAD 2023 - 22 Years of Agile and all I got is this lousy t-shirt
 
2023 - Drupalcon - How Drupal builds your pages
2023 - Drupalcon - How Drupal builds your pages2023 - Drupalcon - How Drupal builds your pages
2023 - Drupalcon - How Drupal builds your pages
 
2023 - TAC23 - Agile HR - Racconti dal fronte
2023 - TAC23 - Agile HR - Racconti dal fronte2023 - TAC23 - Agile HR - Racconti dal fronte
2023 - TAC23 - Agile HR - Racconti dal fronte
 
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
 
What is the Secure Supply Chain and the Current State of the PHP Ecosystem
What is the Secure Supply Chain and the Current State of the PHP EcosystemWhat is the Secure Supply Chain and the Current State of the PHP Ecosystem
What is the Secure Supply Chain and the Current State of the PHP Ecosystem
 
UX e Web sostenibile (UXday 2023).pdf
UX e Web sostenibile (UXday 2023).pdfUX e Web sostenibile (UXday 2023).pdf
UX e Web sostenibile (UXday 2023).pdf
 
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
 
Deep dive nella supply chain della nostra infrastruttura cloud
Deep dive nella supply chain della nostra infrastruttura cloudDeep dive nella supply chain della nostra infrastruttura cloud
Deep dive nella supply chain della nostra infrastruttura cloud
 
KCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with CrossplaneKCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with Crossplane
 
Come Drupal costruisce le tue pagine
Come Drupal costruisce le tue pagineCome Drupal costruisce le tue pagine
Come Drupal costruisce le tue pagine
 
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernoDrupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
 
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
 
Do you know what your Drupal is doing_ Observe it!
Do you know what your Drupal is doing_ Observe it!Do you know what your Drupal is doing_ Observe it!
Do you know what your Drupal is doing_ Observe it!
 
Progettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWSProgettare e sviluppare soluzioni serverless con AWS
Progettare e sviluppare soluzioni serverless con AWS
 
From React to React Native - Things I wish I knew when I started
From React to React Native - Things I wish I knew when I startedFrom React to React Native - Things I wish I knew when I started
From React to React Native - Things I wish I knew when I started
 
Headless Drupal: A modern approach to (micro)services and APIs
Headless Drupal: A modern approach to (micro)services and APIsHeadless Drupal: A modern approach to (micro)services and APIs
Headless Drupal: A modern approach to (micro)services and APIs
 
Cloud-Native Drupal: a survival guide
Cloud-Native Drupal: a survival guideCloud-Native Drupal: a survival guide
Cloud-Native Drupal: a survival guide
 
Retro gaming machine made with Javascript and Kubernetes
Retro gaming machine made with Javascript and Kubernetes Retro gaming machine made with Javascript and Kubernetes
Retro gaming machine made with Javascript and Kubernetes
 

Mobile Development: una introduzione per Web Developers

  • 4. Mobile The IBM Simon Personal Communicator (AKA IBM Simon) “World’s First Smartphone.” 1994
  • 12. iOS ● In iOS Objective-C è stato il linguaggio nativo di riferimento ● Sviluppato negli anni 80 come estensione a oggetti di C ● La sua diffusione si deve a NeXT e OpenStep, che divenne l’API di base per lo sviluppo delle librerie grafiche di macOS (poi Cocoa) ● Swift è stato presentato al WWDC 2014 come nuovo linguaggio iOS ● Sintassi più semplice, più moderna, invitante per nuovi dev ● Miglioramento prestazioni del compilato vs Obj-C NATIVE CODE
  • 13. Swift Obj-C / Swift comparison Objective-C
  • 14. Android ● Il linguaggio di riferimento per l’Android SDK è Java ● Esiste un NDK per compilare librerie in C e C++ e importarle in Java ● Kotlin sviluppato da JetBrains come estensione di Java ● Completamente compatibile con programmi Java e la JVM ● Sintassi molto meno verbosa ● Compilazione un po’ più lenta rispetto a Java ● Possibilità di compilare anche per iOS NATIVE CODE
  • 15. Kotlin Java / Kotlin comparison Java
  • 18. Cos’è Ionic Framework ● Un framework per creare applicazioni ibride: ovvero utilizza HTML / CSS e JavaScript per creare applicazioni mobile (e non solo) ed è integrato con i due framework frontend più popolari, Angular e React. Dunque utilizza componenti standard di mercato. ● Permette di fornire un’esperienza quanto più simile alle applicazioni native attraverso componenti che emulano i widget nativi di sistema di iOS e Android e plugin Cordova/Capacitor per accedere alle funzioni del sistema operativo mobile ● Supporto alle Progressive Web App ● Tra i primi 50 progetti su GitHub per numero di contributors ● Ha una community di sviluppo molto ampia IONIC / CARATTERISTICHE https://ionicframework.com/
  • 19. I vantaggi dello sviluppo di un’app Ionic Framework IONIC / CARATTERISTICHE ● Sfruttando la possibilità di utilizzare HTML, CSS e JavaScript per lo sviluppo dell’applicazione, è possibile riutilizzare gran parte di quanto in uso per i siti web ● Il pieno utilizzo di tecnologie web standard semplifica l’approccio allo sviluppo e agevola la condivisione di assets tra codebase anche differenti (vedi sito web) ● Facile ingresso di sviluppatori web ● L’uso dei plugin Cordova/Capacitor permette l’accesso a funzionalità native degli smartphone ● Per sviluppare e testare l’app basta un browser web
  • 21. Cos’è React Native ● Creato da Facebook nel 2015 e supportato con continuità ● Un framework + una serie di tool che consentono di creare app native scrivendo codice JavaScript ● Unisce tutti i vantaggi delle applicazioni native con quelli dello sviluppo JavaScript con React ● Tra i primi 10 progetti su GitHub per numero di contributors ● Oggi è supportato da altri grandi nomi del mercato, tra cui Microsoft REACT NATIVE / CARATTERISTICHE https://reactnative.dev
  • 22. Quali vantaggi ha React Native REACT NATIVE / CARATTERISTICHE ● Tutta la potenza e la flessibilità di React, uno dei migliori e più utilizzati framework JavaScript sul mercato, unito a tutti i vantaggi delle applicazioni native ● Migliori performance rispetto a soluzioni ibride (Ionic) ● Cross-platform by design: un’unica codebase per le app iOS e Android ● Tool automatici per sviluppo, test e debug multipiattaforma ● Ampia e attiva community di sviluppatori, supporto di grandi aziende (Facebook, Microsoft) ● Facilità di ingresso per sviluppatori JavaScript/React ● Possibilità di esportazione in applicazione web (react-native-web)
  • 23. REACT NATIVE / CARATTERISTICHE Facebook Instagram Twitter Skype Discord Bloomberg Tesla Uber Eats Salesforce Chi sta usando React Native https://reactnative.dev Airbnb Pinterest Walmart CBS Sports Soundcloud Vogue Baidu Mobile Wix Adidas
  • 24. PROPOSTA / COMPARATIVA Applicazione nativa ➔ React Native genera app native, Ionic utilizza WebView e plugin Cordova/Capacitor Flessibilità dello stack di sviluppo ➔ Ionic permette una scelta più ampia del framework di sviluppo, potendo utilizzare Angular, React o Vue, mentre React Native è legato strettamente a React Popolarità e community di sviluppatori ➔ React Native ha una popolarità superiore, anche se Ionic sta recuperando, e una community di sviluppatori estremamente attiva su GitHub Comparativa React Native - Ionic Framework Curva di apprendimento e ingresso nuovi sviluppatori ➔ Ionic ha una curva di apprendimento più docile e permette più facilmente l’ingresso di nuovi sviluppatori Performance ➔ React Native ha la meglio dal lato delle performance perché genera codice nativo, non ci sono strati intermedi tra le istruzioni dell’app e il sistema operativo Tempi e Costi ➔ I tempi di realizzazione e i costi di un’app Ionic sono inferiori grazie all’uso di strumenti web per sviluppo e testing
  • 26. Cos’è Flutter ● Un framework multipiattaforma per creare applicazioni e interfacce native ad alte prestazioni ● Creato da Google, presentato nel 2015, versione 1.0 2018 ● Si compone di Dart Platform, Flutter engine (C++), Foundation library e widgets ● Non usa né WebView né i widget OEM disponibili con il dispositivo ● Sfrutta il proprio motore di rendering ad alte prestazioni per creare i widget ● Con 110k+ star è il framework mobile più popolare su Github FLUTTER / CARATTERISTICHE https://flutter.dev
  • 27. FLUTTER / CARATTERISTICHE Chi sta usando Flutter
  • 28. I vantaggi dello sviluppo di un’app Flutter FLUTTER / CARATTERISTICHE ● Libreria di widget disponibili - Material e Cupertino ● Velocità di sviluppo (hot reload) ● Prestazioni native ● Widget estremamente personalizzabili in ogni aspetto, anche le animazioni ● Rendering engine cross-platform Skia permette esecuzione su ogni platform e semplifica il lavoro di adattamento ● Accesso a funzionalità native tramite plugin forniti da Google o terze parti, possibilità di sviluppare codice platform-specific tramite platform channels ● Esportazione per web e desktop