Este artículo es parte de los 7 propósitos de año nuevo para desarrolladores.
¿Qué encontrarás en este post?
ToggleBackends de Terceros
Hace no mucho, un conocido mío que vive en un pueblecito de Japón, se quejaba que sus familiares (que viven en EEUU) desconocían por completo el concepto de huso horario. Con mucha frecuencia, le llamaban a las 3 ó 4 de la mañana, sorprendidos de que estuviese durmiendo. 😉
Tratándose de un geek irrecuperable, su solución no podía ser algo tan sencillo como apagar el teléfono, quitar el sonido o ponerlo en modo «no molestar». No. El hombre creó un servicio web que funcionaba de la siguiente manera:
- Sus familiares llamaban a un número local de EEUU.
- Esta llamada era atendida por su software que determinaba la hora local en Japón. Si era aceptable, reenviaba la llamada a su número japonés.
- Si no era aceptable, le informaba al familiar pesado que eran las 3 de la mañana y le ofrecía las siguientes opciones:
- Dejar un mensaje.
- Llamar más tarde.
- Si de verdad es urgente, despertarle haciendo que suene la Cabalgata de las Valquirias en su ordenador. 😉
Es decir, básicamente ha creado un callcenter…en un día. =:-O
Me quedé de piedra al ver lo que había hecho en tan poco tiempo: ¿cómo demonios lo habría hecho?
Pos mu fásil: aprovechando backends de terceros, que mediante un API, le permiten añadir todo tipo de funcionalidades a su aplicación sin tener que reinventar la rueda, o lo que es peor y más frecuente, el neumático pinchado.
En su caso, utilizó Twilio para toda la parte de telefonía y Heroku para el despliegue de su código ROR.
3 Características de una App de éxito
Toda App de éxito tiene una serie de características en común:
- Hace algo de forma original. No necesariamente útil, pero sí original.
- Tiene una interfaz vistosa que saca provecho al máximo del hardware del dispositivo.
- Tiene un backend que proporciona servicios extras a la App.
Es decir, además del cliente (la App) tenemos un servidor que proporciona una serie de servicios, ya sea comunicación entre usuarios de la misma aplicación, procesar datos generados por la App (reconocimiento facial, que no detección, obtención de información de «collective intelligence», etc…), o cualquier otra cosa que no sea factible o recomendable hacerlo en el cliente.
Un servidor para tu App, sin crear un servidor
Los backends de terceros nos permiten añadir este tipo de funcionalidades a nuestras Apps (tanto móviles, de escritorio o web) sin tener que implementar de cero todo un «stack» que haría el proyecto inviable en la mayoría de los casos. A menudo no necesitamos algo absolutamente único, sino que nos basta con reaprovechar estos webservices para montar, en tiempo record, el servicio online que necesitamos.
Para poder sacar una App al mercado de forma ágil y rápida es vital conocer los distintos «backend as a service» que están disponibles. De esta forma, tu App estará atendiendo clientes mientras la competencia está diseñando su servicio ROR, peleándose con Tomcat, o peor todavía, declarando variables y editando XML en su proyecto Java/Glassfish.
Algunos backends de terceros para Apps
Algunos de los backends de terceros más interesantes para proyectos iOS son los siguientes:
Amazon Web Services (AWS) para iOS
Amazon Web Services (AWS) tiene toda una serie de servicios que pueden ser interesantes a los desarrolladores de Cocoa y Objective C (tanto para iPhone/iPad como Mac). Por ejemplo, tenemos DynamoDB, una base de datos NoSQL remota sumamente sencilla de utilizar y que acepta volúmenes de datos inmensos.
Si deseamos compartir datos, como imágenes, entre los usuarios de nuestra App, no tenemos que montar un servidor, instalar un base de datos (ya sea MySQL, MongoDB o lo que sea) y administrar dicho servidor. Basta con darse de alta en AWS y usar su webservice.
Existen otros muchos, como S3, CDN y para casos más complejos, EC2. Aquí teneis un artículo sobre cómo está usando EC2 Instagram.
Parse para iOS
Parse es quizás uno de los webservices más adaptados a iOS y a las Apps móviles en general. Tiene un SDK que nos permite acceder a sus funcionalidades (persistencia remota, push notifications, etc…) usando sólo código Objective C.
Comparte y búsca música con SoundCloud para iOS
SoundCloud te permite compartir desde tu App, tus propias canciones y buscar otras en la nube. Todo de forma muy sencilla, usando el API de su webservice.
Crea Apps de telefonía en minutos con Twilio para iOS
Con Twilio es trivial añadir funcionalidades de telefonía: gestión de llamadas, envío y recepción de SMS, etc…
Distribución controlada de nuestras Apps con TestFlight
TestFlight es una interesante alternativa a las distribuciones Ad-hoc, especialmente optimizada para la fase de test de la App.
Envio y gestión de Push Notifications con Urban Airship
El enviar Push Notifications implica en montar un servidor para comunicarse con el servicio de Apple. Ni hablar, en 5 minutos puedes tener el marcha tus Push Notifications usando el webservice de Urban Airship.
Conclusión
No malgastes tu tiempo intentando reinventar la rueda. Antes de ponerte a crear un webservice propio que sirva de backend a tu App, revisa las opciones que te aportan los backends de terceros.
En la mayoría de los casos, son todo lo que necesitas y representarán la diferencia entre sacar la App a tiempo o hacerlo después de la competencia. Además, al delegar toda la parte del backend a un tercero, podrás centrar todos tus recursos en la App en sí: mientras la competencia arregla bugs en su servicio REST, tu estás añadiendo nuevas funcionalidades a tu App.