¿Qué conceptos debo saber antes de desarrollar una aplicación?

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.

More Interesting

¿Cuáles son las ventajas y desventajas de dividir los problemas de soporte técnico entre los ingenieros en un inicio de software?

Cómo medir los atributos de calidad del software

¿Necesito conocer el desarrollo web y de aplicaciones si quiero ser ingeniero de software, o si la codificación, las estructuras de datos y los algoritmos son suficientes?

En un principio de patrón de diseño, qué hace 'Programar a una interfaz, no a una implementación'. ¿media?

¿Qué es IncrediBuild?

¿Cómo difiere el patrón de acción / reductor en la arquitectura Flux de las llamadas a funciones estándar?

¿Cómo debo decidir entre software e ingeniería eléctrica para mi especialización?

¿Qué es un proceso eficiente de desarrollo de aplicaciones web? ¿Se debe comenzar desde la estructura del sitio y la interfaz de usuario? ¿Debería uno mapear todos los recursos que tiene primero? ¿Debería uno mapear primero los modelos y considerar cómo se conectan antes de codificar?

Cómo medir y mejorar la productividad y la eficiencia del desarrollo de software

¿Qué partes de un sitio web deben hacerse estrictamente en el servidor y no en JavaScript?

Necesito una computadora portátil para comprar en India con fines de desarrollo con muy buena potencia de procesamiento y fácil de transportar. ¿El presupuesto es de Rs.80000 / $ 1200?

Estoy haciendo todo el trabajo en mi departamento de DevOps y los ingenieros superiores no tienen idea, ¿qué puedo hacer para ascender en la escalera?

¿Cuáles son las mejores grandes empresas de tecnología y nuevas empresas en etapa avanzada para ingenieros de software en Nueva York?

¿Qué última tecnología es mejor para crear una aplicación web realmente rápida y robusta que reciba un tráfico enorme?

¿Tendrán mayor demanda los ingenieros de firmware y hardware de sistemas integrados que los ingenieros de software de aplicaciones?