Le développement Android et mobile est un domaine de développement passionnant. Comme il s'agit d'une nouvelle discipline, qu'attend-on d'un développeur Android pour créer des applications commercialement robustes en termes de compétences? Le problème que moi et, je pense, de nombreux autres "noobs" dans la technologie aimerions savoir, ce sont les domaines des compétences techniques et la progression vers les sujets avancés requis qui vont au-delà des bases mêmes fournies par Google. Il y a beaucoup d'informations qui sont très utiles mais qui ne sont pas organisées en catégories de discipline ou d'ordre.
Mise à jour : Regardez-le de cette façon. Si vous êtes un développeur senior et que vous deviez obtenir un collègue jusqu'à la vitesse sur Android pour un projet particulier (à votre discrétion pour cette question), que feriez-vous?
Réponses:
Il y a plusieurs facettes à cette question:
Du point de vue technique , répondre au "Comment?"
Il existe plusieurs technologies à maîtriser ainsi qu'un certain nombre de "bien à avoir".
Le numéro un est Java . Le SDK Android est basé sur l'hypothèse que toutes les applications sont écrites en Java . Bien qu'il existe sans doute des solutions tierces émergentes à développer dans .net (voir monodroid ), après tout, le système d'exploitation sous-jacent est Linux.
Le second est l' éclipse . Bien qu'il existe un certain nombre de SDK tiers, certains meilleurs qu'ADT , sur Intellij ou sur Netbeans , les efforts de Google ne sont officiellement concentrés que sur l'éclipse pour l'instant.
Edit: Depuis janvier 2016, Google prend officiellement en charge Android Studio en tant qu'IDE officiel.
Dans l'architecture Android, il existe un certain nombre de blocs de construction pour lesquels un peu d'exposition sera toujours utile:
SQLite
Notions générales de streaming vidéo et audio, codecs. Pour OpenCore (android.media).
Dessin OpenGL.
Services Web basés sur REST, XML ou JSON.
Notions relatives à l'architecture ARM pour le développement de code natif.
De plus, en lisant dans mon bol de cristal, les développeurs Android doivent également connaître leur Linux et maîtriser les langues natives pour le jour où Google abandonne Java et le remplace par go ou par d'autres trucs qu'ils pourraient préparer quelque part (voir leur initiative " Native Client " dans le domaine du navigateur). Google a déjà publié un NDK (Native Development Kit) pour c et C ++ en utilisant le mécanisme JNI standard pour compléter Dalvik.
Du point de vue commercial , répondre au "Quoi?".
Les développeurs Android doivent bien sûr être eux-mêmes des utilisateurs d'Android. Cependant, non seulement les utilisateurs de téléphones mobiles standard, mais aussi les utilisateurs de tablettes. Ils devraient en fait adopter une attitude Jobsian - se demandant toujours "Comment pourrais-je faire mieux avec mon téléphone, ma tablette ou tout appareil électronique grand public pas encore sur le marché?".
Il existe de nombreuses applications Android qui n'ont pas encore de leader sur le marché, pas nécessairement liées à la mobilité (ou l'application ennuyeuse habituelle "Où est la pizza la plus proche?"). En voici quelques-uns que je ne peux pas sortir de mon esprit personnellement (jusqu'à ce que j'aie plus de temps ;-).
apprenez à votre enfant à dessiner et à lire.
des flashcards pour apprendre des langues étrangères.
UK-FreeSat TV-guide + télécommande.
la vôtre ici (recettes de cuisine ... etc).
la source
Pour être honnête, je pense que vous devez simplement Google et faire des recherches.
Voici quelques liens intéressants que j'ai trouvés, qui peuvent offrir un bon point de départ.
Il y en a beaucoup d'autres en plus de la documentation de Google dont vous avez parlé.
J'espère que cela vous aidera à commencer, à trouver les détails que vous souhaitez!
Bonne chance
la source
Guide du développeur officiel de Google
Je voudrais jeter un œil au guide de développement de Google pour Android, qui comprend les meilleures pratiques et les directives pour rendre votre application cohérente avec l'apparence d'une application Android.
la source
Je voudrais regarder deux choses. La première concerne les directives de conception d'Apple pour la création d'applications. Je sais que la question portait sur les applications Android, mais les principes généraux s'appliquent et vous font réfléchir d'une manière de conception `` App '', ce qui est en fait assez différent du point de vue de la conception d'applications de bureau.
Je voudrais également jeter un œil à Appcelerator Titanium qui est un outil qui vous permet de porter du code d'un environnement de type javascript / web dev vers du code natif sur iPhone, iPad et Android. Je l'ai trouvé un moyen utile de créer rapidement de petites applications. Vous pouvez télécharger l'exemple 'Évier de cuisine' qui, comme son nom l'indique, montre toutes les fonctionnalités natives disponibles. Je recommanderais sans hésiter cet endroit comme point de départ.
la source
Je trouve souvent 3 choses manquantes dans les nouveaux développeurs mobiles, après des compétences de base avec le (s) langage (s) de programmation requis et une connaissance des outils et bibliothèques SDK (qui ne sont pas sorciers ... des jeunes de 14 ans auraient développé des applications).
Développer pour des environnements contraints. Le processeur, la mémoire, les pixels d'affichage et la batterie disponible sont tous beaucoup plus contraignants pour les appareils mobiles. Certains programmeurs n'ont jamais été exposés à une programmation rapide et minuscule. Vous ne pouvez tout simplement pas penser de la même manière pour résoudre les problèmes que vous le pouvez lorsque vous disposez d'un rack avec 5 kW de puissance et de refroidissement, etc. de mémoire, ou quelque chose comme ça. Peut-être vous entraîner à coder sur un Arduino ou un autre petit contrôleur.
Connaissance de l'interface utilisateur. Un utilisateur interagit généralement avec son appareil mobile de différentes manières à partir des systèmes de bureau. Emportez-en un avec vous. Peut-être plusieurs modèles. Utilise les. Utilisez beaucoup d'applications et critiquez (pas les fonctionnalités, mais) leur facilité d'utilisation, dans un mauvais éclairage, dans les véhicules en mouvement, etc. Lisez et relisez tous les différents HIG mobiles. Sachez ce que les utilisateurs aiment et n'aiment pas sur la plate-forme d'interface utilisateur particulière pour laquelle vous codez.
Connaissance bizarre. Certains outils et bibliothèques sont nouveaux et ont des "bizarreries". Lisez les conseils de développement pour les problèmes et les solutions afin de ne pas vous retrouver bloqué en faisant la même erreur que des millions d'autres développeurs sont tombés sur. Je vois trop de questions sur stackoverflow sur la façon de faire des choses que le matériel, les API ou les modèles de distribution d'applications ne permettent même pas. Des entreprises entières ont perdu leur temps à essayer de faire l'impossible pour l'iPhone App Store.
la source
J'ai formé mes juniors à cette manière suivante.
la source
Beaucoup plus important que les détails techniques (qui peuvent être appris et ne devraient pas être trop difficiles de toute façon) est de savoir quoi faire, pour qui et si vous serez en mesure d'en vendre suffisamment. Cette dernière partie est toujours un problème sur Android, contrairement à iOS.
Donc, avant de commencer à apprendre le développement Android, formez une image claire de ce que vous voulez réaliser, comment y parvenir et si c'est réellement durable.
la source