Author: jjordanarenas (page 1 of 2)

Curso de juegos 2d multiplataforma con Cocos2D-X

Dado el creciente interés en el desarrollo de juegos multiplataforma, OnCampus Training y yo nos hemos decidido a organizar un curso de desarrollo de juegos 2D multiplataforma con el framework open source Cocos2D-X.

Cocos2D-X posee las ventajas de ser código abierto y estar basado en C++, un potente lenguaje de programación orientada a objetos. Durante las diferentes sesiones del curso los alumnos aprenderán diferentes técnicas que podrán aplicar en varios proyectos.

Cocos2D-X

Entre los conocimientos que el alumno adquirirá a lo largo del curso se pueden destacar la creación de fondos y reproducción de sonidos, simular el movimiento gracias al efecto Parallax, animar sprites y envolverlos de espectaculares efectos gracias a los sistemas de partículas. Los alumnos también aprenderán a gestionar la creación de escenas y la transición entre ellas, el mantenimiento del estado del juego gracias a archivos externos y el control de movimientos mediante el acelerómetro. Este curso también les enseñará a exportar sus juegos de forma que puedan ser ejecutados en dispositivos tanto iOS como Android.

¿Pinta bien, verdad? ¡Pues corred insensatos, porque el plazo se acaba el día 26 de abril y las plazas son limitadas!

@jjordanarenas

Curso de desarrollo de juegos iOS con Cocos2D

Durante el proceso de escritura de mi primer libro, Cocos2d Game Development Blueprints he descubierto que me gusta compartir mis conocimientos con el resto del mundo.

De esta manera tengo la oportunidad de devolver a la comunidad de desarrolladores todo lo que he recibido, ya sea por la cantidad de tutoriales de los que he aprendido, por las soluciones a esos bugs que te quitan el sueño o por una simple cadena de comentarios en un foro.

Por eso me he decidido a impartir un curso de desarrollo de juegos iOS con Cocos2D a través de la plataforma online OnCampus.

Cocos2D1

En este curso quiero enseñar de una manera progresiva cómo desarrollar juegos para dispositivos iOS usando Cocos2D, un popular framework open source. De tal manera, los alumnos aprenderán desde lo más básico como qué es un nodo o una escena, pasando por cómo crear sprites y ejecutar acciones, cómo añadir fondos, sonidos o textos, hasta llegar a aspectos más avanzados como detectar colisiones o crear animaciones, sistemas de partículas y físicas.

Las clases serán online en directo a través de una plataforma que permitirá a los alumnos ver y oír mis explicaciones e interactuar conmigo para preguntar dudas, como en una clase presencial cualquiera. La clave de esta modalidad es que las clases serán grabadas, de modo que los alumnos pueden descargarse los videos para verlos en diferido en caso de no poder asistir o querer repasar conceptos.

Espero teneros a muchos de vosotros entre los asistentes así que ¡no dudéis en inscribiros ya porque las clases empiezan en abril!

@jjordanarenas

Watch Kit apps a fondo

580x326xapple-watch-digital
En el anterior artículo sobre WatchKit vimos que una aplicación desarrollada para el Apple Watch necesitaEn el anterior artículo sobre WatchKit vimos que una aplicación desarrollada para el Apple Watch necesita dos componentes:

  • WatchKit app es el ejecutable que correrá en el Apple Watch y que contendrá los storyboards y los archivos necesarios para renderizar las distintas pantallas.
  • WatchKit extension es el ejecutable que correrá en el iPhone. Dicho ejecutable contiene el código fuente y los recursos para controlar las pantallas de la aplicación y, además, es el encargado de manejar las interacciones del usuario.

Ambos componentes necesitan trabajar conjuntamente para configurar la interfaz mostrada al usuario. Los pasos dados por una aplicación cuando un usuario interactúa con ella son, típicamente, los siguientes:

  1. El usuario interactúa con la WatchKit app.
  2. La WatchKit app analiza la interacción y selecciona el storyboard que manejará dicha interacción.
  3. WatchKit se comunica con el iPhone para ejecutar la WatchKit extension.
  4. La WatchKit extension inicializa y crea los objetos necesarios para proveer con dichos recursos al storyboard de la WatchKit app.
  5. El storyboard genera la escena a partir de los objetos creados por la WatchKit extension y se muestra en el Apple Watch.
  6. La WatchKit app y Eatchkit compartirán información hasta que el usuario deje de interactuar con la aplicación. En ese momento iOS suspenderá la WatchKit extension hasta que haya una nueva interacción.

