Steps to develop apps for mobile that access internet realted contents.
It simply explores basic concepts of developmnet. Written in italian.
---
Espone i passi necessari a sviluppare un app mobile in grado di accedere a contenuti su web. Espone i concetti basilari del processo di sviluppo.
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
Sviluppare una app mobile net oriented
1. Sviluppare una app mobile net-oriented
Principi fondamentali
• Una app non è una applicazione semplice. Le interazioni con l’utente devono risultare il più possibile
semplici e naturali, ma il termine non è sinonimo di codice corto e semplice. Anzi, spesso la
realizzazione risulta più complessa di un applicativo tradizionale.
• Lo sviluppo multipiattaforma richiede degli accorgimenti dedicati.
• Il software deve essere progettato correttamente prima di iniziare la stesura del codice sorgente,
tenendo comunque presente del fatto che il programma stesso potrebbe girare su dispositivi con
hardware limitato e con alimentazione a batteria, quindi con una autonomia ridotta.
• E’ opportuno sfruttare tutte le possibilità per rendere appetibile l’app: servizi web, servizi offline,
grafica accattivante.
Non bisogna sottovalutare la componente grafica dell’app!
2. Sviluppare una app mobile net-oriented
Fasi di sviluppo - Progettazione
Fase 1 – Progettazione della logica server-side
Componenti necessari
• Utilizzo di Web API (REST) per il trasporto dei dati da al server di backend
• Caching dei dati sul dispositivo mobile
• Gestione dello stato offline del server sul dispositivo
Componenti opzionali
• Implementazione di un sistema di autenticazione (Web Forms, Facebook, Google, Live
ID, Federazione di dominio)
• Implementazione della sicurezza della connessione tramite SSL (richiede un certificato
SSL valido)
3. Sviluppare una app mobile net-oriented
Fasi di sviluppo - Progettazione
Fase 1 – Progettazione della logica server-side
Possibilità di deploy del servizio di backend
Soluzone standard - SERVER LOCALE
PRO
• Il server è fisicamente localizzato all’interno delle proprie strutture
• Si ha il controllo completo sulle impostazioni della rete locale
• I dispositivi che utilizzano il servizio all’interno della LAN possono usufruire di una
velocità solitamente maggiore rispetto a una connettività internet
CONTRO
• Acquisire una infrastruttura ad alta disponibilità può risultare particolarmente costoso
• Non ci sono garanzie di uptime
• Potrebbe non essere possibile esporre il servizio su una connessione a banda
sufficientemente alta
4. Sviluppare una app mobile net-oriented
Fasi di sviluppo - Progettazione
Fase 1 – Progettazione della logica server-side
Possibilità di deploy del servizio di backend
Soluzione alternativa - CLOUD
PRO
• E’ possibile rilasciare il backend su più datacenter
• Non si devono gestire gli aggiornamenti del software
• La banda e la potenza delle macchine possono scalare in base alle necessità
dell’applicativo in un determinato momento. L’uptime è garantito oltre il 90%
CONTRO
• Solitamente non si ha accesso al datacenter. I propri dati sono affidati a terzi
• E’ necessario Internet anche per la gestione delle proprie macchine
• Sono necessari accorgimenti nel codice sorgente per poter funzionare su una
infrastruttura di tipo cloud
5. Sviluppare una app mobile net-oriented
Fasi di sviluppo - Progettazione
Fase 2 – Progettazione della app mobile
Piattaforme disponibili
• Windows Phone
• Apple iOS (versioni iPhone e iPad)
• Android
Queste tre piattaforme insieme detengono circa il 98%
del mercato.
Android è la piattaforma più diffusa.
Symbian è stato dismesso. Blackberry detiene una fetta
di mercato non commercialmente valida.
6. Sviluppare una app mobile net-oriented
Fasi di sviluppo - Progettazione
Fase 2 – Progettazione della app mobile
Tre diverse piattaforme di
sviluppo
• Windows Phone: .NET (Visual Basic, C#, F#, C++)
• Apple iOS: Objective-C (lo sviluppo richiede un computer
Apple)
• Android: Java
Solitamente è necessario scrivere una app per ogni
dispositivo per ottenere le massime performance.
Esistono soluzioni multipiattaforma.
• PhoneGAP: frame HTML5 in esecuzione sul telefono,
dipendente dall’implementazione della libreria HTML.
• Xamarin: versione multipiattaforma del Framework .NET
7. Sviluppare una app mobile net-oriented
Fasi di sviluppo - Progettazione
Fase 2 – Progettazione della app mobile
PhoneGAP risulta utile per applicativi semplici, ma
solitamente è difficilmente applicabile a progetti complessi.
Non sono disponibili tutte le API specifiche per la
piattaforma. In aggiunta, le performance dipendono dal
motore HTML delle piattaforme target.
Xamarin genera un eseguibile nativo per la piattaforma
target e incapsula tutte le API disponibili sulla piattaforma,
facilmente accessibili tramite codice condizionale basato
sulla versione della piattaforma su cui si vuole compilare.
Xamarin ha un costo di utilizzo annuo, basato su una licenza
per piattaforma.
8. Sviluppare una app mobile net-oriented
Fase 2 – Progettazione della app mobile
Qualsiasi sia la scelta della piattaforma di sviluppo (nativo,
PhoneGAP, Xamarin), la progettazione dell’applicativo segue
questi step.
• Progettazione delle funzionalità dell’app e della UX
• Creazione di uno scheletro base dell’applicativo, con gli
oggetti basilari di funzionamento.
• Realizzazione della logica dell’applicazione. Il modello
deve rimanere disgiunto dalla parte visuale.
• Realizzazione della parte di collegamento tra il modello e
la parte visuale.
• Realizzazione della componente grafica, tra cui icone e
studi di design (opzionale, ma fortemente consigliato).
• Realizzazione della parte visuale e binding tra vista e
controller.
Fasi di sviluppo - Progettazione
9. Sviluppare una app mobile net-oriented
Informazioni generali
Conclusioni
• E’ necessario comunque scrivere una app per ogni piattaforma. E’ consigliabile utilizzare le
peculiarità di ogni sistema operativo su cui si vuole pubblicare l’applicazione. Significa quindi
che, malgrado alcune giornate di sviluppo possano essere risparmiate, bisogna comunque
calcolare giornate aggiuntive per ogni piattaforma su cui si vuole sviluppare.
• Utilizzare un framework come Xamarin permette di scrivere codice nativo per tutte le
principali piattaforme, perdendo una quantità minima di prestazioni. La UX deve comunque
essere adattata per ogni piattaforma, ma è possibile condividere tutto il codice che non
dipende dal dispositivo su tutte le piattaforme.
• Per pubblicare l’applicativo è solitamente possibile utilizzare lo store della piattaforma di
destinazione (Windows Store, Apple Store, Google Play). L’iscrizione agli store è a pagamento
su base annua o una tantum, in base alle politiche commerciali del produttore.
• Alcune piattaforme permettono di scrivere app Universali. Android e Windows permettono di
scrivere applicativi in grado di girare su tablet, PC Desktop e dispositivi cellulari.
10. Sviluppare una app mobile net-oriented
Informazioni generali
Costi di produzione
• In media, sviluppare una app mobile richiede 18 settimane, criticità escluse. I tempi possono
variare in base alle funzionalità dell’applicativo e alle API esposte dal sistema operativo.
• Utilizzare framework come Xamarin che mette a disposizione la stessa piattaforma per tutti i
dispositivi solitamente dimezza il tempo necessario a passare da una piattaforma all’altra,
partendo da una app mobile già realizzata. I costi di una licenza Xamarin possono
raggiungere i 1899 $ all’anno per piattaforma.
• I costi di registrazione agli store variano da produttore a produttore. Ad oggi, sono richiesti
circa 99 $ per un account aziendale da sviluppare Microsoft e 25$ per un account Google
Play. Apple fornisce due livelli di account per sviluppatore: standard, 99$, e Enterprise, 299$.
La differenza sta nel fatto che l’account Enterprise permette il deploy di uno store privato.
Microsoft e Google richiedono il pagamento una tantum, mentre l’account Apple viene
rinnovato annualmente secondo la tariffa della tipologia di account scelto.
• Microsoft permette lo sviluppo tramite le versioni Express dei suoi tools, portando
virtualmente a zero i costi del software. Sono supportate tutte le versioni a pagamento di
Visual Studio. Google utilizza Eclipse, software Open Source. Apple richiede XCode, gratuito,
e l’acquisto di computer Mac. Non è possibile compilare il codice su dipositivi non Apple.
11. Sviluppare una app mobile net-oriented
Credits
• Data ultima modifica: 10/11/2014
• Autore: Morvillo Alessandro
Le informazioni sulla durata media delle fasi di sviluppo di una app provengono da Kinvey e una ricerca AYTM su 100 app iOS, Android e HTML5.