Está en la página 1de 34

iOS

El 29 de Junio de 2007 fue presentado el primer iPhone, creando una nueva definicin de telfono mv
marcara el rumbo en la industria de la telefona.

Con l naci su sistema operativo, iOS (anteriormente iPhone OS) una adaptacin del OSX de Mac. iO
evolucionando desde su versin 1.0 hasta la reciente versin 5. Fue creado inicialmente para iPhone pe
posteriormente incluido en el resto de dispositivos: iPod Touch e iPad. Su facilidad de uso y sus mltiple
posibilidades permiti que Apple alcanzara un gran protagonismo en el mundo de la telefona mvil fren
otros sistemas operativos mviles como su gran rival: Android.

Apple, consciente de que los usuarios cada vez estn ms familiarizados con iOS, ha aprovechado par
introducir cada vez ms funcionalidades de iOS en OSX. El sistema operativo de Mac est siendo
iOSsificado con el objetivo de sacarle ms partido y obtener un resultado ms gratificante y reconocid
los usuarios. Como resultado de la mezcla entre OSX y iOS nace Mac OS X Lion, el primer sistema ope
para ordenadores que incorpora funcionalidades tpicas de un dispositivo mvil.

Apple ha conseguido batir rcords en ventas en sus cinco aos de vida con su sistema operativo iOS.
Apple Store cuenta con miles de aplicaciones, un recopilatoorio solo comparable con el Android Market
Google.
A continuacin hacemos un pequeo resumen sobre las versiones de iOS.

Versiones de iOS:

Versin 1
El iPhone 2G original utiliza el sistema operativo conocido actualmente como iOS 1.0. Vena por defecto
aplicaciones como Phone, Mail, Safari, Calendar, Photos, Camera, Mapas, Calculadora o Youtube, entr
otras. Aplicaciones que siguieron instalndose en todos los iPhones. La aplicacin iTunes apareci en l
versin 1.1.

Versin 2
Con iOS 2.0 se introdujo uno de los cambios ms significativos: el soporte para aplicaciones de tercero
aunque no fue hasta el iPhone 3GS cuando los usuarios empezaron a disfrutar de la primera versin de
Store.
Tambin se introducieron otras importantes mejoras como el soporte para A-GPS (Assisted GPS), mejo
el funcionamiento de navegadores GPS en cuanto a la recepcin de informacin sobre localizacin y
posicionamiento.

Versin 3
iOS 3 introdujo muchas mejoras a travs del iPhone 3GS. Se incluyen muchas de las prestaciones ms
solicitadas por los usuarios como el soporte de mensajes MMS, la funcin de copy & paste, la posibilid
usar el teclado en modo horizontal, la bsqueda de correo IMAP, el control por voz, la brjula digital inte
Spotlight (herramienta de bsqueda de Apple para buscar contactos, notas, emails, etc.) o la batera
mejorada, entre otras.
Tambin incorpora funciones como las notificaciones push, que permiten enviar mensajes al usuario sin
necesidad de ejecutar una aplicacin, por ejemplo recibir los avisos de correo nuevo sin necesidad de
acceder a la aplicacin de email correspondiente.

Versin 4
En el iOS 4 se introducen mejoras importantes como la multitarea, la posibilidad de organizar las aplica
de la pgina de inicio en carpetas, la posibilidad de unificar varias cuentas de correo en una sola carpet
Mail, contador de caracteres para los mensajes SMS, el acceso al apartado Calendars (que permite por
ejemplo comprar una entrada y que se aada automticamente la fecha del evento en el calendario), m
en la cmara como soporte para zoom, ...
Version 5

Esta versin fue presentada al pblico en junio de 2011 y lanzada para todos los dispositivos el 12 de o
de 2011.
iOS 5 no es considerada como una actualizacin revolucionaria del sistema operativo, sino que ms bie
incorpora grandes novedades solicitadas por los usuarios durante aos:
Notificaciones: Incorpora un buen centro de notificaciones mejorando la organizacin de las mismas.
iCloud: Apple incorpora la nube para almacenar los archivos del usuario desde el primer momento en
enciendes tu dispositivo.
Sincronizaciones: El equipo no se bloquea durante la sincronizacin con iTunes y se introducen mejora
sincronizacin por Wifi.
Otros detalles. La cmara se puede utilizar con el dispositivo bloqueado, cambios en diseo, mejoras e
Safari, la posibilidad de crear vibraciones personalizadas, integracin con Twitter, etc

Herramientas de desarrollo

El SDK incluye herramientas imprescindibles para que la aplicacin desarrollada pueda ser oficialmente
incluida en el Apple Store.

Herramientas Xcode:

1. Xcode: Se utiliza para la codificacin, desarrollo y depuracin de la aplicacin


Es un IDE (entorno integrado de desarrollo) que permite escribir, compilar, ejecutar y depurar el cdigo
aplicacin que se est desarrollando. Tambin permite organizar los ficheros por proyectos y su import
exportacin de manera sencilla.

Imagen de la herramienta Xcode

Proporciona un simulador donde poder probar la aplicacin en desarrollo sin necesidad de disponer de
dispositivo de la familia Apple. Por tanto, podremos elegir entre utilizar el simulador o directamente el
dispositivo para probar nuestras aplicaciones. El entorno local del simulador es muy til para los prime
tests de la aplicacin elaborada.

Xcode nos ofrece una serie de plantillas muy tiles si queremos desarrollar una aplicacin a partir de un
patrn establecido.

La ltima versin, Xcode 4.2, incorpora nuevas funciones de iCloud, desarrollo para iOS 5 y compatibili
con Lion y Leopard, entre otras.

2. Interface Builder: Se utiliza para el diseo de la interfaz grfica de la aplicacin.

