Introduzione ad Android Android Day 15 dicembre 2014
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 me@francescoflorio.info http://www.francescoflorio.info
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
Il mondo mobile oggi I principali Sistemi Operativi del mondo mobile
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%
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.
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 L ecosistema Android Smartphone & Tablet Desktop & Notebook Chomebook Android Wear Smartwatch, Google Glass Android TV Android Auto
Possibilità di lavoro Dipendente In Italia All estero Freelance Nuovo approccio delle piccole/medie imprese Startupper Mercato mobile in continua crescita Nuovi ambiti applicativi
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
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?
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
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
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
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
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
Come iniziare lo sviluppo IDE e Tools di sviluppo Eclipse non è più supportato http://developer.android.com/sdk/installing/migrate.html
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/
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
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/
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/
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
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-adobeair-app-challenge-sponsored-by-sony-announced/
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
Q&A