Iniziare a sviluppare su mobile con Android

25
Iniziare a sviluppare su mobile con Android Android Day 15 dicembre 2014

Transcript of Iniziare a sviluppare su mobile con Android

Iniziare a sviluppare su mobile con Android

Android Day 15 dicembre 2014

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Oggi parleremo di �  Il mondo mobile oggi � Perché scegliere la piattaforma Android � Possibilità di lavoro � Creare un’App � Come iniziare lo sviluppo � Consigli e caso d’uso I miei riferimenti �  Ing. Francesco Florio

Android designer & developer – Teacher – Startupper [email protected] http://www.francescoflorio.info

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Il mondo mobile oggi �  I dispositivi mobili connessi sono maggiori

della popolazione mondiale �  Ottobre 2014: 7,22 miliardi di dispositivi mobili per 7,2 miliardi di persone nel mondo

�  I dispositivi mobili hanno superato il mondo desktop nel traffico web generato �  Web �  E-Commerce �  Social network �  Multimedia �  Gaming �  Advertising

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Il mondo mobile oggi �  I principali Sistemi Operativi del mondo mobile

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Il mondo mobile oggi

•  Android ha l’84,4% del mercato dei SO per Smartphone

•  iOS 11,7%

•  Windows Phone 2,9%

•  BlackBerry OS 0,5%

•  Gli altri SO si dividono lo 0,6%

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Sviluppo mobile � Due diversi approcci allo sviluppo