Es una herramienta grfica que trabaja conjuntamente con Xcode (a partir de la versin Xcode 4 es pos
programar el cdigo y el diseo de la interfaz conjuntamente en la misma ventana).
Nos permite construir la interfaz grfica de nuestra aplicacin mediante la tcnica de arrastrar y soltar
elementos, como controles o componentes, como si se tratara de una herramienta de dibujo. sto simp
reduce el tiempo invertido en el desarrollo de la aplicacin.
Interface Builder genera un cdigo (en ficheros .nib) que describe la componente grfica elaborada y
permitir cargar el diseo de la aplicacin mediante el uso de Cocoa Touch.

heramientas de desarrollo (2)


<< Anterior

3. Instruments: Se utiliza para analizar el comportamiento de la aplicacin

Se trata de una potente herramienta cuya finalidad es analizar el comportamiento de la aplicacin elabo
tanto en el simulador como en el dispositivo.
Permite realizar un anlisis de una serie de parmetros fundamentales antes de dar por finalizado el
desarrollo de la aplicacin.
Anlisis de la memoria consumida por la aplicacion (de gran importancia ya que se ejecutar en un disp
con caractersticas ms limitadas que una CPU),
El ancho de red que consume la aplicacin
Los recursos que se utilizan o la cantidad de energa requerida.
Datos a cerca de las animaciones o actividad relacionada con ficheros y sockets.

Desarrollo iOS: Qu necesitamos para desarrollar iOS? Publicado


por Thais on 13 de abril de 2013 a las 10:00 am

Hola a todos de nuevo


Hoy volvemos a actualizar el blog para traeros una novedad, y es que he decido publicar
algunos tutoriales de desarrollo, especialmente de desarrollo para iOS, en los que explicar
algunas cosas que pueden servirnos de ayuda cuando desarrollemos nuestras aplicaciones.
No pretendo hacer grandes tutoriales para crear aplicaciones completas, sino ms bien
explicar algunos detalles importantes que creo que pueden ser tiles. Unas veces hablar de
cosas ms complejas y otras de cosas muy sencillas pero que nos pueden ayudar en ms de
una ocasin, explicando el proceso que hemos seguido para llegar a esa solucin y
mostrando un cdigo de ejemplo para ilustrarlo, de manera que podamos tener algunos
cdigos tiles a nuestro alcance fcilmente.

As que tras esta pequea introduccin, hoy os presento este pequeo tutorial de iOS, en el
que haremos una pequea introduccin en la que repasaremos qu es lo que necesitamos
para empezar a desarrollar para iOS, as como haremos un repaso a los diferentes
programas de desarrollo que ofrece Apple. Espero que os sea de utilidad ^^
Qu se necesita para desarrollar para iOS?
Para comenzar a desarrollar aplicaciones para dispositivos mviles con iOS existen una serie
de requisitos mnimos, entre los que encontramos:
Un Mac: Para desarrollar aplicaciones para iOS necesitaremos disponer de un Mac, ya que las
herramientas necesarias para el desarrollo de este tipo de aplicaciones slo estn disponibles
para el sistema operativo MacOSX.
Darse de alta como Apple Developer: En nuestro caso, se requerir que nos demos de alta
como desarrolladores de iOS, esto podremos hacerlo en el iOS Dev Center. Gracias a esto
podremos acceder a distintos recursos disponibles para desarrolladores, como el iPhone SDK.
iPhone SDK: Podemos hacernos con l, como hemos comentado, desde el iOS Dev Center. En
este SDK se incluye el entorno de desarrollo X-Code, en el que desarrollaremos la aplicacin
haciendo uso del lenguaje de programacin Objective-C, as como de un simulador de iPhone
para ejecutar nuestras aplicaciones y realizar pruebas sin necesidad de contar con un
dispositivo de Apple, a la vez que de libreras varias y una herramienta grfica que nos
permitir disear las interfaces de usuario.
Y todo esto a parte de, claro est, unos conocimientos mnimos de programacin.
Programa de desarrollo de Apple
Todo lo que hemos comentado anteriormente no supone coste alguno, sin embargo, Apple
ofrece a los desarrolladores la posibilidad de adquirir lo que se denomina la Licencia de
desarrollador de Apple. La razn por la que es importante hacerse con esta licencia es, entre
otras cosas, porque con ella podremos probar las aplicaciones en nuestros dispositivos iOS y,
segn la versin de licencia que tengamos, distribuir la aplicacin o tener libre acceso al
sistema de betas de Apple.
Pero porqu es tan importante probar nuestras aplicaciones en dispositivos de Apple
adems de en el simulador? La razn es que el simulador que Apple nos proporciona en su
iOS SDK nos permite hacer uso de prcticamente todas las funcionalidades de un dispositivo
iOS pero con algunas limitaciones, y es que no nos permite, por ejemplo, hacer uso de la
cmara de fotos o de algunas aplicaciones integradas en nuestro dispositivo, como iBooks o
la mayor parte de las preferencias de la configuracin del telfono. Por esta razn, si
queremos desarrollar utilizando estas funcionalidades de iOS, deberemos ejecutar nuestra
aplicacin directamente sobre un dispositivo iOS para probar que su funcionamiento sea
correcto.
Adems de esto, podemos decir que encontramos tres tipos de programas de desarrollo de
iOS mediante los cuales obtener su licencia de desarrollador, cada uno de los cuales nos
ofrece una serie de caractersticas, estos son.
iOS Developer Program: Es un programa con un coste de 99$ anuales, que permite a
desarrolladores distribuir sus aplicaciones en la App Store como individuales, compaas u
organizaciones.
iOS Developer Enterprise Program: Este programa tiene un coste asociado de 299$ anuales,
y permite desarrollar aplicaciones propias para la distribucin interna dentro de una
empresa, organizacin o institucin.
iOS Developer University Program: Programa gratuito para instituciones educativas de nivel
superior que quieran introducir el desarrollo de iOS en su plan de estudios. No permite
realizar una distribucin Ad Hoc de las aplicaciones ni distribuirlas en la App Store.
A continuacin dejo un cuadro comparativo con las diferencias entre los 3 tipos de
programas, que indica qu tipo de programa de desarrollo es necesario para realizar cada
una de las funciones que necesitemos.

