¿Cómo hacen los desarrolladores aplicaciones para iOS y Android? ¿Vuelven a escribir el programa ya que iOS requiere Xcode (Objective-C) mientras que Android requiere Android Studio (Java)? ¿Podemos desarrollar usando un solo software?

Para hacer una aplicación para cualquier sistema operativo (sistema operativo), como Android, iOS, OS X, Windows, etc. uno debe tener conocimientos básicos de programación. Esos se llaman desarrolladores de aplicaciones. El desarrollo tiene muchas divisiones (diseño, gestión de datos, optimización, etc.). La programación es común en todas las fases.

Esta programación se realiza utilizando SDK (Kit de desarrollo de software), API (Índice de plataforma de aplicaciones)

Ejemplos de SDK: Android Studio, Xcode.

API consta de todos los paquetes que comprenden las últimas funciones disponibles.

Estas API se publican para que los desarrolladores las actualicen para que las nuevas aplicaciones estén disponibles en cuanto se publique la actualización.

Los desarrolladores revisan las conferencias celebradas sobre las próximas actualizaciones y entienden los nuevos estándares. Utilizan estas nuevas API y su funcionalidad para crear su aplicación.

Aquí viene la programación, los desarrolladores de Android usan Java y XML (por cierto, soy desarrollador de Android) y Apple tiene su propio lenguaje llamado Swift.

Este código desarrollado luego se prueba usando simuladores de teléfono (comportamiento amable del teléfono en la computadora). Muchas aplicaciones de prueba en línea están disponibles para probar estas aplicaciones en diferentes dispositivos con varios tamaños en el caso de Android, mientras que Apple tiene solo unos pocos tamaños. Este es un mal punto con el desarrollo de Android, llamado fragmentación.

Después de completar el desarrollo y las pruebas, las aplicaciones se cargan en la tienda respectiva después de la verificación.

Puedes usar algunos middleware. Donde trabajo, utilizamos Unity3D, que puede generar código ejecutable para Android, IOS, Windows, Linux, MacOS y para páginas web. Hay algunas limitaciones que significan que el proceso no es 100% fluido, pero no está lejos.