�  Nativo �  Applicazioni scritte con l’SDK offerto dalla piattaforma (Java,

objective-C, C#, C++) �  No riuso di codice �  Migliore esperienza d’uso per gli utenti (UI & prestazioni) �  Disponibili tutte le funzionalità offerte dalla piattaforma

�  Cross-platform �  Applicazioni scritte con un unico linguaggio (javascript,

actionscript, C++) e impacchettato/compilato per tutte le piattaforme

�  Riciclo di codice (oltre l’80%) �  Esperienza d’uso non ottimale �  Non tutte le funzionalità sono disponibili �  Problemi di stabilità a seguito di aggiornamenti del S.O.

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Perché sviluppare per Android � Sistema Operativo più diffuso per dispositivi

mobili � Costo di sviluppo nullo (o quasi)

�  Open-source �  SDK e IDE di Sviluppo disponibili gratuitamente per tutti i sistemi

operativi desktop (Windows, OSX, Linux) �  Iscrizione per distribuire le proprie applicazioni a costi irrisori e

non obbligatoria

� Sviluppo nativo basato su tecnologie conosciute �  Java & XML �  Supporta lo sviluppo in C/C++ (Android NDK)

� Ecosistema in evoluzione � Elevata offerta di lavoro

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

L’ecosistema Android � Smartphone & Tablet � Desktop & Notebook

�  Chomebook

� Android Wear �  Smartwatch, Google Glass

� Android TV � Android Auto

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Possibilità di lavoro � Dipendente

�  In Italia �  All’estero

� Freelance �  Nuovo approccio delle

piccole/medie imprese

� Startupper �  Mercato mobile in

continua crescita �  Nuovi ambiti applicativi

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Creare un’App � Ci si innamora sempre della propria IDEA � Valida se risponde a questi quesiti

�  Ha una REASON WHY per scaricarla? � Offre funzioni/contenuti esclusivi � Risolve un problema � E’ necessaria per compiere attività

specifiche �  Sfrutta le caratteristiche del mobile

� Geo-localizzazione � Notifiche push � Utilizzo in mobilità �  Integrazione con altre App

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Creare un’App � Che tipo di applicazione si vuole realizzare?

�  Salute �  Produttività/Gestionali �  Informazione �  Social Network �  Multimedia �  Gaming

� Ciascuna categoria ha caratteristiche ben specifiche

� Guardare i competitor �  Esiste qualcosa di simile? �  Cosa offre in più la mia App?

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Creare un’App � A quale target di utenti si rivolge la mia App?

�  Età �  Sesso �  Professione �  Nazione

� Target ristretto �  CONTRO: Meno utenti interessati �  PRO: Più facile entrare nel mercato

� Target ampio �  PRO: Più utenti interessati �  CONTRO: Più difficoltà ad entrare nel mercato

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Creare un’App � Business Plan

�  Realizzare e mantenere un’App ha un costo �  Progettazione, sviluppo, hardware, cloud, marketing…

�  Servono strategie di monetizzazione �  Applicazione a pagamento �  Applicazione gratuita con contenuti aggiuntivi a

pagamento (in-App purchase) �  Applicazione gratuita con pubblicità �  Noleggio licenza d’uso �  Exit milionaria J

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Creare un’App � L’importanza del Team

�  Importante attenzione alla grafica e all’esperienza utente �  Icona e Artworks sono i principali fattori di download �  App poco intuitive sono rimosse dagli utenti �  Un’App rimossa difficilmente viene riscaricata

�  Marketing & App discovery �  Competizioni che danno visibilità all’App

�  EESTEC Competition for Android, Start Cup, Startup Weekend, … �  Social marketing �  Review �  Partnership

�  Richieste diverse competenze �  Il Time-to-Market spesso decreta il successo dell’App

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Come iniziare lo sviluppo � Limiti di Android e dello sviluppo mobile

�  Risorse limitate �  CPU, batteria…

�  Display limitati �  Una sola schermata visibile per volta

�  Lifecycle delle applicazioni differente dal mondo desktop/server �  Stand-by, eventi esterni, background…

�  Frammentazione �  Hardware �  Software

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Come iniziare lo sviluppo � Sito ufficiale dedicato agli sviluppatori

�  http://developer.android.com/

� Documentazione divisa in tre sezioni �  Design: imparare come progettare graficamente un’App

Android - Material Design �  Develop: Raccoglie la definizione completa delle API

disponibili, guide, tutorial, le ultime novità della piattaforma, etc…

�  Distribute: Descrive come pubblicare la propria App su Play Store, come ottenere nuovi utenti e mantenerli, come monetizzare, etc…

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Come iniziare lo sviluppo �  IDE e Tools di sviluppo

� Eclipse non è più supportato �  http://developer.android.com/sdk/installing/migrate.html

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Come iniziare lo sviluppo � Android Build System

�  Toolkit usato per compilare, testare, eseguire ed impacchettare l’App

�  Precedentemente basato su ANT, oggi consiste in un estensione Gradle per Android

�  Il file di build è chiamato build.gradle �  File di testo scritto in sintassi Groovy �  Si occupa di definire le caratteristiche dell’App e le dipendenze,

con la possibilità di inserire logica di build customizzata

�  Referenze �  http://developer.android.com/tools/building/plugin-for-gradle.html �  http://www.gradle.org/ �  http://groovy.codehaus.org/

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Come iniziare lo sviluppo �  Device fisico

�  Per sviluppare su Android è consigliato un device fisico �  Testing, User Experience

�  Emulatore �  Android offre i suoi emulatori

�  Smartphone, Tablet, Wear… �  Performance non entusiasmanti

�  Genymotion �  Emulatore Android realizzato da una startup francese �  E’ presente una versione gratuita �  20 device pre-configurati, con la possibilità di crearne di nuovi �  https://www.genymotion.com/

�  Samsung Remote Test Lab �  http://developer.samsung.com/remotetestlab/rtlAboutRTL.action

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Consigli � Creare un repository per il vostro codice

�  Quando si sviluppa è sempre consigliato il versioning del codice sorgente

�  Vantaggi � Si può lavorare in maniera distribuita, unendo il lavoro di

diversi sviluppatori senza particolare sforzo � Si evita di perdere accidentalmente il codice � E’ possibile tenere sotto controllo l’evoluzione del codice, e,

se necessario, tornare indietro �  Client integrato in Android Studio �  Repository gratuito su: https://bitbucket.org/

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Consigli � Testing

�  I prodotti commerciali devono essere stabili e affidabili

�  Il testing di un’App è molto importante �  Community di tester possono aiutarvi in questa fase

� Amici e colleghi � https://thebetafamily.com/

� Monitoraggio �  Utilizzare strumenti che segnalano i crash degli utenti �  https://try.crashlytics.com/

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Caso d’uso – Cassandra Stand � Nel 2010 insieme a due ex studenti di Ingegneria

Informatica iniziamo la nostra avventura nel mondo mobile

� Con pochi clienti e scarsa visibilità decidiamo di investire tre mesi per realizzare un progetto da proporre in ambito internazionale

� Realizziamo Cassandra Stand News & Clock

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Caso d’uso – Cassandra Stand � Applicazione per Tablet che abbina orario, previsioni

meteo e ultime notizie di oltre 50 paesi � Partecipiamo all’Adobe AIR App Challenge,

sponsored by Sony ed arriviamo alla fase finale vincendo 10.000 $

�  http://blogs.adobe.com/digitalmedia/2011/11/winning-tablet-apps-for-adobe-air-app-challenge-sponsored-by-sony-announced/

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Caso d’uso – Cassandra Stand � Punti di forza dell’App

�  Risponde alle esigenze degli utenti �  Facilità d’uso �  Molto curata graficamente �  Disponibile in tutto il mondo �  Stabile e performante

Introduzione ad Android Android Day, 15 dicembre 2014

Ing. Francesco Florio – http://www.francescoflorio.info - [email protected]

Q&A