El siguiente diagrama ilustra el proceso:

WatchKit app architecture

Un concepto importante del anterior proceso es la manera en que lo storyboards responden a la interacción del usuario y configura la escena. Esto es gracias a los interface controller (instancias de WKInterfaceController), que son equivalentes s los view controllers de las aplicaciones iOS.

La diferencia con los view controllers es que los interface controllers no manejan las actuales vistas en pantalla, ya que WatchKit realiza esa tarea de manera transparente. Normalmente, una WatchKit app contiene varios interface controllers que visualizaran diferentes tipos de datos pero solo uno de ellos será mostrado cada vez.

Ciclo de vida de una WatchKit app

Una WatchKit app puede ser lanzada de tres diferentes maneras:

  • El usuario toca el icono de la pantalla de inicio del Apple Watch.
  • El usuario interactúa con el glance de la aplicación.
  • El usuario interactúa con las notificaciones.

Cada una de las anteriores opciones inicia la WatchKit app y su WatchKit extension. Dependiendo de cuál de los casos ocurre, WatchKit configura la escena usando el storyboard correspondiente y pide a la WatchKit extension que inicie el correspondiente interface controller.

El siguiente diagrama ilustra dicho proceso:

Launching WatchKit App

Como se puede ver, las instancias de interface controller manejan las interacciones en la interfaz de usuario.

La WatchKit extension está activa mientras el usuario interactúa con la aplicación en el Apple Watch. Una vez el usuario para de interactuar o sale de la aplicación, iOS desactiva el actual interface controller y suspende la extension. Como dichas interacciones entre el usuario y el Apple Watch son típicamente breve, el interface controller debe contener poca lógica de negocio y realizar tareas rápidas.

El siguiente diagrama ilustra dicho proceso:

Interface controller lifecycle

Este artículo fue originalmente publicado por Jorge Jordán en Chupamobile.com.

@jjordanarenas

Watch Kit: Las aplicaciones se mudan a tu muñeca

WatchKit

¿Estáis cansados de sacar vuestro iPhone del bolsillo para revisar los mensajes? Queréis ser como Michael Knight y hablar con vuestra inteligencia artificial amiga a través de vuestra muñeca? Apple lo ha hecho posible gracias a su nuevo Apple Watch y su increíble framework, Watch Kit.

Lo primero que necesitáis saber al desarrollar aplicaciones para Apple Watch (también conocidas como Watch apps), es que esas aplicaciones requieren de un iPhone para ser ejecutadas. Además necesitaréis dos ejecutables:

  • La Watch app, que correrá en el Apple Watch y contiene los storyboards y los archivos necesarios para visualizar la interfaz de usuario de la aplicación.
  • Una extensión de Watch Kit, que correrá en el iPhone y contiene el código de negocio para controlar la interfaz de usuario de la aplicación y que manejará las interacciones del usuario.

Cuando desarrolléis una aplicación para Apple Watch necesitaréis crear un WKInterfaceController para cada escena en vuestro storyboard. Esta clase tiene dos métodos importantes: initWithContext y willActivate, que son responsables de recuperar los datos para ser visualizados e inicializan y configuran los componentes visuales, como por ejemplo botones y textos.

En el caso en que queráis crear una vista para mostrar UIUserNotificationSettings recibidos (por ejemplo una notificación iMessage preguntándote si quieres quedar a comer con botones para aceptar o rechazar dicha invitación) necesitaréis instancia un WKUserNotificationInterfaceController, que hereda de WKInterfaceController.

Otros métodos interesantes de las clases anteriormente expuestas son:

  • presentTextInputControllerWithSuggestions:completion: El propósito de este método es mostrar una pantalla modal para que el usuario introduzca algún texto, con la peculiaridad de que este método sugiere frases para ser seleccionadas por el usuario.
  • updateUserActivity:userInfo: Coge actividad actual de la aplicación (por ejemplo un usuario toca la pantalla) y la manda al iPhone del usuario para tratar con ella.