Comparativa entre los diferentes programas de desarrollo de Apple. Cuadro traducido del
original obtenido de la web de desarrollo de Apple Escogiendo un programa de desarrollo de
iOS
Pues nada, esto es todo por hoy, espero poder traeros de vez en cuando nuevos tutoriales de
desarrollo, especialmente de iOS, de desarrollo web e incluso sobre WordPress. Pues nada
ms, que espero que os haya gustado, un saludo y nos vemos pronto!

10 Aplicaciones Para
Desarrollar en Mac y iOS
Por Anthuan Vsquez Publicado en HERRAMIENTASFebrero 9, 2013

Los desarrolladores debemos mantenernos a la vanguardia, utilizando herramientas


frescas para fines productivos y probar nuevas experiencias. Una de las razones de
usar Mac es que, muchas de las aplicaciones de desarrollo se encuentran en la

App

Store y estas estn listas para ser descargadas directamente en la red. Aqu he
realizado una lista de las mejores herramientas para desarrolladores, tanto para
desarrollar en OSX como en iOS, puede que ya uses alguna de ella y puede que no,
sin importar cual sea el caso psate y chale un vistazo a la lista, puede que que
termine interesndote alguna.

CodeKit

Codekit
Muchos desarrolladores de LESS.app se pasaron a un nuevo proyecto, es muy similar
pero con muchas mas caracterstica aadidas. Codekit no slo observa y compila
archivos de LESS, tambin compila archivos como SASS, Stylus y CoffeeScript. As
como LiveReload, recarga automticamente la pgina en el navegador cuando se
actualizan los archivos, as mismo lo hace Codekit. Pero esto no es todo, permite
configurar frameworks que se pueden reutilizar fcilmente en nuevos proyectos sin
copiar el cdigo (algo as como importar libreras JavaScript dentro de otras, en una
global). Como parte final puedes optimizar todas las imgenes del proyecto reduciendo
tu tamao. Te gusta?.
Codekit

Coda

Coda 2
Coda es un editor de texto todo-en-uno para desarrolladores web y permite crear
sitios Web. Coda tambin incluye caractersticas que permiten ahorrar bastante tiempo
como Autocompletar y una herramienta FTP incorporada. Coda tambin incluye varias
herramientas CSS incorporados, hacindo que sea fcil aadir estilos a tus pginas
Web.
Coda

Sublime Text

Sublime Text
Sublime Text es cada vez ms popular y es la primera opcin de los desarrolladores
cuando se trata de los editores de texto. Sublime Text es un potente editor de texto
que cuenta con un cdigo intuitivo y con una interfaz agradable y un sin nmero de
plugins para cada tarea.
Sublime Text

TextMate

TextMate
TextMate es un editor de texto que ha estado durante mucho tiempo y es como ellos
dicen, con la edad viene la experiencia. TextMate hace que sea ms fcil desarrollar
cdigo en el entorno unificado. As como Sublime Text, TextMate contiene
caractersticas como code snippets, resaltado de sintaxis, completado de cdigo, entre
otras.
TextMate

CSS3 Hat

CSS Hat
Alguna ves te sentiste intimidado por convertir un documento .PSD en un sitio web

funcional?. Bueno CSSHat convierte tu documento PSD a CSS puro sin que tengas
que intervenir en el proceso haciendo que salves bastante tiempo. Intuitivamente
distingue entre capas para determinar cmo presentarlas mejor como CSS. Es una
herramienta muy til.
CSS Hat

Xcode

Xcode
Xcode es la potencia de todo el desarrollo de OS X y iOS. Si creas aplicaciones para
Mac e iOS, lo ms probable es que ya lo conozcas. Xcode es gratis, lo puedes
descargar desde la Mac App Store.
Xcode

MonoTouch

MonoTouch
MonoTouch es un framework que permite a los desarrolladores crear aplicaciones para
el iPhone (iOS) con la compilacin de C# y .NET y reutilizar el cdigo fuente existente
para otras plataformas sin la necesidad de crear nuevo cdigo.
MonoTouch

Xamarin Mac

Xamarin Mac
Xamarin Mac hace uso del entorno de desarrollo integrado (IDE) MonoDevelop en Mac
para construir y probar aplicaciones que los usuarios pueden comprar desde la App
Store. Hay una versin de uso personal que cuesta unos $399. La versin enterprise
$999, incluye una suscripcin de un ao a las actualizaciones de cualquier producto.
Xamarin Mac

Sequel Pro

Sequel Pro
Un administrador de bases de datos MySQL con una interfaz grfica desde tu
escritorio. Sequel Pro es una herramienta imprescindible para cualquier desarrollador
web.
Sequel Pro

Tower

Tower
Git es una forma popular para rastrear los cambios realizados en el cdigo fuente de tu
proyecto, aunque Xcode ya tiene esta funcin integrada, Tower es una versin externa,
ms refinada que incluye muchas caractersticas que lo hacen mucho ms fcil de
manejar el mundo Git. Mira como funciona Tower en estos dos vdeos #1 y #2.

Estos son los mejores recursos


