¿Qué es tan frustrante sobre el desarrollo de aplicaciones de Android?

Fragmentación.

Hay muchas versiones diferentes de Android por ahí.
Nota: Por versiones, no me refiero a ICS, GB, JB, etc.

Diferentes compañías toman el código fuente de Android y lanzan sus ROM personalizados para sus teléfonos. Esto es lo que yo llamo fragmentación de Android.
Por ejemplo, Samsung y HTC tienen sus propias ROM. Como desarrollador, debe asegurarse de que su aplicación se ejecute en todas estas variantes diferentes. A veces, algunas funciones serán deshabilitadas por estas compañías y su aplicación se bloqueará.

Por ejemplo, si utiliza la API de pila SIP nativa proporcionada por Android en su, se bloqueará en los teléfonos Samsung, porque Samsung ha deshabilitado la pila SIP en sus ROM. Hay muchos ejemplos de este tipo. Por lo tanto, no hay garantía de que si su aplicación se ejecuta en un nexus 4, se ejecutará sin problemas en un Samsung S4.

Esta es la principal diferencia entre iOS Dev y Android Dev, y por qué desarrollar en iOS es un poco más fácil que Android.

Aquí está mi lista de frustraciones:

Fragmentación
Sí, como todos mencionaron, es realmente molesto que no pueda orientar su aplicación a las últimas versiones de Android, sino que tenga que apegarse a las más antiguas. Usted sabe sobre el diseño de materiales y los permisos en la aplicación, etc. y sus dedos están ansiosos por usar esas funciones en su aplicación, pero no puede porque hay un pequeño problema de que la mayoría de los dispositivos Android todavía ejecutan Ice Cream Sandwich.
Los teléfonos iOS y Windows son superiores en este aspecto ya que la mayoría de sus dispositivos son elegibles para las últimas actualizaciones y las que no lo son, no importa en absoluto.

Controladores ADB
Esa es una frecuente. Es realmente molesto cuando compra un nuevo dispositivo y su sistema de desarrollo no lo reconoce. He probado Samsung, LG, Motorola, HTC, Micromax y todo tipo de dispositivos. Ninguno de ellos funciona correctamente con ADB a través de una conexión USB. Tengo que instalar trajes de PC de diferentes fabricantes para tener la oportunidad de hacerlo funcionar. Algunas veces funciona en un cable USB en particular y otras solo en un puerto USB en particular. Principalmente uso Wireless ADB por este motivo, lamentablemente requiere un teléfono rooteado.
Los controladores de Nokia y Apple son fáciles de instalar en Windows, OSX e incluso en Ubuntu. ¿Qué tan difícil es hacer que funcionen también para Android?

Bibliotecas de soporte
En muchos casos, las bibliotecas de soporte y AppCompat Library funcionaron como un salvador cuando se desea que una característica sea respaldada. Pero a veces es un dolor usarlo. Debe recordar utilizar los Fragmentos de soporte y los Administradores de fragmentos de soporte. Cada actividad debe ampliarse desde ActionBarActivity y no mencionar incompatibilidad con los objetos que no son compatibles. El momento más frustrante es cuando la biblioteca de soporte se usa en una biblioteca que también desea usar. Se requiere mucha magia de Gradle para arreglar eso.
iOS y Windows Phone no los necesitan en absoluto.

Gradle
Es mejor que ANT, pero a veces también es un dolor. Nunca antes había trabajado con Gradle y todavía soy reacio a aprender un nuevo sistema de compilación. No sentirá la complejidad cuando solo tenga una aplicación estática simple. Pruebe bibliotecas con clases no refactorizadas en conflicto y sabrá lo difícil que es el desarrollo de Android. Afortunadamente tenemos a JarJar.
(“¿Meesa?” “¡No eres una criatura horrible!”)

No necesita acceder al sistema de compilación de iOS o Windows Phone directamente, ya que se administra automáticamente por usted. Ambos tienen su parte de bibliotecas en conflicto, pero es fácil arreglarlas que en Android.

RunTime
Android es lento Lento porque depende demasiado del tiempo de ejecución subyacente (DalvikVM anteriormente y ART ahora). Incluso después de JIT y ART, es más lento que iOS e incluso Windows Phone. Cuando desarrollas juegos que requieren muchas llamadas, Android no funciona bien. Sin mencionar que también tenemos que admitir dispositivos de gama baja. A veces me doy por vencido y lanzo la compilación incluso si estoy seguro de que no se ejecutará en dispositivos de gama baja (“No vamos a obtener ningún ingreso de ellos”, es siempre mi argumento), pero me lastimo en silencio por no dando acceso a mi increíble juego.
Windows e iOS son rápidos debido a las aplicaciones nativas y al estricto control sobre sus procesos de fabricación. (Más detalles: ¿Por qué es ART mejor que Dalvik?)