Un concepto importante en las Watch apps son los glances. Básicamente, un glance es una pantalla en vuestra aplicación que muestra una información específica al usuario, con la peculiaridad de que no puede hacerse scroll en ella y son de sólo lectura. Esta es la razón por la que un glance no contiene componentes como botones o campos para introducir textos.

En Watch Kit también encontramos WKInterfaceDevice, una clase usada para contener información sobre la configuración del Apple Watch del usuario. The esta manera podemos tenerla en cuenta al mostrar contenido en la aplicación.

Otro propósito importante de esta clase es cachear imágenes creadas previamente en el Apple Watch de manera que puedan ser usadas posteriormente sin problemas de performance al crearlas cada vez.

Algunos de sus métodos son:

  • preferredContentSizeCategory: Recupera el tamaño de fuente personalizado por el usuario. Este método es muy importante para las aplicaciones orientadas a accesibilidad.
  • addCachedImage:name: Usado para añadir la imagen especificada como argumento de entrada en la caché del dispositivo.
  • removeCacheImageWithName: Nos permite scar una imagen previamente cacheada especificando su nombre.

Finalmente, Watch Kit viene con varios objectos de interfaz para crear vuestras vistas, los cuales son una versión personalizada de objetos de UIKit. De esta manera podemos encontrar WKInterfaceButton, WKInterfaceDate, WKInterfaceImage, WKInterfaceLabel, WKInterfaceMap, WKInterfaceSlider, o WKInterfaceSwitch por ejemplo.

Para ser honesto, aún no he llevado un Apple Watch pero estoy seguro de que va a ser una revolución en la manera en que usamos la tecnología. ¿Y vosotros, créis que Apple Watch va a cambiar el futuro de los smartphones?

Este artículo fue originalmente publicado por Jorge Jordán en Chupamobile.com.

@jjordanarenas

TestFlight: beta testing de aplicaciones para desarrolladores

TestFlight

WWDC 2014 trajo consigo una gran novedad para los desarrolladores de aplicaciones iOS: la integración de la popular plataforma de beta testing TestFlight en su ciclo de vida.

Antes, testar nuestras aplicaciones no era una tarea trivial. Si disponías de un equipo de test tenías que conocer el identificador UDID de cada dispositivo de test para configurar un provisioning profile y poder compilar el binario, enviar dicho binario a tu tester y él/ella tenía que conectar su dispositivo para instalarlo.

Por otro lado teníamos disponible TestFlight como una herramienta independiente de test, donde podías registrar a tu equipo para llevar a cabo el test de las betas de las diferentes versiones de la aplicación que estuvieras desarrollando.

Sin embargo, tampoco era una tarea sencilla ya que también necesitabas conocer los identificadores UDID de los dispositivos de los testers, configurar el “provisioning profile” para incluir dichos identificadores de modo que la aplicación pudiera ser instalada en los correspondientes iPhones o iPads y entonces enviarles una invitación para instalarse la nueva versión.

Gracias al beta testing podemos obtener feedback de varios testers que nos ayudará a desarrollar una aplicación exitosa, ya que ellos son una representación del usuario final. Por eso es tan importante que haya una relación fluida entre desarrolladores y testers para que el proceso de desarrollo y test no se convierta en una pérdida de tiempo y esfuerzo para ambas partes.

Con la incorporación de TestFlight en el ciclo de vida de las aplicaciones, los pasos necesarios para testarlas son menos y más fáciles. Ya no necesitas conocer los identificadores UDID de los dispositivos de tus testers así como tampoco necesitas conectar los distintos dispositivos. Sólo tienes que enviar un email a tus testers con una invitación para que se instalen tu aplicación.

Antes de distribuir los binarios al equipo de test puedes definir qué características de la aplicación deben ser testadas en esa versión de forma que puedan centrarse en lo que necesitas.

Los beta testers sólo necesitarán descargar la aplicación de TestFlight donde pueden controlar las diferentes versiones a las que han sido invitadas a testar y además pueden enviar sus comentarios a través de ese mismo canal.

