El desarrollo de Android y dispositivos móviles es un área emocionante de desarrollo. Como se trata de una nueva disciplina, ¿qué se esperaría de un desarrollador de Android para construir aplicaciones comercialmente sólidas en términos de habilidades? El problema que yo y, creo, muchos otros "novatos" en la tecnología quisieran saber son las áreas de habilidades técnicas y la progresión a los temas avanzados requeridos que van más allá de los conceptos básicos proporcionados por Google. Hay mucha información que es bastante útil, pero no está organizada en categorías de disciplina u orden.
Actualización : Míralo de esta manera. Si es un desarrollador sénior y necesita poner a un compañero colega en Android para un proyecto en particular (a su discreción para esta pregunta), ¿qué haría?
Respuestas:
Hay varias facetas a esta pregunta:
Desde el punto de vista técnico , respondiendo el "¿Cómo?"
Hay varias tecnologías para dominar, además de una serie de "agradable tener".
El número uno es Java . El SDK de Android se basa en el supuesto de que todas las aplicaciones están escritas en Java . Aunque podría decirse que hay algunas soluciones de terceros emergentes para desarrollar en .net (ver monodroid ), después de todo, el sistema operativo subyacente es Linux.
El segundo es el eclipse . Aunque hay varios SDK de terceros, algunos mejores que ADT, en Intellij o en Netbeans , los esfuerzos de Google se centran oficialmente solo en el eclipse por ahora.
Editar: a partir de enero de 2016, Google es oficialmente compatible con Android Studio como su IDE oficial.
En la arquitectura de Android, hay una serie de bloques de construcción para los que un poco de exposición siempre será útil:
SQLite
Nociones generales de transmisión de video y audio, códecs. Para OpenCore (android.media).
Dibujo OpenGL.
Servicios web basados en REST, XML o JSON.
Nociones relativas a la arquitectura ARM para el desarrollo de código nativo.
Además, leyendo en mi cuenco de cristal, los desarrolladores de Android también deben conocer su Linux y ser competentes en idiomas nativos para el día en que Google abandone Java y lo sustituya con go o alguna otra cosa que puedan estar preparando en algún lugar (vea su iniciativa " Native Client ") en el dominio del navegador). Google ya ha lanzado un NDK (Native Development Kit) para cy C ++ utilizando un mecanismo JNI estándar para complementar Dalvik.
Desde el punto de vista comercial , respondiendo el "¿Qué?".
Los desarrolladores de Android deberían ser usuarios de Android, por supuesto. Sin embargo, no solo los usuarios de teléfonos móviles estándar, sino también los usuarios de tabletas. Que en realidad deberían adoptar un Jobsian actitud - siempre se preguntan "¿Cómo podría hacerlo mejor con mi teléfono, mi tableta o cualquier no-todavía-en-los-electrónica de consumo del mercado en dispositivos?".
Hay muchas aplicaciones de Android que aún no tienen un líder del mercado, no necesariamente relacionadas con la movilidad (o la aburrida aplicación habitual "¿dónde está la pizza más cercana?"). Aquí hay algunos que no puedo sacar de mi mente personalmente (hasta que tenga más tiempo ;-).
Enseñe a su hijo a dibujar y leer.
tarjetas para aprender idiomas extranjeros.
UK-FreeSat TV-guide + control remoto.
tuyo aquí (recetas de cocina ... etc).
fuente
Para ser honesto, creo que solo debes buscar en Google e investigar un poco.
Aquí hay algunos enlaces interesantes que encontré, que pueden ofrecer un buen punto de partida.
Además de la documentación de Google que discutió, hay muchos otros.
¡Espero que esto te ayude a comenzar a encontrar los detalles que deseas!
Buena suerte
fuente
Guía oficial para desarrolladores de Google
Echaré un vistazo a la guía de desarrollo de Google para Android, que incluye las mejores prácticas y pautas para hacer que su aplicación sea coherente con el aspecto de una aplicación de Android.
fuente
Dos cosas que miraría. Una de ellas son las pautas de diseño de Apple para crear aplicaciones. Sé que la pregunta era sobre las aplicaciones de Android, pero los principios generales se aplican y lo hacen pensar en una forma de diseño de 'Aplicación', que en realidad es bastante diferente de la perspectiva de diseño de una aplicación de escritorio.
También echaría un vistazo a Appcelerator Titanium, que es una herramienta que le permite portar código desde un entorno de tipo javascript / web dev a código nativo en iPhone, iPad y Android. Me ha parecido una forma útil de hacer pequeñas aplicaciones rápidamente. Puede descargar el ejemplo 'Fregadero de cocina' que, como su nombre lo indica, demuestra toda la funcionalidad nativa disponible. Definitivamente lo recomendaría como un lugar para comenzar.
fuente
A menudo encuentro 3 cosas que faltan en los nuevos desarrolladores móviles, después de las habilidades básicas con los lenguajes de programación requeridos y el conocimiento de las herramientas y bibliotecas del SDK (que no son ciencia espacial ... 14 años de edad, según los informes, han desarrollado aplicaciones).
Desarrollando para entornos restringidos. La CPU, la memoria, los píxeles de la pantalla y la energía de la batería disponible son mucho más restrictivos para los dispositivos móviles. Algunos programadores nunca han estado expuestos a la programación rápida y pequeña. Simplemente no puede pensar de la misma manera para resolver problemas que cuando tiene un bastidor con 5kW de potencia y refrigeración disponible, etc. Vuelva a aprender algunos de los trucos que los veteranos usaban para codificar grandes juegos en una CPU de 1MHz con 48kB de memoria, o algo así. Quizás practique la codificación en un Arduino u otro pequeño controlador.
UI familiaridad. Un usuario generalmente interactúa con su dispositivo móvil de diferentes maneras que los sistemas de escritorio. Llevar uno alrededor. Quizás varios modelos. Usalos, usalos a ellos. Use muchas aplicaciones y critique (no características, pero) cuán fáciles son de usar, con poca luz, rebotando vehículos en movimiento, etc. Lea y relea todos los HIG móviles diferentes. Sepa qué les gusta y qué no les gusta a los usuarios sobre la plataforma de interfaz de usuario particular para la que está codificando.
Extravagante familiaridad. Algunas de las herramientas y bibliotecas son nuevas y tienen "peculiaridades". Lea los tableros de desarrolladores para ver los problemas y las soluciones, de modo que no se quede atrapado cometiendo el mismo error en el que se han tropezado millones de otros desarrolladores. Veo demasiadas preguntas en stackoverflow sobre cómo hacer cosas que el hardware, las API o los modelos de distribución de aplicaciones ni siquiera permiten. Compañías enteras han perdido su tiempo tratando de hacer lo imposible para la tienda de aplicaciones de iPhone.
fuente
Entrené a mis Juniors en este siguiente modo.
fuente
Mucho más importante que los tecnicismos (que se pueden aprender y no deberían ser demasiado difíciles de todos modos) es saber qué hacer, para quién y si podrá vender lo suficiente. Esa última parte sigue siendo un problema en Android, a diferencia de iOS.
Entonces, antes de comenzar a aprender el desarrollo de Android, forme una imagen clara de lo que desea lograr, cómo lograrlo y si eso es realmente sostenible.
fuente