para aprender a desarrollar en
iOS segn Ironhack
264
Twitter
E-mail
GUARDAR

7 COMENTARIOS
PUBLICIDAD

Compartir

264
Twitter
Email

21 Enero 2015

IRONHACK

Cualquier desarrollador de apps mviles lo sabe bien: es necesario


mantenerse constantemente al da. No paran de aparecer nuevas
herramientas, APIs, libreras, etc.. Aqu te mostramos una recopilacin
de los mejores recursos para aprender a desarrollar en iOS y, sobre
todo, mantenerte al da, de la mano de Ironhack.
Ironhack tiene experiencia en impartir cursos intensivos sobre
desarrollo iOS. Gracias a ello y junto a las recomendaciones de sus
profesores y alumnos hemos elaborado este listado de recursos para
programadores iOS. Un buen completo si estamos planteando ampliar
nuestra formacin con alguno de los bootcamps que se impartirn
prximamente en Madrid y Barcelona.

1. Start Developing iOS Apps Today


Empezamos con la imprescindible gua de Apple, Start Developing iOS
Apps Today, como punto de arranque. Si no tienes mucha experiencia
desarrollando apps, aqu encontrars en cuatro pequeos mdulos todo
lo necesario para crear tu primera aplicacin iOS para iPad, iPhone o
iPod Touch. Todo ello junto a una buena racin de consejos que aplicar
desde el principio.

2. iOS Dev Center


Paso obligado donde obtendremos todo lo necesario para comenzar a
desarrollar en iOS. En iOS Dev Center podremos descargar todo tipo de
recursos como el imprescindible XCode, herramientas adicionales,
tutoriales, vdeos, guas de las novedades cada versin de iOS, cdigo
de ejemplo, audios y vdeos de las charlas tcnicas de la WWDC.

3. Curso en iTunes Developing iOS 7 Apps


for iPhone and iPad
Posiblemente uno de los mejores cursos en la iTunes U sobre desarrollo
de apps en iOS dirigido desde la Universidad de Stanford. Developing
iOS 7 Apps for iPhone and iPad cubre un amplio rango de conceptos
fundamentales, incluyendo el desarrollo de interfaces, el lenguaje de
programacin Objective-C, etc Como complemento, tambin disponible
en iTunes U, existen dos cursos recomendables
previamente Programming Methodology y Programming Abstractions.

4. Podcast Building Mobile Applications de la


Universidad de Harvard

Este curso, Building Mobile Applications, en formatopodcast nos


sumerge en el desarrollo de aplicaciones mviles en mltiples
dispositivos (incluyendo Android), as como la subida de aplicaciones a la
App Store. Incluye numerosos conceptos claves de desarrollo en XCode
y del iOS SDK.

5. Stack Overflow
Quin no ha llegado con una duda a este foro de preguntas/respuesta
para programadores? Stack Overflow es el mejor lugar para encontrar
respuesta a los problemas ms comunes, y otros no tanto, que
tenemos los programadores iOS diariamente. El mejor compaero
cuando estamos aprendiendo a desarrollar apps en iOS,casi todas las
dudas estn resueltas aqu y si no pregunta.

6. Pttrns

El mejor lugar para sumergirse en busca de inspiracin. Pttrns es un


inmenso catlogo de ms de 3.000 diseos de interfaces de usuario de
todo tipo de apps. Aqu podemos encontrar categorizadas en secciones
distintas situaciones habituales y descubrir cmo las solventan
numerosas aplicaciones conocidas. Una forma para detectar tendencias
que acaban convirtiendose en estndares de facto en el UI de las apps.

7. Ray Wenderlinch
Esta web y comunidad de desarrolladores, Ray Wenderlinch, est en
constante actualizacin con todas las tendencias, novedades y
tutoriales sobre un amplio abanico de temas en iOS. Cuenta con una
potente Newsletter semanal a la que suscribirse para recibir
peridicamente todas las actualizaciones.

8. Vdeos de la WWDC 2014

La WWDC es la mayor conferencia de desarrolladores organizada por


Apple. Cada ao se celebra entre Junio y Julio en San Francisco, la
suerte es que a las pocas semanas de finalizar se publican
absolutamente todos los vdeos de las distintas sesiones y tracks.Ms de
80 vdeos de esta ltima edicin de 2014, entre los ms
recomendables estn todos los relacionados con iOS8, el recien llegado
HealthKit y HomeKit. Tambin contamos con asciiwwdc que proporciona
la transcripcin de todas las secciones.

9. Design Mobile Apps

Este ebook, Design Mobile Apps, nos proporciona todos los conceptos
de diseo que los desarrolladores necesitamos a la hora de crear
interfaces para aplicaciones mviles. El primer paso es darse cuenta de
lo diferente que es disear para web y aplicaciones mviles. Aprender
cmo plasmar nuestras ideas sobre un diseo usable en distintas
tamaos y dispositivos mviles.

10. iOS Programming: The Big Nerd Ranch


Guide
The Big Nerd Ranch Guide, la cuarta edicin de unos de libros ms
vendidos sobre desarrollo en iOS ha sido actualizado para cubrir iOS 7
y Xcode 5. Cuenta un montn de recursos y buenas prcticas,
acompaado de numerosos ejemplos de cdigo.

11. Objc.io
Objc.io es un magazine digital que periodicamente ofrece las mejores
prcticas y tcnicas avanzadas en el desarrollo de iOS y OS X. Cada

entrega est centrada en un tema en concreto, adentrndose en


profundidad en las tcnicas y conceptos ms avanzados.

12. NSHipster

Matt Thompson es el responsable de NSHipster, uno de los blog ms


