AndroidBlogDesarrollo MóviliOS

Android e iOS, conoce las equivalencias entre los gigantes del desarrollo de apps

Mismos destinos, diferentes caminos. 

 Descubre la equivalencia de objetos, componentes y librerías entre los lenguajes nativos para el desarrollo de apps Android e iOS

Introducción

Hola amig@s, en este artículo quiero hablaros de algunas equivalencias entre Android e iOS con sus componentes, objetos y librerías.

La idea de escribir este post me surgió a medida que avanzo en el mundo del desarrollo iOS, y como en ciertos momentos me vienen a la cabeza como implementar algo con Android pero desconozco como hacerlo en iOS, y es entonces cuando toca tirar de Google y preguntar » … in iOS»

Después de unos meses trabajando con Swift para el desarrollo de aplicaciones iOS vas aprendiendo, investigando y conociendo nuevas formas de implementar lo mismo que en Android, pero con las diferencias que conlleva.

 

Retrofit & Alamofire

¿Necesitas consumir una API? En Android la librería más utilizada y recomendada es Retrofit pues en iOS es Alamofire. Esta librería permite la subida y descarga de ficheros, gestión de imágenes, caché, validaciones, hilos… A grandes rasgos sería el análogo de Retrofit.

En Android es una buena práctica trabajar en Retrofit conjuntamente con Gson para el mapeo de las respuestas JSON a objetos, pues en iOS con Alamofire existe AlamofireObjectMapper, y como su nombre no deja misterio alguno, esta librería te permite devolver las respuestas a la API como objetos. Muy recomendable.

 

SharedPreferences & UserDefaults

Ahora nos sumergimos dentro del código, para encontrar la equivalencia a la conocida interface SharedPreferences, esté componente de android nos permite almacenar las preferencias del usuario de forma local (en un archivo XML ni más ni menos) y poder acceder a ellas, eliminar, modificar e insertar. Siguen un patrón «clave-valor» y su implementación y uso es muy sencillo. Las preferencias se suelen usar principalmente para guardar datos del usuario o configuración de nuestra app. Pues muy bien, en iOS tenemos UserDefaults, esta interface actual de forma similar a su análogo de Android, con un un patrón «clave-valor» podemos almacenar información de forma local para dar el mismo uso que hemos descrito anteriormente.

 

Live Data / RxJava & RxSwift

¡Es el turno de la programación reactiva! Bien, si las necesidades de nuestras aplicaciones nos llevan a necesitar del patrón observable, en Android tenemos LiveData y/o RxJava para ello. Escuchar una variable, y estar observando cualquier cambio que esté surja es,  a groso modo, el objetivo de estas librerías. Pues si tus apps de iOS tienes esta misma necesidad, puedes echarle un vistazo a RxSwift.  Si es cierto que existen otras muchas librerías ( ReactiveKit, ReactiveSwift…) RxSwift para aquellos/as programadores que han trabajado con LiveData o RxJava les parecerá muy similar.

 

Intent & Segue

Una de las principales preguntas que te haces al comenzar a desarrollar aplicaciones móviles, sea en el sistema operativo que sea, es ¿Como navego entre pantallas, y envío datos entre ellas? Pues bien, en Android trabajamos con Intent para iniciar el paso de un Activity a otro. Si además queremos enviar datos entre activities, lo hacemos añadiendole «extras» a ese Intent

En iOS, el proceso y componente es diferente. En iOS se trabaja con segue para poder navegar entre ViewControllers distintos, ya sea desde una acción en concreto de alguna View (Botones, items, enlaces) o desde toda la vista, se configura el segue para decir hacia donde irá. Si queremos enviar datos, tendremos simplemente que preparar una variable en el controller de recepción, y darle valor desde el destino. Este concepto difiere algo en la operativa de Android pero es muy útil y versátil.

RecyclerView & UITableView

Y para finalizar, ¿como presentar colecciones de datos? Uno de los puntos más importantes, como mostrar a los usuarios las colecciones de datos. En Android ha ido evolucionando mucho este concepto y actualmente gracias a Material Design tenemos RecyclerView que junto a CardView dan a nuestras aplicaciones un estilo dinámico, personalizado y muy intuitivo para los usuarios. Pues bien, para mostrar colecciones de datos en items (ya sean personalizados o simples) en iOS tenemos UITableView que junto a UITableViewCell permiten crear tablas que contengan celdas personalizadas, o no, por el usuario. Su implementación es quizás más sencilla que en Android, pero el concepto y estructura es el mismo, un contenedor( RecyclerView UITableView) y un item de contenido ( CardView – UITableViewCell )

Conclusiones

Estas son algunas, de muchas, equivalencias entre Andorid e iOS. A medida que un desarrollador Android pasa a iOS, o viceversa, se irá haciendo muchas preguntas de cual es la equivalencia entre uno y otro. A mi me sucede porque ya parto con una experiencia en Andorid y siempre será la perspectiva desde donde hago la pregunta. Pero pienso que en el fondo eso nos otorga a los programadores ciertas ventajas respecto al nuevo lenguaje que estamos descubriendo. Lo cierto es que de un modo u otro, en algunos aspectos existen abismos entre Android e iOS, pero en otros muchos no existe más que una sintaxis diferente. 

Al final, «no es el lenguaje el que hace al programador, es programador quien se hace al lenguaje».

 

Si te ha gustado este Post comparte con tus amigos/as de Facebook y Twitter.

Deja un comentario

Tu email no será publicado, debes de rellenar los campos obligatorios indicados con el *