Android, panoramica sulla storia, la licenza, il modello di sviluppo, perchè e come Google si è buttato nel mondo mobile.
Android programmazione, panoramica veloce sulle particolarità della programmazione Android rispetto altre piattaforme.
Android App Development, Creare la nostra prima appNicola Corti
Intervento al Linux Day 2014@Pisa, organizzato da parte del GULP. L'intervento introduce allo sviluppo su piattaforma Android, mostrando i vari strumenti e gli accorgimenti da seguire per programmare sulla nota piattaforma del robottino verde.
App vs Mobile website: quale lo scenario vincente?Websolute
Come cambia la user experience nel passaggio da web a mobile? E come scegliere tra app e web app? A Branding 2.0 2012, Claudio Tonti di Websolute risponde a queste domande, indicandoci fattori critici di scelta quali qualità dell'interfaccia, potenza di calcolo, revenue, integrazione con altre applicazioni.
Insegnare a progettare il proprio apprendimento con il coding - Lezione 2Michele Maffucci
Predisposizione di esempi pratici e applicabili in classe volti al miglioramento delle competenze logico-matematiche e delle capacità organizzative degli allievi mediante l’uso di software di programmazione con forte grado di interattività, opensource e gratuiti. Si mostrerà come il “Creative Computing” possa agevolare lo sviluppo del pensiero strutturato (computational thinking) assieme al pensiero creativo mediante la programmazione.
Nella seconda lezione vengono mostrati ulteriori esempi per l'utilizzo del coding a scuola ed inoltre modalità e applicativi web utili per lo sviluppo di progetti didattici e non solo.
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.
Android, panoramica sulla storia, la licenza, il modello di sviluppo, perchè e come Google si è buttato nel mondo mobile.
Android programmazione, panoramica veloce sulle particolarità della programmazione Android rispetto altre piattaforme.
Android App Development, Creare la nostra prima appNicola Corti
Intervento al Linux Day 2014@Pisa, organizzato da parte del GULP. L'intervento introduce allo sviluppo su piattaforma Android, mostrando i vari strumenti e gli accorgimenti da seguire per programmare sulla nota piattaforma del robottino verde.
App vs Mobile website: quale lo scenario vincente?Websolute
Come cambia la user experience nel passaggio da web a mobile? E come scegliere tra app e web app? A Branding 2.0 2012, Claudio Tonti di Websolute risponde a queste domande, indicandoci fattori critici di scelta quali qualità dell'interfaccia, potenza di calcolo, revenue, integrazione con altre applicazioni.
Insegnare a progettare il proprio apprendimento con il coding - Lezione 2Michele Maffucci
Predisposizione di esempi pratici e applicabili in classe volti al miglioramento delle competenze logico-matematiche e delle capacità organizzative degli allievi mediante l’uso di software di programmazione con forte grado di interattività, opensource e gratuiti. Si mostrerà come il “Creative Computing” possa agevolare lo sviluppo del pensiero strutturato (computational thinking) assieme al pensiero creativo mediante la programmazione.
Nella seconda lezione vengono mostrati ulteriori esempi per l'utilizzo del coding a scuola ed inoltre modalità e applicativi web utili per lo sviluppo di progetti didattici e non solo.
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.
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
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 si propone di fornire e-skills e soft skills agli studenti del liceo "Antonio Labriola " di Ostia.
Al progetto hanno aderito circa 40 studenti del liceo che hanno seguito i corsi su come costruire una APP dopo la fine delle lezioni.
L'obiettivo del progetto è stato quello di costruire una APP che avrebbe permesso di gestire i corsi durante la settimana autogestita dagli studenti.
Questa App ha permesso di gestire il periodo di autogestione al liceo e potrà essere usata in modo più ampio per gestire eventi vari.
Dal lato utilizzatore ha permesso di visualizzare i corsi esistenti, di controllare la disponibilità, l'aula dove si sarebbe svolto il corso e di iscriversi quindi ai corsi.
Dal lato amministratore di inserire eventi con i relativi dati: L’argomento, il luogo dove è svolto, i numero di posti disponibili, il relatore.
Con la collaborazione della community Dot Net Code, un gruppo di professionisti che si occupano di condividere e divulgare le principali tecniche di programmazione sulla piattaforma Microsoft .NET, gli studenti del liceo Labriola hanno cominciato a scoprire il mondo delle APP.
FODD 2015 Mobile App based on ServiceMap, http://www.disit.org/foddPaolo Nesi
FODD, Florence Open Data Day
Salone de’ Dugento, Palazzo Vecchio, Firenze
21/02/2015, http://www.disit.org/fodd
Ing. Ph.D Ivan Bruno
Obiettivo
Utilizzare i servizi (API REST) esposti da servicemap.disit.org
Visualizzare informazioni tempo reale / dinamiche
Realizzare un app per l’evento
Non solo una demo ma un’app estendibile e modificabile
Semplificazione
Menu configurabile
Gestione viste: una logica di gestione delle viste statiche e di quelle dinamiche da costruire a runtime sui dati JSON provenienti dalle chiamate REST via AJAX
Semplificare la gestione delle viste costruite sui dati JSON utilizzando soluzioni template-based
Rilevazione stato connessione internet del dispositivo
Notifica di anomalie (connessione assente, errori di connessioni al server....)
Portabilità su diversi dispositivi mobili
Massimiliano Zani - Applicazioni Mobile: tecnologie e ProblematicheBetter Software
Tecnologie per applicazioni mobile e problemi legati al loro sviluppo: il testing (anche in ambito internazione), il deployment e il loro monitoraggio.
Interfacce per il mobile e di come gli editor/grafici devono semplificare al massimo il loro lavoro per rendere usabile il sito wap.
Analisi delle performance e dei Kpi delle applicazioni mobile.
Convergenza di applicazioni web e mobile (vedi facebook e m.dada.net).
Dopo una breve introduzione del progetto BackBox, illustreremo le caratteristiche principali di questa nuova versione della Distribuzione con particolare riferimento alla sezione “Mobile Analysis”.
Introdurremo tools e best practices per condurre penetration test su applicazioni Android.
[F5 Hit Refresh] Pierpaolo Basile - Accesso alle informazioni con apache luceneQIRIS
The document discusses Apache Lucene, an open-source information retrieval library. It describes Lucene's indexing and searching capabilities, including its vector space model and use of inverted indexes. The document also provides an overview of Lucene's architecture and APIs for indexing, searching, and analyzing document contents.
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
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 si propone di fornire e-skills e soft skills agli studenti del liceo "Antonio Labriola " di Ostia.
Al progetto hanno aderito circa 40 studenti del liceo che hanno seguito i corsi su come costruire una APP dopo la fine delle lezioni.
L'obiettivo del progetto è stato quello di costruire una APP che avrebbe permesso di gestire i corsi durante la settimana autogestita dagli studenti.
Questa App ha permesso di gestire il periodo di autogestione al liceo e potrà essere usata in modo più ampio per gestire eventi vari.
Dal lato utilizzatore ha permesso di visualizzare i corsi esistenti, di controllare la disponibilità, l'aula dove si sarebbe svolto il corso e di iscriversi quindi ai corsi.
Dal lato amministratore di inserire eventi con i relativi dati: L’argomento, il luogo dove è svolto, i numero di posti disponibili, il relatore.
Con la collaborazione della community Dot Net Code, un gruppo di professionisti che si occupano di condividere e divulgare le principali tecniche di programmazione sulla piattaforma Microsoft .NET, gli studenti del liceo Labriola hanno cominciato a scoprire il mondo delle APP.
FODD 2015 Mobile App based on ServiceMap, http://www.disit.org/foddPaolo Nesi
FODD, Florence Open Data Day
Salone de’ Dugento, Palazzo Vecchio, Firenze
21/02/2015, http://www.disit.org/fodd
Ing. Ph.D Ivan Bruno
Obiettivo
Utilizzare i servizi (API REST) esposti da servicemap.disit.org
Visualizzare informazioni tempo reale / dinamiche
Realizzare un app per l’evento
Non solo una demo ma un’app estendibile e modificabile
Semplificazione
Menu configurabile
Gestione viste: una logica di gestione delle viste statiche e di quelle dinamiche da costruire a runtime sui dati JSON provenienti dalle chiamate REST via AJAX
Semplificare la gestione delle viste costruite sui dati JSON utilizzando soluzioni template-based
Rilevazione stato connessione internet del dispositivo
Notifica di anomalie (connessione assente, errori di connessioni al server....)
Portabilità su diversi dispositivi mobili
Massimiliano Zani - Applicazioni Mobile: tecnologie e ProblematicheBetter Software
Tecnologie per applicazioni mobile e problemi legati al loro sviluppo: il testing (anche in ambito internazione), il deployment e il loro monitoraggio.
Interfacce per il mobile e di come gli editor/grafici devono semplificare al massimo il loro lavoro per rendere usabile il sito wap.
Analisi delle performance e dei Kpi delle applicazioni mobile.
Convergenza di applicazioni web e mobile (vedi facebook e m.dada.net).
Dopo una breve introduzione del progetto BackBox, illustreremo le caratteristiche principali di questa nuova versione della Distribuzione con particolare riferimento alla sezione “Mobile Analysis”.
Introdurremo tools e best practices per condurre penetration test su applicazioni Android.
[F5 Hit Refresh] Pierpaolo Basile - Accesso alle informazioni con apache luceneQIRIS
The document discusses Apache Lucene, an open-source information retrieval library. It describes Lucene's indexing and searching capabilities, including its vector space model and use of inverted indexes. The document also provides an overview of Lucene's architecture and APIs for indexing, searching, and analyzing document contents.
follow-app BOOTCAMP 2: Windows phone fast application switchingQIRIS
This document discusses fast application switching and tombstoning on Windows Phone. It describes how there is only one active app at a time and apps can be dormant (in memory but not running) or tombstoned (removed from memory). It provides examples of using application state management methods to save and restore state when an app becomes dormant or tombstoned. The document also demonstrates how to determine resume type and manage resources during activation and deactivation.
follow-app BOOTCAMP 2: Introduction to silverlightQIRIS
This document provides an introduction to the Silverlight development framework and Windows Phone development. It discusses key Silverlight concepts like the Metro design style, components, layout, and events. It demonstrates how to create a basic Silverlight application with XAML and C# code. It also covers Windows Phone specific topics such as project templates, the application bar, and page navigation.
follow-app BOOTCAMP 2: Building windows phone applications with visual studio...QIRIS
This document discusses building Windows Phone applications with Visual Studio 2010. It describes the Windows Phone developer tools, Visual Studio, the Windows Phone emulator, and the Windows Phone profiler. The emulator allows testing and debugging applications without a physical device. Visual Studio provides an integrated development environment and debugging capabilities. The profiler helps optimize applications by identifying performance bottlenecks.
follow-app BOOTCAMP 2 - Windows Phone: Tiles and Notifications QIRIS
This document discusses live tiles, push notifications, and updating tiles on Windows Phone. It covers the end user experience of live tiles that provide glanceable information on the home screen. Push notifications allow sending timely updates even when apps aren't running. Tiles can be updated locally from the foreground or background, or through push notifications. The document demonstrates updating tiles from a background agent and with push notifications. It also discusses tile templates, scheduling updates, and security aspects of the notification system.
Ogni impresa nasce da un’idea che risolva un problema. Sia essa un negozio di abbigliamento o un’impresa innovativa che produce una nuova molecola, non esiste azienda senza un’idea imprenditoriale in grado di soddisfare un bisogno. Durante il seminario si comprenderanno i fattori che permettono di valutare un’idea e di comprendere se e in che modo vale la pena di farla diventare un business e di essere accolta dal mercato.
Ogni impresa nasce da un’idea che risolva un problema. Sia essa un negozio di abbigliamento o un’impresa innovativa che produce una nuova molecola, non esiste azienda senza un’idea imprenditoriale in grado di soddisfare un bisogno. Durante il seminario si comprenderanno i fattori che permettono di valutare un’idea e di comprendere se e in che modo vale la pena di farla diventare un business e di essere accolta dal mercato.
Ogni impresa nasce da un’idea che risolva un problema. Sia essa un negozio di abbigliamento o un’impresa innovativa che produce una nuova molecola, non esiste azienda senza un’idea imprenditoriale in grado di soddisfare un bisogno. Durante il seminario si comprenderanno i fattori che permettono di valutare un’idea e di comprendere se e in che modo vale la pena di farla diventare un business e di essere accolta dal mercato.
La frase “Entrepreneurs don’t just eat, they like to bake” di Guy Kawasaki illustra perfettamente la figura dell’imprenditore. In particolare, essere uno start-upper vuol dire assecondare consapevolemente il proprio spirito intraprendente e accettare una sfida durissima di sacrificio e di passione. Una vocazione piuttosto che una scelta. Nel corso del seminario sono stati illustrati i tipi di imprenditori e gli errori classici da evitare nel proprio percorso imprenditoriale, in modo da creare valore per sé e per gli altri.
La frase “Entrepreneurs don’t just eat, they like to bake” di Guy Kawasaki illustra perfettamente la figura dell’imprenditore. In particolare, essere uno start-upper vuol dire assecondare consapevolemente il proprio spirito intraprendente e accettare una sfida durissima di sacrificio e di passione. Una vocazione piuttosto che una scelta. Nel corso del seminario sono stati illustrati i tipi di imprenditori e gli errori classici da evitare nel proprio percorso imprenditoriale, in modo da creare valore per sé e per gli altri.
1. www.follow-app.it
INTRODUZIONE ALLA PROGRAMMAZIONE ANDROID
MARZIALE GIUSEPPE
Follow-App è un'attività sperimentale realizzata da ARTI e QIRIS in collaborazione con la Regione Puglia - programma Bollenti Spiriti nell'ambito dell'iniziativa
www.follow-app.it
Innovazione per l’Occupabilità – Azioni a supporto del Piano Straordinario per il Lavoro 2011. PO FSE, Asse VII "Capacità Istituzionale".
2. ABOUT ME (GIUSEPPE MARZIALE)
1. Sono Laureato in Ingegneria informatica specializzazione in
sistema informativi e reti ( Ottobre 2007)
2. Lavoro in exprivia e mi occupo da pià di due anni di sviluppo
mobile
3. Prevalentamente in ambito B2B
4. Sviluppiamo su Android, Ios, blackberry , Windows Phone e
in multipiattaforma
5. Email : gmarziale83@gmail.com skype: giuseppe_marziale
www.follow-app.it Introduzione alla piattaforma android 2 /91
3. AGENDA
1. Introduzione alla piattaforma android
2. Struttura di un app android e tool di sviluppo
3. Laboratorio
www.follow-app.it 3 /91
4. Introduzione alla piattaforma android
INTRODUZIONE ALLA PROGRAMMAZIONE
ANDROID
www.follow-app.it Introduzione alla piattaforma android 4 /91
6. PERCHE’SVILUPPARE MOBILE
La diffusione degli
smartphone, è
enorme ed in
continua crescita.
Gli utenti connessi
sono milioni e le
app scaricate
hanno superato
10 miliardi di
copie
www.follow-app.it Introduzione alla piattaforma android 6 /91
9. PERCHE’ ANDROID (TREND VENDITE)
Fonte Wikipedia
www.follow-app.it Introduzione alla piattaforma android 9 /91
10. PERCHE’ ANDROID
1. Curva di apprendimento non è ripida ( a differenza dello
sviluppo IOS)
2. Android è open-source e I tool di sviluppo sono scaricabili
gratuitamente
3. I costi di pubblicazione di un app sul market store di android
sono esigui ( 25 dollari una tantum)
4. Installare un app android sul cellulare è un processo banale,
le app android possono essere diffuse facilmente attraverso
un sito web(Time to market molto basso)
www.follow-app.it Introduzione alla piattaforma android 10 /91
14. COS’E’ ANDROID
E’ uno stack software per dispositivi mobili
1. Sistema Operativo:
-open source appoggia al kernel Linux (>=2.6.27)
-driver per l’hardware
2. Middleware:
-librerie, android runtime, application framework
3. Applicazioni:
-native o di terze parti.
www.follow-app.it Introduzione alla piattaforma android 14 /91
15. LINUX KERNEL
1) Linux kernel e driver dell’hardware
2) Core system service per security, memory
management, process management, network stack
www.follow-app.it Introduzione alla piattaforma android 15 /91
16. LIBRERIE E RUNTIME
1. Librerie esposte attraverso l’application framework
2. Android runtime: Dalvik Virtual Machine
www.follow-app.it Introduzione alla piattaforma android 16 /91
17. APPLICATION FRAMEWORK
API di alto livello
1. Le applicazioni native Android e quelle di terze parti
utilizzano le stesse API.
www.follow-app.it Introduzione alla piattaforma android 17 /91
18. APPLICAZIONI MOBILE
Sono di due Tipi
1. Web app: girano in un web browser: scritte in
HTML, JavaScript, Flash, etc.
2. Native: Compilate per essere eseguite sul
dispositivo
www.follow-app.it Introduzione alla piattaforma android 18 /91
19. APPLICAZIONI NATIVE ANDROID
1. Scritte in Java utilizzando la sdk ufficiale distribuita
da google
– Non supporta tutte le librerie Java come ad esempio Swing
& AWT
2. Il codice java è compilato in byte code Dalvik (.dex)
– Ottimizzati per i dispositivi mobili (migliore gestione della
memoria e delle risorse, utilizzo della batteria , etc.)
3. La Dalvik virtual machine esegue i files .dex
www.follow-app.it Introduzione alla piattaforma android 19 /91
20. Struttura di un app android e tool di sviluppo
INTRODUZIONE ALLA PROGRAMMAZIONE
ANDROID
www.follow-app.it Struttura di un app android e tool di sviluppo 20 /91
21. COMPONENTI BASE DI UN APP
1. Activities
2. View e ViewGroups
3. Service
4. Intent
5. Broadcast Receiver
6. ContentProvider
www.follow-app.it Struttura di un app android e tool di sviluppo 21 /91
22. ACTIVITIES
1. Componenti base di un applicazione android. Un
activity è una schermata mostrata all’utente.
2. Un app android deve avere almeno un activity ma
può averne più di una che si alternano durante
l’esecuzione dell’applicazione
www.follow-app.it Struttura di un app android e tool di sviluppo 22 /91
23. VIEW E VIEWGROUPS
1. Le view sono I controlli utenti che costituiscono le user
interface( bottoni, campi di testo, label, …) . Sono classi
che estendondo android.view.View. Views
2. I viewgroups sono contenitori di view , servono per
organizzare e impaginare i controlli utenti ( le view).
Sono classi che estendono
android.view.ViewGroups. ViewGroup
www.follow-app.it Struttura di un app android e tool di sviluppo 23 /91
24. SERVICES
1. Eseguono operazioni in background che non
richiedono l’interazione diretta dell’utente: es.
Musica in sottofondo, scaricamento di un file,
tracking della posizione dell’utente.
2. I servizi non hanno user interface
www.follow-app.it Struttura di un app android e tool di sviluppo 24 /91
25. INTENT
1. E’ un messaggio asincrono di sistema che si
compone di un azione da eseguire e dei dati.
2. Può essere esplicito o inplicito in quest’ultimo caso
il sistema individua il componente che può eseguire
tale azione (Intent Receiver) e la esegue.
3. Un applicazione si abilita alla registrazione di un
particolare intent dichiarando un IntentFilter
www.follow-app.it Struttura di un app android e tool di sviluppo 25 /91
26. INTENT 2
Un intent può essere usato per:
1. esplicitare un compito o azione che una Activity o
un Service possono eseguire solitamente con o su un
particolare insieme di dati;
2. lanciare una particolare Activity o Service;
3. supportare l'interazione tra qualsiasi applicazione
installata sul dispositivo Android, senza doversi
preoccupare di che tipo di applicazione sia o di quale
componente software gli Intent facciano parte.
www.follow-app.it Struttura di un app android e tool di sviluppo 26 /91
28. BROADCAST RECEIVER
1. Un app registra un broadcast receiver che e’
configurato per ricevere e gestire determinati
messaggi di sistema e intent.
2. Un app può anche definire dei propri intent
custom.
www.follow-app.it Struttura di un app android e tool di sviluppo 28 /91
29. ANDROID SECURITY
1. Ogni app in android gira nel proprio processo
associata ad un user ( di sistema) e ad un gruppo
univoco
2. Ogni app è quindi isolata dalle altre e non può
accedere ai dati delle altre app.
3. L’unico modo di condividere dati tra applicazioni è
dichiarare esplicitamente un content provider.
www.follow-app.it Struttura di un app android e tool di sviluppo 29 /91
30. CONTENT PROVIDER
Il sistema operativo mette a disposizione una serie di
content provider nativi.
http://developer.android.com//reference/android/pro
vider/package-summary.html.
Es.
1. Il database dei contatti
2. I contenuti multimediali (audio, video , foto)
www.follow-app.it Struttura di un app android e tool di sviluppo 30 /91
31. STRUTTURA DI UN PROGETTO ANDROID
www.follow-app.it Struttura di un app android e tool di sviluppo 31 /91
32. ANDROID MANIFEST
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="it.gmarz83.android.temperatura" android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Convert" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="9" />
<uses-permission android:name="android.permission.INTERNET "> </uses-permission>
</manifest>
www.follow-app.it Struttura di un app android e tool di sviluppo 32 /91
33. ANDROID MANIFEST -PERMISSION
<uses-permission android:name="android.permission.INTERNET ">
Tra i principali permessi che possiamo richiedere ci sono i seguenti:
1. READ_CONTACTS: leggere (ma non scrivere) i dati dei contatti
dell'utente.
2. WRITE_CONTACTS: scrivere (ma non leggere) i dati dei contatti
dell'utente
3. RECEIVE_SMS: monitorare l'arrivo di messaggi SMS
4. INTERNET: accedere ed utilizzare la connessione Internet
5. ACCESS_FINE_LOCATION: utilizzare un accurato sistema di localizzazione
come il GPS
http://developer.android.com/reference/android/Manifest.permission.html
www.follow-app.it Struttura di un app android e tool di sviluppo 33 /91
34. STRUTTURA DI UN PROGETTO ANDROID
www.follow-app.it Struttura di un app android e tool di sviluppo 34 /91
35. CARTELLA ASSETS
1. contiene risorse esterne necessarie all’applicazione
(file audio, video, etc)
www.follow-app.it Struttura di un app android e tool di sviluppo 35 /91
36. STRUTTURA DI UN PROGETTO ANDROID
www.follow-app.it Struttura di un app android e tool di sviluppo 36 /91
37. CARTELLA DRAWABLE (RES)
1. Contiene I file immagine che saranno utilizzati
all’interno dell’app( compresa l’icona
dell’applicazione)
www.follow-app.it Struttura di un app android e tool di sviluppo 37 /91
38. STRUTTURA DI UN PROGETTO ANDROID
www.follow-app.it Struttura di un app android e tool di sviluppo 38 /91
39. CARTELLA LAYOUT (RES)
1. Contiene I file di layout delle schermate della
nostra app.
2. Ogni schermata avrà il suo file di layout( ossia
l’impaginazione della schermata).
3. Il layout può essere definito anche da codice, ma è
preferibile utilizzare l’xml perchè disaccoppia la
logica dalla definizione della user interface
www.follow-app.it Struttura di un app android e tool di sviluppo 39 /91
40. STRUTTURA DI UN PROGETTO ANDROID
www.follow-app.it Struttura di un app android e tool di sviluppo 40 /91
41. CARTELLA VALUES (RES)
1. Contiene file xml che definiscono risorse utilizzabili
all’interno dell’applicazione
2. Es. Il file delle stringhe.
www.follow-app.it Struttura di un app android e tool di sviluppo 41 /91
42. CARTELLA VALUES (STRING.XML)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Nome App</string>
</resources>
<application android:icon="@drawable/icon"
android:label="@string/app_name">
www.follow-app.it Struttura di un app android e tool di sviluppo 42 /91
43. STRUTTURA DI UN PROGETTO ANDROID
www.follow-app.it Struttura di un app android e tool di sviluppo 43 /91
44. CARTELLA GEN
1. Contiene un file R.java generato automaticamente
da eclipse( non bisogna modificarlo).
2. In questo file a ciascuna risorsa definita nella
cartella Res( immagini, stringhe, view contenute nei
layout ) è associato un id univoco mediante il quale
si può accedere.
3. Es. Per accedere alla stringa app_name:
4. getString(R.string.app_name));.
www.follow-app.it Struttura di un app android e tool di sviluppo 44 /91
45. STRUTTURA DI UN PROGETTO ANDROID
www.follow-app.it Struttura di un app android e tool di sviluppo 45 /91
46. CARTELLA SRC
1. Contiene i file sorgente della nostra applicazione
www.follow-app.it Struttura di un app android e tool di sviluppo 46 /91
48. LABORATORIO
1. App multidevice
2. Hello word
3. Intent tutorial
4. Editor di note
5. Location Manager e Google Map tutorial
www.follow-app.it 48 /91
49. APP MULTIDEVICE
1. I dispositivi android hanno una moltitudine di
dimensioni , risoluzioni , e densità
2. La densità è il numero di pixel per pollice calcolato
sulla diagonale.
www.follow-app.it Laboratorio 49 /91
51. LA SOLUZIONE
1. Usare wrap_content, fill_parent, e l’unità di
misura dp per impostare le dimenzioni nei file di layout
XML
2. Non usare mai misure in pixel hard coded nelle app
3. Non usare l’ absoluteLayout ( che è deprecato)
4. Inserire repliche della stessa immagine per ogni densità
5. Testare l’app usando gli emulatori
6. Approfondimento:http://docs.huihoo.com/android/2.2/
guide/practices/screens_support.html
www.follow-app.it 51 /91
52. LA SOLUZIONE: DPI
1. DPI = Density Indipendent Pixel ossia un unità di
misura dello schermo indipendente dalla densità
2. 1 pixels = DP(density pixel) * (DPI(densità) / 160).
3. Indipendentemente dalla dimensione e della
densità dello schermo il density pixel occupa
sempre lo stesso spazio
www.follow-app.it Laboratorio 52 /91
53. LA SOLUZIONE: SCALARE LE IMMAGINI
1. 3:4:6:8 è il rapporto tra le 4 densità.
2. Se ho un immagine di 100px e la risoluzione base è mdpi(160
dpi che corrisponde al rapporto 4) si ottiene:
• ldpi: 75 × 75, cioè 3/4 della risoluzione base (100 * 3 / 4 = 75);
• mdpi: 100 × 100;
• hdpi: 150 × 150, cioè una volta e mezzo la risoluzione base
(100 * 6 / 4 = 100 * 3 / 2 = 100 * 1,5 = 150);
• xhdpi: 200 × 200, cioè il doppio della risoluzione base (100 * 8
/ 4 = 100 * 2 = 200) a queste risoluzioni dovrebbe
corrispondere Google TV, non gli smartophones.
www.follow-app.it Laboratorio 53 /91
54. EMULATORI
1. QVGA (240x320, low density, small screen)
2. HVGA (320x480, medium density, normal screen)
3. WVGA800 (480x800, high density, normal screen)
4. WVGA854 (480x854 high density, normal screen)
www.follow-app.it Laboratorio 54 /91
55. INTENT ESPLICITO
1. Si tratta di un utilizzo dell’oggetto Intent nel quale si
esplicita l’oggetto che si vuole richiamare :
Intent i = new Intent(this, ActivityTwo.class);
i.putExtra("Value1", "This value one for ActivityTwo ");
i.putExtra("Value2", "This value two ActivityTwo");
www.follow-app.it Laboratorio 55 /91
56. INTENT IMPLICITO
1. L’intent implicito non specifica una classe Java bensì un
azione e opzionalmente un uri associata all’azione.
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://gmarz83.altervista.org"));
2. Android individua quale componente è registrato per
gestire tale azione
3. Se individua un solo componente, esegue l’azione se ce
n’è più di uno un dialog chiede all’utente verso quale
componente dirigire l’azione
www.follow-app.it Laboratorio 56 /91
57. TRASFERIMENTO DATI
1. Intent espliciti o impliciti posso contentere extra dati
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT,
" allegato!");
startActivity(Intent.createChooser(sharingIntent,"condividi"
));
www.follow-app.it Laboratorio 57 /91
58. TRASFERIMENTO DATI 2
1. Il componente che riceve l’intent estrae i dati così
Bundle extras = getIntent().getExtras();
if (extras == null) { return; }
String value1 = extras.getString(Intent.EXTRA_TEXT);
if (value1 != null) { // fai qualcosa}
www.follow-app.it Laboratorio 58 /91
59. CHIAMARE ACTIVITY CON RISULTATO
Intent i = new Intent(this, ActivityTwo.class);
i.putExtra("Val1", “valore 1");
i.putExtra("Val2", “valore 2");
startActivityForResult(i, REQUEST_CODE);
www.follow-app.it Laboratorio 59 /91
60. CHIAMARE ACTIVITY CON RISULTATO 2
@Override public void finish() {
Intent data = new Intent();
data.putExtra("returnKey1", "risultato1");
data.putExtra("returnKey2", "risultato2");
setResult(RESULT_OK, data);
super.finish();
}
www.follow-app.it Laboratorio 60 /91
61. CHIAMARE ACTIVITY CON RISULTATO 3
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (resultCode == RESULT_OK && requestCode == REQUEST_CODE)
{
if (data.hasExtra("returnKey1")) {
Toast.makeText(this, data.getExtras().getString("returnKey1"),
Toast.LENGTH_SHORT).show();
}
}
}
www.follow-app.it Laboratorio 61 /91
62. INTENT FILTER
1. Un componente si registra e si abilita alla ricezione di determinati intent
attraverso la definizione di un intent filter , che avviene nel manifest.xml
<activity android:name=".BrowserActivitiy"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http"/>
</intent-filter>
</activity>
www.follow-app.it Laboratorio 62 /91