SlideShare a Scribd company logo
1 of 19
Università degli Studi di Trieste
                   Dipartimento di Ingegneria e Architettura
               Corso di laurea triennale in Ingegneria Informatica


Sviluppo di un’applicazione iPhone per
      la localizzazione di persone

Laureando                                                                    Relatore
Lorenzo Bevilacqua                                 Chiar.mo Prof. Maurizio Fermeglia


                         Anno Accademico 2011/2012
Social network


•   Sviluppo grazie al web 2.0

•   Basati sulla condivisione e l’interazione tra utenti

•   Possibilità di condividere contenuti di diversi tipi (testo, immagine, ...)

•   Social network generici (Facebook) o specialistici (Soundcloud)
Social network location-based

Funzionamento a check-in   Funzionamento generico


       Foursquare              Google Latitude


   Gowalla (Facebook)
Problema

•   Per utilizzare i social network citati occorre un’interazione continua da parte
    dell’utente



                                    Soluzione
•   Far sì che sia il social network a seguire l’utente

•   Sviluppo di un client per smartphone evoluti
Significant location monitoring

•   API presente all’interno della iOS SDK (4.0+)

•   Monitoraggio automatico della posizione, anche in background

•   Basato sull’utilizzo di hotspot wi-fi, BTS cellulari, precedenti posizioni GPS

•   Consumo di batteria nullo

•   Meccanismo di tipo push

•   Buona precisione in città (50 metri)
Bugg


•   Commissionato da Easter Egg Srl, Milano

•   Sviluppo iniziato nel 2010

•   Durato circa 1 anno

•   Disponibile per iPhone dal Natale 2010
Obiettivo


•   Condivisione della posizione delle
    persone                                   •   Base di dati
•   Funzionamento generico (non check-in)     •   Middleware
•   Aggiornamento automatico (follow me)      •   Client iOS
•   Privacy (amici, blocchi)
Progettazione

Applicazione iOS                 Middleware                    Base di dati

•Esplorazione       mappa        •Amici                        •Utenti


•Lista   di amici                •Ricerca                      •Amicizie


•Profilo   utente                •Posizioni                    •Posizioni


•Modifica    impostazioni        •Commenti                     •Commenti


•Visualizzazione     posizione   •Impostazioni,   richieste,
                                 etc.
Progettazione base di dati

Entità            Relazioni

•   Utente        •   Presenza

•   Amico         •   Amicizia

•   Posizione     •   Commento
Progettazione base di dati

Progettazione logica


•   Ristrutturazione schema E/R

•   Generalizzazioni
Realizzazione base di dati
   Users         Tipo     Locations     Tipo      Comments       Tipo

     id          UINT        id         UINT          id         UINT

    email       VARCHAR   timestamp   TIMESTAMP   timestamp    TIMESTAMP

  password      VARCHAR    latitude    DOUBLE        text      TINYTEXT

  firstname     VARCHAR   longitude    DOUBLE      fkuser        UINT

  lastname      VARCHAR   accuracy     DOUBLE     fklocation     UINT

                            text      TINYTEXT
Relationships    Tipo
                           fkuser       UINT
     id          UINT

   fkuser        UINT

   fkfriend      UINT
Realizzazione base di dati


•   DBMS MySQL 5.5

•   Tabelle InnoDB (integrità referenziale)

•   Codifica Unicode UTF-8 4-byte (supporto alle Emoji)
Realizzazione middleware


•   Comunicazione tramite HTTP con il client

•   Utilizzo di script PHP per l’esecuzione di query

•   Risposta in JSON
Realizzazione client

•   3 fasi (model, view, controller)

•   Model: contenuto informativo (entità Utente – classe BuggUser, etc.)

•   View: rappresentazione visuale del model (classi BuggMapView, etc.)

•   Controller: intermediari tra model e view (classi BuggMapViewController, etc.)

•   Utilizzo di connessioni asincrone (non-blocking)
Realizzazione client




    interfaccia tab-based
Realizzazione client




   interfaccia navigation-based
Test e debug

•   Su iOS simulator o device

•   Static analyzer

•   GDB

•   Instruments

•   Beta tester (TestFlight)
Risultato


•   70 classi Objective-C, 16000 righe di codice, 150 immagini UI

•   20 scripts PHP, 4500 righe di codice

•   5 tabelle InnoDB, al momento 30000 record “User”
Conclusioni

