Hay una gran variedad de aplicaciones disponibles en diferentes tiendas de aplicaciones. Algunas aplicaciones realmente no requieren el conocimiento de ningún concepto especial, mientras que otras requieren mucha experiencia en el dominio de la aplicación.
Un gran cuello de botella para los nuevos desarrolladores (especialmente los estudiantes) es que no saben lo que pueden hacer. Una vez que conozcan las bibliotecas, las API y los hardwares disponibles, podrán pensar en los desafíos tecnológicos. Otro cuello de botella es la funcionalidad principal de la aplicación: ¡las personas no pueden hacer una lluvia de ideas para una nueva idea de aplicación! Solo tengo experiencia en el desarrollo de aplicaciones de Android, pero intentaré dar una lista general de temas:
- Administración de datos : puede usar una base de datos (SQLite) o escribir archivos en el disco. Puede exponer sus datos utilizando ContentProviders.
- Operación de red : debe aprender a buscar URL y descargar contenido de Internet.
- Autenticación : debe obtener información sobre la autorización de usuarios y el almacenamiento de credenciales. También puede aprender sobre los tokens OAuth.
- API REST : esta es la forma más común de exponer datos en estos días. Su aplicación puede comunicarse con el servidor mediante dichas API. También puede usar varias API de terceros para agregar ciertas funcionalidades a su aplicación.
- Subprocesos : la mayoría de las aplicaciones generalmente usan subprocesos de fondo aparte de un subproceso de interfaz de usuario. Debe saber cómo funciona el enhebrado.
- Explotación de sensores / hardware : el SDK generalmente proporcionará muchos métodos para interactuar con el hardware. Debe conocer algunos de ellos, como GPS, cámara, acelerómetro, etc.
- Creación de interfaz de usuario : esto es muy importante para una aplicación exitosa. Puede apegarse a algún patrón como Diseño de materiales o puede construir su propia interfaz de usuario desde cero. Debe considerar diferentes tamaños y resoluciones de pantalla. Debería aprender a decorar elementos de la IU e interactuar con ellos. También debe aprender sobre animaciones y transiciones.
- Interactuar con otras aplicaciones : desearía enviar a su usuario a otras aplicaciones y recibir usuarios de otras aplicaciones. Un ejemplo común es compartir algunos datos.
- Gestión de activos : su aplicación generalmente también utilizará muchos recursos estáticos. Estos recursos pueden incluir imágenes, archivos, iconos, etc.
- Programación basada en eventos : debe conocer el paradigma basado en eventos. La mayoría de las aplicaciones no tienen un flujo definido. Las acciones generalmente se desencadenan por acciones del usuario como hacer clic en el botón, deslizar, etc.
- ¿Qué debe saber todo programador sobre seguridad?
- ¿Cuáles son las preguntas / conceptos imprescindibles para una entrevista con un ingeniero de software?
- Cómo mejorarme en las pruebas de software
- ¿Qué son las listas de verificación de pruebas en las pruebas de software?
- ¿Existe una gran política involucrada en la selección de indios como CEOs de las principales compañías de software?