Si alguien te lo dijo, entonces obviamente mintió.
¿Por qué diría tal cosa? Tanto para Android como para iOS, en lo que a mí respecta, tiene la misma cantidad de complejidad y son muy similares en muchos aspectos. No tiene que preocuparse de que uno sea 10 veces (muy exagerado) más duro que el otro.
Demostraría esto creando un UITableView en iOS y un RecyclerView en Android. Los elegí para la demostración, ya que se usan en casi todas las aplicaciones de una manera u otra.
- ¿Existe una API para Objective-C y JavaScript que pueda autocompletar direcciones en una aplicación (recogida y entrega) y luego conectarse con un CMS que filtre a las empresas que no prestan servicios en esas áreas?
- Aprendí el lenguaje Swift pero no sé nada sobre Objective-C e iOS. ¿Qué debo aprender a continuación para escribir una aplicación para iOS?
- ¿Es posible aprender el framework Metal de Apple sin experiencia en OpenGL? Si no, ¿cuál es el mejor curso de acción?
- Estoy considerando un cambio de carrera en FinTech. ¿Qué curso debo tomar?
- ¿Cuánto dinero gana una aplicación de iOS?
UITableView en iOS:
Haz tu clase de modelo:
Haga que UITableViewCell, esta sea su vista:
Haga su controlador, ese es el UIViewController
Obtenga los datos de un servidor, usé Firebase para esto y escribí el código en la clase Controller. Podría haber usado una clase diferente para esto, pero para esta pequeña vista previa, esto también funciona.
Storyboard:
El resultado resultante fue este:
Ahora, puedo hacer lo mismo en Android
La clase de modelo:
El adaptador que se utiliza para proporcionar el RecyclerView
El diseño de la celda se ve a continuación:
Como habrás notado (si realmente lees el código), hay una referencia a una clase llamada Commons. Es una clase que uso para hacer algunas tareas básicas. Para este proyecto, los Comunes se veían así:
Y finalmente, la actividad se realizó de la siguiente manera:
Y el xml de la Actividad se veía así:
Y el resultado que obtienes es muy similar al que obtuvimos en iOS:
No se trata solo del resultado, la complejidad de la implementación está más o menos al mismo nivel y no hay razón para culpar que uno sea 10 veces más difícil que el otro. No tiene ningún sentido hacer un reclamo de ese tipo.
Y ahora, dado que la pregunta es sobre la dificultad de implementar AutoLayout (que en realidad es bastante fácil), implementaré dos diseños bastante difíciles tanto en Android como en iOS.
Así es como se ven las restricciones en el Storyboard:
No afirmo que esta sea una manera favorable de implementar el diseño automático en una aplicación de producción donde el contenido es muy dinámico. El enfoque utilizado para abordar dicho diseño es completamente diferente.
Este es el diseño XML en Android:
Y el resultado final de los diseños de Android e iOS es el siguiente:
Entonces, si cree que hay un problema con el desarrollo de iOS y AutoLayout en particular, con gusto puedo informarle que está equivocado.
También me gustaría abordar algo que dijo Valerio Cietto en la sección de comentarios.
Los píxeles independientes de la densidad realmente no funcionan de la forma en que Google lo anuncia. Todavía es una medición independiente de la densidad y hace que la creación del diseño en Android sea mucho más fácil.
Pero,
Los FrameLayouts de color gris oscuro tienen 300dp de ancho y 50 dp de altura. Todavía se verían diferentes en diferentes dispositivos. Sí, este es un caso extremo, pero aún existen diferencias sutiles si se da el ancho y la altura de una vista en mediciones dp. tampoco es así como Google quiere que los uses. Admito que tener mediciones dp para trabajar hace que la tarea sea mucho más simple cuando se trata de diseños de iconos del sistema y muchas otras cosas.
Acerca de cómo se manejan los eventos táctiles en iOS y Android:
iOS:
Los tres métodos utilizados aquí son,
- IBAction usando arrastrar y soltar para el botón uno
- Usando addTarget para el Botón Dos
- Usando un TapGestureRecognizer para la vista rosa.
donde como usa Android:
- Agregar un OnClickListener para su TexView, Button, etc.
- Al agregar un onClick a su Vista / Botón, etc. en el XML y al implementar el mismo método que especificó en el XML, en la Actividad principal. Esto usa una Vista como parámetro, que es la clase principal de todo lo que puede usar en el XML.
Sin embargo, no veo un cambio drástico en ninguno de estos.
Descargo de responsabilidad: Todas las imágenes (sin incluir los códigos) utilizadas en esta respuesta son imágenes de dominio público de pixabay.com, excepto la imagen de Hyderabad. No sé a quién pertenece esa imagen.
Todos los códigos utilizados en la respuesta anterior están escritos por mí para responder a esta pregunta.