Android vs iOS: qué plataforma es mejor para los desarrolladores
Makradar De La Tecnología / / December 19, 2019
Android vs iOS. tema eterno para las batallas en línea, que ya cuenta con decencia todo podnadoest. No se apresure a aprobar el texto del artículo e inmediatamente pasar a la infusión de su opinión sólo es correcta en los comentarios. Hoy vamos a hablar de nuevo sobre qué sistema es mejor, pero de una manera diferente.
Desarrolladores - los que crean una parte clave de cualquier plataforma, es decir, aplicaciones. Es la calidad de las herramientas de desarrollo, proporciona una plataforma depende del resultado final. Así, en qué sistema es mejor escribir? Responder a esta pregunta un desarrollador de aplicaciones con experiencia, que tuvo que ser encendido en la App Store y en Google Play.
La elección de la plataforma - un problema fundamental para cualquier nuevo proyecto. Android o iOS? Dada la reciente noticia de que Android se ha capturado con éxito el 80% del mercado, la elección se hace aún más difícil. No importa lo que los gerentes y otros no muy bien con los aspectos técnicos de la cuestión de la gente piensa sobre ello. Otra cosa - los desarrolladores.
¿Cuál es su opinión? La ventaja de tal o cual plataforma depende directamente de su capacidad para mejorar sus vidas.
Y por "ellos" me refiero a "nuestro". Además de las actividades del autor en TechCrunch, estoy desarrollando en HappyFunCorp. Por otra parte, no hace mucho tiempo, he creado un dúo opensorsnyh aplicaciones a través de su proyecto de mascota. Son estas aplicaciones que utilizo para la comparación.
Para que conste: I previamente tenía que escribir unas pocas aplicaciones de Android y iOS, tanto para uso personal como para el trabajo. En particular, escribí cliente móvil para su agregador de noticias ScanvineQue recoge inusualmente historias populares de medios sociales. El código fuente de mi aplicación se puede encontrar en Github (androide | iOS), Y los mismos están disponibles en las aplicaciones Google Play y App Store.
Bueno, deja que comience la batalla.
miércoles
Todavía se puede escribir código en un editor de texto, y muchos están haciendo hasta ahora, sino en términos de el rendimiento es más útil usar el IDE (entorno de desarrollo integrado - IDE).
En el caso de Apple, tenemos Xcode, y el trabajo en este entorno - placer. Es flexible, rápido, potente y capaz de ayudar, sin ser demasiado intrusivo. Y ella está mejorando, a pesar de las medidas difíciles y paranoides tomadas por Apple para mantener el control total sobre las aplicaciones de iOS y dispositivos. El depurador se ejecuta sin problemas, y simulación - rápido y sensible.
¿Qué pasa con Android? Oh, Android. Por el momento, el entorno de desarrollo real bajo es el Eclipse, un puñado de Android personalizado plug-ins, y exageradamente mal. Lento, torpe, ilógico, a menudo francamente incomprensible, mal diseñado, demasiado complejo - un verdadero desastre. Su depurador es tan inconveniente de que la mayor parte del tiempo que paso en juguetear con los registros, mientras que con Xcode en mi poder una verdadera herramienta de insectos-cazadores. No olvidar el emulador de Android, que primero toma unos minutos para descargar, y entonces él no podría conectar con el BAD.
Para ser justo decir que Google es consciente de este problema y están trabajando en un nuevo Android Studio IDE:
Actualmente, Android Studio está disponible como una primera vista previa. Algunas funciones no se pueden establecer, o no se implementan, que puede provocar errores. Si el uso del producto no acabado está causando su malestar, entonces se puede descargar y seguir utilizando el ADT Bundle (plug-in de Eclipse con ADT).
Agradable ver que se está trabajando en el problema, pero deja de ser sorprendente - después de 4 años y medio después de la compra de mi primer androide similar desastre sigue siendo el límite de la perfección, que fue capaz de lograr un entorno de desarrollo Androide.
Aquí es mejor que iOS, sin condiciones.
Configuración
Bajo la apariencia de Xcode y Objective-C se ocultan horror de Lovecraft de la época de los años setenta de programación. Sólo es broma, es broma... pero aún así. Macros y archivos de cabecera, proyectos, objetivos, esquema de montaje y configuración, y terrible, espantosa lista de parámetros de montaje. y más descubrimientos increíbles en el estilo de "Oh, su código de terceros no admite el ARC? Basta con añadir la bandera -fno-objc de arco ». Justo? ¡No!
En Android que tiene un archivo de manifiesto, y Eclipse son generalmente reconstruye por completo la aplicación cada vez que se guarda un archivo. Me gustaría una mayor claridad cuando, por ejemplo, recibe un mensaje de error debido al hecho de que configurar correctamente la regla, pero es un defecto menor. Configuración de aplicaciones Android es simple y elegante.
Aquí late Android.
diseño de la interfaz
Parecería que Apple es sin duda salir victorioso. Con su diseñador puede construir fácil y rápidamente una interfaz sencilla y de aspecto agradable. El problema es que cuanto más tiempo que trabajé con el diseñador, menos me ha gustado mucho. Este es otro momento en que se abre la complejidad de la configuración - herramienta es ideal para crear cosas simples, pero con el desarrollo de cosas simples se convierten repentinamente aplicación complicado, y yo realmente no me gusta estos guiones gráficos multipantalla, que Apple ha añadido acerca hace un año.
En Android, se proporciona la teoría de herramientas de visualización comparables, pero en la práctica que escribir archivos XMLQue contiene unas instrucciones de que en un determinado conduce a una suerte de presentación correcta de la aplicación en toda la variedad de formatos de pantallas de los dispositivos Android. Apple está moviendo la misma manera, y su diseño automático claramente afilado para pantallas variaciones de expansión futura en los dispositivos iOS.
Al mismo tiempo, Android ofrece a los desarrolladores conjuntos de iconosMientras que los desarrolladores de iOS se ven obligados a recurrir a servicios de tercerosO dibujar sus propios iconos.
En esta ronda el ganador para elegir más difícil, pero voy a dar iOS preferencia por dos razones. En primer lugar, todavía es mucho más fácil - sólo 3 tamaño de la pantalla (incluyendo el iPad) y relación de aspecto 2 formato. la diversidad de Android en este sentido añade complejidad. El segundo punto es el atractivo de incumplimiento de los elementos visuales (pop-up menús, mensajes, y así sucesivamente). En iOS todo se ve mucho más atractivo.
Aquí late IOS.
idioma
aplicaciones Android están escritos en Java, el IOS - en Objective-C. Hay excepciones, como el XamarinPero en la mayoría de los casos tal división es válida.
Aprendí a escribir en Java, y al principio no pensé en especial acerca de Objective-C, en gran parte debido a su volumen.
Una cadena como:
Cadena s2 = s1.replace ( "abc", "xyz");
Se vuelve hacia él en:
NSString * s2 = [s1 stringByReplacingOccurrencesOfString: @ "abc" withString: @ "xyz"];
Pero en el proceso de descubrir el lenguaje que realmente me gustó. Es mejor y más limpio que el de Java.
En este caso, también, hay pros Java. Por ejemplo, una simple trampa y traza errores. En los últimos años, Android ha sido otra ventaja muy significativa en términos de recogida de residuos, es decir, la purificación de la memoria automática de objetos innecesarios, pero ahora iOS sabe lo mismo, y es en realidad una ventaja a la nada. Teniendo en cuenta el hecho de que la última victoria es para iOS aquí.
Aquí late IOS.
API
En Android y iOS tienen una enorme biblioteca de software disponible para los desarrolladores y, en general, son bastante similares: API para funcionamiento de las funciones del teléfono y las comunicaciones, la API de acceso a la red, el arsenal de los espectadores, entre ellos poderosa WebView - prácticamente un clon de la plena navegador.
La mayor parte del trabajo se hace con los controladores, y general IOS ViewController es el equivalente de Android Actividad.
Que en realidad no tienen Android, porque es un análogo de marco completo de Datos Básicos. En general, el sistema es más limpio y mejor diseñados. Por ejemplo, compara estosdos clase en IOS, que realizan la mayor parte del trabajo en la aplicación, la estostresequivalente clases en Android. Al final, me gusta mucho más que el trabajo con IOS CollectionViewControllerQue con Android ListAdapter.
Otra medida importante: el número de líneas de código. Mi versión de la aplicación para ambas plataformas son prácticamente idénticos en características y funciones, pero en iOS para ponerlas en práctica Tomó mis 1596 líneas de código, incluyendo archivos de cabecera, y para crear la versión de Android con las mismas funciones requeridas 2109 filas. La diferencia es 32%.
Aquí late IOS.
Internet
Hoy en día, la gran mayoría de las aplicaciones son varias guías de Internet, en lugar de programas independientes. Este es un punto muy importante, y debe ser considerado por separado. En el arsenal de ambos sistemas tienen una serie de herramientas y API para la ejecución de la cooperación con la Red. También ambas plataformas implementan navegador prácticamente en toda regla, que puede ser integrado en la aplicación como quiera y donde quiera que vaya.
Las conexiones deben ejecutarse en segundo plano y no interfiere con la propia aplicación. Para implementar múltiples hilos en Android utilizado AsyncTask. Funciona muy bien y permite un fácil determinarSi el usuario está en la web en el momento. IOS también ofrece capacidades similares, pero su aplicación en un nivel relativamente bajo y no cumplen con las necesidades de los desarrolladores.
Sin embargo, hay muchas bibliotecas de terceros, de código abierto, y hacen la vida mucho más fácil. Solía AFNetworking, y funciona igual de bien que se hace referencia en el anuncio.
Aquí late el valor por defecto de Android y el IOS utilizando bibliotecas de terceros.
compartir
¿Qué tan fácil compartir la una de la aplicación particular en Facebook, Twitter, Evernote, y otros servicios? Parece que esta será la primera ronda en la que Android va a ganar 100% nocaut: tiene un poderoso sistema de interacción entre aplicaciones llamadas Propósitos, y en general, Android es mucho más fiel a la petición y la transmisión de datos entre aplicaciones.
En general, Apple ha puesto al día de manera significativa la competencia en las oportunidades de sharinga. No se puede tomar mi palabra, compruebe el código de la función "Compartir la historia" en el Scanvine androide y iOS. La única razón por código de iOS más - la presencia en ella de un seguimiento más flexible de Google Analytics, en lugar de en el Android.
A continuación, dibuje.
fragmentación
Entonces no necesito decir mucho. Sin embargo, Google está tratando de uso estrategia de desfragmentación interesanteDe modo que en poco tiempo el artículo será re-examinado.
Aquí late IOS.
publicación de la solicitud
Publicación de aplicaciones Android es extremadamente simple. Herramienta en Eclipse le permite construir rápidamente la aplicación, y en sus manos ya tiene un archivo APK. Enviarlo a un correo electrónico, publicar en línea, o descargar en Google Play, por lo que es disponible a través de (casi) el mundo en sólo una hora. A continuación, se hace posible supervisar las estadísticas de instalaciones y crash-informa hasta una línea de código específica, debido a lo cual la aplicación se bloquea. Si es necesario, puede actualizar a desplegar al instante.
Publicación en la App Store - es una pesadilla. Mi amigo aconseja a asignar al desarrollo del calendario al menos un día en la guerra con los certificados y perfiles de distribución. No importa cuántas veces se ha hecho antes, y lo fácil que está tratando de hacer que el proceso de la próxima versión de Xcode - usted seguirá siendo muchos problemas. las pruebas de aplicaciones se vuelve aún más de un problema, a menos que utilice TestFlight. Añadir a esto el iTunes Connect, que no se va a ninguna comparación con la consola de Google Play.
Aquí late Android, incondicionalmente.
ganador
Se convierte en iOS, por otra parte con un cierto margen. Tenemos las ventajas de Android, pero en general a escribir una aplicación buena para iOS sigue siendo mucho más fácil que en virtud de Android. Añadir a esto el hecho de que los usuarios de iOS más de solvencia, y se obtiene una respuesta a la pregunta de qué plataforma debe ser una prioridad para una puesta en marcha. Probablemente, la brecha se reducirá después del lanzamiento de Android Studio, permitiendo así a resolver algunos problemas... pero no todos.
Por cierto, mi teléfono principal - Nexus 4, y yo estoy muy contento.
(vía)