dilluns, 30 de juny del 2014

Parse en 10 minutos



Parse en 10 minutos




Hoy vamos a ver como utilizar Parse. Con Parse podemos crear facilmente un backend para nuestra app. ¿Que significa esto? Lo vemos con un ejemplo, imaginad que estamos construyendo una app de fotografias, tipo Instagram donde los usuarios suben sus fotografias al servidor. Necesitaremos almacenar las fotos en un servidor al que puedan acceder todos los usuarios de nuestra app. Pero construir un servidor no es precisamente tarea facil, por lo que servicios como Parse, que nos permiten obtener esta funcionalidad,  son extremadamente populares entre los desarroladores de apps. Es normal refererirse a este tipo de servicios como mobile BaaS, es decir mobile Back end as a Service.  Tan popular es Parse, que Facebook compró Parse el pasado mes abril.


Podemos ver los planes de precios de Parse en la siguiente pantalla.


Screenshot 2014-06-28 17.28.03.png


Los planes de precios para los usuarios incluyen un plan gratuito para aplicaciones que no sobrepasen las 30 peticiones por segundo ni mas de 20Gb de datos almacenados. A medida que pedimos mas prestaciones el precio va subiendo, asi para 200 peticiones/segundo el precio mensual es de 1700 dolares. Esta es una de las quejas recurrentes de los usuarios: el precio del servicio aumenta mucho al aumentar nuestra demanda de prestaciones. En todo caso si nuestra aplicación tiene éxito, pagar la factura de Parse será el último de nuestros problemas ☺


Construyendo nuestro backend


Los pasos que necesitamos para guardar las imagenes de nuestro dispositivo al servidor Parse son los siguientes:


1. Creación de cuenta de usuario  en ww.parse.com.
2. Importación de librerias
3. Escribir código cliente para subir la imagen al servidor de Parse


Vamos pues a ver como implementamos cada uno de los pasos anteriores.


En primer lugar, nos damos de alta en la cuenta gratuita y sin necesidad de proporcionar datos bancarios, la plataforma nos proporciona una serie de claves.


parse-truncated-app-keys.jpg


Utilizaremos estas claves mas tarde en nuestra app.


Ahora necesitamos bajarnos el framework de Parse para incorporarlo a nuestro proyecto. Para ello marcamos:




en nuestro navegador y nos bajamos un fichero que contiene las librerias de la última versión de Parse. Una vez bajada, la descomprimimos y arrastramos el directorio Parse.framework al menu navegación de nuestro  proyecto Xcode, con lo que añadimos el framework a nuestro proyecto.
Ademas del framework de Parse que ya hemos incorporado necesitamos las siguientes librerias de sistema:


  • AudioToolbox.framework
  • CFNetwork.framework
  • CoreGraphics.framework
  • CoreLocation.framework
  • libz.1.1.3.dylib
  • MobileCoreServices.framework
  • QuartzCore.framework
  • Security.framework StoreKit.framework
  • SystemConfiguration.framework
Para incorporarlas al proyecto, señalamos el proyecto ParseTutorial y en la pestaña General añadimos al proyecto, una a una, las librerias mencionadas anteriormente.
Lo vemos en la siguiente imagen:


Screenshot 2014-06-29 13.15.22.png




Ahora necesitamos  indicar a nuestra aplicación la clave que nos ha proporcionado Parse al darnos de alta. Para ello en el fichero AppDelegate.m, escribiremos:







         

donde los valores ApplicationId y clienteKey son las claves que aparecen en el apartado Keys del menu Settings de parse.com.  A continuación escribiremos el siguiente código, donde inicializaremos la libreria de Parse:



Si todo va bien, el proyecto compilará con 0 errores.
Para probar Parse utilizaremos InterfaceBuilder para crear una pantalla en la que el usuario elegirá una photo de su Camera Roll y la subirá a Parse:




Screenshot 2014-06-29 17.29.57.png


En la subclase de UIViewController que asignaremos a la pantalla anterior añadiremos la línea:




En la acción correspondiente al boton upload escribiremos:







Notar que el método saveInBackgroundWithBlock: es un método asincrono que se ejecutará en background. Esto es importante, ya que todas las tareas de naturaleza asíncrona (como las llamadas a red) NO DEBEN realizarse en el hilo principal. De lo contrario tendriamos un interface gráfico que se bloquearia hasta que la peticion a Parse finalizara. !Y un interface gráfico bloqueado es lo último que queremos en nuestra aplicacion!


Ejecutamos la aplicación, elegiremos una foto de nuestra libreria y pulsaremos el boton Upload. Con esta acción nuestro foto se almacena en los servidores de Parse. Si ahora vamos a www.parse.com, en la pestaña DataBrowser comprobamos que se ha creado una entrada con el objeto que hemos subido desde nuestro dispositivo:




Screenshot 2014-06-29 15.18.33.png




Notar que el objeto PhotoObject se ha guardado en el servidor sin necesidad de darlo previamente de alta, como ocurria en versiones anteriores de Parse.


Así de facil es utilizar los servicios de Parse para subir nuestros objetos al servidor. Podeis acceder al proyecto en  GitHub . En proximos tutoriales y partiendo de lo visto en este tutorial veremos caracteristicas avanzadas de Parse como notificaciones.








Joan Barrull

Trabajo en www.ironhack.com como profesor asistente. Mi primer contacto con la programación fué con Smalltalk, un lenguaje dinámico y orientado a objetos que influyó en todos los lenguajes de programación posteriores. Objective-C, y su entorno de desarrollo XCode me recuerdan la sensación que tuve al descubrir Smalltalk, la sensación de poder programar cualquier cosa.

diumenge, 29 de juny del 2014

Hacking iTunes (I): Crear un Apple ID sin proporcionar datos bancarios







Imagina que te acabas de comprar un iPadAir. Si lo sé, soñar es gratis !


Para instalar apps, tanto gratis como de pago, Apple te pide un Apple ID. De momento no quieres utilizar tu Apple ID, ya que está asociado a una cuenta bancaria. ¿Como puedes crear una segunda cuenta Apple ID que no esté asociada a una cuenta bancaria? El procedimiento es el siguiente:

1) Entramos en iTunes
2) En el lateral izquierdo de la pantalla de iTunes clickamos en iTunes Store.
3) En la parte izquierda de la pantalla pulsamos sobre TopFreeApps





4) Seleccionamos una aplicación gratuita y la compramos




5) Aparece una ventana para introducir el AppleID





6) Pulsamos el boton Create Apple ID
7) Damos conformidad a los terminos del contrato
8) En la pantalla de alta rellenamos los datos personales




9) En la pantalla de medios de pago elegimos None e introducimos una dirección postal






Y ya tenemos nuestro AppleID no asociado a una cuenta bancaria. Si más adelante queremos asociarlo a una cuenta, por ejemplo porque queremos comprar una aplicación de pago, lo podemos hacer entrando en nuestro perfil de usuario.