que doit savoir / aborder un développeur pour créer des applications Android commerciales? [fermé]

21

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?

angryITguy
la source
Par commercial, voulez-vous dire «qualité commerciale» ou «faire de l'argent» et si plus tard, voulez-vous dire par trouver un emploi dans la région ou par écrire et vendre des applications pour vous-même?
Jon Hopkins
@Jon. N'excluant aucun de ces domaines. Mais (je pense), il y a beaucoup de développeurs comme moi qui veulent étendre efficacement leur organisation actuelle sur les appareils. Donc, cela n'implique pas réellement de «gagner de l'argent» ou d'obtenir un nouvel emploi, simplement d'étendre l'entreprise aux cadres avides d'informations / aux guerriers de la route.
angryITguy
Ce que je recherche, c'est des conseils des développeurs seniors d'Android qui ont le "ooh! Vous devriez lire ceci d'abord, puis ceci pour HTTP, ou ceci pour un design d'interface attrayant et cela pour dessiner des moments 2D / 3D ...". J'ai mis à jour ma question pour refléter cela.
angryITguy

Réponses:

16

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".

  1. 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.

  2. 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:

  1. SQLite

  2. Notions générales de streaming vidéo et audio, codecs. Pour OpenCore (android.media).

  3. Dessin OpenGL.

  4. Services Web basés sur REST, XML ou JSON.

  5. 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 ;-).

  1. apprenez à votre enfant à dessiner et à lire.

  2. des flashcards pour apprendre des langues étrangères.

  3. UK-FreeSat TV-guide + télécommande.

  4. la vôtre ici (recettes de cuisine ... etc).

Alain Pannetier
la source
J'aime votre réponse, pouvez-vous fournir des liens que vous avez utilisés pour SQLLite, Webservices / REST / JSON et OpenGL?
angryITguy
12

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
salut, désolé si c'est idiot mais je suis nouveau ici! Pourquoi cela serait-il rejeté? La raison pour laquelle je demande, c'est que j'ai remarqué que personne d'autre n'a répondu à cette question et parfois (je pense que oui de toute façon) vous avez juste besoin de partir et de trouver la réponse vous-même. C'est tout ce que je proposais avec quelques points de départ de base, alors qu'est-ce qui ne va pas?
+1 pour contrer le négatif. De plus, cela donne de bons liens :)
Darren Young
@Darren Young - merci, mais je voulais simplement savoir pourquoi cela pourrait être rejeté. Je peux donc mieux utiliser le site mais le +1 est toujours le bienvenu!
@Excavateur. Merci pour cette info. C'est le truc d'entrée de gamme que j'ai déjà réussi à trouver. J'espérais que les développeurs les plus expérimentés interviendraient / prendraient cette réponse un peu plus loin. +1
angryITguy
@giulio - merci, j'espère que vous trouverez les informations que vous recherchez.
5

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.

Ryan Hayes
la source
Merci. J'ai déjà découvert le SDK Google et le guide de développement ( developer.android.com/guide/index.html ). Mais j'ai constaté qu'il manquait beaucoup pour le développement et le déploiement d'applications de qualité commerciale.
angryITguy
3

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.

AlexC
la source
Merci de regarder Titanium. J'ai mis à jour la question pour aider les personnes à répondre avec ce que je recherche dans une réponse.
angryITguy
2

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).

  1. 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.

  2. 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.

  3. 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.

hotpaw2
la source
intéressant ... pouvez-vous fournir des références à des sites qui couvrent ces sujets?
angryITguy
1

J'ai formé mes juniors à cette manière suivante.

Étape 1: Je leur demande de voir des applications gratuites sur Android Market ainsi que les démonstrations d'API car elles le sont également, elles peuvent saisir des idées. ( Http://developer.android.com/resources/samples/ApiDemos/index.html ) et aussi http://www.androidpeople.com/

Par exemple: L'application IBNLive pour Android Parce que lorsqu'ils voient cette application, ils peuvent avoir une idée approximative que ce sont des choses possibles, pourquoi nous ne pouvons pas créer / utiliser, concevoir ou contrôler ou des fonctionnalités comme ça.

Étape 2: Une fois qu'ils ont obtenu un espoir, en voyant l'application existante, ils peuvent rechercher Google ainsi que le guide du développeur Android, qui agissent comme la Bible pour Android, et ont appris à connaître.

Par exemple: Mes juniors ont eu une idée, de vue de liste extensible et de notifications push, puis ont cherché comment nous pouvons faire ces choses, puis ils trouvent pour la notification push, nous pouvons utiliser Cloud 2 Device Messaging, puis ils ont étudié cela et l'ont fait d'une manière excellente.

Sankar Ganesh
la source
0

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.

fzwo
la source