¿Qué debe saber / abordar un desarrollador para crear aplicaciones comerciales de Android? [cerrado]

21

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?

angryITguy
fuente
Por comercial, ¿quiere decir "calidad comercial" o "ganar dinero" y, si es así, quiere decir conseguir un trabajo en el área o escribir y vender aplicaciones para usted?
Jon Hopkins
@Jon. No excluye ninguna de esas áreas. Pero (creo), hay muchos desarrolladores como yo que desean extender su organización actual de manera efectiva a los dispositivos. Por lo tanto, eso en realidad no implica "ganar dinero" o conseguir un nuevo trabajo, simplemente extender la empresa para ejecutivos / guerreros del camino hambrientos de información.
angryITguy
Lo que estoy buscando es un consejo de los desarrolladores senior en Android que tienen el "¡ooh! Deberías leer esto primero, y luego esto para HTTP, o esto para un atractivo diseño de interfaz y esto para dibujar momentos 2D / 3D ...". He actualizado mi pregunta para reflejar esto.
angryITguy

Respuestas:

16

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

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

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

  1. SQLite

  2. Nociones generales de transmisión de video y audio, códecs. Para OpenCore (android.media).

  3. Dibujo OpenGL.

  4. Servicios web basados ​​en REST, XML o JSON.

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

  1. Enseñe a su hijo a dibujar y leer.

  2. tarjetas para aprender idiomas extranjeros.

  3. UK-FreeSat TV-guide + control remoto.

  4. tuyo aquí (recetas de cocina ... etc).

Alain Pannetier
fuente
Me gusta su respuesta, ¿puede proporcionar algunos enlaces que haya utilizado para SQLLite, Webservices / REST / JSON y OpenGL?
angryITguy
12

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
hola, lo siento si esto es tonto pero soy nuevo aquí! ¿Por qué esto sería rechazado? La razón por la que pregunto es que noté que nadie más respondió esta pregunta y, a veces (creo que de todos modos), solo tienes que irte y resolver la respuesta tú mismo. Eso es todo lo que estaba sugiriendo con algunos puntos de inicio básicos, ¿qué hay de malo en eso?
+1 para contrarrestar lo negativo. Además, da algunos buenos enlaces :)
Darren Young
@Darren Young: gracias, pero estaba interesado en por qué puede ser rechazado. Así que puedo usar mejor el sitio, ¡pero el +1 siempre es bienvenido!
@Cavador. Gracias por esa información Este es el material de nivel de entrada que ya he logrado encontrar. Tenía la esperanza de que los desarrolladores más experimentados saltaran y tomaran esta respuesta un poco más allá. +1
angryITguy
@giulio: gracias, espero que encuentres la información que estás buscando.
5

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.

Ryan Hayes
fuente
Gracias. Ya descubrí el SDK de Google y la guía de desarrollo ( developer.android.com/guide/index.html ). Pero descubrió que faltan muchas cosas para el desarrollo y la implementación de aplicaciones de grado comercial.
angryITguy
3

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.

AlexC
fuente
Gracias he estado mirando Titanium. He actualizado la pregunta para ayudar a los encuestados con lo que estoy buscando en una respuesta.
angryITguy
2

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

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

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

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

hotpaw2
fuente
interesante ... ¿puede proporcionar alguna referencia a sitios que cubran esos temas?
angryITguy
1

Entrené a mis Juniors en este siguiente modo.

Paso 1: les pido que vean algunas aplicaciones gratuitas en el mercado de Android y también las demostraciones de API porque también pueden obtener algunas ideas ( http://developer.android.com/resources/samples/ApiDemos/index.html ) y también http://www.androidpeople.com/

Por ejemplo: la aplicación IBNLive para Android Porque cuando ven esta aplicación, pueden tener una idea aproximada de que estas son cosas posibles, por qué no podemos crear / usar, diseñar o controlar o funcionalidades como esta.

Paso 2: Una vez que obtuvieron una esperanza, al ver la aplicación existente, pueden buscar tanto en Google como en la Guía para desarrolladores de Android, que actúa como Biblia para Android, y se dieron cuenta.

Por ejemplo: My Juniors tuvo una idea, de vista de lista expandible y notificaciones push, luego buscó, cómo podemos hacer estas cosas, luego encontraron para notificaciones push, podemos usar la mensajería del dispositivo Cloud 2, luego estudiaron sobre eso y lo hicieron de una manera excelente

Sankar Ganesh
fuente
0

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.

fzwo
fuente