Stato attuale (versione 2.1.2)
•   App iOS scaricabile da iOS App Store (http://appstore.com/Bugg)


Sviluppi futuri
•   Scambio di messaggi tra utenti anziché commenti (privacy)

•   RESTful API per dare una migliore organizzazione all’object graph

•   Persistenza dei dati su client attraverso Core Data

More Related Content

Similar to Lorenzo Bevilacqua - Sviluppo di un'applicazione iPhone per la localizzazione di persone

Azure Bot Service with Node.js
Azure Bot Service with Node.jsAzure Bot Service with Node.js
Azure Bot Service with Node.jsMaurizio Moriconi
 
IoT Saturday 2019 - Custom Vision on Edge device
IoT Saturday 2019 - Custom Vision on Edge deviceIoT Saturday 2019 - Custom Vision on Edge device
IoT Saturday 2019 - Custom Vision on Edge deviceAlessio Biasiutti
 
Custom vision on edge device
Custom vision on edge deviceCustom vision on edge device
Custom vision on edge deviceAlessio Biasiutti
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatoreSMAU
 
Android - Programmazione Avanzata
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione AvanzataStefano Sanna
 
Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native
Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili NativeUn Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native
Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili NativeGregorio Perego
 
Moretto Carlo Curriculum
Moretto Carlo CurriculumMoretto Carlo Curriculum
Moretto Carlo CurriculumCarlo Moretto
 
Share Point 2010 - Surfing the Wave
Share Point 2010 - Surfing the WaveShare Point 2010 - Surfing the Wave
Share Point 2010 - Surfing the WaveRomeo Pruno
 
Writing apps for android with .net
Writing apps for android with .net Writing apps for android with .net
Writing apps for android with .net Leonardo Alario
 
Applicazioni mobile integrate a TYPO3
Applicazioni mobile integrate a TYPO3Applicazioni mobile integrate a TYPO3
Applicazioni mobile integrate a TYPO3Luca Peressini
 
Cert04 70-484 - essentials of developing windows store apps
Cert04   70-484 - essentials of developing windows store appsCert04   70-484 - essentials of developing windows store apps
Cert04 70-484 - essentials of developing windows store appsDotNetCampus
 
Codice iPhone lavato a caldo: come "restringere" la tua app per Apple Watch
Codice iPhone lavato a caldo: come "restringere" la tua app per Apple WatchCodice iPhone lavato a caldo: come "restringere" la tua app per Apple Watch
Codice iPhone lavato a caldo: come "restringere" la tua app per Apple WatchCodemotion
 
SUE AGILE Framework (Italiano)
SUE AGILE Framework (Italiano)SUE AGILE Framework (Italiano)
SUE AGILE Framework (Italiano)Sabino Labarile
 
Introduzione a DotNetNuke
Introduzione a DotNetNukeIntroduzione a DotNetNuke
Introduzione a DotNetNukeMassimo Bonanni
 
AUGMENTED REALITY EXPERT
AUGMENTED REALITY EXPERTAUGMENTED REALITY EXPERT
AUGMENTED REALITY EXPERTMirko Compagno
 
Touch&play framework
Touch&play frameworkTouch&play framework
Touch&play frameworkCSP Scarl
 
HCIM08 - Mobile Applications
HCIM08 - Mobile ApplicationsHCIM08 - Mobile Applications
HCIM08 - Mobile ApplicationsStefano Sanna
 
Microsoft Azure per l'IT Pro
Microsoft Azure per l'IT ProMicrosoft Azure per l'IT Pro
Microsoft Azure per l'IT ProMarco Parenzan
 

Similar to Lorenzo Bevilacqua - Sviluppo di un'applicazione iPhone per la localizzazione di persone (20)

Azure Bot Service with Node.js
Azure Bot Service with Node.jsAzure Bot Service with Node.js
Azure Bot Service with Node.js
 
IoT Saturday 2019 - Custom Vision on Edge device
IoT Saturday 2019 - Custom Vision on Edge deviceIoT Saturday 2019 - Custom Vision on Edge device
IoT Saturday 2019 - Custom Vision on Edge device
 
Custom vision on edge device
Custom vision on edge deviceCustom vision on edge device
Custom vision on edge device
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatore
 
Android - Programmazione Avanzata
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione Avanzata
 
Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native
Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili NativeUn Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native
Un Approccio Model-Driven per lo Sviluppo di Applicazioni Mobili Native
 
Moretto Carlo Curriculum
Moretto Carlo CurriculumMoretto Carlo Curriculum
Moretto Carlo Curriculum
 
Share Point 2010 - Surfing the Wave
Share Point 2010 - Surfing the WaveShare Point 2010 - Surfing the Wave
Share Point 2010 - Surfing the Wave
 
Writing apps for android with .net
Writing apps for android with .net Writing apps for android with .net
Writing apps for android with .net
 
Applicazioni mobile integrate a TYPO3
Applicazioni mobile integrate a TYPO3Applicazioni mobile integrate a TYPO3
Applicazioni mobile integrate a TYPO3
 
Cert04 70-484 - essentials of developing windows store apps
Cert04   70-484 - essentials of developing windows store appsCert04   70-484 - essentials of developing windows store apps
Cert04 70-484 - essentials of developing windows store apps
 
Codice iPhone lavato a caldo: come "restringere" la tua app per Apple Watch
Codice iPhone lavato a caldo: come "restringere" la tua app per Apple WatchCodice iPhone lavato a caldo: come "restringere" la tua app per Apple Watch
Codice iPhone lavato a caldo: come "restringere" la tua app per Apple Watch
 
SUE AGILE Framework (Italiano)
SUE AGILE Framework (Italiano)SUE AGILE Framework (Italiano)
SUE AGILE Framework (Italiano)
 
Introduzione a DotNetNuke
Introduzione a DotNetNukeIntroduzione a DotNetNuke
Introduzione a DotNetNuke
 
AUGMENTED REALITY EXPERT
AUGMENTED REALITY EXPERTAUGMENTED REALITY EXPERT
AUGMENTED REALITY EXPERT
 
Touch&play framework
Touch&play frameworkTouch&play framework
Touch&play framework
 
Mobile e Smart Client
Mobile e Smart ClientMobile e Smart Client
Mobile e Smart Client
 
Whymca Dive into Android [ITA]
Whymca Dive into Android [ITA]Whymca Dive into Android [ITA]
Whymca Dive into Android [ITA]
 
HCIM08 - Mobile Applications
HCIM08 - Mobile ApplicationsHCIM08 - Mobile Applications
HCIM08 - Mobile Applications
 
Microsoft Azure per l'IT Pro
Microsoft Azure per l'IT ProMicrosoft Azure per l'IT Pro
Microsoft Azure per l'IT Pro
 

Recently uploaded

PalestiniAurora-la conoscenzatestoita.docx
PalestiniAurora-la conoscenzatestoita.docxPalestiniAurora-la conoscenzatestoita.docx
PalestiniAurora-la conoscenzatestoita.docxpalestiniaurora
 
TeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docxTeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docxteccarellilorenzo
 
Educazione civica-Asia Pancia powerpoint
Educazione civica-Asia Pancia powerpointEducazione civica-Asia Pancia powerpoint
Educazione civica-Asia Pancia powerpointpalestiniaurora
 
Palestini Aurora-Steve Jobs,Olivetti e Gates.pptx
Palestini Aurora-Steve Jobs,Olivetti e Gates.pptxPalestini Aurora-Steve Jobs,Olivetti e Gates.pptx
Palestini Aurora-Steve Jobs,Olivetti e Gates.pptxpalestiniaurora
 
magia, stregoneria, inquisizione e medicina.pptx
magia, stregoneria, inquisizione e medicina.pptxmagia, stregoneria, inquisizione e medicina.pptx
magia, stregoneria, inquisizione e medicina.pptxpalestiniaurora
 
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxAdducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxsasaselvatico
 
Pancia Asia_relazione laboratorio(forza d'attrito).docx
Pancia Asia_relazione laboratorio(forza d'attrito).docxPancia Asia_relazione laboratorio(forza d'attrito).docx
Pancia Asia_relazione laboratorio(forza d'attrito).docxpalestiniaurora
 
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptxTeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptxteccarellilorenzo
 
Pancia Asia-Pelusi Sara-La pittura romana - Copia (1).pptx
Pancia Asia-Pelusi Sara-La pittura romana - Copia (1).pptxPancia Asia-Pelusi Sara-La pittura romana - Copia (1).pptx
Pancia Asia-Pelusi Sara-La pittura romana - Copia (1).pptxpalestiniaurora
 
Le forme allotropiche del C-Palestini e Pancia.docx
Le forme allotropiche del C-Palestini e Pancia.docxLe forme allotropiche del C-Palestini e Pancia.docx
Le forme allotropiche del C-Palestini e Pancia.docxpalestiniaurora
 
Storia-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptxStoria-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptxteccarellilorenzo
 
a scuola di biblioVerifica: come utilizzare il test TRAAP
a scuola di biblioVerifica: come utilizzare il test TRAAPa scuola di biblioVerifica: come utilizzare il test TRAAP
a scuola di biblioVerifica: come utilizzare il test TRAAPDamiano Orru
 
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024IISGiovanniVallePado
 
TeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdfTeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdfteccarellilorenzo
 
Una breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opereUna breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opereMarco Chizzali
 
Piccole Personetestoitaliano-AuroraPalestini.docx
Piccole Personetestoitaliano-AuroraPalestini.docxPiccole Personetestoitaliano-AuroraPalestini.docx
Piccole Personetestoitaliano-AuroraPalestini.docxpalestiniaurora
 
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...Nguyen Thanh Tu Collection
 
Presentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informaticaPresentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informaticanico07fusco
 
magia, stregoneria, inquisizione e medicina.pptx
magia, stregoneria, inquisizione e medicina.pptxmagia, stregoneria, inquisizione e medicina.pptx
magia, stregoneria, inquisizione e medicina.pptxpalestiniaurora
 
Aurora Palestinipresentazione000001.pdtf
Aurora Palestinipresentazione000001.pdtfAurora Palestinipresentazione000001.pdtf
Aurora Palestinipresentazione000001.pdtfpalestiniaurora
 

Recently uploaded (20)

PalestiniAurora-la conoscenzatestoita.docx
PalestiniAurora-la conoscenzatestoita.docxPalestiniAurora-la conoscenzatestoita.docx
PalestiniAurora-la conoscenzatestoita.docx
 
TeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docxTeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docx
 
Educazione civica-Asia Pancia powerpoint
Educazione civica-Asia Pancia powerpointEducazione civica-Asia Pancia powerpoint
Educazione civica-Asia Pancia powerpoint
 
Palestini Aurora-Steve Jobs,Olivetti e Gates.pptx
Palestini Aurora-Steve Jobs,Olivetti e Gates.pptxPalestini Aurora-Steve Jobs,Olivetti e Gates.pptx
Palestini Aurora-Steve Jobs,Olivetti e Gates.pptx
 
magia, stregoneria, inquisizione e medicina.pptx
magia, stregoneria, inquisizione e medicina.pptxmagia, stregoneria, inquisizione e medicina.pptx
magia, stregoneria, inquisizione e medicina.pptx
 
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxAdducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
 
Pancia Asia_relazione laboratorio(forza d'attrito).docx
Pancia Asia_relazione laboratorio(forza d'attrito).docxPancia Asia_relazione laboratorio(forza d'attrito).docx
Pancia Asia_relazione laboratorio(forza d'attrito).docx
 
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptxTeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
 
Pancia Asia-Pelusi Sara-La pittura romana - Copia (1).pptx
Pancia Asia-Pelusi Sara-La pittura romana - Copia (1).pptxPancia Asia-Pelusi Sara-La pittura romana - Copia (1).pptx
Pancia Asia-Pelusi Sara-La pittura romana - Copia (1).pptx
 
Le forme allotropiche del C-Palestini e Pancia.docx
Le forme allotropiche del C-Palestini e Pancia.docxLe forme allotropiche del C-Palestini e Pancia.docx
Le forme allotropiche del C-Palestini e Pancia.docx
 
Storia-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptxStoria-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptx
 
a scuola di biblioVerifica: come utilizzare il test TRAAP
a scuola di biblioVerifica: come utilizzare il test TRAAPa scuola di biblioVerifica: come utilizzare il test TRAAP
a scuola di biblioVerifica: come utilizzare il test TRAAP
 
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
 
TeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdfTeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdf
 
Una breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opereUna breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opere
 
Piccole Personetestoitaliano-AuroraPalestini.docx
Piccole Personetestoitaliano-AuroraPalestini.docxPiccole Personetestoitaliano-AuroraPalestini.docx
Piccole Personetestoitaliano-AuroraPalestini.docx
 
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
 
Presentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informaticaPresentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informatica
 
magia, stregoneria, inquisizione e medicina.pptx
magia, stregoneria, inquisizione e medicina.pptxmagia, stregoneria, inquisizione e medicina.pptx
magia, stregoneria, inquisizione e medicina.pptx
 
Aurora Palestinipresentazione000001.pdtf
Aurora Palestinipresentazione000001.pdtfAurora Palestinipresentazione000001.pdtf
Aurora Palestinipresentazione000001.pdtf
 

Lorenzo Bevilacqua - Sviluppo di un'applicazione iPhone per la localizzazione di persone

  • 1. Università degli Studi di Trieste Dipartimento di Ingegneria e Architettura Corso di laurea triennale in Ingegneria Informatica Sviluppo di un’applicazione iPhone per la localizzazione di persone Laureando Relatore Lorenzo Bevilacqua Chiar.mo Prof. Maurizio Fermeglia Anno Accademico 2011/2012
  • 2. Social network • Sviluppo grazie al web 2.0 • Basati sulla condivisione e l’interazione tra utenti • Possibilità di condividere contenuti di diversi tipi (testo, immagine, ...) • Social network generici (Facebook) o specialistici (Soundcloud)
  • 3. Social network location-based Funzionamento a check-in Funzionamento generico Foursquare Google Latitude Gowalla (Facebook)
  • 4. Problema • Per utilizzare i social network citati occorre un’interazione continua da parte dell’utente Soluzione • Far sì che sia il social network a seguire l’utente • Sviluppo di un client per smartphone evoluti
  • 5. Significant location monitoring • API presente all’interno della iOS SDK (4.0+) • Monitoraggio automatico della posizione, anche in background • Basato sull’utilizzo di hotspot wi-fi, BTS cellulari, precedenti posizioni GPS • Consumo di batteria nullo • Meccanismo di tipo push • Buona precisione in città (50 metri)
  • 6. Bugg • Commissionato da Easter Egg Srl, Milano • Sviluppo iniziato nel 2010 • Durato circa 1 anno • Disponibile per iPhone dal Natale 2010
  • 7. Obiettivo • Condivisione della posizione delle persone • Base di dati • Funzionamento generico (non check-in) • Middleware • Aggiornamento automatico (follow me) • Client iOS • Privacy (amici, blocchi)
  • 8. Progettazione Applicazione iOS Middleware Base di dati •Esplorazione mappa •Amici •Utenti •Lista di amici •Ricerca •Amicizie •Profilo utente •Posizioni •Posizioni •Modifica impostazioni •Commenti •Commenti •Visualizzazione posizione •Impostazioni, richieste, etc.
  • 9. Progettazione base di dati Entità Relazioni • Utente • Presenza • Amico • Amicizia • Posizione • Commento
  • 10. Progettazione base di dati Progettazione logica • Ristrutturazione schema E/R • Generalizzazioni
  • 11. Realizzazione base di dati Users Tipo Locations Tipo Comments Tipo id UINT id UINT id UINT email VARCHAR timestamp TIMESTAMP timestamp TIMESTAMP password VARCHAR latitude DOUBLE text TINYTEXT firstname VARCHAR longitude DOUBLE fkuser UINT lastname VARCHAR accuracy DOUBLE fklocation UINT text TINYTEXT Relationships Tipo fkuser UINT id UINT fkuser UINT fkfriend UINT
  • 12. Realizzazione base di dati • DBMS MySQL 5.5 • Tabelle InnoDB (integrità referenziale) • Codifica Unicode UTF-8 4-byte (supporto alle Emoji)
  • 13. Realizzazione middleware • Comunicazione tramite HTTP con il client • Utilizzo di script PHP per l’esecuzione di query • Risposta in JSON
  • 14. Realizzazione client • 3 fasi (model, view, controller) • Model: contenuto informativo (entità Utente – classe BuggUser, etc.) • View: rappresentazione visuale del model (classi BuggMapView, etc.) • Controller: intermediari tra model e view (classi BuggMapViewController, etc.) • Utilizzo di connessioni asincrone (non-blocking)
  • 15. Realizzazione client interfaccia tab-based
  • 16. Realizzazione client interfaccia navigation-based
  • 17. Test e debug • Su iOS simulator o device • Static analyzer • GDB • Instruments • Beta tester (TestFlight)
  • 18. Risultato • 70 classi Objective-C, 16000 righe di codice, 150 immagini UI • 20 scripts PHP, 4500 righe di codice • 5 tabelle InnoDB, al momento 30000 record “User”
  • 19. Conclusioni Stato attuale (versione 2.1.2) • App iOS scaricabile da iOS App Store (http://appstore.com/Bugg) Sviluppi futuri • Scambio di messaggi tra utenti anziché commenti (privacy) • RESTful API per dare una migliore organizzazione all’object graph • Persistenza dei dati su client attraverso Core Data