Ho raccolto una serie di domande da svariati orali di SAM col Gervasi, ve le lascio qui:
-Tu hai implementato una ListView che mostra una serie di risultati in maniera dinamica. Se ti avessero chiesto di aggiungere la barra di ricerca, come avresti fatto ad implementarla?
-Cosa vuol dire "arriva una notifica"? Come viene mandata la notifica? Chi la manda? (Caso specifico dell'esame) come fa la tua app a creare la notifica che arriva alle 9.00 di domenica mattina?
-Te tieni una foto accessibile solo da un punto specifico dell'app (era visualizzabile sono in una determinata activity se non sbaglio). Ma dove la salvi di preciso per farlo?
-Tu manipoli un MediaPlayer dentro un'activity e non un service. Vantaggi e svantaggi di questa scelta?
-Come funziona un service? Cosa viene passato alla onStartCommand? Cos'è AIDL? (Per quest'ultima domanda va bene un'idea generale)
-Cos'è IntentService?
-Come funziona sui servizi la storia dei "high water mark", l'id di richiesta, e che ogni service può chiamare stopSelf con un parametro numerico? (Fondamentalmente bisognava ricordarsi che stopSelf(id) faceva terminare non solo questa richiesta ma anche tutte quelle con un id minore di "id")
-Come funziona l'asyncTask? Alternative?
-Descrivimi come funziona l'intero sistema delle risorse, dai file del progetto, all'apk, al runtime.
-Come viene recuperato a runtime il valore della risorsa?
-Mi parli dei Content Provider?
-Ci sono classi di sistema relative ai cursor che permettono di usarli in maniera asincrona ma semplice?
-Come funziona l'attributeSet del costruttore della view? Temi e stili in generale?
-Mi parli dei service bound?
-Fragment, a che servono?
E infine le mie domande:
-Parlami dei Drawable
-Parlami dei contentProvider
-Cos'è una WeakReference?
Corso consigliatissimo, il Professor Gervasi non solo sa insegnarvi un sacco su Android ma su come si programma in generale. Riesce anche a scherzare durante la lezione per non renderla troppo pesante, ma senza mai perdere il punto del discorso. Inoltre l'esame è un'occasione di crescita: il mio è durato due ore, ma 25 minuti sono stati dedicati alla presentazione dell'app, altri 15 alla parte di teoria e il resto del tempo a parlare del codice e dei suoi errori concettuali. Detta così può sembrare un parto, ma nessuno dei ragazzi di cui ho visto l'orale ha preso meno di 25. Se fate un buon progetto vi indicherà sempre quello che avete sbagliato, ma terrà di conto anche (e tanto) tutto quello che avete fatto bene. La revisione del codice è più un ricevimento su misura per voi, dove potete anche fargli domande se volete.