A short presentation for my bachelor thesis, about 5 frameworks for development of geolocalized Android apps:
- Diane: for an awareness searching
- Hermes: a different mvc in android
- Polaris/Kusor: a better solution for location retrieving
- Socrates: a Google Places Api library, in pure Java
- Ulysses: a specific use of Diane, for aware search of places from Google Places - that is: the summa of Diane and Socrates.
Code available on github:
https://github.com/k0smik0/diane
https://github.com/k0smik0/hermes
https://github.com/k0smik0/polaris
https://github.com/k0smik0/kusor
https://github.com/k0smik0/socrates
https://github.com/k0smik0/ulysses
Tesi: " Class loading in Android: applicazione a tuProlog " - Alessio MercurioAlessio Mercurio
油
tuProlog 竪 un interprete Prolog scritto in Java, attualmente giunto alla versione 2.7.2. La versione Android offre le stesse funzionalit della versione Java, ma con una eccezione: il supporto al class loading, che tuProlog sfrutta per il caricamento dinamico di librerie e teorie, non opera allo stesso modo e con la stessa flessibilit di quello Java a causa delle differenze fra le due piattaforme, in particolare per quanto riguarda il caricamento di jar e class "on the fly". Scopo di questa tesi 竪 quindi studiare le differenze di funzionamento, valutare le opzioni possibili e verificando a livello sperimentale, su un opportuno prototipo, la fattibilit e la validit dell'approccio identificato.
This document summarizes a presentation on CloudSim, a toolkit for modeling and simulating cloud computing environments. CloudSim allows modeling resources and services in cloud data centers and testing application services. It features discrete event-driven simulation of large cloud environments and supports modeling virtualized resources, data centers, and network connections. CloudSim has advantages for testing policies in a repeatable and controllable environment and tuning systems before real deployment. The presentation outlines CloudSim's architecture, modeling capabilities, simulation steps, and concludes with discussions of conclusions and future work, as well as green cloud computing.
CloudSim is a framework for modeling and simulating cloud computing infrastructures and services. It allows modeling of datacenters, virtual machines, hosts, and workloads. Key components include data centers, hosts, virtual machines, brokers, and cloudlets. It supports modeling of policies for resource provisioning and scheduling.
TravelStory is a cross-platform mobile application developed with Xamarin.forms. The application and the related back-end (Microsoft Azure) have been developed for my bachelor thesis.
The application is aimed at tourists who want to share their travel experience. The application is launched and the user can create a new account or just log in. On the home they are asked to create a new trip or if already it's present they continue with the last. It will be the tourist to choose when to save his important points. These points are identified by a GPS position and can be enhanced with photos, videos and notes. These contents are pinpointed and at the end of the trip the entire path can be shared through an external platform. The finished trips can be viewed at any time and can be managed completely.
Angular js o React? Spunti e idee per la scelta di un frameworkGiovanni Buffa
油
Come poter scegliere un framework da utilizzare in un progetto per una web applications? Durante questo workshop analizzeremo le parti fondamentali di AngularJs e React, in modo da capire pregi e difetti di ognungo dei due principali strumenti di sviluppo.
Il progetto INNO: dal dato alla applicazione - Pierluigi Cau (CRS4)Sardegna Ricerche
油
La presentazione del progetto INNO da parte del responsabile scientifico Pierluigi Cau (CRS4). Il progetto si propone di sviluppare uno strumento altamente innovativo orientato ai servizi per la geomatica sul web e al mondo delle applicazioni mobile.
Presentazione delle attivit del primo anno dell'Unit di ricerca i-BIO, porgetto OSDD.
L'Unit di Ricerca i-BIO 竪 finanziata dalla Regione Valle d'Aosta grazie ai Fondi Europei di Sviluppo Regionale (POR FESR 2007/2013) e dal Fondo Sociale Europeo (FSE) ai sensi del Bando per la Creazione e lo sviluppo di Unit di Ricerca, seconda scadenza luglio 2012.
Negli ultimi anni l'utilizzo di piattaforme Cloud per la fornitura di servizi web sta diventando una soluzione sempre pi湛 diffusa ed economicamente vantaggiosa, ma che a volte non sembra essere stata ancora ben assimilata da parte di chi si occupa della progettazione e sviluppo dei servizi.
In questa tesi si 竪 dunque voluto dare una descrizione di come vada progettata l'architettura di un'applicazione che possa essere efficientemente utilizzata in piattaforme cloud, cos狸 da poter sfruttarne al meglio le caratteristiche e gli strumenti li' messi a disposizione. Per far ci嘆 sono state dapprima studiate le principali differenze che sussistono tra una piattaforma non cloud ed una cloud.
Per dare maggior validit al lavoro svolto 竪 stato preso in esame GeoServer, uno dei server geospaziali open source maggiormente utilizzati progettato ancora secondo un'architettura client/server classica, ma che dati i servizi offerti trarrebbe molti vantaggi da un suo utilizzo in ambienti Cloud.
Sono stati quindi individuati i limiti architetturali di GeoServer che non ne consentono un buon utilizzo su piattaforme cloud, proponendo poi delle modifiche che consentono il superamento di tali limiti mantenendone comunque inalterate le funzionalit.
Infine sono stati condotti dei test, usando come piattaforma Cloud Amazon AWS, per dimostrare i vantaggi della nuova architettura e confrontare alcune possibili alternative d'implementazione.
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Mattia De Bernardi
油
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamento al sistema di controllo TANGO, tramite l'ausilio del framework Apache Cordova
Event: Giffoni Open Makers Day 2013
Speaker: Valentina Pelliccia
Android 竪 un sistema operativo open-source basato su kernel Linux e progettato per dispositivi mobili come smartphone e tablet. Il progetto Open Source Android guidato da Google dispone di una vasta comunit di sviluppatori divenendo in pochi anni uno dei leader nel mercato mobile.
Drupal 10: un framework PHP di sviluppo Cloud Native modernosparkfabrik
油
I detrattori parlano di un declino di Drupal: sempre meno developer lo scelgono per realizzare siti. Eppure se osserviamo la qualit dei progetti basati su Drupal, 竪 evidente che si tratti di progetti di impatto sempre maggiore, per lo pi湛 a livello enterprise, in grado di garantire vere e proprie esperienze digitali innovative.
Drupal rimane non solo il pi湛 potente e sicuro CMS open source enterprise-grade, ma 竪 diventato un CMF solido che ha saputo rinnovarsi seguendo i principi del framework MACH che promuove piattaforme basate su microservizi, che siano API-first, cloud native ed headless. Quindi no, nessun declino, Drupal 竪 al passo con le migliori tecnologie esistenti sul mercato.
Ecco di cosa parliamo oggi: la nuova major release di Drupal 竪 alle porte e vogliamo raccontarvi tutte le novit per utenti e developer.
I linguaggi del web - seconda edizione (3属 giornata)Diego La Monica
油
Modulo 4 AJAX
- Interazioni client/server
- Framework a confronto:
- jQuery
- Mootools
- YUI
- JAST
Modulo 5 ARIA e laccessibilit lato client
- Prendere un po' di ARIA
- Le tecnologie assistive
- Ruoli, stati e propriet
- Strumenti per lo sviluppo accessibile
TravelStory is a cross-platform mobile application developed with Xamarin.forms. The application and the related back-end (Microsoft Azure) have been developed for my bachelor thesis.
The application is aimed at tourists who want to share their travel experience. The application is launched and the user can create a new account or just log in. On the home they are asked to create a new trip or if already it's present they continue with the last. It will be the tourist to choose when to save his important points. These points are identified by a GPS position and can be enhanced with photos, videos and notes. These contents are pinpointed and at the end of the trip the entire path can be shared through an external platform. The finished trips can be viewed at any time and can be managed completely.
Angular js o React? Spunti e idee per la scelta di un frameworkGiovanni Buffa
油
Come poter scegliere un framework da utilizzare in un progetto per una web applications? Durante questo workshop analizzeremo le parti fondamentali di AngularJs e React, in modo da capire pregi e difetti di ognungo dei due principali strumenti di sviluppo.
Il progetto INNO: dal dato alla applicazione - Pierluigi Cau (CRS4)Sardegna Ricerche
油
La presentazione del progetto INNO da parte del responsabile scientifico Pierluigi Cau (CRS4). Il progetto si propone di sviluppare uno strumento altamente innovativo orientato ai servizi per la geomatica sul web e al mondo delle applicazioni mobile.
Presentazione delle attivit del primo anno dell'Unit di ricerca i-BIO, porgetto OSDD.
L'Unit di Ricerca i-BIO 竪 finanziata dalla Regione Valle d'Aosta grazie ai Fondi Europei di Sviluppo Regionale (POR FESR 2007/2013) e dal Fondo Sociale Europeo (FSE) ai sensi del Bando per la Creazione e lo sviluppo di Unit di Ricerca, seconda scadenza luglio 2012.
Negli ultimi anni l'utilizzo di piattaforme Cloud per la fornitura di servizi web sta diventando una soluzione sempre pi湛 diffusa ed economicamente vantaggiosa, ma che a volte non sembra essere stata ancora ben assimilata da parte di chi si occupa della progettazione e sviluppo dei servizi.
In questa tesi si 竪 dunque voluto dare una descrizione di come vada progettata l'architettura di un'applicazione che possa essere efficientemente utilizzata in piattaforme cloud, cos狸 da poter sfruttarne al meglio le caratteristiche e gli strumenti li' messi a disposizione. Per far ci嘆 sono state dapprima studiate le principali differenze che sussistono tra una piattaforma non cloud ed una cloud.
Per dare maggior validit al lavoro svolto 竪 stato preso in esame GeoServer, uno dei server geospaziali open source maggiormente utilizzati progettato ancora secondo un'architettura client/server classica, ma che dati i servizi offerti trarrebbe molti vantaggi da un suo utilizzo in ambienti Cloud.
Sono stati quindi individuati i limiti architetturali di GeoServer che non ne consentono un buon utilizzo su piattaforme cloud, proponendo poi delle modifiche che consentono il superamento di tali limiti mantenendone comunque inalterate le funzionalit.
Infine sono stati condotti dei test, usando come piattaforma Cloud Amazon AWS, per dimostrare i vantaggi della nuova architettura e confrontare alcune possibili alternative d'implementazione.
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Mattia De Bernardi
油
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamento al sistema di controllo TANGO, tramite l'ausilio del framework Apache Cordova
Event: Giffoni Open Makers Day 2013
Speaker: Valentina Pelliccia
Android 竪 un sistema operativo open-source basato su kernel Linux e progettato per dispositivi mobili come smartphone e tablet. Il progetto Open Source Android guidato da Google dispone di una vasta comunit di sviluppatori divenendo in pochi anni uno dei leader nel mercato mobile.
Drupal 10: un framework PHP di sviluppo Cloud Native modernosparkfabrik
油
I detrattori parlano di un declino di Drupal: sempre meno developer lo scelgono per realizzare siti. Eppure se osserviamo la qualit dei progetti basati su Drupal, 竪 evidente che si tratti di progetti di impatto sempre maggiore, per lo pi湛 a livello enterprise, in grado di garantire vere e proprie esperienze digitali innovative.
Drupal rimane non solo il pi湛 potente e sicuro CMS open source enterprise-grade, ma 竪 diventato un CMF solido che ha saputo rinnovarsi seguendo i principi del framework MACH che promuove piattaforme basate su microservizi, che siano API-first, cloud native ed headless. Quindi no, nessun declino, Drupal 竪 al passo con le migliori tecnologie esistenti sul mercato.
Ecco di cosa parliamo oggi: la nuova major release di Drupal 竪 alle porte e vogliamo raccontarvi tutte le novit per utenti e developer.
I linguaggi del web - seconda edizione (3属 giornata)Diego La Monica
油
Modulo 4 AJAX
- Interazioni client/server
- Framework a confronto:
- jQuery
- Mootools
- YUI
- JAST
Modulo 5 ARIA e laccessibilit lato client
- Prendere un po' di ARIA
- Le tecnologie assistive
- Ruoli, stati e propriet
- Strumenti per lo sviluppo accessibile
1. ALMA MATER STUDIORUM - UNIVERSIT DI BOLOGNA
SCUOLA DI INGEGNERIA E ARCHITETTURA
Dipartimento di Informatica - Scienza e Ingegneria
Corso di Laurea in Ingegneria Informatica
Tesi Di Laurea in Tecnologie Web T
Framework di Supporto allo Sviluppo
di Applicazioni Georeferenziate su Android
- Collaborazione presso Mobile Activity -
CANDIDATO
Massimiliano Leone
RELATORE
Prof. Ing. Paolo Bellavista
CORRELATORE
Dott. Giuseppe Ventura
Anno Accademico 2012-2013
Sessione III
2. Le motivazioni dello sviluppo (1)
In seno alla collaborazione con Mobile Activity del Dott. Ventura,
si vuole realizzare un'applicazione Android per la ricerca
georeferenziata di dati:
Progetto Aper嘆, per la ricerca di bar/caf竪 per l'aperitivo
Altri progetti similari, per tipi differenti di ricerca: OnYourTips, Mandovai
Prima applicazione sperimentale, quale modello per successivi progetti:
Responsiva
Estendibile
Agevole mantenimento futuro
Parti comuni riutilizzabili
Gli obiettivi fissati trovano ostacolo in alcune inefficienze
di Android standard:
Difficolt, in alcuni casi, nell'ottenere la geoposizione
(latenza/triangolazione poco accurata)
Assenza di un modello strutturato come MVC,
indispensabile in progetti complessi
Framework troppo focalizzato sulla UI
Implementazione onerosa per qualsivoglia attivit
1
3. Le motivazioni dello sviluppo (2)
L'applicazione viene generalizzata in un insieme di Framework:
Modello MVC pi湛 strutturato, alternativo all'uso di Activity quale
Controller
Dividi et impera - ogni componente risolve problematiche specifiche:
retrieve della geolocation
interrogazione alla fonte di dati
persistenza
Astrazione di onerose implementazioni tramite Command e Facade
Possibilit di facile riutilizzo in applicazioni di differente natura
Strumenti utilizzati:
Debian Gnu/Linux
Eclipse, SDK Android, Emulatore QEMU, DDMS. Git
Samsung S5570, single core 600 Mhz
2
5. I Framework Sviluppati (1)
Hermes:
Diane:
implementa un MVC pi湛 strutturato della modalit standard Android,
reinterprentando l'uso dei due principali componenti, Activity e Service:
il primo avr solo onere della gestione della vista
il secondo sar utilizzato come contenitore del codice di business
permette anche di svincolarsi dall'uso di Parcelable
rappresenta la business logic, e utilizza meccanismi awareness per
l'esecuzione delle ricerche geolocalizzate dei dati d'interesse
竪 generics-based
Socrates:
竪 un helper per l'interrogazione della fonte remota (Google Places)
traduce la response JSON in oggetti Java
4
6. I Framework Sviluppati (2)
Ulysses:
竪 una specializzazione di Diane
utilizza Socrates e fornisce ulteriori classi di comodo per gestire alcune View
Polaris/Kusor:
wrapper per gli statement necessari al retrieve della geolocation
applica algoritmi pi湛 evoluti per ridurre la latenza del retrieve
5
7. L'implementazione (1)
Hermes:
pattern Service as Controller Container
Il Service mantiene l'istanza del Controller
La classe Connector incapsula gli statement di bind al Service,
e fornisce l'accesso all'istanza suddetta
I client (Activity/Fragment) ottengono un'istanza di Connector (Singleton),
dal quale accedono agli oggetti della la business logic
@Inject Connector<MyService,MyController> conn;
conn.getController().doSomething();
Diane: logiche aware incapsulate nel Controller
Check della usefulness della fresh location prima di avviare
un nuovo task di ricerca
Garanzia del risultato: in assenza di rete uso di cache locale
Situazioni failure gestite con stati di ritorno o gerarchia di eccezioni
public Void search(Void... nop) throws LocationNotSoUsefulException, //.. {
boolean locationUseful =locationAwareSupplier.isNewLocationUseful();
if (locationUseful) return doSearch();
//..
throw new LocationTooNearException(); // if false
}
6
8. L'implementazione (2)
Socrates:
utilizza Google Http Java Client, di cui sfrutta il sistema di binding JSON/Java,
effettuato tramite annotations e reflection
@Inject Searcher searcher;
SearchResponse searchResponse = searcher.search( newFreshLocation );
List<Place> places = searchResponse.getStatus()
.handleStatusAndGetData(searchResponse);
Polaris/Kusor:
utilizza Novocation, che sfrutta il PendingIntent in luogo di LocationListener,
nonch辿 il Passive_Provider
@Inject Locator locator;
locator.startLocationUpdates(); / locator.stopLocationUpdates();
Location location = locator.getLocation();
Uso globale dell'Inversion of Control tramite RoboGuice
7
14. Test e risultati sperimentali
L'applicazione finale Rataf狸a impiega ~2,3 sec
Ricerca dei esaurita in ~16,3 sec
Spazio occupato: ~1,1MB, di cui
~900kB (post dexing) per i jars da includere
Memoria occupata:
Complessiva: ~7,4MB per View leggere (List);
~12,4MB per MapView
Heap (post garbage collection degli oggetti della View): ~4,2 MB
Tempi impiegati per i controlli aware: ~0,032ms
13
15. Conclusioni e estensioni future
Le soluzioni proposte, alla luce dei test, risultano funzionali
e pienamente utilizzabili in fase di produzione
Tempi brevi per lo sviluppo dell'applicazione demo Rataf狸a,
a dimostrazione della facile integrazione dei framework illustrati
Applicazioni dagli intenti similari, di cui i progetti all'inizio
- ma non solo - possono giovare della bont dei componenti,
e focalizzare l'impegno per proprie specifiche funzionalit
Diane:
Intenti futuri
implementare un sistema di cache (NoSQL o SQLite+ORM)
Rataf狸a:
estrapolando parti significative, astrarre ad un framework
per la gestione dell'interfaccia grafica, utilizzando efficienti UI pattern
(ActionBar, Drawer Navigation, etc.)
14