DP, SP, DIMEN
Son difíciles de dominar. Me llevó mucho tiempo entender cómo funcionaba esto. En comparación, entendí CSS más rápido de lo que entendí la interfaz de usuario de Android. Todavía me quedo atascado en las interfaces de usuario de Android. Los tamaños de fuente son aún peores.
Windows tiene un sistema de interfaz de usuario similar en XAML, pero no usan DP o SP. Sin embargo, tienen algo similar a las monedas de diez centavos en las plantillas. iOS tiene un generador de interfaz.

Pesas
Las pesas no son frustrantes en absoluto. Me gusta dar peso a los diseños, porque a veces es la mejor opción disponible para diseñar una interfaz de usuario de una manera particular. La parte frustrante es que cuesta muchas llamadas. Los pesos anidados degradan mucho el rendimiento, pero a veces hay que morder la bala. Esa es mi arma contra la mayoría de los problemas de tamaño de pantalla.
La interfaz de usuario de iOS es mucho más fácil de solucionar debido al generador de interfaces y a los guiones gráficos. No puedo decir lo mismo sobre el sistema XAML de Windows Phone. A veces también me pone nervioso.

Fabricantes
Cada fabricante es diferente el uno del otro. Dan diferentes características de hardware en diferentes dispositivos. Samsung da un problema en la cámara, mientras que HTC da un problema en el micrófono. A veces tienes acceso al flash de la cámara, a veces no. Los sensores de proximidad no se alinean cuando los necesita para cálculos altamente sensibles. Algunos de ellos admiten la grabación de llamadas, otros no (Funcionó para mí solo en HTC). Entonces, la mayoría de los fabricantes no le permiten obtener acceso a los búferes de cámara sin procesar cuando se transmite. Incluso Windows Phone es mejor en eso.
Los iPhones tienen un solo fabricante y, por lo tanto, este tipo de problemas son raros.

Java
No odio Java, pero si me dan una opción, me encantaría trabajar en C #. Sé de Xamarin, pero eso no se siente igual. Android ni siquiera permite que ningún otro idioma funcione de forma nativa. Windows Phone tiene C #, VB, C ++ e incluso JavaScript. Todos pueden hacer una aplicación nativa. Incluso iOS tiene Swift como idioma secundario. Pero Android depende demasiado de Java. Ni siquiera me sugieras NDK. Es difícil trabajar con él y requiere un conocimiento de JNI. También requiere la resistencia para soportar la frustración de depurar el código C ++ escrito para NDK. Alguien gritó “Pruebas unitarias” desde atrás.

El desarrollo de Android es fácil de aprender, pero es realmente difícil de dominar. Pero a pesar de toda la frustración, todavía amo la plataforma y aún amo lo que están tratando de hacer. No puedo agradecer lo suficiente a esta plataforma como para enseñarme muchas cosas, principalmente debido a los puntos que mencioné anteriormente.


¿Te gustó mi respuesta? Siga mi blog sobre programación para leer más en Learn Programming.
¿Quieres saber más sobre mí y el trabajo que hago? Sígueme en Noob Corner
También puedes seguirme en Abhi (@ abhi347) | Gorjeo

Como pueden atestiguar muchos usuarios de teléfonos Android, las aplicaciones nuevas y geniales a menudo no están disponibles en Google Play Store tan rápido como están disponibles para usuarios de iPhone. Sin embargo, si los propietarios de Android se sienten frustrados, pueden echarle la culpa a la fragmentación del sistema operativo. Debido a que Google permite a los fabricantes de teléfonos usar el sistema operativo de forma gratuita, pueden hacer las modificaciones que deseen.

Quip quiere asegurarse de que su producto se vea hermoso y funcione perfectamente en todos los dispositivos diferentes, por lo que los desarrolladores del equipo tienen que probar y adaptar el sistema a un montón de teléfonos y tabletas diferentes. Taylor y su equipo deben tener en cuenta los diferentes estilos de interfaz, teclados, CPU y más, y dijo que ha sido una gran frustración en los últimos meses. Apple, por otro lado, controla estrictamente su iOS, por lo que los desarrolladores solo necesitan asegurarse de que sus aplicaciones puedan ajustarse a los diferentes tamaños de pantalla de Apple.