relevantes de la comunidad de desarrolladores iOS. El creador
de AFNetworking, la popular librera para manejar las comunicaciones de
red en iOS, habla periodicamente de conceptos avanzados de
Objective-C, Swift y Cocoa.

13. CocoaPods
CocoaPods es un gestor de dependencias para proyectos ObjectiveC. Facilita la integracin de cualquiera de sus miles de libreras
disponibles dentro de nuestras proyectos. Muchos desarrolladores son
incapaces de vivir ya sin l, una vez que descubren su potencia y
facilidad de uso.

14. GitHub
Github es el lugar ideal para mantener en remoto nuestros repositorio de
cdigo y compartirlo con amigos, compaeros de trabajo o de clase y
cualquiera al que queramos ensear nuestro cdigo. Ms de siete
millones de personas lo usan. A parte de repositorio para nuestros
proyectos, sirve como herramienta fundamental para explorar proyectos
interesantes y libreras Open Source en las que colaborar.

15. Recursos sobre Swift en Apple Developer


En el apartado para desarrolladores de Apple encontramos
un inmenso conjunto de recursos sobre Swift con presentaciones, vdeos,
ejemplos de cdigo, guas de referencia sobre el lenguaje. Un interesante
material de estudio de este nuevo lenguaje predestinado a suceder a
Objetive-C.

16. iOS Dev Weekly


Por ltimo, este newsletter para seguir todas las novedades de iOS sin
que se nos escape ninguna a travs de iOS Dev Weekly. Con importante
material como vdeos, casos de estudio y las ltimas novedades de la
industria.

Perfeccionando tus skills como programador


iOS con el bootcamp de Ironhack y sus
profesores
Para confeccionar de este recopilatorio de recursos de programacin
para iOS hemos contado con la ayuda de los excelentes profesores
de Ironhack de desarrollo de aplicaciones iOS:
Diego Freniche (@dfreniche). Desarrollador todoterreno y formador de
referencia en Espaa tanto para iOS como Android.
Daniel Garca (@fillito), fundador de Produkt. Anteriormente trabaj en
Minube siendo el responsable del desarrollo de la app de iOS.
Jorge Ortiz (@jdortiz), creador de PoWWau.
Victor Baro (@victorbaro), desarrollador en Produkt

Cmo te puede ayudar Ironhack


Ironhack es la primera institucin educativa en ofrecer Bootcamps
(cursos muy intensivos y enfocados en la empleabilidad) de formacin
iOS y web en Europa y que cuenta con campus tecnolgicos en Madrid,
Barcelona y Miami.
En el blog de Ironhack podis encontrar mucha informacin al respecto:
tanto del seguimiento de los cursos anteriores impartidos como de los
futuros, por qu elegir un bootcamp para relanzar tu startup, cmo te
puede ayudar Ironhack en conseguir el mejor trabajo despus del curso
o cmo financiar un bootcamp de estas caractersticas.
Las claves de la formacin impartida por Ironhack se basan en aprender
a resolver problemas como un programador no slo a seguir las guas de
un curso al uso, trabajar en proyecto reales y enfocarse en adquirir
buenas prcticas de desarrollo desde el principio.

Herramientas para desarrollar


APIs
Restlet Studio, Swagger, API Blueprint, RAML o Apiary son algunas de las
plataformas y herramientas con las que los equipos de desarrolladores disean,
desarrollan, prueban mediante simulacros automatizados y documentan APIs en
todo el mundo.
BBVAOpen4U

|
01 Jun. 2016
Facebook
Twitter
Linkedin
Google +
Mail
APIs
Herramientas
Open Platform

El mercado del desarrollo este 2016 y tambin los aos sucesivos estar
protagonizado por una llave mgica que abre casi todas las puertas: las APIs. En
BBVAOpen4U hemos explicado cmo medir el rendimiento de las interfaces de
desarrollo de aplicaciones, cules son sus ventajas, cmo un desarrollador
puede organizar un gran repositorio, cul es su influencia en el mundo del
Internet de las cosas o los wearables, pero no cmo se puede programar una
API desde cero.
Para ello existen plataformas, herramientas y tambin lenguajes que permiten a
los equipos de desarrolladores disear, desarrollar, probar y documentar sus
propias APIs para facilitar la programacin de productos a terceros y generar
ingresos. A da de hoy existen varios referentes importantes: Restlet

Studio, Swagger, API


Blueprint, RAML, Mockable.io, Loader.io,BlazeMeter, Apiary e InstantAPI. Existen
ms herramientas, pero estas seran las ms conocidas dentro de la comunidad.
Aqu hay un anlisis de las caractersticas de algunas de ellas:

Restlet: una Plataforma como Servicio para APIs

Restlet es un Entorno de Desarrollo Integrado (IDE) donde los programadores


Java pueden disear sus web API basadas en arquitectura REST (REST APIs).
Con l se pueden desarrollar tanto aplicaciones por el lado del servidor como
del cliente y es compatible con HTTP, HTTPS, XML o JSON. Este marco de
desarrollo es de cdigo abierto, de descarga gratuita y bajo licencia Apache. La
herramienta dispone de diferentes planes de uso escalables: uno gratuito y
varios de pago. El primero permite el desarrollo de una API y el ms caro no
tiene limitaciones.
Restlet Studio est disponible para todas las plataformas (Java SE/EE, Google
App Engine, Google Web Toolkit, OSGI oAndroid). Todas las APIs desarrolladas
con Restlet Studio permiten su integracin con APISpark, la Plataforma como
Servicio (PaaS) de Restlet para alojar y gestionar APIs por todo tipo de
desarrolladores, en todo tipo de lenguajes como Java, PHP, Node.js o HTML, y
marcos como AngularJS Jerome Louvel, CTO y fundador de Restlet, explic en
esta entrevista de noviembre de 2014 en InfoQ cules son las caractersticas
fundamentales de APISpark.
Dos aspectos destacados en el desarrollo de APIs con Restlet Studio:
El marco de desarrollo de Restlet dispone de un conjunto de clases e
interfaces a partir de las cuales se pueden disear APIs propias.
Escalabilidad asegurada independientemente del nmero de solicitudes.

