SlideShare a Scribd company logo
The Social Publishing Network
28 Luglio 2015
Piattaforma
online
Le persone
propongono
idee di app
Creano team
attorno ai
progetti
Sviluppano
app insieme
TALENTI
Un Team di talenti per il successo
Sviluppatore ContenutiDesigner
Traduttore
Project Manager
Sound Designer
MakeItApp è Social Network
Talenti creano profili con skills
condividono progetti
Team condividono il talento
condividono ricavi
investimento zero
investito solo il tempo
App
TOOLS
L’App è la punta dell’iceberg
Analytics BaaS
ESPERIENZA
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
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
PROMOZIONE
Il Mare Magnum!
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
Un Ambiente Fertile per le App
TALENTI SUPPORTO PROMOZIONE
Revenue Sharing
MakeItApp è in revenue
sharing con i Team,
partecipando al 30% dei
ricavi delle App.
Revenue Sharing
Tutti condividono con gli
altri i ricavi, tutti vincono se
anche gli altri vincono.
Perché un server?
www.makeitapp.eu
● Data Store
● File Storage
● Validazione Receipts
● Push Notification
● Configurazione App in remoto
● Login Utenti
● Cron job
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
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
2011 BaaS
www.makeitapp.eu
Backend as a Service
Un servizio cloud (ed a richiesta) che risolve tipici
problemi server-side
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
The Social Publishing Network
23 Settembre
2015
Perché un server?
www.makeitapp.eu
● Data Store
● File Storage
● Validazione Receipts
● Push Notification
● Configurazione App in remoto
● Login Utenti
● Cron job
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
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
2011 BaaS
www.makeitapp.eu
Backend as a Service
Un servizio cloud (ed a richiesta) che risolve
tipici problemi server-side
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
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
CURL!
CURL! (cont.)
#simple read
curl --header "secret:secret" -H "Accept: application/json" -H
"Content-Type: application/json" -X GET
https://demo.baas.makeitapp.eu/test
#create/update
curl --header "secret:secret" -H "Accept: application/json" -H
"Content-Type: application/json" -d ‘{"field1": "ciao mondo"}’ -X POST
https://demo.baas.makeitapp.eu/test
#simple filter
curl --header "secret:secret" -H "Accept: application/json" -H
"Content-Type: application/json" -X GET -G
https://demo.baas.makeitapp.eu/test --data-urlencode '{"field1": "ciao
mondo"}'
Android – iOS SDK
Una dolce copertura sopra le API REST ed anche qualcosa di più
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.
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.
Android – iOS chat example
MKAppInstanceMKQuery
MKCollection
MKFileCollection
MKUser
MakeItApp Android & iOS SDK
MakeItApp BaaS
ChatMessage collection File collection User collection
Message
- Alias
- Message
- Attachment
Sviluppiamo Whatsapp in un’ora con un
BaaS
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)
iOS - Importare ed inizializzare l’SDK
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.
MKQuery *query = [MKQuery queryWithcollectionName:@"chatmessage"];
query.limit = 30; // optional
query.skip = 0; // optional
[query orderDescendingByCreationDate];
[query findAllInBackgroundWithBlock:^(NSArray *results, NSError *error) {
MKQuery
MKQuery
MKCollection
MKCollection *newText = [MKCollection collectionWithName:@"chatmessage"];
[newText setObject:<text> forKey:@"message"];
or
[newText setObject:<fileCollId> forKey:@"messageAttachment"];
[newText setObject:<userName> forKey:@"alias"];
[newText saveInBackgroundWithBlock:^(MKCollection *collection, NSError
*error) {
MKFileCollection
Upload:
MKCollectionFile *file = [MKCollectionFile fileWithName:fileName
data:<JPGData>];
[file saveInBackgroundWithBlock:^(MKCollection *collection, NSError *error) {
Download:
MKQuery *query = [MKQuery queryWithcollectionName:@"files"];
[query whereKey:@"file" equalTo:<collectionId>];
MKCollectionFile *file = results.firstObject;
[file loadDataInBackgroundWithBlock:^(BOOL success, NSData *data, NSError
*loadError) {
MKFileCollection
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
Android - Importare ed inizializzare l’SDK
SDK: https://github.com/MakeItApp/android-example-chat
DOC: http://www.makeitapp.eu/documentation/android-sdk/
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
MKQuery
MKCollection
MKFileCollection - Upload
MKFileColelction - Download
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

More Related Content

PDF
Training Signal Webtrends
PPTX
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM
PPTX
Cognitive Services & LUIS
PPS
Sviluppo Web Agile Con MonoRail
PPTX
DotNetCampus 2014 - BING e Windows Store App
PPT
Generazione Dinamica di Codice in .NET
PPTX
Win02 bing e windows store apps
PPTX
Kivy Python Framework - di Gioele Gaggio
Training Signal Webtrends
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM
Cognitive Services & LUIS
Sviluppo Web Agile Con MonoRail
DotNetCampus 2014 - BING e Windows Store App
Generazione Dinamica di Codice in .NET
Win02 bing e windows store apps
Kivy Python Framework - di Gioele Gaggio

Similar to Modi innovativi per costruire App (20)

PDF
L'universo dietro alle App
PDF
Smau milano 2012 arena social media matteo-collina
PDF
Smau Roma 2012 Mob App Camp put social in your app
PDF
Hour of Code - 13/01/2016
PPT
Sviluppare applicazioni Facebook
PDF
Mobile & Cloud: quali servizi sono disponibili e come sfruttarli al meglio
PDF
Smau milano 2012 arena expo comm stefano-dindo
PPTX
Android Mobile Apps , visione d'insieme
PDF
E così vuoi sviluppare un'app (ci servono le APi!)
PDF
Designing with microservices - Daniele Mondello
PDF
SMAU Milano 2014 GAE 24/10/2014 - IWA Italy
PPTX
Cloud e iOS - Codemotion2013 Roma
PDF
Mobile+network intervento polimi
PDF
Il futuro della rete. Nuove opportunità per le amministrazioni pubbliche e pe...
PDF
Il futuro della rete e le convergenze
PDF
HTML5, il lato client della forza...
PDF
E se non avessi davvero bisogno di un app?
PDF
Corso di servlet jsp e pattern
PDF
DM Publishing
PDF
Facilitare l'accesso alle informazioni mediante l'Instant Messaging
L'universo dietro alle App
Smau milano 2012 arena social media matteo-collina
Smau Roma 2012 Mob App Camp put social in your app
Hour of Code - 13/01/2016
Sviluppare applicazioni Facebook
Mobile & Cloud: quali servizi sono disponibili e come sfruttarli al meglio
Smau milano 2012 arena expo comm stefano-dindo
Android Mobile Apps , visione d'insieme
E così vuoi sviluppare un'app (ci servono le APi!)
Designing with microservices - Daniele Mondello
SMAU Milano 2014 GAE 24/10/2014 - IWA Italy
Cloud e iOS - Codemotion2013 Roma
Mobile+network intervento polimi
Il futuro della rete. Nuove opportunità per le amministrazioni pubbliche e pe...
Il futuro della rete e le convergenze
HTML5, il lato client della forza...
E se non avessi davvero bisogno di un app?
Corso di servlet jsp e pattern
DM Publishing
Facilitare l'accesso alle informazioni mediante l'Instant Messaging
Ad

More from Commit University (20)

PDF
Accessibilità ed equità digitale: un impegno, non una scelta
PDF
GitHub Copilot:vediamo chi comanda - Commit University.pdf
PDF
Contract Driven Development - Branch 2024.pdf
PPTX
Cybersecurity & AI: Illusioni e Speranze
PDF
Migliorare la Developer Experience in un mondo Cloud Native
PPTX
Scopri come sfruttare la potenza della Hybrid RAG
PDF
Introduzione a AWS Forecast e SageMaker DeepAR: Prevedere la Domanda con il M...
PDF
Oltre l'hype: vulnerabilità e limiti dell'intelligenza artificiale.pdf
PPTX
Alla scoperta dei Vector Database e dei RAG
PDF
Nell’iperspazio con Rocket: il Framework Web di Rust!
PDF
Crea il tuo assistente AI con lo Stregatto (open source python framework)
PDF
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
PDF
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
PDF
Slide-10years.pdf
PDF
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
PDF
Vue.js slots.pdf
PPTX
Commit - Qwik il framework che ti stupirà.pptx
PPTX
Sviluppare da zero una Angular Web App per la PA
PDF
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
PDF
Prisma the ORM that node was waiting for
Accessibilità ed equità digitale: un impegno, non una scelta
GitHub Copilot:vediamo chi comanda - Commit University.pdf
Contract Driven Development - Branch 2024.pdf
Cybersecurity & AI: Illusioni e Speranze
Migliorare la Developer Experience in un mondo Cloud Native
Scopri come sfruttare la potenza della Hybrid RAG
Introduzione a AWS Forecast e SageMaker DeepAR: Prevedere la Domanda con il M...
Oltre l'hype: vulnerabilità e limiti dell'intelligenza artificiale.pdf
Alla scoperta dei Vector Database e dei RAG
Nell’iperspazio con Rocket: il Framework Web di Rust!
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
Slide-10years.pdf
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Vue.js slots.pdf
Commit - Qwik il framework che ti stupirà.pptx
Sviluppare da zero una Angular Web App per la PA
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Prisma the ORM that node was waiting for
Ad

Modi innovativi per costruire App

  • 1. The Social Publishing Network 28 Luglio 2015
  • 2. Piattaforma online Le persone propongono idee di app Creano team attorno ai progetti Sviluppano app insieme
  • 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
  • 7. L’App è la punta dell’iceberg Analytics BaaS
  • 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
  • 14. Un Ambiente Fertile per le App TALENTI SUPPORTO PROMOZIONE
  • 15. Revenue Sharing MakeItApp è in revenue sharing con i Team, partecipando al 30% dei ricavi delle App.
  • 16. Revenue Sharing Tutti condividono con gli altri i ricavi, tutti vincono se anche gli altri vincono.
  • 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
  • 20. 2011 BaaS www.makeitapp.eu Backend as a Service Un servizio cloud (ed a richiesta) che risolve tipici problemi server-side
  • 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
  • 22. The Social Publishing Network 23 Settembre 2015
  • 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
  • 26. 2011 BaaS www.makeitapp.eu Backend as a Service Un servizio cloud (ed a richiesta) che risolve tipici problemi server-side
  • 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
  • 29. CURL!
  • 30. CURL! (cont.) #simple read curl --header "secret:secret" -H "Accept: application/json" -H "Content-Type: application/json" -X GET https://demo.baas.makeitapp.eu/test #create/update curl --header "secret:secret" -H "Accept: application/json" -H "Content-Type: application/json" -d ‘{"field1": "ciao mondo"}’ -X POST https://demo.baas.makeitapp.eu/test #simple filter curl --header "secret:secret" -H "Accept: application/json" -H "Content-Type: application/json" -X GET -G https://demo.baas.makeitapp.eu/test --data-urlencode '{"field1": "ciao mondo"}'
  • 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
  • 35. Sviluppiamo Whatsapp in un’ora con un BaaS
  • 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)
  • 37. iOS - Importare ed inizializzare l’SDK
  • 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.
  • 39. MKQuery *query = [MKQuery queryWithcollectionName:@"chatmessage"]; query.limit = 30; // optional query.skip = 0; // optional [query orderDescendingByCreationDate]; [query findAllInBackgroundWithBlock:^(NSArray *results, NSError *error) { MKQuery
  • 41. MKCollection MKCollection *newText = [MKCollection collectionWithName:@"chatmessage"]; [newText setObject:<text> forKey:@"message"]; or [newText setObject:<fileCollId> forKey:@"messageAttachment"]; [newText setObject:<userName> forKey:@"alias"]; [newText saveInBackgroundWithBlock:^(MKCollection *collection, NSError *error) {
  • 42. MKFileCollection Upload: MKCollectionFile *file = [MKCollectionFile fileWithName:fileName data:<JPGData>]; [file saveInBackgroundWithBlock:^(MKCollection *collection, NSError *error) { Download: MKQuery *query = [MKQuery queryWithcollectionName:@"files"]; [query whereKey:@"file" equalTo:<collectionId>]; MKCollectionFile *file = results.firstObject; [file loadDataInBackgroundWithBlock:^(BOOL success, NSData *data, NSError *loadError) {
  • 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
  • 45. Android - Importare ed inizializzare l’SDK SDK: https://github.com/MakeItApp/android-example-chat DOC: http://www.makeitapp.eu/documentation/android-sdk/
  • 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