Un'applicazione Android è composta dai seguenti 6 blocchi fondamentali, non tutti sono sempre presenti.
Activities
E' possibile immaginarlo come il presentation layer dell'applicazione. Ogni screen dell'applicazione estende la classe Activity. Le Activities usano le View per costriuire l'interfaccia utente e rispondere alle azione dell'utente. L'Activity è l'equivalente della Windows Form per quanto riguarda lo sviluppo desktop.
Services
Sono componenti che girano in background. Vengono usati per compiere operazioni regolari necessarie anche nel caso non ci siano Activity visibili o attive
Content Providers
Componenti usati per gestire le fonti dei dati. Si possono utilizzare anche per scambiare dati tra applicazioni diverse. I Device espongono una serie di providers nativi tipo il media store o l'archivio dei contatti.
Intents
E' un framework per lo scambio di messaggi tra applicazioni. Si può utilizzare per segnalare l'intenzione di compiere operazioni ad un'activity o ad un service
Broadcast Receiver
Sono i consumatori di Intents. Creando e registrando un broadcast receiver l'applicazione può ascoltare per un intents che deve compiere un compito specifico. Possono attivare applicazioni e sono il componente principale nella realizzazioni di applicazioni event-driven
Widget
Componenti visuali che possono essere aggiunti alla home. ono particolari tipi di Broadcast receiver che eprmettono la realizzazione di applicazioni che gli utenti possono aggiungere alla loro home
Notifications
Le notifications permettono di segnalare agli utenti senza togliere il focus dell'applicazione corrente. Sono la tecnica migliore per prendere l'attenzione dell'utente in risposta a servizi o a broadcast receiver.
"Nessun bambino si è mai intromesso nel partito repubblicano ed è sopravvissuto per raccontarlo" TB
mercoledì 14 aprile 2010
Dispenso dispense
Mi è capitato di tenere delle lezioni all'università, due sono già andate rimane da preparare la terza.
Questi gli argomenti presentati
Html base
Form e oggetti multimediali
Questi gli argomenti presentati
Html base
Form e oggetti multimediali
mercoledì 10 febbraio 2010
Poi dici che è meglio Firefox
Il caso di oggi:
pagina perfetta e testata su Chrome, Firefox, Safari e Internet Explorer 7. Presentazione davanti al boss il quale tira fuori uno splendido Vaio nuovo con Internet Explorer 8 e Windows 7. La pagina non visualizza due iframe: "Il sistema deve funzionare con tutti i browser non solo quelli che decidete voi"... "Ha ragione" testa bassa e di nuovo in ufficio.
Dopo vari tentativi di capire il problema arriva il sospetto che sia un problema di impostazioni, avevamo trascurato una insignificante finestra, una di quelle che clicchi su Si in automatico.
Nel passaggio dalla versione 7 alla 8 la finestra con il messaggio: "This page contains both secure and nonsecure items" è cambiata. Nella versione 7 se desideravi vedere tutta la pagina sia i contenuti sicuri che quelli non sicuri bisognava cliccare su Si. Nella versione 8 invece bisogna cliccare su No. Grazie Microsoft.
Le soluzioni per evitare la finestra di avviso sono 3:
1) usare solo https se è possibile
2) cambiare i link da http://www a //www
3) usare solo link relativi
pagina perfetta e testata su Chrome, Firefox, Safari e Internet Explorer 7. Presentazione davanti al boss il quale tira fuori uno splendido Vaio nuovo con Internet Explorer 8 e Windows 7. La pagina non visualizza due iframe: "Il sistema deve funzionare con tutti i browser non solo quelli che decidete voi"... "Ha ragione" testa bassa e di nuovo in ufficio.
Dopo vari tentativi di capire il problema arriva il sospetto che sia un problema di impostazioni, avevamo trascurato una insignificante finestra, una di quelle che clicchi su Si in automatico.
Nel passaggio dalla versione 7 alla 8 la finestra con il messaggio: "This page contains both secure and nonsecure items" è cambiata. Nella versione 7 se desideravi vedere tutta la pagina sia i contenuti sicuri che quelli non sicuri bisognava cliccare su Si. Nella versione 8 invece bisogna cliccare su No. Grazie Microsoft.
Le soluzioni per evitare la finestra di avviso sono 3:
1) usare solo https se è possibile
2) cambiare i link da http://www a //www
3) usare solo link relativi
martedì 22 dicembre 2009
File upload e Codeigniter
Codeigniter è un framework mvc scritto in php. Per certi versi è molto semplice da usare e molto veloce. L'ho utilizzato per un sito che prima avevo iniziato con cakephp ma poi a forza di scontrarmi con le rigidità di quest'ultimo ho deciso di riscrivere completamente basandomi su codeigniter.
Tra le varie funzioni che mi servivano c'e' quella di caricare dalla stessa form file di tipo immagine e file pdf. La classe File Uploading tra le varie opzioni di configurazione ha anche una proprietà "allowed_types", in prima scrittura credevo fosse sufficiente inserire la stringa: 'gif|jpg|png|zip|pdf|doc|docx|txt' per ottenere la possibilità di caricare file pdf in un campo e immagini nell'altro.
E invece no, Codeigniter continuava a caricare esclusivamente l'immagine, dopo vari tentativi per trovare il problema mi veniva in aito Google: mi trovavo di fronte ad un bug noto, la soluzione è scrivere i tipi di file non immagine per primi ovvero 'zip|pdf|doc|docx|txt|gif|jpg|png'.
Tra le varie funzioni che mi servivano c'e' quella di caricare dalla stessa form file di tipo immagine e file pdf. La classe File Uploading tra le varie opzioni di configurazione ha anche una proprietà "allowed_types", in prima scrittura credevo fosse sufficiente inserire la stringa: 'gif|jpg|png|zip|pdf|doc|docx|txt' per ottenere la possibilità di caricare file pdf in un campo e immagini nell'altro.
E invece no, Codeigniter continuava a caricare esclusivamente l'immagine, dopo vari tentativi per trovare il problema mi veniva in aito Google: mi trovavo di fronte ad un bug noto, la soluzione è scrivere i tipi di file non immagine per primi ovvero 'zip|pdf|doc|docx|txt|gif|jpg|png'.
martedì 15 dicembre 2009
Io odio il javascript
Cose da non fare mai: programmare la consegna di un lavoro di venerdì.
Da circa un mese lavoro sul sito catalogo fatto per un sistema legato alla raccolta punti.
Giovedì arriva la notizia che verrà presentato il successivo sabato mattina, rimangono quindi due giorni per portarlo ad uno stato presentabile, il lavoro è ad un buon punto quindi nessuna grande preoccupazione.
Il sito è spaccato in due parti, la sezione di presentazione e quella relativa alle regole e informazioni su un server, la parte relativa all'acquisto su un altro server. Due tecnologie completamente diverse.
Venerdì sera ultimi test tutto funziona. Nessuno pensa di controllare con Internet Explorer 8.
Sabato mattina ovviamente il sito viene fatto vedere e Internet Explorer 8 rende inutilizzabile la sezione del preventivo.
Ieri si comincia il debug.
Il link avviene tramite la chiamata di un javascript... sostituito il codice usando il selettore di jquery: non cambia nulla.
Ci sono due definizioni della stessa funzione, evidentemente una è stata dimenticata nelle varie release, eliminata: nessun cambiamento.
Provo con "strumenti di sviluppo" ottima funzione di IE8, nel debug IE8 si blocca spesso, ma eccolo il problema.
Una funzione si occupava di prendere dei valori copiarli in campi hidden e poi lanciava il submit del modulo, due campi hidden avevano i seguenti due id: idDS e idds. Firefox li trattava come due campi differenti mentre IE8 li considerava uguali andando a sovrascrivere i dati.
Io odio il javascript.
Da circa un mese lavoro sul sito catalogo fatto per un sistema legato alla raccolta punti.
Giovedì arriva la notizia che verrà presentato il successivo sabato mattina, rimangono quindi due giorni per portarlo ad uno stato presentabile, il lavoro è ad un buon punto quindi nessuna grande preoccupazione.
Il sito è spaccato in due parti, la sezione di presentazione e quella relativa alle regole e informazioni su un server, la parte relativa all'acquisto su un altro server. Due tecnologie completamente diverse.
Venerdì sera ultimi test tutto funziona. Nessuno pensa di controllare con Internet Explorer 8.
Sabato mattina ovviamente il sito viene fatto vedere e Internet Explorer 8 rende inutilizzabile la sezione del preventivo.
Ieri si comincia il debug.
Il link avviene tramite la chiamata di un javascript... sostituito il codice usando il selettore di jquery: non cambia nulla.
Ci sono due definizioni della stessa funzione, evidentemente una è stata dimenticata nelle varie release, eliminata: nessun cambiamento.
Provo con "strumenti di sviluppo" ottima funzione di IE8, nel debug IE8 si blocca spesso, ma eccolo il problema.
Una funzione si occupava di prendere dei valori copiarli in campi hidden e poi lanciava il submit del modulo, due campi hidden avevano i seguenti due id: idDS e idds. Firefox li trattava come due campi differenti mentre IE8 li considerava uguali andando a sovrascrivere i dati.
Io odio il javascript.
lunedì 26 ottobre 2009
Stranezze Asp.Net 3.5
Nella vecchia versione per avere disponibile una classe all'intero sito si poteva compilarla e copiarla dentro la cartella Bin, oppure creare un progetto nella stessa soluzione e poi collegare i due progetti mediante un riferimento e infine aggiungere il file con il sorgente della classe nella cartella App_Code.
La particolarità di questa cartella era di essere compilata runtime automaticamente mettendo a disposizione di tutte le pagine aspx le classi contenute.
Forte di questa esperienza ho creato una classe che facesse da pagina base per tutte le altre pagine del sito. Con visual studio 2008 la cosa non funziona così facilmente. E' necessario dire al compilatore che quello specifico file nella cartella App_Code deve essere compilato. La soluzione è semplice, tasto destro sul file sorgente, proprietà e infine scegliere nella build action l'opzione Compile.
La particolarità di questa cartella era di essere compilata runtime automaticamente mettendo a disposizione di tutte le pagine aspx le classi contenute.
Forte di questa esperienza ho creato una classe che facesse da pagina base per tutte le altre pagine del sito. Con visual studio 2008 la cosa non funziona così facilmente. E' necessario dire al compilatore che quello specifico file nella cartella App_Code deve essere compilato. La soluzione è semplice, tasto destro sul file sorgente, proprietà e infine scegliere nella build action l'opzione Compile.
Iscriviti a:
Post (Atom)