El número máximo de beta testers ha crecido (con esta nueva relación entre Apple y TestFlight) hasta 1000 cuentas de test por cada aplicación y además cada una de esas cuentas puede testar tu aplicación en diferentes dispositivos. Además, puedes designar hasta 25 testers internos que normalmente va a ser gente del equipo de desarrollo con una cuenta de iTunes Connect.

Un punto negativo que encuentro es que esta relación entre el desarrollador y el tester no es tan directa como cuando TestFlight era una herramienta independiente ya que ahora necesitamos subir los binarios a Apple antes de compartirlos con el equipo de test. Por otro lado, podemos ver esta característica como una ventaja ya que nos asegura que los binarios recibidos por los testers cumplirá un mínimo de requerimientos de calidad.

Otro punto negativo es que TestFlight estará disponible sólo para iOS8 pero sin embargo podrá ser empleado en los 155 países en los que la App Store está presente.

En mi opinión éste es un paso muy exitoso, parece que Apple está pensando en sus desarrolladores otra vez y yo estoy muy agradecido de tener una manera más fácil de distribuir las versiones a los testers.

Este artículo fue originalmente publicado por Jorge Jordán en Chupamobile.com.

@jjordanarenas

Geo Eventos 2.0

Nos alegra comunicar que ¡la versión 2.0 de nuestra aplicación Geo Eventos ya está disponible en la App Store!

iTunesArtwork@2x

Hemos estado trabajando duro estos meses para ofreceros el contenido de las efemérides en inglés y, aprovechando el nuevo aspecto visual de iOS 7, hemos decidido lavarle la cara para convertir Geo Eventos en un producto más intuitivo y amigable.

Además, hemos cambiado el icono de la aplicación por uno mucho más a la moda para que no tengáis excusa a la hora de ponerlo en la primera página, ¡junto al resto de aplicaciones molonas!

Podéis descargarla tanto para iPhone como para iPad en modalidad gratuita o de pago por solo 0,89€:

Geo Eventos Lite

Download_on_the_App_Store_Badge_ES-ES_135x40

Geo Eventos

Download_on_the_App_Store_Badge_ES-ES_135x40

@jjordanarenas

Un buen curso iOS presencial para principiantes: Beginning iOS (iPhone/iPad) del Big Nerd Ranch

Este post está dedicado a los que, como yo hace unos meses, están buscando un curso para aprender a desarrollar aplicaciones iOS y no saben cual elegir.

Durante las semanas de vacaciones que disfruté el pasado verano, tuve tiempo de pararme a pensar en el camino que estaba siguiendo en el mundillo del desarrollo iOS. Gracias a eso, me vi desde una perspectiva diferente a la vorágine en la que estaba inmerso en aquellos meses, en los que sólo pensaba en programar, programar y programar y me di cuenta de las carencias que tenía. No voy a negar que en estos años he aprendido muchas cosas, pero en aquel momento fui consciente de que los cimientos que sustentaban mis conocimientos eran débiles y que, si quería crecer como desarrollador, necesitaría una base sólida que fuera capaz de sostener cualquier aplicación que quisiera construir en el futuro.

Eso me abrió los ojos y me convenció de que necesitaba formarme mejor, no bastaba sólo con leer y programar como un loco, necesitaba estudiar y estudiar bien. En ese momento, me puse a buscar cursos online o presenciales que se ajustaran a mis necesidades: algo que me aportara los conocimientos técnicos que me faltaban y que tuviera prestigio para hacer mi currículum más molón. Le eché el ojo a algunos cursos interesantes, tanto de pago como gratuitos, pero no me parecieron estar respaldados por academias o empresas de prestigio. Entonces me topé con la gente de Big Nerd Ranch, a los que desconocía por completo. Indagando un poco, supe que aparte de realizar publicaciones sobre desarrollo, también impartían cursos especializados. Pese a tener muy buena pinta, lo que me tiraba para atrás era el coste que suponía el desplazamiento a Holanda o a Estados Unidos, además, no estaba muy seguro de que tuvieran el prestigio que iba buscando.

Continue reading

iOS 7 by tutorials + Sprite Kit

i7T_iGT_bundle_PDF_640_authorTBA@2x