Un asombroso 18,796 dispositivos diferentes actualmente ejecutan Android, lo que significa que hay muchos ajustes en el sistema operativo que los desarrolladores deben tener en cuenta si quieren llegar a la mayor audiencia posible.

Servicios de desarrollo de Android

Contratar desarrollador de aplicaciones android india


Datos recopilados durante un período de 14 días que finaliza el 3 de diciembre de 2012

Esta es probablemente la parte más frustrante del desarrollo de Android. Casi la mitad de la distribución de Android todavía usa Gingerbread. Con su mejor lanzamiento del sistema operativo, Jelly Bean, espero que la gente de Google pueda acelerar la adopción.
Fuente: paneles | Desarrolladores de Android

Tenemos la aplicación móvil DrinkControl para Android e iOS (DrinkControl: rastrea el consumo de alcohol y los gastos con iPhone).

Estadísticas de ingresos promedio de los últimos 6 meses (tanto en anuncios como en aplicaciones):
DrinkContol gratis en Android – 0.0054 usd por descarga
DrinkControl Lite en iOS 0.051 usd por descarga

Entonces, lo que es frustrante: tenemos que adquirir 10 veces más usuarios en Android para obtener los mismos ingresos.

La mayoría de los ingresos provienen de nuestra versión paga de DrinkControl en iOS. Lamentablemente, la cuenta de Google Merchant todavía no está disponible para los editores de Google Play en nuestro país (Latvija, país de la Unión Europea), también bastante frustrante.

Esta es probablemente la parte más frustrante del desarrollo de Android. Casi la mitad de la distribución de Android todavía usa Gingerbread. Con su mejor lanzamiento del sistema operativo, Jelly Bean, espero que la gente de Google pueda acelerar la adopción.

Gerente
Apptologia

No hay ayuda en problemas complicados a nivel de sistema. Si eres independiente, escribirás un código torpe, con errores y limitado. Google tenía un grupo llamado desarrolladores de Android con autores pagados respondiendo preguntas, pero lo abandonaron. Ahora tiene que “hacer preguntas en código” para stackoverflow. Pueden prohibir su pregunta. Si vives en una gran ciudad, puedes encontrar un grupo de Android pero no en Memphis. Shameless plug: Aplicaciones de Android en Google Play Llame en cualquier momento e intentaré ayudar (901) 213 7824

Diseños y todo lo que va dentro de ellos.

Los desafíos de un desarrollador de Android surgen de la gran cantidad de dispositivos disponibles en el sistema operativo de Google, así como de las actualizaciones inconsistentes de estos sistemas operativos. Aquí hay algunas razones por las que Android es a menudo la ruina de la existencia de un desarrollador de aplicaciones:

  1. Fragmentación de software: los desarrolladores no pueden centrarse solo en las versiones más recientes del sistema operativo. No es fácil para los usuarios actualizar sus sistemas operativos siempre. Lo que los desarrolladores deben hacer en ese caso es aprender qué sistema operativo es el más popular y desarrollar con la última versión ampliamente adoptada. Los desarrolladores también necesitan saber qué teléfono es el más popular entre los clientes y familiarizarse con los horarios de actualizaciones de sus operadores.
  2. Fragmentación de hardware: cuando habla de la perspectiva del hardware, es fácil de desarrollar para iPhone que para Android. Actualmente solo hay cinco dispositivos con iOS. Mientras que en contraste, hay 170 ejecutando Android. Estas variaciones tienen características muy diferentes, desde teclados hasta cámaras y botones, además de diferentes formas y tamaños de pantalla. Es nada menos que una pesadilla.

Información cortesía- Techrepublic

1: Fragmentación de software : hay demasiadas versiones del sistema operativo Android en circulación. Esto significa que los desarrolladores no pueden centrarse solo en las versiones más recientes del sistema operativo; No todos han mejorado. No es fácil para los usuarios actualizar sus sistemas operativos, y los operadores tienen pocos incentivos para hacerlo.

2: Fragmentación de hardware : el desarrollo para el iPhone es fácil desde la perspectiva del hardware. Actualmente solo hay cinco dispositivos con iOS. Por el contrario, hay al menos 170 ejecutando Android, con características muy variadas, desde teclados (o falta de ellos) hasta cámaras y botones, además de diferentes formas y tamaños de pantalla. Es una pesadilla de desarrollo.

