Guida rapida
allo sviluppo di app in-house
Panoramica
Dai vita alle tue idee per app in-house. Ecco come.
La tua azienda è unica, e lo sono anche i tuoi utenti. C’è un mondo di possibilità per soddisfare le loro
esigenze con innovative app mobili che possono cambiare il loro modo di lavorare. La maggior parte
dei team di sviluppo interni ha dei limiti. Che siano limiti economici, organizzativi o di risorse, devi
concentrarti sulla creazione di app che rispondano realmente alle esigenze della tua azienda.
iOS ti offre una soluzione eccezionale per creare queste app. Lo sviluppo per iOS può essere rapido
ed estremamente gratificante, e può permetterti di sviluppare app che forniscano vantaggi immediati
agli utenti. Non dovrai ricorrere a processi costosi ed eccessive risorse per fare la differenza nella
tua azienda, anche se dovrai concentrare i tuoi sforzi in modo diverso da come avresti fatto con un
normale progetto di sviluppo in-house.
Questa guida ti aiuterà a fare proprio questo, illustrandoti best practice per creare app mobili
eccezionali per i tuoi utenti e fornendoti suggerimenti e risorse che ti aiuteranno a organizzare il tuo
progetto per la massima efficienza.
Come usare questa guida
Checklist. Usa la checklist
in ogni capitolo per ripassare
e memorizzare i passaggi più
importanti del processo di
sviluppo.
Suggerimenti veloci. Ottieni
informazioni fondamentali
per il processo con una risorsa
facilmente accessibile.
Checklist per la distribuzione
Al termine della fase di distribuzione, dovresti aver completato quanto
segue.
Creazione del profilo di fornitura e del certificato aziendale
Definizione di un server web di distribuzione o di una soluzione per la
distribuzione delle app in wireless
Annuncio della soluzione agli utenti finali
Suggerimento veloce: mini app
• App semplici, veloci e ben fatte creeranno
una domanda interna e ridurranno al
minimo la portata e l’investimento.
• Le mini app possono creare un’esperienza
completa. Gli utenti svilupperanno le proprie
“soluzioni” personali e avranno quindi più
flessibilità.
La guida è suddivisa in quattro sezioni.
Pianificazione: come definire il progetto, mettere insieme i requisiti e pianificare
il processo di sviluppo.
Progettazione: come sfruttare i concetti di design dell’interfaccia di iOS per essere
sicuri che le app in-house piacciano agli utenti.
Esempi. Esplora gli esempi dei
clienti per spunti e idee su come
altre aziende hanno creato app
in-house per iPhone e iPad.
“Dovevamo trovare un modo per
fare aggiornamenti e modifiche
molto rapidamente, perciò
abbiamo scelto un approccio
ibrido, con gli elementi nativi
dell’interfaccia utente che
risiedevano sul telefono e il resto
sul web.”
- Giancarlo De Lio, Mt. Sinai Hospital
Sviluppo: come realizzare le app in-house e usare al meglio gli strumenti messi a
disposizione da Apple, come il kit SDK per iOS.
Distribuzione: come distribuire le app all’interno dell’azienda e realizzare il tuo
servizio di distribuzione over-the-air.
Collegamenti rapidi.
Dai un’occhiata a questi
riferimenti rapidi per maggiori
informazioni sullo sviluppo di
app in-house per iOS.
Collegamenti rapidi
FAQ sull’iscrizione ai programmi
http://developer.apple.com/support/ios/enrollment.html
FAQ sull’iOS Developer Enterprise Program
http://developer.apple.com/support/ios/enterprise.html
Iniziamo.
Panoramica
2
Pianificazione
La creazione di un’ottima app richiede un ottimo piano. È importante che le persone coinvolte
all’interno dell’azienda si sentano in sintonia con l’obiettivo del progetto e partecipino attivamente
alla formulazione del piano. Più il team comprende il bilancio del lavoro durante il processo e i
passaggi da eseguire per realizzare il piano, maggiore sarà l’efficacia con cui potrà creare qualcosa di
eccezionale.
Nell’ambito del piano, tu e il tuo team dovreste valutare i seguenti aspetti.
• Requisiti dell’azienda e degli utenti. Assicurati che la soluzione risponda a reali esigenze aziendali.
Permette di risparmiare tempo e/o denaro, aumentare la produttività dei dipendenti o soddisfare un
requisito che contribuisce al successo dell’azienda?
Checklist per la pianificazione
Fai riferimento a questa lista durante la fase di pianificazione del progetto.
Al termine della fase di pianificazione, dovresti avere un capitolato che
include quanto segue.
Inventario di tutti i potenziali requisiti/esigenze aziendali
Inventario delle esigenze degli utenti (da allineare con i requisiti aziendali)
Requisiti dell’infrastruttura IT per supportare il progetto
Definizione dell’applicazione che descrive l’app e lo scopo della soluzione
• Infrastruttura/risorse esistenti. Puoi recuperare risorse preziose riutilizzando e adattando all’ambiente
mobile qualcosa che hai già creato.
Fasi salienti e tempistica generale del progetto
• Facilità di implementazione. Inizia dalle cose semplici: cerca progetti con un tempo di ritorno rapido,
che ti permettano di dimostrare in modo più immediato i risultati positivi del tuo lavoro.
Avvio del processo di iscrizione all’iOS Developer Enterprise Program
Team di persone coinvolte con definizione di ruoli e responsabilità
Tenere a mente questi concetti di pianificazione ti aiuterà a mettere a fuoco il tuo progetto. Questo
capitolo esplorerà i passaggi che puoi eseguire per organizzare e far partire rapidamente il progetto.
Informazioni dagli utenti
Mettiti nei panni degli utenti. Trascorri un po’ di tempo nel loro ambiente di lavoro partecipando
a qualche riunione o accompagnandoli sul campo. Otterrai informazioni preziose su abitudini
lavorative, rallentamenti del flusso di lavoro e problematiche dei dipendenti o dei clienti. Invita gli
utenti più interessati o entusiasti a unirsi al team di progetto per offrire uno scambio continuo di
informazioni.
Per fornire agli utenti e all’azienda il maggior vantaggio possibile, nel minor tempo, occorre
identificare quale problema può essere risolto da un’app mobile.
Quando inizi a sviluppare app, non fare il passo più lungo della gamba. Circoscrivi le idee per quello
che potresti costruire a quello che dovresti costruire.
Pianificazione • Progettazione • Sviluppo • Distribuzione
“C’era una comunicazione diretta
tra sviluppatore e dipendenti.
Siamo perfino andati in cantiere
indossando caschi di sicurezza
e scarpe antinfortunistiche
per vedere esattamente ciò di
cui avevano bisogno e come
avrebbero usato l’app.”
- Dean Moore, Sunbelt Rentals
3
Cerca alcune semplici attività che la maggior parte degli utenti svolge spesso e pensa a come un’app
mobile potrebbe facilitarle. Ecco alcuni esempi.
• Una semplice app che permette ai dipendenti di approvare un resoconto spese o un ordine di
acquisto in mobilità.
Esempio: inventario delle risorse
Queste domande possono aiutarti a capire se nell’app puoi riutilizzare
tecnologie esistenti.
• Una directory aziendale o una mappa della sede che chiunque può usare.
• Quali sistemi usano ogni giorno i dipendenti che lavorano di più fuori sede?
• Uno strumento per trovare sale riunioni che i dipendenti possano usare facilmente quando non sono
davanti al computer.
• Quali sono i principali requisiti dei lavoratori fuori sede?
• Una semplice app di time-tracking che si colleghi al sistema di gestione o fatturazione centrale.
Inventario delle risorse
Spesso la via migliore per creare un’app in-house in modo efficiente è sfruttare le tecnologie esistenti.
Potresti fare un inventario dei tuoi siti web per i dipendenti e decidere se ha senso ottimizzarli per
iPhone o iPad. Oppure potresti avere sistemi di back-end con dati in un formato facilmente trasferibile
in un contesto mobile. Inoltre, non dimenticare le app sull’App Store: potrebbe esserci già un’app che
soddisfa le tue esigenze. Leggi la sezione “Esempio: inventario delle risorse” (a destra) per un elenco di
domande che possono aiutarti a esaminare l’ambiente esistente.
Definizione dell’app
Una volta valutate le esigenze degli utenti e le possibili soluzioni mobili per soddisfarle,
dovrai perfezionare tali concetti in un piano conciso da condividere con le persone coinvolte nel
progetto.
L’elemento più importante nella definizione del progetto è la definizione dell’applicazione, ovvero una
breve descrizione dello scopo dell’app. Una definizione dell’applicazione può aiutarti a evitare due
insidie comuni:
• hai un’app desktop che vuoi trasferire in ambiente mobile, e quindi un lungo elenco di funzioni da
portare nel nuovo ambiente;
• hai un’ottima idea per una nuova app mobile, ma ti concentri subito sulle funzioni anziché sullo scopo
principale dell’app.
Pianificazione • Progettazione • Sviluppo • Distribuzione
• Quali processi manuali possono essere automatizzati o semplificati da app
mobili?
• Hai sistemi non mobili che potrebbero essere utili ai lavoratori fuori sede?
• Quali funzioni di questi sistemi vengono utilizzate più spesso?
• Quale tipo di accesso ai dati è fornito dai sistemi della tua azienda? I dati sono
facilmente accessibili tramite servizi web?
• Hai siti web interni a cui i dipendenti accedono ogni giorno? Potrebbero
diventare facilmente delle app?
“Abbiamo esaminato le diverse
linee di prodotti e ci siamo chiesti
dove avremmo potuto usare una
soluzione mobile, quali fossero le
priorità e quali obiettivi avremmo
dovuto perseguire. A partire dal
nostro portfolio prodotti abbiamo
individuato ciò che sarebbe stato
più utile.”
- James Blomberg, General Electric
4
Creazione di una definizione dell’app
Inizia scrivendo una definizione dell’app che includa quanto segue.
• Lo scopo dell’app
• Gli utenti finali e come verrà usata
• Le funzionalità di base
Assicurati che la definizione descriva una soluzione e le sue funzionalità di base, non una serie
dettagliata di funzioni. Dovresti avere una definizione efficace dello scopo da usare per filtrare le idee
per le funzioni. Per ogni funzione chiediti se è utile allo scopo previsto. Quindi limita la scelta a quelle
usate più spesso e più appropriate a un contesto mobile. Non devi ritrovarti con un elenco lungo e
dispersivo di funzioni difficili da realizzare o che non risolvono il problema. Rimanendo concentrato
sulla definizione dell’app, offrirai agli utenti la maggiore produttività possibile in un pacchetto facile da
usare.
Pianificazione del processo di sviluppo
In genere, la creazione di software aziendale richiede molte risorse nella fase di sviluppo. Grazie al
kit SDK per iOS e a framework Cocoa Touch di alto livello, i team di sviluppo possono dedicare meno
tempo al codice e più tempo alla progettazione di un’esperienza utente ideale. Questo processo ti
permette non solo di fornire un’app per i dipendenti più rapidamente, ma anche di offrire soluzioni che
superino le aspettative degli utenti.
Esempio: definizione dell’applicazione
Ecco come potrebbe essere la definizione di un’app per avvocati che
consente di registrare le ore di lavoro.
• Scopo: registrare le ore di lavoro e quelle da fatturare per ogni cliente
• Utenti finali: avvocati dell’azienda che devono registrare le ore da fatturare
• Uso: a ogni incontro con i clienti per registrare le ore da fatturare
• Funzionalità di base: registrare e inviare le ore di lavoro al sistema CRM
• Definizione completa: app per avvocati per registrare le ore di lavoro e
quelle da fatturare per ogni cliente
• Funzioni che rientrano nella definizione: cronometro, elaborazione
/registrazione in background, integrazione del server con il sistema CRM,
ricerca dei record dei clienti per associare le ore registrate al cliente/caso,
sincronizzazione online/offline basata sulla connettività di rete
• Esempio di funzioni che non rientrano nella definizione o esulano dallo
scopo del progetto: avvisi di nuovi casi, consultazione di documenti legali,
mappa delle sedi dei clienti, interfaccia di ricerca brevetti
Sia che usi un processo di sviluppo agile che un metodo “a cascata” più tradizionale, assicurati di
pianificare il tempo e le risorse da investire nel processo di design come parte fondamentale e costante
dello sviluppo dell’app.
Stabilisci una tempistica approssimativa del processo che hai in mente e i ruoli di ogni persona
coinvolta in ogni fase del percorso. La tempistica non deve essere definitiva, ma può fornire un punto
di riferimento comune per tutte le persone coinvolte.
Suggerimento veloce: crowdsourcing
Genentech sa che le idee migliori possono arrivare da chiunque, ovunque,
quindi è stato creato un modello di crowdsourcing per raccogliere i
suggerimenti dei dipendenti sulle app che avrebbero voluto veder sviluppare
internamente. Da allora sono già state realizzate le cinque app più richieste,
con grande soddisfazione degli utenti che le hanno adottate al volo.
Pianificazione • Progettazione • Sviluppo • Distribuzione
5
Creazione di un capitolato
Esempio: team di progetto tipico
Per aiutarti a rimanere concentrato sul processo e a comunicarlo, il tuo piano dovrebbe includere un
capitolato con tutte le risorse, gli obiettivi, le tempistiche e i principali materiali del progetto. Si tratta
di una guida importante per tutte le persone coinvolte. Il capitolato può includere requisiti tecnici
preliminari dell’app, nonché diagrammi di flusso o schemi visivi che aiutino a comunicare lo scopo
dell’app nella fase di sviluppo.
Code
Requirements
Release
• Training
• Coding of app
• Design and graphics
• Test cases
• Unit testing
• Scope project
• Obtain approvals
• Assemble team
Design
• Architecture design
• Project plan built
• Initial wireframes
• Developer sizings
• Internal release of app
• Stakeholder signoff
• Maintenance plan
Verification
• Testing on devices
• Automated UI tests
• Bug fixes
• Design review/tweaks
• Stakeholder walkthrough
Creazione del team
Come per ogni progetto, dovrai riunire un team di collaboratori che condividano un interesse comune
per il successo e il risultato del tuo progetto di app. Alcuni partecipanti potrebbero essere clienti
interni (un gruppo di utenti o il proprietario di una linea di business), mentre altri avranno il compito
di seguire parti specifiche del processo di sviluppo (designer, sviluppatori, architetti tecnici e così
via). Infine, dovrai allineare i ruoli e le responsabilità del team con la tempistica e le fasi salienti del
progetto esaminate nel punto precedente. Per esempio, il design è un elemento fondamentale in
qualsiasi progetto di sviluppo per iOS, quindi dovrai assicurarti di avere un team di design (o le risorse
da assegnarvi). La partecipazione e l’interesse nel risultato possono variare a seconda del gruppo,
pertanto è buona norma documentare i ruoli in modo che ognuno possa tenersi al corrente delle
responsabilità lungo il percorso.
Pianificazione • Progettazione • Sviluppo • Distribuzione
Line-of-Business Owner
Primary stakeholder and
app user
Executive Sponsor
Primary stakeholder,
responsible for strategic plan
Project Leader
Tracks schedules, timelines,
and overall scope of work
Product Manager
Delivers the app, manages
requirements, and reconciles
business needs with solutions
User Experience Architect
Responsible for framework
of user interaction model and
user process flow/journey
Technical Architect
Responsible for infrastructure,
security, and data access
models
Development Manager
Technical lead and project
manager
User Interface Designer
Responsible for app visual
design, graphics, and identity
IT Manager
Responsible for deployment
and life-cycle management
of apps
Developer
Responsible for overall
technical architecture
and coding
6
Sviluppo in outsourcing
Se non hai risorse in-house sufficienti, considera l’ipotesi di appaltare lo sviluppo, integralmente o in
parte, a risorse esterne. Gli sviluppatori esterni potrebbero anche presentarti un portfolio di lavori con
idee illuminanti.
Naturalmente, perché abbia successo, il team esterno deve comprendere appieno il tuo progetto,
ovvero tutto ciò che hai stabilito durante il processo di pianificazione, e deve interagire regolarmente
con te e con il team in-house. Parla delle tue esigenze e assicurati che capisca quali sono i tuoi
obiettivi. Rivedi la definizione dell’applicazione ed esamina attentamente i dettagli del progetto.
Assicurati fin dall’inizio di aver stabilito una comunicazione chiara e bidirezionale, e una procedura da
seguire per tenersi in contatto.
Devi definire il ruolo che avrà il fornitore esterno proprio come faresti per un membro del team
interno. Allinea i ruoli e le responsabilità con il piano e la tempistica del progetto in modo da poter
comunicare chiaramente circa gli aspetti di cui si occuperà il fornitore.
Suggerimento veloce: scelta di un fornitore esterno
• Incontra più fornitori.
• Dai un’occhiata al lavoro esistente, incluse le app sull’App Store; prendi nota
delle valutazioni e dei commenti degli utenti.
• Valuta abilità e capacità richieste: per esempio, tutto il codice verrà creato
in-house?
• Chiedi referenze.
• Ignora gli approcci multipiattaforma generici o “uno per tutti”.
• Concentrati sul design dell’interfaccia utente, sulla qualità della grafica e sul
“percorso” dell’app.
• Parla della manutenzione e del ciclo di vita dell’app dopo la versione 1.0.
• Informati sull’esperienza nelle infrastrutture IT.
Release
Requirements
In-house team responsibilities
Outsourced developer responsibilities
Design
Code
Verification
Alcuni partner esterni possono aiutarti per tutti gli aspetti del progetto, dai requisiti iniziali alla
distribuzione finale. Altri possono concentrarsi esclusivamente sulla scrittura del codice. È opportuno
parlare di tali capacità e servizi con il fornitore esterno, indipendentemente dal fatto che alla fine ti
rivolga a lui. Può essere utile valutare i suoi punti di forza e spiegare come definirai la relazione.
Pianificazione • Progettazione • Sviluppo • Distribuzione
“Usiamo collaboratori esterni per diversi aspetti. Dipende
dai requisiti dell’app. Se abbiamo bisogno di uno stile
molto specifico, ci rivolgiamo a collaboratori che hanno
realizzato cose simili, perché sappiamo che hanno già
esperienza. In questo modo possiamo offrire un prodotto
di qualità migliore ai nostri dipendenti e ai nostri clienti.”
- Todd Schofield, Standard Chartered Bank
7
Primi passi con l’iOS Developer Enterprise Program
Dopo aver messo insieme i requisiti, ottenuto informazioni dagli utenti e definito la tua applicazione
e il piano del progetto, il passaggio finale prima di passare alla fase di design è l’iscrizione all’iOS
Developer Enterprise Program. Questo programma offre un processo completo e integrato per
sviluppare, testare e distribuire app iOS per i dipendenti della tua organizzazione. Una volta registrato
al programma, potrai accedere agli strumenti e alle risorse elencati qui a destra.
Di seguito trovi una panoramica che ti aiuterà a capire come funziona il processo di iscrizione e a
muovere i primi passi. Per maggiori informazioni, vai su http://developer.apple.com/programs/ios/
enterprise.
Requisiti per l’iscrizione
Prima di iscriverti al programma, verifica quanto segue.
• Intendi distribuire le app iOS solo all’interno della tua azienda o organizzazione. L’iOS Developer
Enterprise Program è destinato a sviluppatori che vogliono sviluppare e distribuire le proprie app iOS
per i dipendenti della propria azienda o organizzazione.
• La tua azienda ha un numero Dun & Bradstreet (D-U-N-S). Dovrai fornirlo a Apple durante il processo
di iscrizione. Dovrai anche sapere la ragione sociale della tua azienda o organizzazione. Per richiedere
o ottenere un numero D-U-N-S, vai su http://dbitaly.dnb.com/Italian/Database/intl.asp.
• Sei autorizzato a vincolare l’azienda ad accordi legali. Durante la registrazione dovrai fornire un
contatto legale in grado di verificare che tu sia autorizzato a vincolare l’azienda al contratto di licenza
dell’iOS Developer Enterprise Program.
• Hai le capacità tecniche per firmare applicazioni in Xcode. Come membro che effettua l’iscrizione, sarai
l’agente del team, ovvero il responsabile delle attività tecniche di amministrazione dell’account e di
fornitura dell’app.
Panoramica: risorse dell’iOS Developer Enterprise Program
Iscrivendoti all’iOS Developer Enterprise Program ottieni i seguenti vantaggi.
• Accesso all’iOS Dev Center
• Accesso al kit SDK per iOS
• Software e strumenti pre-release selezionati
• Possibilità di creare il tuo team di sviluppo nella sezione Team del
Member Center
• Accesso ai forum degli sviluppatori Apple
• Interventi di supporto tecnico (due per iscrizione annuale al programma)
• Possibilità di testare le app direttamente su iPad, iPhone e iPod touch
• Distribuzione ad hoc della tua app su un massimo di 100 dispositivi registrati
• Distribuzione in-house aziendale a un numero illimitato di dispositivi dei
dipendenti
Suggerimento veloce: preparazione degli strumenti di sviluppo
Il requisito di base del kit SDK per iOS è un Mac basato su Intel.
Generalmente gli sviluppatori scelgono un MacBook Air o un MacBook Pro
per questioni di portatilità e flessibilità. Ma anche gli iMac o i Mac mini sono
ottime scelte, in particolare per chi ha un laboratorio di sviluppo in-house.
Inoltre, devi avere dei dispositivi di test. Se vuoi garantire una compatibilità
completa, assicurati di avere dispositivi di precedente generazione, per
esempio un iPhone 3GS o un iPad di prima generazione.
Panoramica sul processo di iscrizione
1. Registrati come sviluppatore Apple. Per iniziare il processo di iscrizione dovrai registrarti con Apple
creando un nuovo Apple ID dedicato al programma. È utile impostare un indirizzo email specifico per
questo account, in modo che la tua organizzazione possa assegnarlo a persone diverse se necessario.
Pianificazione • Progettazione • Sviluppo • Distribuzione
8
2. Inserisci le informazioni legali, di contatto e aziendali. Questi dati sono richiesti per convalidare il
tuo stato di entità aziendale. Il requisito principale è un numero D-U-N-S valido. Assicurati che il nome
e l’indirizzo dell’azienda corrispondano alle informazioni elencate nel database Dun & Bradstreet.
Nell’ambito del processo di verifica dell’identità, potresti dover fornire a Apple documenti aziendali,
per esempio atti costitutivi, accordi di gestione e licenze commerciali.
3. Invia a Apple. Una volta inviata l’iscrizione, puoi controllare lo stato accedendo al Member Center
per sviluppatori sul sito http://developer.apple.com/membercenter. Esegui l’autenticazione con l’Apple
ID creato al punto 1. In questa fase, Apple esaminerà l’app e contatterà te o i tuoi legali, se necessario.
4. Accetta il contratto di licenza dell’iOS Developer Enterprise Program. Per procedere con
l’iscrizione, dovrai accettare i termini della licenza del programma. A questo punto puoi leggere i
termini e condividerli con i tuoi legali.
5. Acquista il programma. Una volta accettati i termini, riceverai le istruzioni per acquistare l’iscrizione
tramite l’Apple Online Store. Se vuoi usare un ordine di acquisto, contatta il tuo Apple Store locale per
verificare se sono disponibili opzioni di approvvigionamento istituzionali.
6. Attiva l’iscrizione. Dopo aver acquistato il programma, riceverai una conferma d’ordine. Entro 24
ore, dovresti ricevere un’email di attivazione da Apple con un codice per attivare l’iscrizione. Una volta
effettuata l’attivazione, potrai accedere a tutte le risorse del programma.
Creazione del team
Panoramica: creazione del team
Gli agenti e gli amministratori possono aggiungere nuovi membri, con
ruolo di membro o amministratore, dalla scheda People del Member Center
per sviluppatori Apple. Per invitare nuovi membri a unirsi al team, basta
accedere alla sezione Invitations e cliccare sul pulsante Invite Person.
Agent
Admins
Members
Admin Setup and Distribution
Member Setup and Approvals
Development
Distribution Certificate
Development Certificates
Development Certificates
Enterprise Provisioning
Development Provisioning
Development Provisioning
Dopo che l’azienda sarà iscritta all’iOS Developer Enterprise Program, dovrai creare il team di sviluppo
nella sezione Team del Member Center.
Ruoli e responsabilità del team
Un team di sviluppo è composto da individui con i seguenti ruoli.
Agente. Il contatto principale del team di sviluppo, responsabile di accettare tutti i contratti dell’iOS
Developer Program, nonché l’utente principale che ha effettuato l’iscrizione al programma. Ha la
responsabilità di gestire il certificato di distribuzione aziendale utilizzato per la fornitura di app
destinate a una distribuzione su larga scala ai dipendenti.
Amministratore/i. Gli amministratori gestiscono i propri team e certificati di sviluppo. Per gestire la
distribuzione aziendale devono rivolgersi all’agente.
Membri. I principali sviluppatori all’interno dell’organizzazione. I membri ricevono l’approvazione
dagli amministratori per la fornitura di app e dispositivi a scopo di test e sviluppo. Per gestire la
distribuzione aziendale devono rivolgersi all’agente.
Pianificazione • Progettazione • Sviluppo • Distribuzione
Suggerimento veloce: registrazione dei dispositivi per lo
sviluppo
Gli amministratori possono inserire contemporaneamente diversi ID
dispositivo caricando un file .deviceids generato dall’Utility Configurazione
iPhone. Nell’Utility Configurazione iPhone, basta selezionare i dispositivi da
caricare e fare clic sul pulsante Esporta. Verrà creato un file .deviceids.
Vai su www.apple.com/it/support/iphone/enterprise per scaricare l’Utility
Configurazione iPhone.
9
Risorse di apprendimento
Dopo che avrai creato il team, visita l’iOS Dev Center sul sito http://developer.apple.com/devcenter/ios,
dove troverai una vasta gamma di risorse. Puoi aggiungerle ai preferiti o impostarle come home page
per tutto ciò che riguarda lo sviluppo. Di seguito sono elencate solo alcune delle fantastiche risorse
disponibili.
Forum
Entra in contatto con altri sviluppatori aziendali e condividi idee e best practice. È sempre
utile avere a portata di mano una community di sviluppatori che condividono i tuoi stessi
interessi.
Libreria di riferimento
Enciclopedia, libro di testo e prontuario, tutto in uno. Puoi fare ricerche, è suddivisa in
categorie e fornisce tutte le informazioni necessarie per sviluppare app.
Codice di esempio
Puoi trarre ispirazione dagli esempi per sviluppare le tue app. Puoi anche copiare e incollare
il codice di esempio direttamente nel tuo progetto.
“I codici di esempio disponibili su
Apple.com semplificano davvero
la visualizzazione di una funzione
specifica, come il drill-down o le
mappe, o l’integrazione con un
database SQL locale.”
- Keith Debickes, JM Family Enterprises, Inc.
Collegamenti rapidi
FAQ sull’iscrizione ai programmi
http://developer.apple.com/support/ios/enrollment.html
FAQ sull’iOS Developer Enterprise Program
http://developer.apple.com/support/ios/enterprise.html
Guide introduttive
Se sei alle prime armi, queste guide forniranno al tuo team i concetti fondamentali e le
best practice dello sviluppo per iOS.
Uno sguardo avanti
Quando il processo di pianificazione sarà completato, riprendi la checklist per la pianificazione all’inizio
di questo capitolo. Se hai eseguito ogni passaggio, probabilmente avrai ottenuto supporto a livello
esecutivo, impegno da parte del tuo team e un piano chiaro che tutti possono seguire. Il team sarà
pronto per la fase successiva del processo: esplorare le best practice di design e sviluppo, e acquisire
una conoscenza di base dei concetti dello sviluppo per iOS.
Pianificazione • Progettazione • Sviluppo • Distribuzione
10
Progettazione
Il design conta. Creare un’app di base per iPhone o iPad è semplice, ma le app di successo richiedono
qualche sforzo in più. Quali sono gli aspetti che attraggono l’utente? Hanno un design accattivante,
usano in modo eccellente i colori e l’audio, sono intuitive, funzionano come ci si aspetta, coinvolgono
l’utente e lo invogliano a ritornare. Se presti particolare attenzione al design quando crei una nuova
app o migliori un’app esistente, puoi aumentare la sua attrattiva, creare un’esperienza utente più
coinvolgente e rendere l’app piacevole da utilizzare.
Questo capitolo descrive alcune strategie che puoi adottare per perfezionare la tua idea, rivedere le
opzioni di design e definire un design di app che aumenterà la produttività degli utenti.
Progettazione per l’interazione tattile
Checklist per la progettazione
Al termine della fase di progettazione, dovresti aver completato
quanto segue.
Lettura delle iOS Human Interface Guidelines di Apple
Creazione di un breve elenco di caratteristiche in linea con la tua
definizione principale dell’applicazione
Assegnazione delle priorità a un elenco di oggetti, attività e concetti,
e definizione delle rispettive correlazioni
Creazione di una serie di wireframe e composizioni approssimative
per visualizzare il percorso dell’app
Progettare un’interfaccia utente per l’interazione con il mouse è molto diverso dal progettarla per
l’interazione tattile. Quando inizi a progettare un’app, devi sapere ciò che rende unici i dispositivi iOS.
Dedica un po’ di tempo a studiare un iPhone o un iPad e ad acquisire familiarità con le convenzioni di
design dell’interfaccia e di interazione con l’utente.
A livello base, per l’interazione tattile hai bisogno di più pixel per rappresentare un pulsante
selezionabile con un dito rispetto a quanti te ne servirebbero per un mouse in ambiente desktop.
Per esempio, gli elementi dell’interfaccia utente devono avere dimensioni minime di 44x44 punti
per poterli toccare comodamente. Elementi comuni sul desktop come i menu a discesa o le barre di
scorrimento non funzionano bene su un dispositivo mobile progettato per l’interazione tattile.
Linee guida per l’interfaccia utente
Le linee guida per l’interfaccia utente di iOS (iOS Human Interface Guidelines) descrivono i principi che
ti aiuteranno a progettare un’interfaccia e un’esperienza utente superlative per la tua app iOS. Questi
principi sono importanti sia per le app in-house aziendali sia per quelle create per l’App Store.
Pianificazione • Progettazione • Sviluppo • Distribuzione
“Uno dei modi che usiamo per garantire coerenza nelle
nostre app è seguire le linee guida per l’interfaccia
utente di Apple. Sono davvero utili per verificare che le
app siano coerenti tra loro. Possiamo scegliere stili di
design diversi, ma ci assicuriamo sempre che abbiano
uno stesso tema. Seguire queste linee guida è molto
importante per noi.”
- Todd Schofield, Standard Chartered Bank
11
Semplificazione
Spesso le tue app in-house aziendali saranno ricavate dall’ambiente di un’applicazione desktop
esistente o saranno basate su sistemi di linee di business da cui dipendono gli utenti. È facile cadere
nella trappola di voler trasferire sul dispositivo mobile ogni caratteristica e funzione dell’applicazione
desktop. Solitamente questo approccio non riesce a offrire il tipo di esperienza che ci si aspetta su un
dispositivo mobile. Ricorda che gli utenti eseguono le attività in modo diverso sui dispositivi mobili e
che alcune di esse potrebbero non risultare pratiche in questo contesto. Le piccole attività sono più
adatte all’ambiente mobile, e per questo è importante continuare a filtrare le funzioni in base alla
definizione dell’applicazione quando perfezioni la tua app. Suggerimento veloce: mini app
• App semplici, veloci e ben fatte creeranno
una domanda interna e ridurranno al
minimo la portata e l’investimento.
• Le mini app possono creare un’esperienza
completa. Gli utenti svilupperanno le proprie
“soluzioni” personali e avranno quindi più
flessibilità.
Ecco alcune domande che potresti farti per semplificare il design degli elementi di interfaccia dell’app.
• Ha senso che l’elemento sia visualizzato a video?
• L’elemento fornisce accesso a funzionalità importanti?
• È utilizzato spesso? Quasi sempre?
• L’utente ha bisogno dell’elemento ogni volta che effettua una selezione?
• Considerando il percorso dell’app, è importante visualizzare l’elemento ora?
Se la risposta a una di queste domande è negativa, forse puoi fare a meno dell’elemento. Oppure puoi
valutare se combinare la funzionalità con qualcos’altro.
Gli utenti di iPhone e iPad sono abituati all’aspetto e al comportamento delle app integrate in questi
dispositivi. Non devi imitare ogni singolo dettaglio delle app integrate, ma è utile capirne gli schemi
di progettazione e considerare come applicarli alle tue app creando un design semplice, funzionale e
intuitivo. Esamina queste app concentrandoti su controlli comuni, interazioni tattili (come pizzicare e
zoomare) e animazioni, e inizia a pensare a come potresti applicare coerentemente questi concetti alla
tua app.
Pianificazione • Progettazione • Sviluppo • Distribuzione
“Secondo la nostra filosofia, le
app interne devono essere belle
ed eleganti come le migliori
app commerciali. Perciò quando
abbiamo iniziato a progettare
l’interfaccia utente, non abbiamo
voluto concentrarci solo
sull’aspetto funzionale, ma anche
su quello estetico.”
- Mark McWilliams, Razorfish
12
Assegnazione di priorità
Quando un’app iOS colloca e mantiene al centro dell’attenzione la propria attività principale, dà
soddisfazione ed è piacevole da usare. Ogni parte della tua app deve essere in linea con il suo scopo.
Creare un elenco di oggetti, attività e concetti, e ordinarli in base alla rilevanza per lo scopo o l’attività
principale dell’app, ti aiuterà a offrire un’interfaccia utente organizzata e mirata. Questo passaggio
ti permetterà anche di riflettere sul flusso di lavoro o sul processo di interazione della tua app, che
determinerà le tue decisioni di design dell’interfaccia utente.
Inventario di oggetti, attività e concetti
Suggerimento veloce: display Retina
Il display Retina su iPhone 4 e successivi permette di
visualizzare versioni ad alta risoluzione di immagini
e icone. Se ingrandisci la grafica esistente, perdi
l’occasione di fornire agli utenti le splendide e
accattivanti immagini che si aspettano. Rielabora invece
le risorse delle immagini esistenti per creare versioni più
grandi e di maggiore qualità, più ricche di texture, più dettagliate
e realistiche.
• Oggetti. Sono i principali elementi funzionali dell’app. Per esempio, in un’app di calendario, sarebbero
i giorni, i mesi, gli appuntamenti e i promemoria.
• Attività. Sono le azioni solitamente eseguite sugli oggetti, per esempio filtrare, pianificare, modificare
e creare.
• Concetti. Sono i flussi di lavoro o, in alcuni casi, una serie di attività correlate che formano un concetto
più ampio. Usando l’esempio del calendario, un concetto potrebbe essere la ricerca, che includerebbe
più attività.
Objects
Calendars
Tasks
Scheduling
Concepts
Searching
Days
Create
Search
Weeks
Edit
Filter
Months
Search
Appointments
Reminders
Una volta creati questi elenchi, inizierai a notare qualche relazione tra gli elementi di ogni categoria.
Questo ti aiuterà a raggruppare oggetti, attività e concetti correlati in una gerarchia che dovrebbe
semplificare la loro presentazione all’utente.
Pianificazione • Progettazione • Sviluppo • Distribuzione
13
Dall’alto verso il basso
Posiziona gli elementi utilizzati più spesso (in genere di livello più alto) nella parte superiore dello
schermo, dove sono più visibili e accessibili. Poiché l’utente esamina lo schermo dall’alto verso il basso,
gli elementi dovrebbero essere visualizzati in modo progressivo in base ai seguenti criteri.
• Frequenza di utilizzo: gli elementi utilizzati più spesso dovrebbero essere più in alto, quelli utilizzati
meno, più in basso.
• Importanza per l’utente: gli elementi più importanti dovrebbero essere più in alto.
• Impatto visivo: gli elementi che devono apparire in una posizione di maggiore rilievo devono essere
più in alto.
Lo stesso approccio è valido per le informazioni contenute nell’app. Dovrebbero progredire dal
materiale più generale nella parte superiore dello schermo a quello più specifico nella parte inferiore.
Ottimizzazione
Un buon design è un processo iterativo. Più eserciterai i tuoi concetti di design dell’interfaccia all’inizio
del processo (prima di scrivere il codice), migliori saranno i risultati finali.
Suggerimento veloce: fai uno schizzo dell’app
Fai prove su carta. Spesso
il modo migliore per
illustrare la tua visione di
design è creare schizzi nella
fase iniziale del processo
che aiutino a modellare e
perfezionare il design senza
dover sostenere i costi dello
sviluppo del codice. Puoi
acquistare pratici modelli
online per realizzare e rifinire
rapidi schizzi.
Fai prove con un’app. Sull’App Store trovi app come iMockup e App Layout
che consentono di creare modelli di interfacce utente per iOS usando
controlli e viste standard.
È importante inoltre ottimizzare il design in base agli utenti e al dispositivo target. Le app migliori
compensano i concetti di interazione dell’utente, che varieranno in base alle caratteristiche uniche del
dispositivo. Ottimizzare l’app significa rifinire e fare prove con questi concetti in modo che il risultato
finale sia piacevole per gli utenti.
Prove
Prima di iniziare a creare un’app, avrai bisogno di una serie di progetti. Potresti iniziare con qualche
schizzo e rifinire le idee nel tempo. Ogni volta acquisirai più informazioni su come l’utente potrebbe
interagire con l’app e nuove idee che potresti integrare, tutto ciò senza investire tempo, denaro o
risorse nello sviluppo effettivo. Disegna o fai uno schizzo dell’intero percorso dell’app, dall’inizio alla
fine, per farti un’idea completa dell’esperienza utente e delle funzionalità che creerà il tuo design.
Pianificazione • Progettazione • Sviluppo • Distribuzione
14
iPad o iPhone?
Se hai intenzione di sviluppare un’app che funzioni sia su iPhone sia su iPad, dovrai adattare il design
a ciascun dispositivo. Anche se la maggior parte degli elementi dell’interfaccia utente sono disponibili
su tutti i dispositivi, in genere il layout complessivo è estremamente diverso. Per esempio, gli utenti
tendono ad aspettarsi che la fedeltà della grafica sia maggiore nelle app per iPad che in quelle per
iPhone. Non è consigliabile ingrandire semplicemente un’app per iPhone per riempire il display
dell’iPad. Dovrai invece far sì che la tua app per iPad coinvolga l’utente in modi che sfruttano appieno
il suo grande schermo e le sue capacità. Ricorda inoltre che iPhone 4 e successivi supportano una
grafica a maggiore risoluzione grazie al display Retina, che richiede una risoluzione delle immagini
raddoppiata. Ci sono poi differenze nei gesti disponibili e nei modi in cui è gestita la rotazione. I
dispositivi supportano anche elementi diversi dell’interfaccia utente. Per esempio, i controller per la
visualizzazione popover o a schermo diviso sono esclusivi dell’iPad.
“L’iPad ci ha fornito decisamente più spazio e abbiamo
voluto sfruttarlo. Questo è stato fondamentale per noi.
Non si è trattato solo di ingrandire tutto del triplo o di
aumentare il numero di pixel, ma di assicurarci di usare in
modo appropriato quello spazio... Per trasferire un’app da
un iPhone a un iPad, occorre ripensarla. Probabilmente il
60% delle funzionalità chiave resterà uguale, ma cos’altro
possiamo fare? Come possiamo renderla più utilizzabile o
ridurre il numero di clic o schermate per accedere a ogni
cosa?”
- James Blomberg, General Electric
App universali
Il kit SDK per iOS supporta lo sviluppo di applicazioni universali. Si tratta di app ottimizzate per
funzionare su tutti i dispositivi iOS: in pratica, un’app per iPhone e un’app per iPad in un unico file
binario.
Un’app universale può determinare su quale dispositivo è stata installata e operare al meglio per
quell’ambiente. Se sviluppate correttamente, le app universali sfruttano le caratteristiche hardware
specifiche del dispositivo, forniscono la giusta scelta di elementi di interfaccia, e usano solo le funzioni
supportate da quel particolare dispositivo.
Nella progettazione di un’app universale per iOS, è importante pensare a come separare l’interazione
dell’utente dal codice dell’applicazione sottostante. Le classi e le API del kit SDK per iOS usano un
paradigma Model-View-Controller (MVC) che invita a una separazione netta dei dati e della logica
dell’app dalle viste utilizzate per presentare tali dati. La creazione dell’interfaccia utente con Interface
Builder, per esempio, offre al tuo progetto questo tipo di flessibilità (vedi capitolo successivo).
Il primo passo per realizzare un’app universale è creare dei design di interfaccia per ogni fattore di
forma: un design per dispositivi iPad e un altro per dispositivi iPhone/iPod touch. Gran parte del
design sarà influenzato dalle funzioni che vuoi presentare in ciascuno dei diversi fattori di forma.
Pensa a come gli utenti potrebbero usare diversamente l’orientamento o i gesti. Considera le capacità
hardware di ogni dispositivo, come la fotocamera. Le differenze nel modo in cui gli utenti usano
il dispositivo dovrebbero determinare il tuo approccio a un design coerente per ciascuno e dove
potresti aver bisogno di codice condizionale.
Pianificazione • Progettazione • Sviluppo • Distribuzione
15
Accessibilità
In un ambiente aziendale è importante fornire a tutti gli utenti le stesse possibilità di accesso a
tecnologie e strumenti mobili. iOS include fin da subito diverse funzioni che rendono ogni dispositivo
accessibile e facile da usare per tutti. Tuttavia, è importante ottimizzare anche le tue app in-house per
l’accessibilità in modo che gli utenti con disabilità visive, uditive e fisiche possano utilizzarle.
iOS include l’interfaccia di programmazione UI Accessibility, un’API semplificata che permette a un’app
di fornire a VoiceOver tutte le informazioni necessarie per descrivere l’interfaccia in modo che utenti
non vedenti o ipovedenti possano usare l’app. Con l’interfaccia di programmazione UI Accessibility
puoi aggiungere un livello di funzionalità che non altera l’aspetto dell’app né interferisce con la sua
logica principale. Ciò significa che, se usi controlli e viste standard, gran parte del lavoro per rendere
accessibile l’app sarà già fatto. In base al livello di personalizzazione dell’app, per renderla accessibile
può essere sufficiente fornire descrizioni utili e precise degli elementi accessibili dell’interfaccia utente.
Il kit SDK per iOS fornisce inoltre questi strumenti per aiutarti a rendere accessibile l’app.
• Una scheda impostazioni in Interface Builder che permette di fornire facilmente informazioni
descrittive per l’accessibilità mentre crei file NIB.
Suggerimento veloce: integrazione del supporto per VoiceOver
Rendere accessibile la tua app iOS agli
utenti di VoiceOver è un’ottima cosa.
Potrebbe aiutarti anche a seguire le
linee guida per l’accessibilità stabilite
da diversi organi amministrativi.
Per assicurarti che gli utenti di
VoiceOver possano usare l’app, non
dovrai modificare l’aspetto grafico
dell’interfaccia in alcun modo. Se usi
elementi standard, il lavoro extra sarà
ridotto al minimo.
Tuttavia, potresti dover fornire qualche descrizione delle viste e dei controlli
dell’interfaccia utente. Quanto più personalizzata è l’interfaccia utente,
maggiori saranno le informazioni personalizzate che dovrai fornire per
consentire a VoiceOver di descrivere con precisione l’app.
• Accessibility Inspector, che mostra le informazioni per l’accessibilità incorporate nell’interfaccia utente
dell’app e ti permette di verificare queste informazioni quando esegui l’app nel Simulatore iOS.
Puoi anche usare VoiceOver stesso per testare l’accessibilità dell’app.
Uno sguardo avanti
Una volta acquisite le best practice sul design dell’interfaccia utente, sarai pronto a passare alla fase
di sviluppo del progetto. Tuttavia, come abbiamo visto nel capitolo sulla pianificazione, il design è
un processo iterativo che riguarda tutto il ciclo di sviluppo dell’app. Realizzare un buon design con
una particolare attenzione per l’esperienza utente dovrebbe essere una strategia da osservare anche
quando il team di sviluppo inizia a compilare il codice. La serie di strumenti e i concetti esaminati nel
prossimo capitolo ti aiuteranno a fare proprio questo: sviluppare codice solido e allo stesso tempo
offrire agli utenti app ben progettate.
Pianificazione • Progettazione • Sviluppo • Distribuzione
16
Sviluppo
Con iOS puoi fornire contenuti e informazioni in modo semplice ma efficace, aiutando i dipendenti a
fare di più e meglio. Sfruttando il kit SDK per iOS, il tuo team di sviluppo creerà app usando gli stessi
strumenti utilizzati dagli ingegneri Apple per creare il sistema operativo e le app fornite di serie su
ogni iPhone e iPad. In questo modo potrai creare app dall’aspetto elegante e che rispondano agli
utenti con la massima efficienza.
Usando gli strumenti di iOS puoi usufruire di framework di alto livello che ti permettono di sfruttare
appieno la piattaforma. Esploreremo le principali API per lo sviluppo in-house per darti idee su come
integrare tali funzioni nelle tue app. Vedremo anche come puoi sfruttare tecnologie web usando HTML5,
CSS e JavaScript. Con le giuste funzioni di sicurezza integrate nella tua soluzione, queste tecnologie
collaborano per creare fondamenta sicure e potenti che supportino le esigenze della tua azienda.
Infine, prima che tu possa considerare la tua app pronta per gli utenti, dovrai sottoporla a una
procedura accurata di test e debugging. Dovrai anche verificarne le prestazioni su diversi dispositivi.
Vedremo come gli strumenti di iOS possono aiutarti a eseguire queste attività e ti suggeriremo best
practice per assicurarti che l’app funzioni come vuoi tu.
Checklist per lo sviluppo
Al termine della fase di sviluppo, dovresti avere una conoscenza di base
dei seguenti argomenti.
Strumenti del kit SDK per iOS, tra cui Xcode, Interface Builder, Instruments
e Simulatore
Principali API e framework per lo sviluppo in-house aziendale
Sviluppo di web app
Architettura di iOS per l’accesso ai dati in sistemi di back-office
Best practice per la protezione delle app in-house
Test, debugging e verifica delle prestazioni delle app
Sviluppo nativo
Lo sviluppo in-house è incentrato sul realizzare la visione del tuo design di app, sullo sfruttare appieno
le capacità del dispositivo e sull’eseguire tutto ciò in un ambiente organizzato ed efficiente. Il kit SDK
per iOS include Xcode, l’IDE per compilazione, building e debugging dell’app, Interface Builder per la
creazione dell’interfaccia utente, Instruments per l’analisi di comportamento e prestazioni, e decine di
altri strumenti.
“In base all’esperienza del mio team, l’SDK e Xcode sono
strumenti di programmazione eccezionali e intuitivi, anche
per sviluppatori senza un background Mac.”
- Hans-Christian Pahlig, Axel Springer
Xcode è il cuore della tua esperienza di sviluppo. Offre completamento del codice, analisi
statica in tempo reale e debugging istantaneo sul dispositivo.
Interface Builder semplifica la realizzazione del prototipo dell’app. Basta trascinare gli
elementi per creare un’interfaccia utente completa senza scrivere alcun codice. In Xcode 4,
Interface Builder è integrato direttamente nell’IDE di Xcode.
Instruments raccoglie e visualizza in tempo reale dati come l’uso del disco, della memoria o
della CPU, semplificando l’individuazione di eventuali aree problematiche.
Il Simulatore esegue l’app in modo pressoché analogo a un dispositivo iOS permettendoti
di verificare e testare il codice direttamente dall’ambiente desktop.
Pianificazione • Progettazione • Sviluppo • Distribuzione
17
Principali API per sviluppatori in-house
Il kit SDK per iOS fornisce strumenti che ti permettono di scrivere praticamente qualsiasi funzione
immaginabile. Molti di questi strumenti includono anche codice di esempio e risorse per aiutarti a
iniziare rapidamente. Diamo un’occhiata ad alcune delle migliaia di API presenti nel kit. Una breve
panoramica è già sufficiente a darti un’idea delle incredibili funzioni che puoi includere facilmente
nelle tue app in-house.
Multitasking. Gli sviluppatori hanno accesso a sette servizi multitasking che permettono di
eseguire operazioni in background senza compromettere prestazioni e durata della batteria.
Questi includono funzioni come VoIP, audio in background, servizi di localizzazione in
background, notifiche push e locali, ultimazione dei task e veloce passaggio tra app.
Notifica push. Con il servizio di notifiche push Apple puoi avvisare i tuoi utenti della
disponibilità di nuove informazioni anche quando l’app non è aperta. Invia notifiche di testo,
attiva avvisi audio o aggiungi un badge numerato all’icona dell’app.
Xcode è il cuore della tua esperienza di sviluppo e offre completamento del codice,
analisi statica in tempo reale e debugging istantaneo sul dispositivo.
Accessori. Le applicazioni possono comunicare con gli accessori tramite il
connettore dock a 30 pin o in wireless via Bluetooth. Sviluppa un’app che riceve dati da
sensori esterni o controlla accessori per mezzo di una sofisticata interfaccia Multi-Touch.
Crea un’app di inventario per il tuo lettore di codici a barre. O progetta un’app che registri e
tenga traccia delle letture di un cardiofrequenzimetro collegato. Puoi anche creare protocolli
ad hoc per lo scambio di dati e comandi con la tua app. Per scoprire come aggiungere al
tuo accessorio il supporto per app iOS, consulta il programma di licenze MFi (“Made for
iPhone/iPod/iPad”) sul sito http://developer.apple.com/programs/mfi.
Servizi di localizzazione. Usa il framework Core Location per determinare latitudine e
longitudine attuali di un dispositivo e per configurare e pianificare la distribuzione di eventi
relativi alla posizione. Il framework utilizza l’hardware disponibile per triangolare la posizione
dell’utente in base alle informazioni di segnali nelle vicinanze. In iOS 4 e successivi sono
stati apportati miglioramenti alle mappe grazie all’API MapKit, che offre il supporto per
panoramiche e zoom, annotazioni personalizzate, identificazione della posizione attuale, e
perfino geocoding per evidenziare alcune regioni della mappa e visualizzare informazioni
aggiuntive.
Pianificazione • Design • Sviluppo • Distribuzione
18
Integrazione di dati condivisi. iOS fornisce potenti opzioni di connettività per condividere
informazioni tra le app. Usando una sintassi via URL, puoi accedere ai dati dal web, nonché
attivare azioni in altre app installate, come Mail, Calendario, Contatti e altre. La tua app può
anche dichiarare uno schema URL univoco che permetta a qualsiasi applicazione di avviarla.
• Mail. iOS ti consente di presentare un’interfaccia standard di Mail o per la composizione di
SMS all’interno della tua app. In entrambi i casi, puoi preconfigurare programmaticamente
il messaggio con destinatari e contenuti che l’utente potrà modificare prima dell’invio. La
posta in uscita e i messaggi SMS sono gestiti automaticamente dalle code di Messaggi e
Mail del sistema.
• Contatti. Con le API Address Book per i dati condivisi, la tua app può creare un nuovo
contatto o ottenere informazioni sui contatti esistenti. Accedendo alla rubrica integrata, la
tua app può permettere agli utenti di associare l’indirizzo di un contatto o un’azienda a un
processo o un’operazione.
• Calendari. Event Kit permette alle app iOS di accedere alle informazioni sugli eventi
contenute nel database di Calendario di un’utente. Recupera eventi in base a un
intervallo di date o un identificatore univoco, ricevi notifiche quando i record degli eventi
cambiano, e permetti agli utenti di creare e modificare eventi per i propri calendari. Le
modifiche apportate agli eventi nel database di Calendario di un utente con Event Kit
sono automaticamente sincronizzate con il calendario appropriato, inclusi quelli aziendali
ospitati su server CalDAV ed Exchange.
Interface Builder, integrato direttamente nell’IDE di Xcode 4, semplifica la
realizzazione del prototipo dell’app. Basta trascinare gli elementi per creare
un’interfaccia utente completa senza scrivere alcun codice.
• Immagini. UIKit offre accesso alla libreria di foto dell’utente. L’interfaccia del browser foto
fornisce controlli per navigare la libreria di foto e selezionare un’immagine da riportare
nella tua app. Hai anche la possibilità di attivare controlli di fotoritocco che consentano
all’utente di spostarsi sull’immagine restituita e ritagliarla. Infine, puoi usare UIKit per
fornire un’interfaccia alla fotocamera, in modo che le foto scattate possano essere caricate
direttamente nella tua app.
Core Animation
Audio e video. Le tecnologie multimediali presenti nel kit SDK per iOS ti permettono
di implementare nella tua app sofisticate capacità audio e video. Il framework Media
Player supporta la riproduzione a tutto schermo dei file video, e il supporto integrato
per lo streaming live HTTP semplifica l’uso di server web standard per la trasmissione di
contenuti audio e video di alta qualità over-the-air. La tua app può anche sfruttare Core
Audio per generare, registrare, mixare, elaborare e riprodurre audio. Usa Core Animation per
aggiungere fluidità e dinamicità all’interfaccia utente. O sfrutta OpenGL ES per una grafica
2D e 3D ad alte prestazioni.
Pianificazione • Progettazione • Sviluppo • Distribuzione
19
Sviluppo web
Le web app rappresentano una categoria del tutto nuova di app mobili e stanno spianando la strada
a nuove opportunità per le imprese. Si tratta di pagine web personalizzate che sfruttano le funzioni
evolute di HTML, CSS e JavaScript per offrire agli utenti di iOS un’esperienza avvolgente. E creando
applicazioni con HTML, puoi sviluppare web app in qualsiasi ambiente di sviluppo web. Per la
distribuzione è sufficiente disporre di una pagina web: modifiche e aggiornamenti potranno essere
gestiti dal server web che la ospita. Diamo ora una rapida occhiata alle tecnologie disponibili per
creare web app per dispositivi iOS.
HTML5 è la più recente specifica di HTML, lo standard primario che determina come i
contenuti web interagiscono con i moderni browser. HTML 5 consente agli sviluppatori di
integrare contenuti multimediali direttamente nelle pagine web standard, riducendo i tempi
di sviluppo e potenziando l’interattività delle web app.
Animazioni CSS3 ed effettivi visivi ti permettono di creare sofisticate interfacce utente
grafiche per le web app. Puoi usare sfumature, maschere e riflessi, ma anche complessi
effetti 2D e 3D. Abbinati al Multi-Touch consentono di ottenere web app che interagiscono
con l’utente, proprio come le applicazioni native dell’iPhone e dell’iPad.
Il Simulatore esegue l’app in modo pressoché analogo a un dispositivo iOS
permettendoti di verificare e testare il codice direttamente dall’ambiente desktop.
E poiché include il browser Safari per iOS, puoi anche testare e verificare le web app
prima della distribuzione.
WebKit è un motore open source per i browser web. Cuore di Safari su iPhone e iPad, WebKit
semplifica lo sviluppo web e accelera l’innovazione. È un set di strumenti open source,
quindi tutti possono usarlo gratuitamente, ed è alla base delle web app su iPhone e iPad.
Dashcode è incluso nel kit SDK per iOS. Fornisce un ambiente integrato per progettare,
compilare e testare le web app. Offre anche comodi modelli per aiutarti a dare vita alle tue
idee.
Safari 5 per Mac e Windows include un potente set di strumenti che semplificano il
debugging, il perfezionamento e l’ottimizzazione di web app per massimizzare prestazioni e
compatibilità. Per accedere alle risorse attiva il menu Sviluppo nelle Preferenze di Safari sul
tuo Mac o PC.
Pianificazione • Progettazione • Sviluppo • Distribuzione
“Una delle cose che possiamo fare nell’SDK è accedere
e fare modifiche veloci. Queste operazioni si possono
eseguire molto rapidamente a video, e con il Simulatore
puoi vederle quasi all’istante. In questo modo possiamo
ottenere un feedback diretto.”
- Todd Schofield, Standard Chartered Bank
20
Integrazione dei contenuti web nelle app native Con il kit SDK per iOS puoi anche dare accesso a contenuti web da un’app iOS usando l’elemento
Web View, che permette alle tue web app di utilizzare funzioni di iOS come le notifiche push, la
fotocamera integrata, il rilevamento del movimento 3D e molto altro. Come se non bastasse, ora
puoi distribuire le ottimizzazioni della tua app tramite cambiamenti nel server web, senza dover
procedere a una nuova distribuzione dell’app. Inoltre la possibilità di sfruttare i contenuti web nelle
tue applicazioni ti dà modo di passare allo sviluppo nativo senza perdere l’investimento già fatto per
lo sviluppo web.
Accesso a sistemi di back-office
“Dovevamo trovare un modo per
fare aggiornamenti e modifiche
molto rapidamente, perciò
abbiamo scelto un approccio
ibrido, con gli elementi nativi
dell’interfaccia utente che
risiedevano sul telefono e il resto
sul web.”
- Giancarlo De Lio, Mt. Sinai Hospital
In molti casi la tua app aziendale avrà bisogno di accedere a depositi dati e sistemi di back-office
esistenti. Anche se una priorità per qualsiasi app mobile di successo è offrire al cliente una fantastica
esperienza utente, occorre prestare la stessa attenzione ai dettagli e all’architettura per integrare
l’esperienza del cliente con i dati provenienti da server back-end. Il kit SDK per iOS include una
potente suite di strumenti e framework per archiviare, utilizzare e condividere dati che risiedono su
server aziendali.
Servizi web
Con il kit SDK per iOS, puoi utilizzare dati XML per le comunicazioni fra la tua applicazione client e il
server. I file XML hanno un formato strutturato e semplificato che la tua app può facilmente leggere e
scrivere, e si adattano al file system di iOS. Se usi SOAP, puoi sviluppare e analizzare le tue transazioni
di dati, o usare librerie di terze parti come gSOAP o Axis2. Se implementi REST, puoi integrare l’XML
direttamente nella tua app per fornire prestazioni superiori. Inoltre, molte app iOS usano JSON per uno
scambio dei dati semplificato e librerie di terze parti come il framework JSON.
Suggerimento veloce: Web View
Per integrare contenuti web, devi semplicemente includere un oggetto
UIWebView nell’app nativa, associarlo a una finestra e inviargli una
richiesta di caricamento dei contenuti web. Puoi usare questa classe anche
per spostarti nella cronologia di pagine web, e puoi perfino impostare
programmaticamente alcune proprietà dei contenuti web.
Connessione in rete
iOS offre un’ampia gamma di tecnologie di connessione in rete moderne, sofisticate e facili da usare.
BSD Sockets è l’interfaccia fondamentale di programmazione di rete per iOS, su cui si basano tutti i
framework di livello superiore. È una buona scelta che offre prestazioni e flessibilità ottimali. Poiché
BSD è lo standard di fatto per la programmazione di rete UNIX, spesso è facile trasferire il codice di
connessione in rete da altre piattaforme.
Bonjour è il potente protocollo Apple che semplifica l’individuazione automatica di sistemi e servizi su
reti locali, senza richiedere configurazioni. La tua app ha accesso a queste funzioni tramite framework
di alto livello che permettono di connettersi, renderizzare e interagire con le informazioni in ogni parte
del mondo.
Pianificazione • Progettazione • Sviluppo • Distribuzione
21
Archiviazione locale
iOS fornisce Core Data e SQLite per aiutare la tua app a interagire con i dati archiviati sul dispositivo e
a gestirli.
• Core Data. Il framework Core Data include soluzioni generalizzate e automatizzate per i task
comunemente associati al ciclo di vita e alla gestione grafica degli oggetti, persistenza inclusa. Core
Data fornisce una soluzione di gestione dati per scopi generici, sviluppata per gestire le esigenze di
modelli di dati di ogni genere di applicazione, grande o piccola. Puoi definire il modello di dati della
tua app graficamente e accedervi facilmente dal tuo codice. Fornisce un’infrastruttura per gestire
funzionalità comuni, come salvare, annullare e ripristinare, permettendoti concentrarti sull’aspetto
innovativo della tua app. Poiché Core Data usa la libreria di dati SQLite integrata, non avrai bisogno di
installare un sistema di database separato.
• SQLite. iOS include la nota libreria SQLite, un motore di database relazionali semplice ma potente che
può essere facilmente incorporato in un’app. Utilizzato in un’infinità di app in svariate piattaforme,
SQLite è considerato di fatto lo standard di settore per la programmazione di database SQL
incorporati. Diversamente dal framework di Core Data orientato agli oggetti, SQLite usa un’API
procedurale incentrata su SQL per manipolare direttamente le tabelle di dati. Puoi usare SQLite perfino
in web app scritte in JavaScript.
Esempio: servizi web centralizzati
Un ottimo modo per semplificare lo sviluppo back-end è centralizzare i
servizi web, in particolare se l’app deve comunicare con più sistemi di backoffice. Per esempio, Sunbelt Rentals ha usato degli application server .Net
per scrivere script in grado di richiamare stored procedure su sistemi AS/400
legacy e database CRM Microsoft. Ha potuto così esporre i dati recuperati da
.Net tramite XML, rendendoli fruibili per l’app mobile.
AS/400
MS SQL Servers
MS CRM
Protezione dell’app
È probabile che la tua app in-house usi dati aziendali sensibili che necessitano di protezione.
I responsabili IT hanno a disposizione molte delle protezioni di base a livello di dispositivo, come
i criteri per il codice di accesso e la cancellazione remota. Ma indipendentemente da queste funzioni,
è sempre consigliabile avere una strategia per la protezione dei dati che risiedono nelle tue app
in-house.
Per supportare la sicurezza dei dati nell’app, iOS fornisce un approccio “sandboxed” e richiede la firma
delle app per garantire che non vengano alterate. iOS ha anche un framework sicuro per archiviare
le credenziali delle app in un portachiavi criptato. Offre inoltre framework di alto livello che possono
essere utilizzati per criptare i dati delle app e fornire una connessione in rete protetta. Puoi sfruttare
tutte queste capacità nel tuo processo di sviluppo per creare fondamenta sicure senza incidere
sull’esperienza utente.
“La sicurezza ha avuto un ruolo
importante nella decisione di sviluppare
applicazioni per iPhone. L’iPhone ci ha
offerto la sicurezza HTTPS, un portachiavi
per mantenere private certi elementi e la
possibilità di criptare i dati.”
- Keith DeBickes, JM Family
Pianificazione • Progettazione • Sviluppo • Distribuzione
22
Apps
Suggerimento veloce: portachiavi condiviso
Core Services
CF Network
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
Security Services
Keychain
Services
Certificate,
Key, and Trust
Services
Randomization
Services
Core OS
LibSystem
CommonCyrpto
Puoi condividere elementi del portachiavi fra più app: questo favorisce la
collaborazione fra app della stessa suite. Per esempio, puoi usare questa
funzione per condividere password degli utenti o altri elementi che
richiederebbero altrimenti un’autenticazione
separata per ogni applicazione. Per accedere
agli elementi condivisi durante il runtime,
è necessario utilizzare l’interfaccia di
programmazione Keychain Services con i gruppi
di accesso configurati in fase di sviluppo. Per
informazioni su come accedere al portachiavi,
fai riferimento al documento Keychain Services
Programming Guide nel portale sviluppatori iOS.
Architettura
Le API di sicurezza di iOS si trovano a livello dei servizi core del sistema operativo e si basano su quelli
del kernel (livello core OS sottostante). Le app si rivolgono direttamente alle API dei servizi di sicurezza,
senza passare dai livelli Cocoa Touch o Media. Le app di rete possono accedere alle funzioni di sicurezza
anche attraverso l’API CFNetwork, che si trova a livello dei servizi core. CFNetwork è un’API in C di alto
livello che semplifica la creazione, l’invio e la ricezione di messaggi HTTP serializzati. Poiché CFNetwork
si basa su Secure Transport, puoi criptare il flusso di dati usando diverse versioni di protocollo SSL o TLS.
Sicurezza della rete
iOS supporta i servizi VPN, che permettono alle app in-house di comunicare con le reti aziendali in
modo sicuro senza che tu debba scrivere alcun codice. Le organizzazioni IT possono configurare
impostazioni VPN integrate per IPSec, L2TP o PPTP, oppure possono chiedere agli utenti di scaricare le
app client VPN SSL di Juniper, Cisco o F5 dall’App Store.
Per l’autenticazione basata su certificati, iOS offre la funzione “VPN su richiesta”, che stabilisce
automaticamente una connessione quando un’app accede a domini predefiniti, fornendo un’immediata
connettività alle app in-house. Per le app che necessitano di accesso Wi-Fi, iOS è compatibile
con il protocollo Wi-Fi WPA2 Enterprise con autenticazione 802.1X. iOS supporta anche metodi di
autenticazione standard come i certificati digitali, i token come SecurID o CRYPTOCard e le password.
Pianificazione • Progettazione • Sviluppo • Distribuzione
23
Sicurezza dei dati
Le app in-house possono proteggere i dati sensibili sfruttando le funzioni di crittografia integrate
nei dispositivi Apple di ultima generazione. La protezione dei dati sfrutta il codice di accesso univoco
del dispositivo del singolo utente unitamente alla crittografia hardware per generare una chiave di
codifica forte.
Se la tua app in-house stabilisce che un determinato file è protetto, il sistema archivia il file sul
dispositivo in formato criptato. Quando il dispositivo è bloccato, i contenuti del file sono inaccessibili
sia all’app sia a potenziali intrusi. Tuttavia, quando l’utente sblocca il dispositivo, iOS crea una chiave
di decodifica che permette all’app di accedere al file. Dovrai progettare l’app in modo che protegga i
dati mentre vengono creati e sia pronta ai cambiamenti nell’accesso a tali dati quando l’utente blocca
e sblocca il dispositivo.
Suggerimento veloce: libreria di autenticazione
Un modo elegante per implementare la sicurezza nelle app iOS consiste
nel creare una libreria di autenticazione condivisa da usare per tutte
le app in-house. Puoi integrare questa libreria nei servizi di directory
esistenti (LDAP o Active Directory) per evitare di dover scrivere nuovo
codice di autenticazione ogni volta che crei una nuova app. Archiviando
una credenziale nel portachiavi condiviso, puoi migliorare ulteriormente
l’esperienza, poiché gli utenti non dovranno effettuare il login ogni volta che
usano un’app. Nella libreria puoi anche definire periodi di timeout in base ai
requisiti IT interni. La condivisione di questo tipo di codice tra le app interne
crea coerenza in termini di criteri e di esperienza: un vantaggio sia per gli
utenti sia per il reparto IT.
Autenticazione sicura
iOS fornisce un portachiavi sicuro e criptato per l’archiviazione di identità digitali, nomi utenti e
password. Il sistema operativo suddivide i dati del portachiavi in modo che le credenziali memorizzate
da app di altri produttori non siano accessibili dalle app con un’identità diversa. Questo consente a
iOS di proteggere le credenziali di autenticazione per una gamma di app e servizi aziendali. In iOS,
l’API Keychain Services controlla la firma dell’app prima di fornirle accesso a un portachiavi, gestendo
l’accesso al portachiavi senza alcun intervento da parte dell’utente. Le tue app in-house possono
interagire con il portachiavi tramite l’API Keychain Services.
Test e verifica
I test per la versifica di prestazioni, ottimizzazione dell’interfaccia utente, connessione in rete e
usabilità nel mondo reale dovrebbero essere parte integrante del processo continuo di sviluppo.
Di fatto, il motto “testare presto, testare spesso” è fondamentale per il successo dello sviluppo di app
iOS. Puoi assicurarti che il design e il codice dell’app siano testati e verificati tempestivamente con
una serie di metodi. Di seguito sono elencati gli strumenti di test di iOS utilizzabili a scopo di analisi
e debugging.
“Abbiamo un Single Sign-On per
tutte le app, e liste di controllo
degli accessi per quelle private.
Quindi anche se scarichi un’app
con Single Sign-On, verrà
comunicato un perimetro alla
nostra applicazione e verificheremo
se puoi accedere all’app. In caso
negativo, non avrai accesso.”
- James Blomberg, General Electric
Analisi statica. Trova bug nel tuo codice ancora prima di eseguire l’applicazione lasciando che
l’analizzatore statico integrato in Xcode provi migliaia di possibili percorsi di codice in pochi secondi e
segnali potenziali bug che avrebbero potuto rimanere nascosti o essere quasi impossibili da replicare.
Pianificazione • Progettazione • Sviluppo • Distribuzione
24
Debugging in tempo reale sul dispositivo. Collega il tuo dispositivo per usare il debugger grafico di
Xcode o raccogli dati sulle prestazioni in tempo reale nella vista timeline di Instruments. Con questi
potenti strumenti di ottimizzazione potrai identificare e risolvere rapidamente qualsiasi problema
relativo alle prestazioni. Potrai visualizzare i valori delle variabili spostando il mouse.
Instruments. L’applicazione Instruments è un potente strumento di misurazione delle prestazioni
che ti permette di esaminare il codice mentre viene eseguito e di raccogliere metriche importanti su
quello che fa. Puoi visualizzare e analizzare i dati raccolti da Instruments in tempo reale, o puoi salvarli
e analizzarli più tardi.
Registrazione dei dati. Segnala a Instruments l’app da analizzare e gli strumenti da utilizzare. Fai clic
sul grande pulsante rosso per avviare il processo di registrazione. I dati verranno raccolti e archiviati
per la successiva analisi.
Confronto visivo. Con la registrazione e la visualizzazione dei dati nel tempo è facile individuare
relazioni tra i diversi tipi di dati raccolti, nonché gli stessi dati raccolti in varie esecuzioni.
Esame dettagliato. Ispeziona picchi di dati sul grafico per vedere quale codice viene eseguito quando
si verifica il picco, quindi accedi a Xcode per risolvere il problema.
Instruments raccoglie e visualizza in tempo reale dati come l’uso del disco, della
memoria o della CPU, semplificando l’individuazione di eventuali aree problematiche.
Riproduzione. Crea una struttura di test ad hoc registrando l’interazione di un utente con la tua
app, quindi riproduci la registrazione per vedere come eventuali modifiche del codice incidono sulle
prestazioni.
Test automatizzato dell’interfaccia utente. Lo strumento di automazione integrato funziona tramite
gli script (scritti in JavaScript) che fornisci per attivare la simulazione di eventi nella tua app. Questi
eventi sintetici sono generati con l’aiuto delle interfacce per l’accessibilità integrate in iOS. Puoi usare
questo strumento per migliorare il processo di test e provare gli elementi di interfaccia della tua app
mentre è in esecuzione su un dispositivo collegato.
Uno sguardo avanti
Come abbiamo visto in questo capitolo, gli strumenti e le risorse forniti nel kit SDK per iOS ti permettono
di sviluppare rapidamente app straordinarie che sfruttano appieno le capacità sia di iOS sia del
dispositivo. Inoltre, con il kit SDK per iOS le tue app sono pronte per la distribuzione in un lampo. Di fatto,
molti team di sviluppo in-house hanno un approccio iterativo all’intero processo di sviluppo, e creano
e distribuiscono app frequentemente durante il ciclo di vita del progetto. Con test e verifica integrati
e un modello di sicurezza che protegga i dati aziendali, puoi distribuire le tue app a utenti e gruppi di
qualsiasi dimensione. Nel prossimo capitolo ti guideremo passo passo nel processo di distribuzione delle
app e ti aiuteremo a elaborare una strategia adatta al tuo ambiente aziendale specifico.
Pianificazione • Progettazione • Sviluppo • Distribuzione
“Uno strumento fondamentale è
stato l’analizzatore statico, che ci
ha permesso di rilevare i problemi
senza dover eseguire l’app.
L’analisi statica ha individuato
all’istante cose che avrebbero
potuto richiedere settimane o
mesi di debugging, o che magari
non avremmo mai trovato.”
- Mark McWilliams, Razorfish
25
Distribuzione
Una volta completati lo sviluppo e il test del codice della tua app, ci sono alcune operazioni
importanti da eseguire prima che sia pronta per gli utenti. Per preparare l’app per la distribuzione, devi
ottenere un certificato di distribuzione aziendale da Apple e firmare il tuo codice in Xcode. Dopo aver
preparato il progetto Xcode per la distribuzione, puoi ospitare la tua app in-house in modo sicuro sul
server web e distribuirla direttamente agli utenti via Wi-Fi e 3G. Questo capitolo illustra i processi per
la distribuzione e la gestione del ciclo di vita della tua app.
Preparazione per il lancio
Checklist per la distribuzione
Al termine della fase di distribuzione, dovresti aver completato quanto
segue.
Creazione del profilo di fornitura e del certificato aziendale
Definizione di un server web di distribuzione o di una soluzione
per la distribuzione delle app in wireless
Annuncio della soluzione agli utenti finali
Per iniziare il processo di distribuzione, dovrai effettuare la certificazione e la fornitura dell’app
con l’iOS Developer Enterprise Program, nonché firmare e creare il progetto in Xcode. Un semplice
processo in tre fasi ti preparerà a distribuire l’app direttamente da Xcode.
1. Crea e scarica un certificato di distribuzione. Per distribuire la tua app iOS, l’agente designato
nell’iscrizione al Developer Program dovrà creare un certificato di distribuzione. Solo l’agente del tuo
team potrà creare questo certificato e solo questo certificato permetterà la distribuzione aziendale
dell’app. Puoi trovare informazioni e istruzioni passo passo su come scaricare e creare un certificato di
distribuzione aziendale nell’iOS Provisioning Portal sul sito http://developer.apple.com/ios/manage/
overview/.
2. Crea e scarica un profilo di fornitura. Quando sarai pronto per distribuire l’app, dovrai creare un
profilo di fornitura aziendale. Questi profili possono essere installati su qualsiasi dispositivo, quindi
potrai usare questo metodo per una distribuzione su larga scala all’interno dell’azienda.
Panoramica: Provisioning Portal per gli sviluppatori
L’iOS Provisioning Portal ti guida attraverso i passaggi richiesti per testare
le app sui dispositivi iOS e prepararle per la distribuzione. Userai l’iOS
Provisioning Portal per molti dei passaggi descritti in questo capitolo, per
esempio creare certificati e profili di fornitura. Visita il Member Center nell’iOS
Dev Center per accedere al portale e a ulteriore documentazione utile.
I profili di fornitura per la distribuzione sono associati al tuo certificato di distribuzione e ti permettono
di creare app che gli utenti possono eseguire sui propri dispositivi iOS. Puoi creare un profilo di
fornitura per un’app specifica, o per più app, specificando l’AppID autorizzato dal profilo. Se un utente
ha un’app, ma non ha un profilo che ne autorizza l’uso, non potrà utilizzare l’app. Dato che questi
profili sono strettamente legati al certificato, quando quest’ultimo viene revocato o scade, l’app non
funzionerà più.
Ci sono due tipi di profili di fornitura: Ad Hoc e Enterprise. I profili Ad Hoc sono limitati a specifici
ID dispositivo, pertanto possono essere eseguiti soltanto su un dispositivo specifico che sia stato
identificato (tramite ID dispositivo) e caricato sul portale del Developer Program. I profili Ad Hoc
sono adatti per test interni o programmi beta limitati, perché non sono scalabili oltre i 100 dispositivi
e richiedono molto lavoro a livello amministrativo (ovvero l’aggiunta di ID dispositivo al portale del
programma).
Pianificazione • Progettazione • Sviluppo • Distribuzione
26
È importante notare che un profilo di fornitura non è un meccanismo di sicurezza. Anche se
fornisce un’autorizzazione di base per l’esecuzione di un’app, non offre l’autenticazione dell’utente o
un’ulteriore protezione per i dati utilizzati o visualizzati all’interno dell’app. È sempre buona norma
proteggere l’app stessa con metodi interni. Come accennato nel capitolo “Sviluppo” di questa
guida, puoi sfruttare un’ampia gamma di framework e funzioni di sicurezza di iOS per la tua app
in-house. Per esempio, uno dei modi migliori per proteggere l’app è creare una libreria standard per
l’autenticazione dell’utente.
3. Firma e crea in Xcode. Una volta installati il tuo certificato di distribuzione e profilo di fornitura,
dovrai firmare il codice in Xcode. Per maggiori informazioni sul processo di firma del codice, segui le
istruzioni passo passo fornite nell’iOS Provisioning Portal.
Quando l’app è firmata, Xcode la prepara per la distribuzione aziendale con un semplice processo
di esportazione. Usa l’Organizer di Xcode per condividere un progetto che è stato aggiunto
al tuo archivio e seleziona le opzioni per la distribuzione aziendale. Questo processo prepara
automaticamente l’app, il profilo di fornitura e altri elementi necessari per la distribuzione in wireless.
Distribuzione
Una volta completata la creazione dell’app, la distribuzione può essere effettuata ospitando l’app su
un semplice server web interno, preparando il tuo catalogo di app in-house o usando una soluzione
per la gestione dei dispositivi mobili (MDM) di terze parti.
La soluzione più adatta dipende dai tuoi requisiti specifici, dalla tua infrastruttura e dal livello di
gestione dell’app di cui hai bisogno.
Pianificazione • Progettazione • Sviluppo • Distribuzione
Panoramica: Xcode Organizer
L’Organizer è un’unica finestra per gestire progetti Xcode, archivi SCM,
archivi di app, e dispositivi: per esempio, permette di configurare in un clic
nuovi dispositivi iOS per lo sviluppo. Nel contesto della distribuzione di
app, l’Organizer è la libreria centrale da cui le app possono essere condivise
(esportate) per la distribuzione aziendale. L’Organizer può anche essere
utilizzato per installare app in-house e profili di fornitura su dispositivi
collegati.
27
Processo di distribuzione dell’app in wireless
Il modo più semplice di distribuire la tua app è quello di ospitarla su un server web. Procedi come segue.
1. Ospita l’app su un server web cui possono accedere i dipendenti.
2. Avvisa gli utenti che l’app è disponibile con un’email, un SMS, una notifica push o altri metodi tramite
i quali gli utenti possano essere avvisati su un dispositivo iOS; assicurati di includere l’URL dell’app.
3. Toccando l’URL viene installata l’app. Una finestra di dialogo chiederà agli utenti se desiderano
procedere con l’installazione.
Per maggiori informazioni su come creare un servizio di distribuzione delle app in wireless, vai su
http://developer.apple.com/library/ios/navigation/.
Catalogo di app in-house
Il tuo team può anche creare un catalogo di app interno che offra un portale per la distribuzione
over-the-air delle tue app iOS. Questo modello self-service permette ai dipendenti di scaricare e
installare le app con il minimo sforzo. Il catalogo può fornire direttamente gli URL per il download
delle app permettendo l’installazione e l’aggiornamento di diverse app contemporaneamente, così
da velocizzare la distribuzione e il setup. Un sito web o un’app nativa, ottimizzata per iPhone o iPad, è
un metodo ancora più facile di fornire gli URL in un modo familiare e organizzato. Per un esempio di
catalogo di app in-house, leggi il riquadro qui a destra, “Case study: l’App Store interno di GE”.
Gestione degli aggiornamenti
Le app in-house distribuite internamente non vengono aggiornate in automatico. Dovrai avvisare
i dipendenti che è disponibile un aggiornamento e che devono installare l’app. Se l’identificatore
assegnato all’app in Xcode non cambia, l’app verrà riconosciuta come esistente e l’aggiornamento
verrà installato mantenendo i dati e le preferenze dell’app archiviati localmente. Per maggiore
comodità, puoi sviluppare una funzione nell’app che contatti il server per verificare la disponibilità di
aggiornamenti durante il runtime.
Con la distribuzione in wireless puoi fornire un link all’app aggiornata direttamente nella tua app.
Se crei un’applicazione nativa per il tuo catalogo di app, considera l’uso dei servizi di notifica push:
puoi visualizzare un avviso o un badge sull’icona dell’app per informare gli utenti della disponibilità di
aggiornamenti.
Gestione dei dispositivi mobili (MDM)
Molte soluzioni MDM di terze parti offrono fin da subito funzioni di distribuzione delle app in wireless.
I vantaggi della gestione di app in-house all’interno di un ambiente gestito includono la possibilità di
fare un controllo delle versioni e di tenere traccia della versione dell’app eseguita da ciascun utente.
Pianificazione • Progettazione • Sviluppo • Distribuzione
Case study: l’App Store interno di GE
La task force mobile in-house di GE, il Mobile
Center of Excellence, non si limita a sviluppare
app all’avanguardia. Ha anche creato un portale
web interno, l’App Store interno di GE, per
semplificare i download di app aziendali da
parte degli oltre 300.000 dipendenti di GE.
“Avevamo bisogno di una soluzione per
distribuire le applicazioni mobili internamente,”
spiega James Blomberg, Director of New Media
and Emerging Technology di GE. “Abbiamo app
anche sull’App Store di Apple, ma ci serviva un
portale privato per le applicazioni GE che non devono essere condivise.”
A partire dal lancio nel 2009, l’App Store di GE ha totalizzato decine di
migliaia di accessi da parte di visitatori interni e più di 100.000 download
di app. Quando sono disponibili nuove app, il gruppo le promuove su un
portale intranet aziendale, e tramite pubblicazioni e passaparola nel Mobile
Center of Excellence di GE, che conta 200 membri provenienti da tutti i
principali settori di attività dell’azienda.
Il successo dello Store è dovuto in parte al suo design semplice ed efficace.
“L’interfaccia è elaborata ma facile da usare,” afferma Dayan Anandapa,
Director of Digital Technologies and Collaboration presso GE. “Una volta
registrati, basta cliccare su un URL per essere guidati nel processo di
download. Poiché i dispositivi stessi sono intuitivi, vogliamo che anche
l’installazione lo sia.”
In un’azienda così grande e diversificata come GE, non tutte le app in-house
sono adatte a tutti gli utenti. Per controllare l’accesso alle app e renderle
disponibili solo a determinati utenti, l’azienda ha istituito un sistema di
accesso a due livelli. “Abbiamo un Single Sign-On per tutte le app, e liste di
controllo degli accessi aggiuntive per quelle private,” spiega Blomberg.
Oltre ad agevolare il processo di download delle app, l’App Store interno di
GE aiuta a focalizzare l’attenzione generale sulle risorse mobili dell’azienda.
Ma ha anche altri vantaggi.
“Funge da archivio, un centro di condivisione delle conoscenze per le nostre
diverse attività,” dice Blomberg. “E in effetti ha contribuito a instaurare nuove
relazioni tra persone che non si conoscevano e che ora lavorano insieme. La
collaborazione e la comunicazione all’interno di GE si basano in gran parte
su risorse mobili.”
28
Diverse soluzioni offrono anche servizi di notifica push che informano gli utenti della disponibilità di
nuove app e aggiornamenti. E poiché le soluzioni MDM possono definire configurazioni di rete e criteri
di sicurezza, sono un ottimo modo per fornire impostazioni direttamente al dispositivo (per esempio
certificati VPN o Wi-Fi) quando viene installata l’app. Per maggiori informazioni sulle soluzioni MDM, vai
su www.apple.com/it/iphone/business/integration/mdm.
Annuncio della soluzione
Congratulazioni! Hai progettato, sviluppato e distribuito un’app iOS per i tuoi dipendenti. L’unica cosa
che ti resta da fare è annunciare la soluzione all’interno dell’organizzazione. Anche le app migliori e più
innovative possono non essere adottate dall’azienda o non far fruttare l’investimento se gli utenti non
sono informati della loro esistenza. Ci sono molti modi per comunicare le soluzioni agli utenti. Ecco
alcune idee da considerare quando crei l’annuncio dell’app e il pacchetto di comunicazione.
• Considera l’ipotesi di promuovere le tue ultime app in-house sull’intranet aziendale.
• Crea sull’intranet un sito dedicato alle app iOS e consenti agli utenti di pubblicare commenti,
partecipare a forum e così via.
• Fornisci una demo video della tua app in azione che permetta agli utenti di capire le potenzialità della
soluzione.
• Invia email e newsletter per informare gli utenti.
• Appendi poster e altri materiali grafici in posizioni strategiche in modo che i dipendenti vedano l’app
mentre si spostano all’interno degli uffici o della sede aziendale.
Esempio: comunicazioni interne
Quando annuncia la disponibilità di nuove app in-house agli utenti, la
priorità per Genentech è comunicare le funzioni e i vantaggi di ogni
soluzione. Proprio come uno sviluppatore commerciale potrebbe creare
la campagna di lancio di un prodotto, Genentech ha creato materiali di
marketing interno specifici per ogni nuova app in-house. Questo ha avuto un
impatto immediato informando a livello globale gli utenti e promuovendo
l’adozione delle nuove app.
• Se possibile, invia agli utenti notifiche push sulla disponibilità di nuove app o di importanti
miglioramenti delle funzioni.
• Integra il catalogo di app interno con schermate e demo video della tua app per informare i
dipendenti del suo scopo.
Uno sguardo avanti
La distribuzione e l’annuncio dell’app non sono la fine del processo, ma solo l’inizio. Dopo il successo
di ogni app mobile, gli utenti ne chiederanno altre. Questa guida non è altro che un punto di
partenza per il tuo team di sviluppo. Oltre alla guida, è disponibile un’ampia gamma di risorse di
apprendimento, best practice, suggerimenti e tecniche nell’ambito dell’iOS Developer Program. Entra in
contatto con altri sviluppatori tramite i forum o scarica video utili per esplorare e scoprire funzionalità
più avanzate della piattaforma. Le possibilità sono infinite.
Pianificazione • Progettazione • Sviluppo • Distribuzione
29
Risorse di apprendimento aggiuntive
Vuoi salire di livello nel mondo dello sviluppo in-house? Le risorse di apprendimento per esperti
elencate qui sotto approfondiscono gli argomenti più importanti e forniscono informazioni tecniche
dettagliate. Video della WWDC
Per vedere gli ingegneri e gli esperti Apple che parlano di come creare soluzioni innovative
con le più recenti tecnologie Apple, vai su: http://developer.apple.com/videos/wwdc/2010/ Podcast della Stanford University
Scopri quali sono le API e gli strumenti richiesti per creare app per iPad, iPhone e iPod
touch. Il podcast “Developing Apps for iOS” della Stanford University tratta argomenti come
il design dell’interfaccia, l’interazione con l’utente usando il Multi-Touch, Core Animation e
molto altro. Cerca la serie su iTunes o vai su:
http://itunes.apple.com/it/itunes-u/developing-apps-for-ios-hd/id395605774
Big Nerd Ranch
Parti alla grande nel mondo dello sviluppo per iOS con questo corso di sette giorni pensato
per fornirti le basi di Objective-C e del kit SDK per iOS. Per informazioni sull’offerta di Big
Nerd Ranch in Europa, vai su: http://www.bignerdranch.com/locations/netherlands
Pragmatic Studio
Su iTunes trovi podcast di livello base e intermedio sullo sviluppo di app complete per iOS.
Per saperne di più, vai su: https://itunes.apple.com/it/podcast/pragmatic-studio-bonustracks/id312552710?mt=2
© 2013 Apple Inc. Tutti i diritti riservati. Apple, il logo Apple, Bonjour, Cocoa Touch, Dashcode, iMac, Instruments, iPad, iPhone, iPod, iPod touch, iTunes, il logo
iTunes, Keychain, Mac, MacBook, MacBook Air, Safari e Xcode sono marchi di Apple Inc., registrati negli USA e in altri Paesi. Multi-Touch è un marchio di Apple
Inc. Apple Store è un marchio di servizio di Apple Inc., registrato negli USA e in altri Paesi. App Store è un marchio di servizio di Apple Inc. Il marchio e il logo
Bluetooth sono di proprietà di Bluetooth SIG, Inc. e qualsiasi uso da parte di Apple è concesso in licenza. Intel e Intel Core sono marchi di Intel Corp. negli
USA e in altri Paesi. UNIX è un marchio registrato di The Open Group. Tutti gli altri prodotti e nomi di aziende citati sono marchi dei rispettivi proprietari. Il
presente materiale è fornito a puro titolo informativo; Apple non si assume alcuna responsabilità in merito al suo utilizzo.
30
Scarica

Guida rapida allo sviluppo di app in-house