Swagger: el framework de APIs ms popular

A da de hoy, Swagger va ya por la versin 2.0, es de cdigo abierto y da


servicio a plataformas o clientes tan importantes como Apigee, Getty Images,
Microsoft o Paypal. Gracias a Swagger, ellos han podido desarrollar su propias
APIs RESTful. Qu es Swagger? Un conjunto de herramientas para la
programacin de interfaces de desarrollo de aplicaciones en casi todos los
lenguajes y entornos de desarrollo.
Entre las herramientas de Swagger destacan:
Swagger Editor: permite editar las especificaciones de una API en YAML
(acrnimo de YAML, Ain't Another Markup Language - YAML no es otro lenguaje
de marcado). YAML es un lenguaje de marcado ligero, un formato de datos
inspirado en lenguajes como XML o Python que pone un mayor nfasis en los
datos y no tanto en el marcado de los documentos. Este es el comando para
ejecutarlo localmente en una mquina con Node.js:
git clone https://github.com/swagger-api/swagger-editor.git
cd swagger-editor
npm install
npm start
Swagger UI: coleccin de activos HTML, JavaScript y CSS para generar de
forma dinmica tanto documentacin como una sandbox para cualquier API
compatible con Swagger. Al no tener ninguna dependencia especfica, la
interfaz de usuario se puede alojar en cualquier servidor o en local.

Swagger Core: implementacin en Java de Swagger. Un conjunto de libreras


Java, de cdigo abierto y disponibles en GitHub. Aqu hay una gran cantidad de
documentacin especfica para desarrolladores.

API Blueprint: documentacin para APIs

API Blueprint es un lenguaje basado en Markdown (un lenguaje de marcado


ligero), que sirve fundamentalmente para documentar cualquier API de una
forma sencilla. Lo realmente interesante de API Blueprint para los
desarrolladores de APIs son las herramientas que funcionan de satlites de este
lenguaje de marcado.
La ms interesante es Dredd (en alusin al juez Dredd, personaje
cinematogrfico), que permite testear un servicio debackend a partir de la
documentacin de la API. As es posible solucionar problemas de actualizacin
de esa documentacin. Soporta todo tipo de lenguajes como PHP, Python, Ruby,
Perl, Node.js o Go.
Otra herramienta interesante integrada en Blueprint es Drakov, que permite
poner en marcha servicios de mocks para hacer tests con peticiones y
respuestas a medida de la documentacin de la API. Lo que viene siendo un
banco de pruebas. Este es un buen tutorial para empezar a trabajar con API
Blueprint (en ingls).

RAML: gestin completa de APIs

RAML es el acrnimo de RESTful API Modeling Language (Lenguaje de Modelado


de API RESTful). Su objetivo es facilitar la gestin del ciclo de vida de una API,
desde el diseo y desarrollo hasta su utilizacin por terceros (testeo y
documentacin) poniendo el nfasis en el uso de un lenguaje fcil de interpretar
por desarrolladores, y no slo mquinas. La ltima versin de este lenguaje es
la 1.0.
RAML permite el desarrollo de APIs en varias sintaxis: Node.js (JavaScript),
Java, .NET y Python. Adems, dispone de una gran variedad de herramientas
para testear las interfaces de desarrollo de aplicaciones con RAML: Abao, una
herramienta de lnea de comandos en Node.js para probar la documentacin de
una API que est escrita en RAML; Vigia; o Postman, una extensin de Google
Chrome muy utilizada entre los desarrolladores por su enorme sencillez y que
sirve para testear una API a travs de peticiones, ya sean GET, POST, PUT,
PATCH o DELETE.

Apiary: una API propia en 30 minutos

Suena algo arriesgado, pero la plataforma Apiary promete a los equipos de


desarrollo todas las herramientas necesarias para tener una API propia en 30
minutos. Se ocupa de todo el ciclo de vida de una interfaz de desarrollo de
aplicaciones: diseo y desarrollo, simulacros automatizados, validaciones,
proxies, documentacin Apiary proporciona todo lo necesario para tener una
API.
Apiary proporciona a los equipos DevOps los servidores de mocks para hacer
pruebas y simulacros antes de empezar a codificar una API, algo similar a
los wireframes en una interfaz de usuario. Antes de disear, es bueno planificar
para conocer las necesidades reales antes de destinar ms recursos a
desarrollo.
Si eres desarrollador y ests interesado en APIs, ya puedes probar el sandbox
de las APIs financieras de BBVA
ra desarrolladores
Centro de Aplicaciones
API de Desarrollo de Aplicaciones

API de Desarrollo de Aplicaciones