3: Falta de integración de software / hardware
El botón A en el auricular 1 tiene la función X. ¿El problema? El botón A en el teléfono 2 cumple la función Y. Entonces, obviamente, no puede diseñar una aplicación que se base en el botón A para hacer lo mismo para todos. Los usuarios pueden frustrarse y darse por vencidos con una aplicación que no funciona intuitivamente.

Diseño de diferentes diseños y tamaños de iconos para diferentes pantallas porque hay tantos tamaños de pantalla y diferentes densidades de pantalla. Se hace muy difícil cuidar cada tamaño y densidad de pantalla.

La parte más frustrante sobre el desarrollo de aplicaciones de Android es el desarrollo de la interfaz de usuario. Debido a que Android es compatible con una gran cantidad de dispositivos y diferentes tamaños de pantalla y densidad, la tarea de hacer que su aplicación sea compatible e impecable para casi todos ellos o la mayoría de ellos se vuelve engorrosa si usted es la única persona que desarrolla la aplicación.

Hay tantas cosas que hacen que el desarrollo de Android sea frustrante para los nuevos usuarios:

Gran cantidad de dispositivos : el uso compartido de teléfonos inteligentes para dispositivos Android es casi del 78%, lo cual es bueno, pero una parte frustrante es que debe optimizar su código y hacerlo más fragmentado para que pueda funcionar en dispositivos de gama alta y baja.

Gran cantidad de fabricantes: debido a la gran cantidad de fabricantes, es difícil hacer que el código de optimización funcione para todos los fabricantes de la misma manera en comparación con Microsoft y Apple, donde vigilan de cerca su teléfono y lo optimizan más.

No hay ayuda en problemas complicados a nivel de sistema. Si eres independiente, escribirás un código torpe, con errores y limitado. Google tenía un grupo llamado desarrolladores de Android con autores pagados respondiendo preguntas, pero lo abandonaron.
Como empresa nueva como Greyb, es difícil para los desarrolladores crear aplicaciones y optimizarlas para todos los dispositivos.

1. En Android puede descargar aplicaciones pagas, almacenadas en varias páginas web, de forma gratuita e instalarlas fácilmente. Es una pena, porque sabes que cientos de personas disfrutarán de tus aplicaciones y obtendrás una recompensa

2. Diría que muchos de los usuarios de Android son jóvenes que no siempre tienen tarjetas de crédito o cosas por el estilo para pagar fácilmente, en caso de que quieran, las aplicaciones.

Estas dos primeras tratan sobre personas que compran aplicaciones.

3. Lo mejor y al mismo tiempo lo peor de Android es que hay cientos de modelos diferentes que ejecutan diferentes componentes de hardware, diferentes tamaños de pantalla y diferentes versiones de Android, este hecho es excelente para los clientes, ya que tienen mucho para elegir , pero para los desarrolladores, si quieren que muchas personas usen sus aplicaciones, deben hacer que funcionen en la mayoría de los modelos de teléfonos y eso es un trabajo duro desde mi posición ignorante

¡Lo más frustrante! Excepción de puntero nulo ! Jaja pero en serio si realmente amas desarrollar nada es frustrante y aburrido. En realidad, sí, a veces se vuelve un poco complejo implementar la interfaz de usuario y el código de funcionamiento. Pero sí, para mí definitivamente son los accidentes molestos y los errores. 🙂

Mi mayor frustración es que tienes que desarrollar aplicaciones siempre teniendo en cuenta a los usuarios que usan al menos la versión de Android de 3 años. Así que nunca intentes usar el último y mejor Android en tu aplicación

Si está utilizando Android Studio (una idea mucho mejor que eclipse) e intenta ejecutar su proyecto mientras está conectado a Internet, lleva mucho tiempo ejecutarlo. Eso es realmente frustrante.

Fragmentación.

Los archivos R solían desaparecer después de limpiar el proyecto y no regresaban una vez reconstruidos. Pero parece que este error ya está solucionado

Lo más frustrante es sobre las diferentes API
como la API 21 y la API 23

Algunas piezas de código funcionan en 23 pero no funcionan en 23 y viceversa

He desarrollado un reproductor de música y me enfrento a un montón de problemas en los que tuve que escribir diferentes códigos para diferentes api para que funcionen y tengan el mismo aspecto.

Desarrollé esta aplicación y tiene un rango de API 16 a API 24

MuZic Player – Aplicaciones de Android en Google Play