Antonio Russo, Federico Oldrini e Jacopo Giola di Makeitapp hanno presentato il workshop di CommitUniversity, dedicato al Backend as a Service, mostrandoci come costruire con esso un applicazione.
4. Un Team di talenti per il successo
Sviluppatore ContenutiDesigner
Traduttore
Project Manager
Sound Designer
5. MakeItApp è Social Network
Talenti creano profili con skills
condividono progetti
Team condividono il talento
condividono ricavi
investimento zero
investito solo il tempo
App
9. Un App Angel affianco ad ogni Team!
Porta l’esperienza del mercato
per evitare i tipici errori.
Testare il mercato e saper
leggere dati e feedback utenti
10. MakeItApp è Time to Market Accelerator
Tool di Sviluppo
BaaS
Adv Network
Analytics
Tool di Progetto
Wiki
Issue tracker
Git repository
Coaching
App Angel
Esperienza condivisa
13. MakeItApp è Sales booster
Cross & Up Selling
cross-sell +51% (flurry)
up-sell +85% (flurry)
Campagne Adv
Partnership con network
Portfolio di spesa
Comunicazione
Digital PR
PR con Store
Social & blog
Eventi
17. Perché un server?
www.makeitapp.eu
● Data Store
● File Storage
● Validazione Receipts
● Push Notification
● Configurazione App in remoto
● Login Utenti
● Cron job
18. Aprire il proprio server
www.makeitapp.eu
● Scegliere un hosting (AWS,
DigitalOcean, Linode, ecc.)
● Capire le proprie necessità e
scegliere un piano adeguato
● Attivare la macchina e costruire
lo stack di backend
● Attivarsi per renderla sicura
dagli attacchi
● Sviluppare i servizi che si vuole
utilizzare
19. Aprire il proprio server
www.makeitapp.eu
● Rendersi conto di aver
cancellato l’accesso root ed
essersi chiusi fuori dalla propria
macchina
● Ricominciare tutto dall’inizio
● Preparasi al peggio il giorno del
lancio
21. Vantaggi BaaS
www.makeitapp.eu
● Nessun server setup per ogni App che sviluppiamo
● Nessuna replica di codice per ogni App
● API semplici
● Indipendenza dall’OS del dispositivo mobile
23. Perché un server?
www.makeitapp.eu
● Data Store
● File Storage
● Validazione Receipts
● Push Notification
● Configurazione App in remoto
● Login Utenti
● Cron job
24. Aprire il proprio server
www.makeitapp.eu
● Scegliere un hosting (AWS,
DigitalOcean, Linode, ecc.)
● Capire le proprie necessità e
scegliere un piano adeguato
● Attivare la macchina e costruire
lo stack di backend
● Attivarsi per renderla sicura dagli
attacchi
● Sviluppare i servizi che si vuole
utilizzare
25. Aprire il proprio server
www.makeitapp.eu
● Rendersi conto di aver cancellato
l’accesso root ed essersi chiusi
fuori dalla propria macchina
● Ricominciare tutto dall’inizio
● Preparasi al peggio il giorno del
lancio
27. Vantaggi BaaS
www.makeitapp.eu
● Nessun server setup per ogni App che sviluppiamo
● Nessuna replica di codice per ogni App
● API semplici
● Indipendenza dall’OS del dispositivo mobile
28. BaaS Architecture example
REST APIs
Push Servers
Google
Apple
Microsoft
SDK
Mobile
Code
Push
Notifications
NoSQL
Collections
Storage
File
SystemScheduler
Backup
System
Data
Connectors
Data Modeler & ConfiguratorBackoffice for App CMS
App
Cloud
Data
Collections
and Offline
Sync
Users
Files /
Resources
Social Advertising
In App
Purchase
Validators
Analytics Events
Plugins and
Extensions
31. Android – iOS SDK
Una dolce copertura sopra le API REST ed anche qualcosa di più
32. Android – iOS SDK
● MKAppInstance: Singleton che si occupa di inizializzare e mantenere
le connessioni con il server remoto.
● MKCollection: L’oggetto base, ogni sua istanza rappresenta una riga
all’interno delle collezioni su MongoDB
● MKFileCollection: Rappresenta un file caricato sul server ed incapsula
le operazioni di upload e download
● MKUser: Un’utente della piattaforma. Espone i metodi per effettuare
login/logout e un sistema di SSO per le App pubblicate da MakeItApp
● MKQuery: Come suggerisce il nome è la rappresentazione di una
query sul database. È la classe principale utilizzata per ottenere i dati.
33. Android – iOS SDK free goodies
● MKBannerView: È una classe wrapper per il nostro servizio di adv
mediation.
● MKAnalytics: È la classe utilizzata per sfuttare il servizio di analytics
che mettiamo a disposizione dei progetti creati sulla nostra
piattaforma.
● MKLoginViewController/MKLoginActivity: È una classe per
visualizzare una schermata di login per gli utenti.
● MKRegisterViewController/MKRegistrationActivity: È una classe per
visualizzare una schermata di registrazione per i nuovi utenti.
34. Android – iOS chat example
MKAppInstanceMKQuery
MKCollection
MKFileCollection
MKUser
MakeItApp Android & iOS SDK
MakeItApp BaaS
ChatMessage collection File collection User collection
Message
- Alias
- Message
- Attachment
36. Integriamo la comunicazione con il BaaS
• Inizializziamo la singleton (MKAppInstance)
• Integriamo la login con la piattaforma (MKUser)
• Recuperiamo i messaggi già inviati (MKQuery)
• Salviamo i messaggi inviati dal nostro utente (MKCollection)
• Integriamo i servizi di push notification (senza riscontro per via di certificati
e provisioning profiles) (MKAppInstance)
• Aggiungiamo la parte di download e upload dei file (MKFileCollection)
38. Login Utente
L’applicazione per riconoscere i vari utenti sfrutterà la login messa a
disposizione dal nostro BaaS.
Usate la classe MKLoginViewController messa a disposizione dall’SDK ed
implementate in modo corretto il suo delegate.
44. UI
L’importante è che abbia almeno le seguenti caratteristiche
• Login utente al lancio
• Differenza fra miei messaggi e messaggi di altri
• UITextField/UITextView per inserire il testo
• Bottone per il selezionamento/scatto di uno foto da inviare
• Nome dell’utente
46. Login Utente
L’applicazione per riconoscere i vari utenti sfrutterà la login messa a
disposizione dal nostro BaaS.
Usate la classe MKUserExtension e MKLoginActivity messe a
disposizione dall’SDK ed implementate il flusso di login
51. UI
L’importante è che abbia almeno le seguenti caratteristiche
• Login utente al lancio
• Differenza fra miei messaggi e messaggi di altri
• EditText per inserire il testo del messaggio
• Bottone per il selezionamento/scatto di uno foto da inviare
• Nome dell’utente