¿Por qué la mayoría de los desarrolladores dicen que es más fácil desarrollar aplicaciones para iOS que para Android?

Todo lo que puedo decir, por supuesto, es desde mi perspectiva.

He sido programador de iOS durante casi 10 años. Tienes una Mac, descargas Xcode, eso es todo. Conecta su teléfono a su computadora, hace clic en Sí para que el dispositivo sea un dispositivo desarrollador. Y te vas. Solo desarrollas tu aplicación. El simulador se inicia en menos de 3 segundos, emula todos los dispositivos. Puede girar, pellizcar y hacer zoom fácilmente. Obtienes el paquete completo. Todas las bibliotecas que necesita provienen de Apple y hay infinitas cantidades de fuentes de código abierto. Más del 90-95% de todos los usuarios utilizan el último sistema operativo en cuestión de unas pocas semanas. Tienes que seguir un patrón de diseño y casi todos lo siguen. Tiene una aplicación de trabajo vacía en funcionamiento en cuestión de minutos. Diseña tus aplicaciones o niveles de juego en el generador de interfaces. Simplemente funciona y se reconoce que este es el camino correcto.

Ahora a Android.

Las cosas fueron mucho peores con Eclipse anteriormente, pero solo han mejorado un poco, necesitas descargar Android Studio. Luego, debe decidir qué versión del kit de desarrollo desea, solo el 4% o menos usa las dos últimas versiones principales de Android, la mayoría tiene más de unas pocas generaciones de retraso. No voy a seguir hablando de cpus multinúcleo, núcleos simples antiguos, pantallas cuadradas, pantallas largas y las variantes de un millón. Android hace que las aplicaciones de resolución múltiple sean un poco fáciles. Pero cuando hablas con 5 desarrolladores de Android, obtienes al menos 6 mejores prácticas diferentes, aunque todos están de acuerdo en que NO debes usar el diseñador gráfico incorporado, además funciona bastante mal y terminas con una apariencia que se rompe fácilmente y te formatea casi no puedo volver a. Trabajar con XML directamente no es lo más difícil, es bastante similar a HTML. Sin embargo, debe saber bastante de memoria, ya que el sentido de código / completo realmente no funciona todo el tiempo allí, y de todos modos necesita saber lo que está haciendo. Necesita instalar un emulador real, lo que significa que está ejecutando la versión completa de Android, prácticamente tiene un dispositivo Android completo en su escritorio, pero funciona tan lentamente que es horrible. Correr en un dispositivo es mucho más simple.

En cuanto al código de programación, estás haciendo las mismas cosas que en iOS, aunque en mi opinión, las cosas son demasiado complicadas. Simplemente hacer una llamada web asincrónica a un servidor requiere mucho trabajo, clases y subclases, no envía variables, envía objetos instanciados.

tl; dr: Si eres un desarrollador JAVA experimentado, no creo que tengas ningún problema con Android. Puede estar funcionando en un día, incluso unas pocas horas. Java, por supuesto, tiene una gran cantidad de bibliotecas, una cantidad interminable, y todo se ejecuta en su dispositivo, más o menos, de lo contrario, tiene mucho trabajo por delante.

Si no eres un desarrollador Java experimentado, tendrás algunos problemas. Yo hablo por experiencia. No soy un desarrollador Java experimentado. No llego a ninguna parte, rápido. Me las arreglé para hacer aplicaciones muy simples, pero encuentro todo el asunto de Android muy artificial, difícil y demasiado complicado. A las personas que conozco que hacen desarrollo de Android les gusta. Admiten libremente que las herramientas que tengo me parecen más terminadas, pero no pueden pensar en hacer las cosas de manera diferente. Por otro lado, casi no puedo transferir ningún conocimiento. Si me lanzo y hago aplicaciones de Android reales, comenzaré desde cero.

Comencé casi desde cero en iOS, pero en unos días tuve una serie de aplicaciones simples en funcionamiento, descarga de imágenes asíncronas y más. Podría escribir esas aplicaciones desde cero. En Android, no tanto. Hay tanto que debes saber antes de llegar a cualquier parte.

Francamente, es más fácil trabajar en iOS, mucho más fácil. Tiene mejores herramientas, marcos y bibliotecas más fáciles, más fáciles de probar y usuarios más dispuestos a pagar por las aplicaciones.

Aprendí Android después de conocer Java e iOS después de conocer C / C ++, y aprendí Objective C muy rápido. Sin embargo, y nunca lo intenté rápido, escuché que una vez que lo intentas no quieres volver a Objective-C.

Mi respuesta abordará la biblioteca / marco y otros aspectos, pero no sobre el lenguaje (y creo que no debería considerarlo al principio):