EN ESTE ARTCULO
Fundamentos de una aplicacin Firefox OS
Diseo y estructura
Dibujo y animaciones
APIs del dispositivo Firefox OS
Web APIs Generales
Servicios del Firefox Marketplace
La siguiente lista contiene una referencia a nivel de cdigo que puedes necesitar
desarrollando apps para Firefox OS. Para ms guas , herramientas, vdeos e
informacin sobre el ecosistema de aplicaciones Firefox OS visita el Firefox Marketplace
Developer Hub. Para bsquedas rpidas de Web APIs y mtodos, puedes
utilizar dochub.io, un sitio que usa la API de MDN's.
Fundamentos de una aplicacin Firefox OS
Una aplicacin Firefox OS es simplemente una Open Web App.
Manifiesto de la aplicacin
El manifiesto que describe tu app. Esta gua explica cmo funciona el manifiesto y cmo
crear uno.
Apps JavaScript API
La interfaz usada para instalar aplicaciones y gestionarlas.
Permitir a tu aplicacin funcionar offline
Estarategias y tecnologas que puedes usar para asegurarte que tu aplicacin funciona
cuando no hay conexin disponible.
Tipos de Aplicaciones
Este artculo explica los tipos de aplicaciones: alojadas, privilegiadas y certificadas.
Necesitars que tu app sea privilegiada o certificada cuando teng que acceder a APIs
especficas del sistema. Las aplicaciones privilegiadas y certificadas slo pueden ser
aplicaciones empaquetadas.
Permisos de las Aplicaciones
El acceso a las APIs del dispositivo puede ayudarte a crear aplicaciones ms tiles. Aqu
encontrars qu est disponible y cmo acceder a ellas.
Diseo y estructura
Diseo adaptativo (responsivo)
Tu aplicacin debe ser capaz de ajustarse a diferentes tamaos de pantalla y ser
independiente del dispositivo utilizado. Este gua te ayudar lograrlo.
Media queries
Una de las tecnologas ms importantes a la hora de crear una aplicacin responsiva son
los media queries. stos permitirn a tu app ajustarse a diferentes tamaos de pantalla,
resolucin, orientacin del dispositivo y otras variables, usando reglas CSS o JavaScript.
Tambin puedes ver Usando media queries y MediaQueryList .
Flexible boxes
Las cajas flexibles CSS te permitirn configurar automticamente la interfaz para que
ajuste su posicin y tamao basndose en el tamao y la orientacin de la pantalla.
Dibujo y animaciones
Transformaciones CSS
Las transformaciones CSS te permiten rotar, escalar y hacer zoom sobre el contenido
HTML, tomando ventaja de la aceleracin del hardware cuando este est disponible y sin
hacer uso de JavaScript.
Transiciones CSS
Las trancisiones CSS te permiten animar cambios en tus reglas CSS. Una vez que
unatransicin CSS est configurada, loas cambios en tu CSS ocurrirn en un periodo de

tiempo en vez de instantneamente. Esto hace posible que fcil y eficientemente se


puedan crear una variedad de efectos visuales en tus aplicaciones.
Animaciones CSS
Las animaciones CSS te permitirn animar cambios en tu documento. Utilizando
keyframes podrs configurar de forma precisa el efecto de tu animacin. Tambin te
permite crear ciclos de animaciones que se repitan una y otra vez en vez de efectos que
ocurren slo una vez. Todo esto sin utilizar JavaScript.
HTML canvas
El elemento HTML <canvas> provee de un espacio de trabajo 2D para que dibujen en
l. Puede tener muchos usos, incluyendo juegos en 2D.
WebGL
WebGL es una versin para la web de OpenGL ES que permite a tu app ofrecer grficos
3D acelerados por hardware.
SVG
Scalable Vector Graphics (SVG) es una tecnologa que te permite dibujar objetos
vectoriales en vez de utilizar imgenes. Son muy tiles, gracias a su escalabilidad, para
mostrar diagramas y grficos y tambin para interfaces de usuario escalables.
APIs del dispositivo Firefox OS
Las APIs De Firefos OS son estndares web emergentes y APIs propias del dispositivos
cruciales para desarrollar aplicaciones y Open Web Apps.
Las tablas siguientes muestran los pemisos para las aplicaciones alojadas y certificadas.
Para ms informacin puedes ver la seccin de Permisos de las Aplicaciones .

API name

Description

Mini
mum
app
type
requi
red

Alarm

Schedule a
notification
, or
schedule
an
application
to be
started.

host
ed

audiocapture

GetUser
Media

Obtain
MediaStrea
m from
audio input
devices,
e.g.
microphon
e. This is
needed to
allow audio
capture in
Firefox OS
1.2+.

host
ed

audiochannelalarm

Audio
Policy

Alarm
clock,

privi
lege

Manifest
permissio
n

alarms

accessproperty

Default
granted

Platf
orm

none

Allow

FxO
S

Prompt(

none

none

even
for
certifie
d Apps)

Allow

FxO
S

FxO
S

Description

Mini
mum
app
type
requi
red

calendar
alarms.

Audio
Policy

Music,
video.

audiochannelnormal

audiochannelnotificati
on

Manifest
permissio
n

accessproperty

Default
granted

Platf
orm

host
ed

none

Allow

FxO
S

Audio
Policy

UI sounds,
Web
content,
music,
radio.

host
ed

none

Allow

FxO
S

Audio
Policy

New email,
incoming
SMS.

privi
lege
d

none

Allow

FxO
S

Browser

Enables
the app to
implement
a browser
in aniframe.

privi
lege
d

none

Allow

FxO
S

contacts

Contacts

Add, read,
or modify
contacts
from the
address
book on
the device
and read
contacts
from the
SIM.

privi
lege
d

readonly,readwri
te,readcreate,
orcreateonly

or all
installe
d App
types.

desktopnotificati
on

mozNoti
ficationf
or Gecko
<22,Noti
fication f
or Gecko
22+

host
ed

none

Promptf

audiochannelcontent

browser

API name

