Le SDK Android etant basé sur Java 5.0 ou supérieur, ton livre est désuet, tant sur le plan du langage (Generics par exemple) que sur les usages (les applets appartiennent au passé)
J'insiste car de très nombreuses questions sur ce forum sont en réalité liés à un manque de maîtrise du langage Java. La complexité inhérente apportée par le framework Android n'est que le révélateur de ces lacunes. Lié à ce premier point, les faiblesses en conception objet sont également un problème. Or la structure du code Android fait un usage intensif de designs patterns (Builder, Singleton, Observer,...), qui sont des solutions de conception objet subtiles.
Enfin, il y a une part de connaissance générale : qu'est-ce qu'un processus ? qu'est ce qu'une communication client/serveur ? que fait un client et que fait un serveur ? à quoi sert XML ? Toutes ces questions que tout le monde prétends maîtriser. Vu les questions récurrentes du forum, ce n'est visiblement pas le cas.
A titre d'exemple, la classe AsyncTask est assez révélatrice du niveau de quelqu'un puisqu'elle oblige à se poser de bonnes questions, tant sur le langage Java que sur le fonctionnement d'Android :
1 2 3 4 5
| private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
protected Long doInBackground(URL... urls) { }
protected void onProgressUpdate(Integer... progress) { }
protected void onPostExecute(Long result) { }
} |
- pourquoi on écrit une classe en extension d'une autre + redéfinition ?
- pourquoi on a le droit d'instancier (new) cette classe alors que ce n'est pas permis pour une Activité ou un Service ?
- pourquoi on utilise la généricité (3 méta-types
) ici ? - pourquoi on utilise un paramètre variable (URL...) ici ?
- pourquoi on est obligé de l'utiliser pour réaliser une tâche ?
Partager