Me gusta más aprender sobre Android porque hay casi demasiada información disponible. Los ejemplos en la documentación oficial de Android casi siempre son lo suficientemente buenos como para que algo funcione y descubran variaciones más adelante. Mientras que la documentación oficial de iOS se centra en la apariencia y las posibilidades en lugar de decirle claramente a un desarrollador cómo comenzar. Eso hace que la curva de aprendizaje sea más empinada para los principiantes. Y sabes qué, si estás cuesta arriba, Android volverá a ganar, porque tienes acceso al código fuente.

Android también tiene muchos más foros y tutoriales.

iOS no teme hacer obsoletas muchas cosas de una versión a la siguiente. Tal vez eso sea bueno, porque las aplicaciones necesitan más mantenimiento = más trabajos.

El código de Android generalmente se ve más feo, con muchas clases anónimas y puede volverse caótico si no eres lo suficientemente disciplinado. iOS es más fácil de administrar porque de alguna manera sus buenas prácticas lo alientan a diseñar su arquitectura correctamente.

La forma de diseñar pantallas de iOS (guiones gráficos y .xib) es una pesadilla para comprender y combinar bajo cualquier CVS. Los archivos xml de Android son sencillos y están documentados.

No menos importante, el ciclo para “hacer cambios, compilarlos y verlos” es mucho más corto en iOS. Lo que significa que luchas menos cuando tienes que hacer esos inevitables ciclos de prueba y error.

En primer lugar, no estoy seguro de que todos estén de acuerdo con eso. De hecho, ni siquiera estoy seguro de que ‘la mayoría’ esté de acuerdo con eso. Sin embargo, puedo pensar en un par de razones.

El desarrollo de iOS requiere que aprendas Swift, un lenguaje de programación utilizado para desarrollar SOLO para iOS. Swift es posiblemente un lenguaje simple de aprender, especialmente para alguien con experiencia en desarrollo. Además de aprender un idioma simple, también debes darte cuenta de que Apple lo ha hecho aún más simple al controlar el hardware y el software para el que estás desarrollando. Con Android siempre vas a tener los ‘one offs’ por ahí. El sistema operativo Android se usa en muchos dispositivos diferentes que tienen especificaciones diferentes y la probabilidad de encontrarse con errores es bastante alta.

Debido a que Apple controla su hardware y su software de esta manera, también hace que el desarrollo de iOS sea más barato muchas veces. Escribimos un blog sobre esto hace un tiempo aquí. Las muchas variables en el lado de Android hacen que sea una tarea mucho más grande lanzar una aplicación que funcione bien en todas esas plataformas.

Dicho esto, Android tiene algo así como una participación del 80% del mercado. Yo diría que cualquier desarrollador que busque ingresar al mercado móvil haría bien en ir por cualquier ruta. En Touchtap preferimos hacer desarrollo nativo de iOS en muchos casos, pero también lo desarrollamos para Android.

Hasta ahora, nadie hablaba de “Contexto” en la programación de Android y los problemas con él, así que aquí voy.

En iOS tiene su xib, haga referencia a sus vistas en un viewController, adjunte su lógica y eso es todo. Cuando gira el dispositivo, no sucede nada.

Prueba exactamente lo mismo en Android. Allí tendrá una vista de definición xml y una Actividad / Fragmento para poner un código que haga referencia a sus definiciones xml. ¿Qué sucede con esta actividad cuando gira el dispositivo? ¡Se destruye! Tendrá que guardar el estado si lo desea.

¿Ha comenzado una llamada de red que contiene una referencia a la actividad anterior? Si es así, ¡creó una pérdida de memoria! Hay tanto fu * k que tiene que lidiar con estados similares y pérdidas de memoria sin hacer nada. ¿Desea admitir varios dispositivos (tableta / teléfono inteligente) que se comportan de manera diferente cuando gira el dispositivo? Bienvenido al infierno. Lo mejor que puede hacer es no permitir rotar el dispositivo. Sin embargo, esto no evita que sus actividades / fragmentos pierdan memoria mientras sus usuarios navegan por la aplicación mientras realizan llamadas de red. No entraré en detalles sobre cómo resolver tales problemas. Hay muchas formas, puedes llenar libros con este tema.

He estado desarrollando aplicaciones IOS desde los últimos 5 años. Veo las siguientes cosas que son fáciles de administrar en iOS en lugar de Android

1. Número de dispositivo : como todos sabemos, Android tiene la mayor variedad de dispositivos con diferentes resoluciones. Cuando se trata de diseñar, el desarrollador de Android necesita probar y administrar más dispositivos que iOS

2. Código de depuración : cuando se trata de depurar código y encontrar errores en el código. Xcode breakpoints es mucho mejor que eclipse y android studio breakpoint