Display a
notification
on the
user's
desktop.
Note that
this has
changed,
so for
Gecko <22
(Firefox OS

Promptf

or Web
content
.Allowfo
r all
installe
d App
types.

FxO
S

FxO
S,
And
roid
,
Des
kto
p

Mini
mum
app
type
requi
red

accessproperty

Default
granted

Platf
orm

Device
Storage

Add, read,
or modify
music files
stored on
the device.

privi
lege
d

readonly,readwri
te,readcreate,
orcreateonly

Prompt

FxO
S

Device
Storage

Add, read,
or modify
picture
files stored
on the
device.

privi
lege
d

readonly,readwri
te,readcreate,
orcreateonly

Prompt

FxO
S

Device
Storage

Add, read,
or modify
files stored
on the
device's
SD card.

privi
lege
d

readonly,readwri
te,readcreate,
orcreateonly

Prompt

FxO
S

devicestorage:v
ideos

Device
Storage

Add, read,
or modify
video files
stored on
the device.

privi
lege
d

readonly,readwri
te,readcreate,
orcreateonly

Prompt

FxO
S

fmradio

FM
Radio

Control the
FM radio.

host
ed

none

Allow

FxO
S

geolocati
on

Geolocat
ion

Obtain the
current
location of
the user.

host
ed

none

Prompt(

Manifest
permissio
n

API name

Description

<1.2) you
need to
usemozNoti
fication,
while for
Gecko 22+
(Firefox
1.2+) you
need to
useNotificat
ion.
devicestorage:
music

devicestorage:p
ictures

devicestorage:s
dcard

even
for
certifie
d Apps)

FxO
S,
Des
kto
p,
And

Manifest
permissio
n

API name

Description

Mini
mum
app
type
requi
red

accessproperty

Default
granted

Platf
orm

roid

Keyboar
d

Allows the
app to act
as a virtual
keyboard
by
listening to
focus
change
events in
other apps.

privi
lege
d

none

Allow

FxO
S

Mobile
Network

Obtain
mobile
network
informatio
n (MCC,
MNC, etc.).

privi
lege
d

none

Allow

FxO
S

Simple
Push

Enable an
app to
wake up to
receive
notification
.

host
ed

none

Allow

FxO
S

storage

Storage

Utilize
storage
(appcache,
pinned
apps,
IndexedDB
) without
size
limitations.
Seeappcac
he,Indexed
DB.

none

Allow

FxO
S,
Des
kto
p

systemX
HR

SystemX
HR

none

Allow

keyboard

mobilene
twork

push

Allows
anonymou
s (no
cookies)
crossorigin XHR
without the

host
ed

privi
lege
d

FxO
S

Manifest
permissio
n

API name

Description

Mini
mum
app
type
requi
red

accessproperty

Default
granted

Platf
orm

Allow

FxO
S,
Des
kto
p

target site
having
CORS
enabled.
Similar to
the TCP
Socket API
but
restricted
to XHR, not
just raw
sockets, so
it is slightly
less risky.
SeeXMLHtt
pRequest.

tcpsocket

videocapture

TCP
Socket

Create TCP
sockets
and
communic
ate over
them.

GetUser
Media

Obtain
MediaStrea
m from
video input
devices,
e.g.
camera.
This is
needed to
allow
video
capture in
Firefox OS
1.4+.

privi
lege
d

none

Prompt(

host
ed

none

even
for
certifie
d Apps)

FxO
S

Web APIs Generales


Elementos, eventos, peticiones a la red, almacenamientos y otras Web APIs estandar.
Network requests - enviar y recibir datos con XMLHttpRequest
XMLHttpRequest es el API del DOM usado para enviar y recibir informacin usando
HTTP, incluyendo la descarga de archivos.
Eventos del DOM
La documentacin sobre eventos proporciona una lista completa de todos los eventos
que pueden ser enviados y recibidos para interactuar conlos objetos del DOM.
Eventos de toque

Esta documentacin cubre los eventos tctiles (touch) que podrs utilizar a la hora de
desarrollar apps para dispositivos tctiles.
Eventos Online y offline
Permite a tu app responder dinmicamente a cambios en el estado de la red (online y
offline).
Historial
Manipula y navega a travs del historial de tu app con varios comandos. til para hacer
retorceder o avanzar al usuario a travs de tu app.
Audio
Integra y manipula contenido de audio con la etiqueta Audio de HTML5.
Vdeo
Integra y manipula contenido de video con la etiqueta Audio de HTML5.
Geolocalizacin
Permite a tu app requerir la ubicacin del usuario y segir los cambios que se realicen en
la misma.
Orientacin de la pantalla
SIgue los cambios de orientacin de la pantalla entre las posiciones vertical y apaisada.
Orientacin del dispositivo
Permite a tu app detectar cambios de orientacin del dispositivo mediante los sensores
del mismo.
IndexedDB
Acceso a una base de datos para aplicaciones web que provee de una interfaz para
guardar y recuperar grandes cantidades de datos en el dispositivo del usuario.
Almacenamiento
La API de almacenamiento provee de varias maneras de guardar una cantidad limitada
de datos simples de forma persistente en el dispositivo del usuario.
localStorage
sessionStorage
Blob - Un objeto que guarda los datos planos de un archivo. Los datos que contiene
pueden ser tambin manipulados.
Web workers
Permite a la aplicacin ejecutar cdigo JavaScript (que no puede interactuar con el DOM
o con con el objeto window) como una tarea en el fondo, lo que permite optimizar el
rendimiento y desbloquear el redenderizado de la interfaz de usuario.
Servicios del Firefox Marketplace
Estos documentos y guas te ayudarn a aprender cmo publicar tu aplicacin y
gestionarla en el Firefox OS Marketplace.
API de envo
La API de envo te permite validar tu app, ponerla al da y recibir informacin sobre las
apps disponibles para ser instaladas.
API de pago
La API de pagos te permite recibir informacin y procesar pagos dentro de tu aplicacin
as como recibir informacin sobre los precios disponibles.
API del Marketplace
Toda la documentacin relativa al Marketplace es recogida aqu.

También podría gustarte