SlideShare a Scribd company logo
1 of 24
Download to read offline
Laboratorio Avanzato di Programmazione II
(LAP II)
Sviluppo di applicazioni mobili
native multipiattaforma
Prof. Antonio S. Calanducci
Corso di Laurea in Informatica, Unict
Anno accademico 2017/18
Lesson 01: Introduzione al corso
About me
Adjunct Professor @UniCT (DMI, DipBioGeo, SS-PSI)
ex Apple iOS Developer Academy Teacher
Freelancer: Mobile app instructor & engineer
Founder of EtnaTraining (http://www.etnatraining.it)
Ex studente@Corso di Laurea in Informatica - DMI
How to reach me
email: calanducci AT unict.it
@tcaland | Facebook | github.com/etnatraining && acaland
http://www.dmi.unict.it/~calanducci
https://www.facebook.com/groups/unict.lap2/
Ricevimento:
• DMI @ Studio 19, blocco III
• by appointment (every Thursday 16:30 - 18:00)
Objective
Learn mobile development topics and related ecosystems
• development approach (native vs mobile web vs hybrid)
• tools, languages, frameworks, backends
• from design to publishing to the stores
• focus on cross-platform native development (iOS &
Android)
Lesson hours
Tuesday, 09:00 - 11:00, Friday, 09:00 - 11:00
Laboratorio Archimede (Lab 125)
Draft program
http://www.dmi.unict.it/~calanducci/LAP2/
At studium.unict.it
Course approach
Intro theoretical lesson
Demo & live coding
• After the basics we will build a full fledged social & Cloud
based app
hands-on labs
Home assignments
Exam format
"Clone the app" style
• build a simple app, according to teacher assigned
requirements (screenshots and descriptions of features)
• the more features, the higher the mark
• 2-3 hours timeframe
In the LAP (but you can bring your own PC)
you can use Internet too!
Requirements
Bring a laptop at lesson (recommended)
github / bitbucket account (mandatory)
basic knowledge of HTML/CSS/JavaScript would help
iOS development (and testing) requires a Mac
options if you don’t have a Mac:
• you need an iOS device at least
• other options I cannot write here :D
Polls
How many of you with Mac, PC, Linux?
Which Windows/Linux versions?
Previous knowledge of native iOS/Android development?
Knowledge of Objective-C/Swift, Java, C#, C/C++
Knowledge of Web development tools: Node.js, PHP,
Angular.js, React, github
Prerequisite test
Home assignment:
• http://www.dmi.unict.it/~calanducci/LAP2/test.html
Mobile development approaches
Silo
Mobile Web / Hybrid
Native & Cross-platform
Silo (Native) Approach
Same apps multiple times:
• Multiple teams
• Multiple code bases
• Different toolset
• Expensive and slow
• Pros:
• Exploitation of the target platform
features
• Best performance
Swift Kotlin
“Write once, run everywhere” approach
Mobile Web
• development based on HTML5/CSS/JavaScript (web apps)
• responsive web page that adapts to different screens
• identical look & feel on all platforms
• not performant; limited access to hardware and offline capabilities
• ex: Progressive Web Apps (PWA) by Google
• can be updated immediately (hosted on the Web)
Hybrid
• Wrapping of Mobile Web apps into a native container (WebView)
• distribution through the official app stores
• plug-in allow access to hardware (camera, sensors, etc..)
• ex: Adobe PhoneGap/Apache Cordova/Ionic
Native & cross-platform approach
Native User Interface (UI) & User Experience (UX)
Native access to services:
• Camera, Microphone, Hardware sensors
• GPS, Mapkit, Direct & Reverse geocoding
• Push Notifications
• Database SQLite, FileSystem, Properties APIs
• Android Intents, Local Notification, Background Services, Contacts, Gestures, Socket,
Clipboard, XML, Network, Locale, etc etc
Popular native cross-platform frameworks
Xamarin (Microsoft)
• https://www.xamarin.com/platform
React Native (Facebook)
• https://facebook.github.io/react-native/
NativeScript (Progress Telerik)
• https://www.nativescript.org
Flutter (Google)
• https://flutter.io/
Others:
• Titanium (http://www.appcelerator.com)
• Fuse (https://www.fusetools.com),
• Rubymotion (http://www.rubymotion.com)
React Native
JavaScript based framework for building native iOS and Android apps (Native UI)
• support also Universal Windows Platform (UWP, Windows 10 SDK), Xbox One, macOS Desktop 10.10+ (Cocoa), Web,
Apple TV, Android TV
It makes use of React, a popular Web UI library
Created by Facebook. First released in March 2015 (iOS), Android support (September 2015)
• very popular (61,040 stars on github!)
Open Source (1624 contributors, 12,977 commits)
Used by many big companies (https://facebook.github.io/react-native/showcase.html):
• Facebook, AirBnb, Walmart, Wix, Tesla, Vogue, Bloomberg, etc
• Increasing demand of React (Native) engineers
Why React Native
One language: JavaScript vs Swift/Objective-C and Java
• ES2015 (or ES6) supported and advised
Best Development Experience (DX)
• no time wasting for compile & deploy cycles
• Live reload & Hot reload ( Web like experience)
• Debugging with Chrome Developer tools
bridge to native code if needed
hybrid native apps (react native views into a Swift/Objective-C/Java app, like
Facebook, Instagram apps)
Why React Native
80% share code between Android & iOS (can vary)
Its not write once, run everywhere but
• learn once, write anywhere!
Being based on React:
• Web Developer friendly
• Declarative UI (JSX) vs Imperative UI
• Component based (reusability)
• Async rendering
Live Demo
Expo Snack
http://snack.expo.io
Any questions ?
References
Official website:
• https://facebook.github.io/react-native/
React Native Express
• http://www.reactnativeexpress.com
Awesome React Native:
• https://github.com/jondot/awesome-react-native
Use React Native
• http://www.reactnative.com
Books
Learning React Native: Building Native Mobile Apps with JavaScript (2nd edition)
Bonnie Eisenman, Nov 2017
http://amzn.eu/8lEayro
Fullstack React Native
https://www.fullstackreact.com/react-native/
Mastering React Native
Eric Masiello, Jacob Friedmann, Gen 2017
http://amzn.eu/36IL9MW

More Related Content

What's hot

Building an Ionic hybrid mobile app with TypeScript
Building an Ionic hybrid mobile app with TypeScript Building an Ionic hybrid mobile app with TypeScript
Building an Ionic hybrid mobile app with TypeScript Serge van den Oever
 
Hybrid Apps with Ionic Framework
Hybrid Apps with Ionic FrameworkHybrid Apps with Ionic Framework
Hybrid Apps with Ionic FrameworkBramus Van Damme
 
Lessons Learned From Applications That Kicked Titanium's Ass
Lessons Learned From Applications That Kicked Titanium's AssLessons Learned From Applications That Kicked Titanium's Ass
Lessons Learned From Applications That Kicked Titanium's AssKevin Whinnery
 
Ionic framework one day training
Ionic framework one day trainingIonic framework one day training
Ionic framework one day trainingTroy Miles
 
Xamarin forms introduction by Taswar Bhatti and Ahmed Assad
Xamarin forms introduction by Taswar Bhatti and Ahmed AssadXamarin forms introduction by Taswar Bhatti and Ahmed Assad
Xamarin forms introduction by Taswar Bhatti and Ahmed AssadTaswar Bhatti
 
Ionic Crash Course! Hack-a-ton SF
Ionic Crash Course! Hack-a-ton SFIonic Crash Course! Hack-a-ton SF
Ionic Crash Course! Hack-a-ton SFLukas Ruebbelke
 
Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Nicholas Jansma
 
Write Better JavaScript
Write Better JavaScriptWrite Better JavaScript
Write Better JavaScriptKevin Whinnery
 
Modern Web Applications Utilizing HTML5 APIs
Modern Web Applications Utilizing HTML5 APIsModern Web Applications Utilizing HTML5 APIs
Modern Web Applications Utilizing HTML5 APIsIdo Green
 
Utilizing HTML5 APIs
Utilizing HTML5 APIsUtilizing HTML5 APIs
Utilizing HTML5 APIsIdo Green
 
Workshop on Hybrid App Development with Ionic Framework
Workshop on Hybrid App Development with Ionic FrameworkWorkshop on Hybrid App Development with Ionic Framework
Workshop on Hybrid App Development with Ionic FrameworkAayush Shrestha
 
The Javascript Ecosystem
The Javascript EcosystemThe Javascript Ecosystem
The Javascript EcosystemEmmanuel Akinde
 
App forum2015 London - Building RhoMobile Applications with Ionic
App forum2015 London - Building RhoMobile Applications with IonicApp forum2015 London - Building RhoMobile Applications with Ionic
App forum2015 London - Building RhoMobile Applications with Ionicrobgalvinjr
 
Use Ionic Framework to develop mobile application
Use Ionic Framework to develop mobile applicationUse Ionic Framework to develop mobile application
Use Ionic Framework to develop mobile applicationLucio Grenzi
 
Native mobile application development with Flutter (Dart)
Native mobile application development with Flutter (Dart)Native mobile application development with Flutter (Dart)
Native mobile application development with Flutter (Dart)Randal Schwartz
 
Creating an hybrid app in minutes with Ionic Framework
Creating an hybrid app in minutes with Ionic FrameworkCreating an hybrid app in minutes with Ionic Framework
Creating an hybrid app in minutes with Ionic FrameworkJulien Renaux
 

What's hot (20)

Building an Ionic hybrid mobile app with TypeScript
Building an Ionic hybrid mobile app with TypeScript Building an Ionic hybrid mobile app with TypeScript
Building an Ionic hybrid mobile app with TypeScript
 
Hybrid Apps with Ionic Framework
Hybrid Apps with Ionic FrameworkHybrid Apps with Ionic Framework
Hybrid Apps with Ionic Framework
 
Lessons Learned From Applications That Kicked Titanium's Ass
Lessons Learned From Applications That Kicked Titanium's AssLessons Learned From Applications That Kicked Titanium's Ass
Lessons Learned From Applications That Kicked Titanium's Ass
 
Ionic framework one day training
Ionic framework one day trainingIonic framework one day training
Ionic framework one day training
 
Apache Cordova
Apache CordovaApache Cordova
Apache Cordova
 
Xamarin forms introduction by Taswar Bhatti and Ahmed Assad
Xamarin forms introduction by Taswar Bhatti and Ahmed AssadXamarin forms introduction by Taswar Bhatti and Ahmed Assad
Xamarin forms introduction by Taswar Bhatti and Ahmed Assad
 
Ionic Crash Course! Hack-a-ton SF
Ionic Crash Course! Hack-a-ton SFIonic Crash Course! Hack-a-ton SF
Ionic Crash Course! Hack-a-ton SF
 
Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)
 
Write Better JavaScript
Write Better JavaScriptWrite Better JavaScript
Write Better JavaScript
 
Modern Web Applications Utilizing HTML5 APIs
Modern Web Applications Utilizing HTML5 APIsModern Web Applications Utilizing HTML5 APIs
Modern Web Applications Utilizing HTML5 APIs
 
Utilizing HTML5 APIs
Utilizing HTML5 APIsUtilizing HTML5 APIs
Utilizing HTML5 APIs
 
Workshop on Hybrid App Development with Ionic Framework
Workshop on Hybrid App Development with Ionic FrameworkWorkshop on Hybrid App Development with Ionic Framework
Workshop on Hybrid App Development with Ionic Framework
 
The Javascript Ecosystem
The Javascript EcosystemThe Javascript Ecosystem
The Javascript Ecosystem
 
Apache cordova
Apache cordovaApache cordova
Apache cordova
 
Flutter introduction
Flutter introductionFlutter introduction
Flutter introduction
 
App forum2015 London - Building RhoMobile Applications with Ionic
App forum2015 London - Building RhoMobile Applications with IonicApp forum2015 London - Building RhoMobile Applications with Ionic
App forum2015 London - Building RhoMobile Applications with Ionic
 
Use Ionic Framework to develop mobile application
Use Ionic Framework to develop mobile applicationUse Ionic Framework to develop mobile application
Use Ionic Framework to develop mobile application
 
Native mobile application development with Flutter (Dart)
Native mobile application development with Flutter (Dart)Native mobile application development with Flutter (Dart)
Native mobile application development with Flutter (Dart)
 
Getting Your Hooks into Cordova
Getting Your Hooks into CordovaGetting Your Hooks into Cordova
Getting Your Hooks into Cordova
 
Creating an hybrid app in minutes with Ionic Framework
Creating an hybrid app in minutes with Ionic FrameworkCreating an hybrid app in minutes with Ionic Framework
Creating an hybrid app in minutes with Ionic Framework
 

Similar to LAP II - Lezione 01 Introduzione al corso

Presentazione Corso LAP 2 A.A. 2016/2017
Presentazione Corso LAP 2 A.A. 2016/2017Presentazione Corso LAP 2 A.A. 2016/2017
Presentazione Corso LAP 2 A.A. 2016/2017University of Catania
 
Mobile App Landscape for the Non-Technical
Mobile App Landscape for the Non-TechnicalMobile App Landscape for the Non-Technical
Mobile App Landscape for the Non-TechnicalJames Quick
 
Mobile Enablement And Intelligence
Mobile Enablement And IntelligenceMobile Enablement And Intelligence
Mobile Enablement And IntelligenceRashmika Nawaratne
 
Mobile Delivery Run Through
Mobile Delivery Run ThroughMobile Delivery Run Through
Mobile Delivery Run ThroughMike Hartington
 
Hybrid Application Development documentation report (MCA Project)
Hybrid Application Development documentation report (MCA Project)Hybrid Application Development documentation report (MCA Project)
Hybrid Application Development documentation report (MCA Project)vetri pandi
 
Presentation of programming languages for beginners
Presentation of programming languages for beginnersPresentation of programming languages for beginners
Presentation of programming languages for beginnersClement Levallois
 
Hybrid app development
Hybrid app developmentHybrid app development
Hybrid app developmentHarshul Shah
 
What to choose for Mobile app development- React Native vs Native.
What to choose for Mobile app development- React Native vs Native.What to choose for Mobile app development- React Native vs Native.
What to choose for Mobile app development- React Native vs Native.Techugo
 
Intro to tech stacks bonny
Intro to tech stacks bonnyIntro to tech stacks bonny
Intro to tech stacks bonnyLama K Banna
 
Hybrid App Development, Redefined
Hybrid App Development, RedefinedHybrid App Development, Redefined
Hybrid App Development, RedefinedIonic Framework
 
Which Cross-Platform App Development Framework Is Right for You
Which Cross-Platform App Development Framework Is Right for YouWhich Cross-Platform App Development Framework Is Right for You
Which Cross-Platform App Development Framework Is Right for YouInexture Solutions
 
ChrisSchilling_SideProjects
ChrisSchilling_SideProjectsChrisSchilling_SideProjects
ChrisSchilling_SideProjectsChris Schilling
 
SEO Infographic-2.pdf
SEO Infographic-2.pdfSEO Infographic-2.pdf
SEO Infographic-2.pdfwatchstrap
 
Cross-platform Mobile Development on Open Source
Cross-platform Mobile Development on Open SourceCross-platform Mobile Development on Open Source
Cross-platform Mobile Development on Open SourceAll Things Open
 
Introduction to hybrid application development
Introduction to hybrid application developmentIntroduction to hybrid application development
Introduction to hybrid application developmentKunjan Thakkar
 
Build Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilderBuild Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilderJeffrey T. Fritz
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Nuxeo
 
Mobility today & what's next. Application ecosystems.
Mobility today & what's next.Application ecosystems.Mobility today & what's next.Application ecosystems.
Mobility today & what's next. Application ecosystems.Petru Jucovschi
 
Top Technologies to Develop Mobile Apps.pptx
Top Technologies to Develop Mobile Apps.pptxTop Technologies to Develop Mobile Apps.pptx
Top Technologies to Develop Mobile Apps.pptxGokulKanna18
 
Native script vs react native for native app development in 2022
Native script vs react native for native app development in 2022Native script vs react native for native app development in 2022
Native script vs react native for native app development in 2022Katy Slemon
 

Similar to LAP II - Lezione 01 Introduzione al corso (20)

Presentazione Corso LAP 2 A.A. 2016/2017
Presentazione Corso LAP 2 A.A. 2016/2017Presentazione Corso LAP 2 A.A. 2016/2017
Presentazione Corso LAP 2 A.A. 2016/2017
 
Mobile App Landscape for the Non-Technical
Mobile App Landscape for the Non-TechnicalMobile App Landscape for the Non-Technical
Mobile App Landscape for the Non-Technical
 
Mobile Enablement And Intelligence
Mobile Enablement And IntelligenceMobile Enablement And Intelligence
Mobile Enablement And Intelligence
 
Mobile Delivery Run Through
Mobile Delivery Run ThroughMobile Delivery Run Through
Mobile Delivery Run Through
 
Hybrid Application Development documentation report (MCA Project)
Hybrid Application Development documentation report (MCA Project)Hybrid Application Development documentation report (MCA Project)
Hybrid Application Development documentation report (MCA Project)
 
Presentation of programming languages for beginners
Presentation of programming languages for beginnersPresentation of programming languages for beginners
Presentation of programming languages for beginners
 
Hybrid app development
Hybrid app developmentHybrid app development
Hybrid app development
 
What to choose for Mobile app development- React Native vs Native.
What to choose for Mobile app development- React Native vs Native.What to choose for Mobile app development- React Native vs Native.
What to choose for Mobile app development- React Native vs Native.
 
Intro to tech stacks bonny
Intro to tech stacks bonnyIntro to tech stacks bonny
Intro to tech stacks bonny
 
Hybrid App Development, Redefined
Hybrid App Development, RedefinedHybrid App Development, Redefined
Hybrid App Development, Redefined
 
Which Cross-Platform App Development Framework Is Right for You
Which Cross-Platform App Development Framework Is Right for YouWhich Cross-Platform App Development Framework Is Right for You
Which Cross-Platform App Development Framework Is Right for You
 
ChrisSchilling_SideProjects
ChrisSchilling_SideProjectsChrisSchilling_SideProjects
ChrisSchilling_SideProjects
 
SEO Infographic-2.pdf
SEO Infographic-2.pdfSEO Infographic-2.pdf
SEO Infographic-2.pdf
 
Cross-platform Mobile Development on Open Source
Cross-platform Mobile Development on Open SourceCross-platform Mobile Development on Open Source
Cross-platform Mobile Development on Open Source
 
Introduction to hybrid application development
Introduction to hybrid application developmentIntroduction to hybrid application development
Introduction to hybrid application development
 
Build Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilderBuild Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilder
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
 
Mobility today & what's next. Application ecosystems.
Mobility today & what's next.Application ecosystems.Mobility today & what's next.Application ecosystems.
Mobility today & what's next. Application ecosystems.
 
Top Technologies to Develop Mobile Apps.pptx
Top Technologies to Develop Mobile Apps.pptxTop Technologies to Develop Mobile Apps.pptx
Top Technologies to Develop Mobile Apps.pptx
 
Native script vs react native for native app development in 2022
Native script vs react native for native app development in 2022Native script vs react native for native app development in 2022
Native script vs react native for native app development in 2022
 

More from University of Catania

LAP 2 Lezione 8: Properties, Database, Media, Filesystem
LAP 2  Lezione 8: Properties, Database, Media, FilesystemLAP 2  Lezione 8: Properties, Database, Media, Filesystem
LAP 2 Lezione 8: Properties, Database, Media, FilesystemUniversity of Catania
 
LAP2 iOS and Android Development environment setup
LAP2 iOS and Android Development environment setupLAP2 iOS and Android Development environment setup
LAP2 iOS and Android Development environment setupUniversity of Catania
 
Laboratorio Creare e pubblicare mobile apps per iOS e Android Configurazione ...
Laboratorio Creare e pubblicare mobile apps per iOS e Android Configurazione ...Laboratorio Creare e pubblicare mobile apps per iOS e Android Configurazione ...
Laboratorio Creare e pubblicare mobile apps per iOS e Android Configurazione ...University of Catania
 
Sistemi lezione-iv-internet-e-posta-elettronica
Sistemi lezione-iv-internet-e-posta-elettronicaSistemi lezione-iv-internet-e-posta-elettronica
Sistemi lezione-iv-internet-e-posta-elettronicaUniversity of Catania
 
Sistemi lezione-iii-reti-di-calcolatori
Sistemi lezione-iii-reti-di-calcolatoriSistemi lezione-iii-reti-di-calcolatori
Sistemi lezione-iii-reti-di-calcolatoriUniversity of Catania
 
Sistemi - Lezione XIV - Introduzione a HTML
Sistemi - Lezione XIV - Introduzione a HTMLSistemi - Lezione XIV - Introduzione a HTML
Sistemi - Lezione XIV - Introduzione a HTMLUniversity of Catania
 
Sistemi - Lezione XIII - Blogs e Blogger
Sistemi - Lezione XIII - Blogs e BloggerSistemi - Lezione XIII - Blogs e Blogger
Sistemi - Lezione XIII - Blogs e BloggerUniversity of Catania
 
Sistemi lezione i - Presentazione - hardware
Sistemi   lezione i - Presentazione - hardwareSistemi   lezione i - Presentazione - hardware
Sistemi lezione i - Presentazione - hardwareUniversity of Catania
 
Sistemi lezione viii - google altri servizi
Sistemi   lezione viii - google altri serviziSistemi   lezione viii - google altri servizi
Sistemi lezione viii - google altri serviziUniversity of Catania
 
Sistemi lezione xi - picasa web album - social bookmarking - notizie 2
Sistemi   lezione xi - picasa web album - social bookmarking - notizie 2Sistemi   lezione xi - picasa web album - social bookmarking - notizie 2
Sistemi lezione xi - picasa web album - social bookmarking - notizie 2University of Catania
 
Sistemi lezione x - introduzione al web 2.0 - flickr
Sistemi   lezione x - introduzione al web 2.0 - flickrSistemi   lezione x - introduzione al web 2.0 - flickr
Sistemi lezione x - introduzione al web 2.0 - flickrUniversity of Catania
 
Sistemi di elaborazione dell'informazione - Google Docs basics
Sistemi di elaborazione dell'informazione - Google Docs basicsSistemi di elaborazione dell'informazione - Google Docs basics
Sistemi di elaborazione dell'informazione - Google Docs basicsUniversity of Catania
 

More from University of Catania (17)

Lezione 03 Introduzione a react
Lezione 03   Introduzione a reactLezione 03   Introduzione a react
Lezione 03 Introduzione a react
 
LAP 2 Lezione 8: Properties, Database, Media, Filesystem
LAP 2  Lezione 8: Properties, Database, Media, FilesystemLAP 2  Lezione 8: Properties, Database, Media, Filesystem
LAP 2 Lezione 8: Properties, Database, Media, Filesystem
 
LAP2 iOS and Android Development environment setup
LAP2 iOS and Android Development environment setupLAP2 iOS and Android Development environment setup
LAP2 iOS and Android Development environment setup
 
Laboratorio Creare e pubblicare mobile apps per iOS e Android Configurazione ...
Laboratorio Creare e pubblicare mobile apps per iOS e Android Configurazione ...Laboratorio Creare e pubblicare mobile apps per iOS e Android Configurazione ...
Laboratorio Creare e pubblicare mobile apps per iOS e Android Configurazione ...
 
Sistemi lezione-v-google-web-search
Sistemi lezione-v-google-web-searchSistemi lezione-v-google-web-search
Sistemi lezione-v-google-web-search
 
Sistemi lezione-iv-internet-e-posta-elettronica
Sistemi lezione-iv-internet-e-posta-elettronicaSistemi lezione-iv-internet-e-posta-elettronica
Sistemi lezione-iv-internet-e-posta-elettronica
 
Sistemi lezione-iii-reti-di-calcolatori
Sistemi lezione-iii-reti-di-calcolatoriSistemi lezione-iii-reti-di-calcolatori
Sistemi lezione-iii-reti-di-calcolatori
 
Sistemi lezione-ii
Sistemi lezione-iiSistemi lezione-ii
Sistemi lezione-ii
 
Sistemi lezione xv - cenni su css
Sistemi   lezione xv - cenni su cssSistemi   lezione xv - cenni su css
Sistemi lezione xv - cenni su css
 
Sistemi - Lezione XIV - Introduzione a HTML
Sistemi - Lezione XIV - Introduzione a HTMLSistemi - Lezione XIV - Introduzione a HTML
Sistemi - Lezione XIV - Introduzione a HTML
 
Sistemi - Lezione XIII - Blogs e Blogger
Sistemi - Lezione XIII - Blogs e BloggerSistemi - Lezione XIII - Blogs e Blogger
Sistemi - Lezione XIII - Blogs e Blogger
 
Corso manzoni lezione 1-2-3
Corso manzoni   lezione 1-2-3Corso manzoni   lezione 1-2-3
Corso manzoni lezione 1-2-3
 
Sistemi lezione i - Presentazione - hardware
Sistemi   lezione i - Presentazione - hardwareSistemi   lezione i - Presentazione - hardware
Sistemi lezione i - Presentazione - hardware
 
Sistemi lezione viii - google altri servizi
Sistemi   lezione viii - google altri serviziSistemi   lezione viii - google altri servizi
Sistemi lezione viii - google altri servizi
 
Sistemi lezione xi - picasa web album - social bookmarking - notizie 2
Sistemi   lezione xi - picasa web album - social bookmarking - notizie 2Sistemi   lezione xi - picasa web album - social bookmarking - notizie 2
Sistemi lezione xi - picasa web album - social bookmarking - notizie 2
 
Sistemi lezione x - introduzione al web 2.0 - flickr
Sistemi   lezione x - introduzione al web 2.0 - flickrSistemi   lezione x - introduzione al web 2.0 - flickr
Sistemi lezione x - introduzione al web 2.0 - flickr
 
Sistemi di elaborazione dell'informazione - Google Docs basics
Sistemi di elaborazione dell'informazione - Google Docs basicsSistemi di elaborazione dell'informazione - Google Docs basics
Sistemi di elaborazione dell'informazione - Google Docs basics
 

Recently uploaded

AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsvanyagupta248
 
Introduction to Geographic Information Systems
Introduction to Geographic Information SystemsIntroduction to Geographic Information Systems
Introduction to Geographic Information SystemsAnge Felix NSANZIYERA
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...Amil baba
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"mphochane1998
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiessarkmank1
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptxJIT KUMAR GUPTA
 
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...HenryBriggs2
 
Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)Ramkumar k
 
8th International Conference on Soft Computing, Mathematics and Control (SMC ...
8th International Conference on Soft Computing, Mathematics and Control (SMC ...8th International Conference on Soft Computing, Mathematics and Control (SMC ...
8th International Conference on Soft Computing, Mathematics and Control (SMC ...josephjonse
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdfKamal Acharya
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayEpec Engineered Technologies
 
Worksharing and 3D Modeling with Revit.pptx
Worksharing and 3D Modeling with Revit.pptxWorksharing and 3D Modeling with Revit.pptx
Worksharing and 3D Modeling with Revit.pptxMustafa Ahmed
 
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...ronahami
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdfAldoGarca30
 
Augmented Reality (AR) with Augin Software.pptx
Augmented Reality (AR) with Augin Software.pptxAugmented Reality (AR) with Augin Software.pptx
Augmented Reality (AR) with Augin Software.pptxMustafa Ahmed
 
Introduction to Artificial Intelligence ( AI)
Introduction to Artificial Intelligence ( AI)Introduction to Artificial Intelligence ( AI)
Introduction to Artificial Intelligence ( AI)ChandrakantDivate1
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdfKamal Acharya
 
Query optimization and processing for advanced database systems
Query optimization and processing for advanced database systemsQuery optimization and processing for advanced database systems
Query optimization and processing for advanced database systemsmeharikiros2
 

Recently uploaded (20)

AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
Introduction to Geographic Information Systems
Introduction to Geographic Information SystemsIntroduction to Geographic Information Systems
Introduction to Geographic Information Systems
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and properties
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
 
Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)
 
8th International Conference on Soft Computing, Mathematics and Control (SMC ...
8th International Conference on Soft Computing, Mathematics and Control (SMC ...8th International Conference on Soft Computing, Mathematics and Control (SMC ...
8th International Conference on Soft Computing, Mathematics and Control (SMC ...
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
Worksharing and 3D Modeling with Revit.pptx
Worksharing and 3D Modeling with Revit.pptxWorksharing and 3D Modeling with Revit.pptx
Worksharing and 3D Modeling with Revit.pptx
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
 
Augmented Reality (AR) with Augin Software.pptx
Augmented Reality (AR) with Augin Software.pptxAugmented Reality (AR) with Augin Software.pptx
Augmented Reality (AR) with Augin Software.pptx
 
Introduction to Artificial Intelligence ( AI)
Introduction to Artificial Intelligence ( AI)Introduction to Artificial Intelligence ( AI)
Introduction to Artificial Intelligence ( AI)
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
Query optimization and processing for advanced database systems
Query optimization and processing for advanced database systemsQuery optimization and processing for advanced database systems
Query optimization and processing for advanced database systems
 

LAP II - Lezione 01 Introduzione al corso

  • 1. Laboratorio Avanzato di Programmazione II (LAP II) Sviluppo di applicazioni mobili native multipiattaforma Prof. Antonio S. Calanducci Corso di Laurea in Informatica, Unict Anno accademico 2017/18 Lesson 01: Introduzione al corso
  • 2. About me Adjunct Professor @UniCT (DMI, DipBioGeo, SS-PSI) ex Apple iOS Developer Academy Teacher Freelancer: Mobile app instructor & engineer Founder of EtnaTraining (http://www.etnatraining.it) Ex studente@Corso di Laurea in Informatica - DMI
  • 3. How to reach me email: calanducci AT unict.it @tcaland | Facebook | github.com/etnatraining && acaland http://www.dmi.unict.it/~calanducci https://www.facebook.com/groups/unict.lap2/ Ricevimento: • DMI @ Studio 19, blocco III • by appointment (every Thursday 16:30 - 18:00)
  • 4. Objective Learn mobile development topics and related ecosystems • development approach (native vs mobile web vs hybrid) • tools, languages, frameworks, backends • from design to publishing to the stores • focus on cross-platform native development (iOS & Android)
  • 5. Lesson hours Tuesday, 09:00 - 11:00, Friday, 09:00 - 11:00 Laboratorio Archimede (Lab 125)
  • 7. Course approach Intro theoretical lesson Demo & live coding • After the basics we will build a full fledged social & Cloud based app hands-on labs Home assignments
  • 8. Exam format "Clone the app" style • build a simple app, according to teacher assigned requirements (screenshots and descriptions of features) • the more features, the higher the mark • 2-3 hours timeframe In the LAP (but you can bring your own PC) you can use Internet too!
  • 9. Requirements Bring a laptop at lesson (recommended) github / bitbucket account (mandatory) basic knowledge of HTML/CSS/JavaScript would help iOS development (and testing) requires a Mac options if you don’t have a Mac: • you need an iOS device at least • other options I cannot write here :D
  • 10. Polls How many of you with Mac, PC, Linux? Which Windows/Linux versions? Previous knowledge of native iOS/Android development? Knowledge of Objective-C/Swift, Java, C#, C/C++ Knowledge of Web development tools: Node.js, PHP, Angular.js, React, github
  • 11. Prerequisite test Home assignment: • http://www.dmi.unict.it/~calanducci/LAP2/test.html
  • 12. Mobile development approaches Silo Mobile Web / Hybrid Native & Cross-platform
  • 13. Silo (Native) Approach Same apps multiple times: • Multiple teams • Multiple code bases • Different toolset • Expensive and slow • Pros: • Exploitation of the target platform features • Best performance Swift Kotlin
  • 14. “Write once, run everywhere” approach Mobile Web • development based on HTML5/CSS/JavaScript (web apps) • responsive web page that adapts to different screens • identical look & feel on all platforms • not performant; limited access to hardware and offline capabilities • ex: Progressive Web Apps (PWA) by Google • can be updated immediately (hosted on the Web) Hybrid • Wrapping of Mobile Web apps into a native container (WebView) • distribution through the official app stores • plug-in allow access to hardware (camera, sensors, etc..) • ex: Adobe PhoneGap/Apache Cordova/Ionic
  • 15. Native & cross-platform approach Native User Interface (UI) & User Experience (UX) Native access to services: • Camera, Microphone, Hardware sensors • GPS, Mapkit, Direct & Reverse geocoding • Push Notifications • Database SQLite, FileSystem, Properties APIs • Android Intents, Local Notification, Background Services, Contacts, Gestures, Socket, Clipboard, XML, Network, Locale, etc etc
  • 16. Popular native cross-platform frameworks Xamarin (Microsoft) • https://www.xamarin.com/platform React Native (Facebook) • https://facebook.github.io/react-native/ NativeScript (Progress Telerik) • https://www.nativescript.org Flutter (Google) • https://flutter.io/ Others: • Titanium (http://www.appcelerator.com) • Fuse (https://www.fusetools.com), • Rubymotion (http://www.rubymotion.com)
  • 17. React Native JavaScript based framework for building native iOS and Android apps (Native UI) • support also Universal Windows Platform (UWP, Windows 10 SDK), Xbox One, macOS Desktop 10.10+ (Cocoa), Web, Apple TV, Android TV It makes use of React, a popular Web UI library Created by Facebook. First released in March 2015 (iOS), Android support (September 2015) • very popular (61,040 stars on github!) Open Source (1624 contributors, 12,977 commits) Used by many big companies (https://facebook.github.io/react-native/showcase.html): • Facebook, AirBnb, Walmart, Wix, Tesla, Vogue, Bloomberg, etc • Increasing demand of React (Native) engineers
  • 18. Why React Native One language: JavaScript vs Swift/Objective-C and Java • ES2015 (or ES6) supported and advised Best Development Experience (DX) • no time wasting for compile & deploy cycles • Live reload & Hot reload ( Web like experience) • Debugging with Chrome Developer tools bridge to native code if needed hybrid native apps (react native views into a Swift/Objective-C/Java app, like Facebook, Instagram apps)
  • 19. Why React Native 80% share code between Android & iOS (can vary) Its not write once, run everywhere but • learn once, write anywhere! Being based on React: • Web Developer friendly • Declarative UI (JSX) vs Imperative UI • Component based (reusability) • Async rendering
  • 23. References Official website: • https://facebook.github.io/react-native/ React Native Express • http://www.reactnativeexpress.com Awesome React Native: • https://github.com/jondot/awesome-react-native Use React Native • http://www.reactnative.com
  • 24. Books Learning React Native: Building Native Mobile Apps with JavaScript (2nd edition) Bonnie Eisenman, Nov 2017 http://amzn.eu/8lEayro Fullstack React Native https://www.fullstackreact.com/react-native/ Mastering React Native Eric Masiello, Jacob Friedmann, Gen 2017 http://amzn.eu/36IL9MW