3. Línea de código : como he visto en mi carrera, cuando necesitamos hacer la misma funcionalidad tanto en iOS como en Android. Android toma más número de línea para codificar.

4. IDE : cuando se trata de IDE, Android tenía dos opciones: Eclipse y Android Studio. Google dejó de admitir futuras actualizaciones y el estudio de Android es nuevo, no tan estable como su Xcode.

5. Tiempo de trabajo : igual cuando necesitamos la misma funcionalidad que el desarrollador de Android lleva más tiempo que yo.

En mi opinión, se debe principalmente a los dispositivos en los que se ejecutan iOS y Android.

iOS solo funciona en productos Apple. Entonces tienes un cierto conjunto de dispositivos. No son tantos, y Apple ha hecho iOS de tal manera que se ajusta exactamente a las pantallas y las partes mecánicas internas.

(Foto: http://Flickr.com / ios-android-war-iphoneindia / George Thomas)

Apple también es muy estricto sobre cómo se debe desarrollar la aplicación y qué se puede hacer y qué no se puede hacer.

Con Android es completamente otra historia. Aquí tiene hoy miles de millones de fabricantes nuevos y existentes. Todos tienen sus propios tamaños de pantalla, diferentes potencias de CPU, diferentes partes mecánicas, etc. etc. etc. Siempre es posible usar un emulador para tratar de imitar y estos son el comportamiento de la aplicación en un dispositivo específico. Pero en realidad necesitaría cada uno de estos teléfonos inteligentes / tabletas para saber exactamente si funcionan en esos sistemas o no. Pero no será posible para ninguna compañía de desarrollo adquirir todos estos dispositivos. Por lo tanto, es un dolor de cabeza para los desarrolladores. Porque quién sabe qué dispositivo usará el cliente para probar el dispositivo. (Por supuesto, al principio, las compañías profesionales de desarrollo de aplicaciones especificarán exactamente en qué dispositivos se ejecutará la aplicación, pero esa es otra historia)

Entonces, esta diferencia, el hecho de que iOS esté cerrado para otros fabricantes, mientras que Android está abierto para todos, es razón suficiente para que los desarrolladores digan que es más fácil de desarrollar en iOS.

Puede haber otras razones también. Pero para mí este es el principal.

Saludos cordiales

Sascha Thattil

CEO y Project Manager en Software-Developer-India.com

Como desarrollador de iOS, que inicialmente comenzó a desarrollar aplicaciones de Android. Estoy totalmente en desacuerdo en que es más fácil versus más difícil. Ambos tienen pros y contras. Necesitará bastante tiempo para crear una aplicación optimizada y receptiva con una gran interfaz de usuario.

Es posible aprender Android e iOS en paralelo con un nivel similar de “dificultad”

Con la introducción de Kotlin en el mundo de Android, el campo de juego es bastante similar en términos de lenguajes de programación. Ver enlace a continuación

Swift es como Kotlin

Tanto iOS como Android tienen sus dificultades y beneficios, depende de lo que estés construyendo. Se sabe que iOS tiene una base de usuarios en la que los usuarios están dispuestos a pagar más, por lo que es más “beneficioso” escribir para iOS.

Sin embargo, desde el punto de vista de la programación, seguro que Android tiene dificultades con el contexto y el estado de administración, sin embargo, personalmente no me gusta cómo funciona el guión gráfico de iOS en contraste con poder ver las diferencias visibles en mi archivo xml en Android. Y personalmente creo que las intenciones son un envío de Dios, por lo que para mí Android es bastante bueno para trabajar.

Al final del día, elija uno, apréndalo, y una vez que aprenda los principios del desarrollo móvil, el otro será más fácil.

Nota: no he realizado el desarrollo de iOS, por lo que no puedo compararlos de primera mano.

La mayoría de las quejas sobre el desarrollo de Android se centran en la fragmentación de la plataforma: en teoría, debería probar su aplicación en más de 100 dispositivos. En el mundo de iOS, la cantidad de modelos y la cantidad de versiones de SO más antiguas que se admiten son mucho menores.

No lo sé, ya que nunca he intentado hacer una aplicación basada en Android.
Pero puedo decirte por qué elegí iOS:
Menos fragmentación de los SO, los fabricantes y los factores de forma del dispositivo.
Leí que las personas que usan dispositivos iOS están mucho más dispuestas a pagar por las aplicaciones.
Menos posibilidades de que tus clones roben tus aplicaciones.
Mayor seguridad con dispositivos iOS, atrayendo clientes de clase alta.

Bien. A veces puede ser una cuestión de familiaridad. Un japonés puede decir que escribir hiragana es más fácil que el alfabeto.

Antecedentes importantes. En la universidad no estaba demasiado familiarizado con C ++, en cambio aprendo Java y me familiarizo más con él, y empiezo a aprender la programación de Android. Otro estudiante se apegó a C ++ y lo hizo mejor mientras aprendía Obj C o usaba Qt.

Aprender cualquier cosa depende de tu interés y habilidad. Todo depende de lo que más te apasione aprender. Personalmente, soy mucho mejor en el desarrollo de Android que en el desarrollo de iOS, aunque estoy probando mis manos en el desarrollo de iOS.

Encontré que el desarrollo de Android es más fácil que iOS personalmente, pero esa es mi opinión. Pero si desea que su aplicación sea más popular, diferiría con muchas personas aquí y seguiría diciendo que aprenderá el desarrollo de iOS. Todos los grandes desarrolladores y compañías lanzan sus aplicaciones en la plataforma iOS en lugar de Android.

Todo lo mejor en el desarrollo de su aplicación móvil. 🙂

Depende de sus necesidades y de la complejidad de la aplicación que está a punto de desarrollar. Pero muchos estarían de acuerdo en que sí, la configuración de Mac para el desarrollo es más simple y se ejecuta mejor. ¿Razón? Apple desarrolla el Xcode de Apple desde el lanzamiento del iPhone SDK. La herramienta de Google está un poco por detrás.

Depende de cada una de las habilidades de aprendizaje … Si quieres ser programador, entonces tienes que adaptarte a cualquier plataforma … En común, Android es fácil de aprender si tienes conocimientos básicos de Java … para iOS tienes que dar algunas prácticas …

Desde un punto de programación, diría que no, son iguales. Sin embargo, Xcode es MUCHO mejor que Android Studio y diría que eso hace que iOS sea más fácil. Hubo una broma que escuché de algunas de las personas que conozco que hacen Android que cuando salió Android Studio por primera vez pensaron que era una herramienta de reclutamiento para Google porque era muy difícil de usar.

No lo creo. ¡El desarrollo de Android es mucho más fácil!
Creo que también depende de cómo veas los lenguajes de programación. Quiero decir, si te gusta Java, ¡Android es bueno! Si eres bueno con el objetivo c, ¡ios es bueno!
Y aprender Android te ayuda más que aprender a desarrollar ios.
La demanda es la razón principal de esto.

Esto puede ayudar:
Android vs iOS: diferencia y comparación

Depende de los idiomas que ya sabes.

si tienes un buen comando en Java, Andriod sería más fácil.

SI conoce Objective C o Swift, aprender iOS sería fácil

La principal diferencia es el lenguaje de programación, y honestamente, el objetivo-c es más difícil que Java. Además de esta diferencia en términos de lenguaje de programación, el nivel de dificultad de desarrollo es comparable

Creo que siempre es subjetivo y depende de tu experiencia en programación. Según lo que escuché de los desarrolladores de aplicaciones, tanto iOS como Android, trabajando con ellos en la promoción de sus aplicaciones, iOS gana en términos de mejores herramientas, mejor documentación de Apple.

More Interesting

¿Cuántos desarrolladores de aplicaciones registrados hay para Android?

¿Son suficientes los conceptos básicos de Java para comenzar a aprender la programación de Android?

¿Cuáles son las oportunidades y el alcance como desarrollador web y Android independiente en India?

¿Cómo ganan dinero las aplicaciones gratuitas de Android en Google Play Store?

Si está tratando de crear nuevas aplicaciones para teléfonos inteligentes con un presupuesto limitado, ¿debería optar por Android o iOS?

¿Qué hace un desarrollador de framework Android? ¿Desarrollan el marco en sí o desarrollan aplicaciones de Android usando los marcos?

¿Por qué se prefiere una base de datos remota sobre SQLite en el desarrollo de aplicaciones de Android?

¿Qué parámetros deben tenerse en cuenta al desarrollar una aplicación de Android para que la aplicación obtenga las mejores etiquetas de desarrollador de Google?

¿Cuánto de Android es Linux?

¿Puedo desarrollar una aplicación de Android usando la API de un sitio conocido? ¿Causaría algún problema por parte del sitio?

¿Es mejor obtener un nexo galaxy o un nexus 7 como dispositivo de desarrollo?

Me gustaría aprender programación de juegos para la plataforma Android, siendo un desarrollador de aplicaciones, ¿qué debo saber para sobresalir como desarrollador de juegos?

¿Cuál es la diferencia entre la vista de tarjeta y la vista de cuadrícula en la aplicación de Android?

¿Cuáles son algunas buenas aplicaciones en Android que pasaron desapercibidas?

Cómo entender la tecnología, en este caso Android