Como muchos de vosotros sabéis, iOS 7 está a punto de ser lanzado y, con él, un montón de novedades para nosotros los desarrolladores. Con cada nueva versión de iOS nos encontramos con el inconveniente de tener que ponernos al día y aprender los intríngulis y, ¿qué mejor manera de hacerlo que mediante tutoriales?

Afortunadamente, un año más el equipo de Ray Wenderlich se ha puesto manos a la obra en cuanto se han conocido los detalles de la nueva versión y han trabajado duro para compilar los temas clave en un fantástico libro: iOS 7 by tutorials. Yo, como poseedor de las dos ediciones anteriores y conocedor de los contenidos, os lo recomiendo.

iOS7_PDFonly_280_authorTBA

Además, este año Apple nos ha sorprendido con Sprite Kit, un framework muy potente para hacer juegos en 2D, por lo cual Ray y sus chicos han decidido dedicarle un libro completo. Con él aprenderemos a hacer juegos con el fantástico Sprite Kit, ¡tiene muy buena pinta!

Spritekit_PDFonly_280_authorTBA

¡Corred y aprovechad el descuento al reservarlo antes de que salgan a la venta!

@jjordanarenas

Aprender a desarrollar juegos con Cocos2D-X

book_coverEl pasado mes fue publicado Cocos2d-X by Example Beginner’s Guide escrito por Roger Engelbert y, como buen friki, no dudé en encargarlo tanto en papel como en digital y leerlo tan pronto como he podido.

He de decir que no me ha decepcionado para nada. Todo lo contrario, creo que los temas tratados son muy atractivos y la forma en que vamos avanzando, desarrollando juegos cada vez más completos y complejos, hace que acabes el libro sin apenas darte cuenta y con ganas de leer otro capítulo, ¡como si de El Código da Vinci se tratara!

Tal vez la única pega que se le puede encontrar es que usa la versión Cocos2d-2.0-x-2.0.4 de Cocos2D-X cuando a día de hoy está disponible la versión Cocos2d-2.1rc0-x-2.1.3 pero, dado que dicha versión tiene sólo siete meses de vida y que había que escribir el libro en ese tiempo, no se lo tendremos en cuenta. Además, en su web ya ha escrito un post con los cambios para adaptar el código a la última versión así que otro punto positivo para Roger.

Desde aquí os recomiendo, a quienes estéis interesados en aprender a desarrollar usando Cocos2D-X, que lo compréis sin dudarlo. Para los que aún necesitáis un pequeño empujón, después del salto podréis ver un resumen de lo que consta cada capítulo.

Continue reading

Tutorial: Iniciación a Cocos2D-X con iOS y Android

cocos2d-x-logoHace un par de meses comencé a colaborar con Ray Wenderlich actualizando y escribiendo nuevos tutoriales de Cocos2D-X y, desde ayer, está disponible el primero de ellos:  Cocos2D-X Tutorial for iOS and Android: Getting Started.

A pesar de que se trata de un tutorial para principiantes, contiene información que resultará útil incluso a aquellos que ya llevan tiempo desarrollando en Cocos2D-X. Por ejemplo, uno de los aspectos que trata el tutorial es la configuración del entorno de trabajo, tanto para iOS como para Android, y es aquí donde más dificultades puede encontrar alguien que sólo ha lidiado con Xcode.

El mundo Java puede ser muy cruel, sobre todo si se alía con Eclipse y Android, para alguien que  sólo conoce el entorno de desarrollo iOS y en el tutorial se detalla paso a paso cómo configurar tanto Xcode como Eclipse para tenerlos preparados para desarrollar juegos usando Cocos2D-X: Desde la instalación de las plantillas de proyectos Cocos2D-X o la declaración de variables de entorno hasta la configuración de un dispositivo virtual para Android.

Así pues, tanto si sois iniciados en Cocos2D-X como si habéis realizado vuestros propios juegos pero no os habéis atrevido a portarlos a Android, os aconsejo que echéis un vistazo a Cocos2D-X Tutorial for iOS and Android: Getting Started y os preparéis para los siguientes tutoriales, ¡van a ser muy divertidos!

@jjordanarenas




Older posts
A %d blogueros les gusta esto: