Desarrollar juegos para iPhone

Como prometimos, comenzamos el primer artículo acerca de nuestra experiencia desarrollando para iPhone, plataforma con la que venimos trabajando desde hace medio año. A través de experimentar con el entorno y sobre todo, con nuestro primer juego comercial como producto, Tinted Turns, hemos aprendido mucho, tanto a nivel de mercado, como cuestiones técnicas de optimización, temas muy específicos de adaptar gráficos….

¿Qué se necesita?

Quizás una barrera económica para desarrolladores independientes que no tengan ya el hardware: un Mac y un iPhone. Con ello, podremos adquirir la licencia (99 dólares al año), sin límite de aplicaciones a publicar. Además, la misma licencia sirve para varios ordenadores / dispositivos, pudiendo trabajar con más gente. El portal de desarrolladores de Apple está bastante bien, teniendo guías de programación y de buenas prácticas, así como documentación de cómo subir las aplicaciones.

Como empresa, se nos pidió enviar por fax documentación legal acerca de la compañía, para validarnos como desarrolladores.  Tras eso (unas dos o tres semanas de validación), rellenamos más datos a través de iTunes Connect, un portal donde tienes el control de tus aplicaciones, tus ventas y tu información financiera. Por temas legales, obtuvimos el EIN (similar al CIF de España) y el W-8BEN, otro documento para temas de impuestos. Todo este proceso es algo complejo, pues hay que llamar a la hacienda de Estados Unidos, hablar por teléfono, enviar por fax…  pero con todo y eso, no se nos dio mal.

Aspectos técnicos

El lenguaje nativo para desarrollar en iPhone es Objetive-C. Sin embargo, soporta C++. En Tinted realizamos todo bajo Objetive, pero decidimos crear unas librerías genéricas en C++ para controlar la lógica, la IA… por resultarnos más cómodo y productivo, teniendo también en mente reutilizar código para otras plataformas. Como IDE, utilizamos Xcode, descargable desde Apple (de hecho, viene incluido el SDK). Como herramienta podría mejorar mucho, pero es de agradecer instalar y que sea inmediato ponerse al desarrollo. Sobre la versión de desarrollo, nos basamos en la 2.2.1, para intentar tener la máxima compatibilidad, por ejemplo, con el iPod. El entorno permite tener instaladas varias versiones del SDK, así que también se puede hacer varias compilaciones y pruebas.

En cuanto a dificultades técnicas, hay que poner atención a temas como memoria (el simulador para pruebas pequeñas o rápidas, es útil, pero no está muy logrado, así que hay que asegurarse en el dispositivo que todo funciona de forma correcta, y no sólo con la memoria) o tamaño (si hablamos de un juego casual, debe ocupar lo menos posible en relación calidad-tamaño).

La gestión de los certificados digitales para pruebas y distribución se hace a través de la página de desarrolladores comentada. Es algo incómodo tener que estar renovando certificados, instalándolos…. y la primera vez hay que seguir la guía, siendo algo lioso. Por suerte, hay mucha documentación.

Documentación

Además de la documentación oficial, recomendamos dos libros:

  • Beginning iPhone Development, de la editorial Apress, muy completo, que explica paso a paso cómo iniciarse en el desarrollo, si bien el tema de gráficos no se aborda en exceso.
  • iPhone in Action, de la editorial Manning, divido en dos partes, una para web y otra para el SDK.

Y a nivel comercial

Para la próxima entrada dejaremos los temas comerciales, de negocio, visión del mercado…

Artículos recientes relacionados:


Google Apps como plataforma de correo

Este fin de semana hemos migrado la gestión de nuestro correo a la plataforma Google Apps. Hace unos meses ya habíamos planteado tal posibilidad, debido a la cantidad de correos que nos llegan, y que hay que organizar, guardar, consultar… haciéndose algo caótico el uso mixto personal y profesional en una misma cuenta de google. A pesar de las etiquetas, del buscador.. y puesto que seguimos creciendo en actividad, colaboradores… hemos optado por la migración. Y, de hecho, es algo que deberíamos haber hecho mucho antes, pero entre unas cosas y otras lo hemos ido retrasando, hasta ahora.

La verdad es que el entorno puede ser muy productivo, teniendo además integradas otras aplicaciones como el calendario, google docs o una página de inicio personalizada. Si bien la configuración del servicio puede ser algo compleja (para ello requerimos cierta ayuda de Imobilis, CTO en Innetia), la ayuda del sistema (y en nuestro caso, también del host) puede solucionar la parte técnica.

A nivel corporativo también es otro avance. Más identidad, más organización… nos convence! :P

Artículos recientes relacionados:


Trabajando con ProjectPier

Hace tiempo, publicamos un artículo comentando diferentes gestores de proyectos que habíamos encontrado interesantes. Tras el último cambio de servidor y, debido al poco uso que veníamos dando a la intranet (en parte, por escasez de trabajo en grupo), dejamos inoperativo el sistema en el que se basaba, dotproject. De vuelta a la coordinación de varios perfiles, colaboradores…. vimos la necesidad de volver a disponer de ese espacio, buscando más opciones basadas en software libre.

En el portal Open Source CMS se relacionan muchas aplicaciones libres, teniendo una sección dedicada a gestores de proyectos / groupware. La mayoría de ellas ya las conocíamos de antes, pero a través de portal (se puede acceder a demos) probamos algunas de forma más analítica. También pensamos en volver a dotproject, pero con php5 parece que no funciona muy bien. Entre nuestras más valoradas:

  • Egroupware: es una aplicación que siempre llama la atención por su funcionalidad. Integra muchas utilidades y sistemas, como wiki interna, contactos… Sin embargo, es difícil de configurar y requiere tocar temas de servidor, descartándolo a priori, pues tampoco necesitamos tanta potencia.
  • Collabtive: tiene una interfaz gráfica muy trabajada, para lo que suele ser habitual en estos casos. Además controla temas como importación / exportación de datos e informes, permisos por rol y proyecto, chat..
  • ProjectPier: un gestor simple, pero a la vez útil y flexible. Finalmente, nos quedamos con él.

La instalación fue rápida, no es un paquete pesado y en una pantalla quedó todo configurado, sin mayor problema. En cuanto a la administración, tampoco requiere esfuerzo, permitiendo cambiar el tema visual, los datos para el envío de emails, almacenamiento de archivos… así como datos relacionados con compañías, usuarios, proyectos..

Permitir themes es un punto extra, pues se puede adecuar el estilo visual y hacerlo más usable, intuitivo o ajustarlo a los colores corporativos. Sobre la gestión de proyectos, soporta lista de tareas, tareas, milestones, mensajes, eventos.. pudiendo definir además (de forma muy fácil) qué personas tienen acceso y con qué permisos a cada uno. Otro punto interesante es que la actividad reciente puede seguirse mediante rss y en general, una interfaz amigable.

Artículos recientes relacionados:


Importando contactos en una red social

Una de las funcionalidades que suelen dar mucho juego a una red social, es su capacidad para generar nuevos usuarios a partir de los ya existentes, utilizando una herramienta dentro del sistema. Es decir, es más fácil que un usuario invite a otro usando un formulario en la red social, que ese mismo usuario escriba un centenar de emails recomendando la aplicación. Y el asunto ya sería muy cómodo si también, una vez el usuario invitado se registrase, se agregara de forma automática a nuestra lista de amigos (y se nos avisara vía email de su registro). Somflee, desde hoy, cuenta con todo esto.

Hace unos días, casi de casualidad, por twitter, me enteré de la existencia de un script llamado OpenInviter. Eché un ojo a la web y nos pareció sorprendente el número de proveedores de email y redes sociales compatibles (consta de un sistema de plugins, contando con uno para cada servicio). Otra cosa a tener muy en cuenta es que se trata de software libre, característica que hemos aprovechado (aparte de para ahorrar en tiempos de crisis) para cambiar bastantes cosas del código, adaptándolo a Earwyn. En esa adaptación hemos integrado la clase principal con el funcionamiento del framework, haciendo uso de nuestro sistema de ficheros multi – idioma, de nuestra clase para el envío de emails, de funcionalidades extra en el agregador….

La verdad es que ha sido un gran descubrimiento. El código es bastante legible y a pesar de los costes en tiempo de la integración, nos ha resultado tremendamente productivo. En cuanto a la documentación, si bien los scripts no están documentados en exceso, el manual de instalación está muy detallado, paso por paso. (Requiere una configuración específica de PHP, pero está bien explicado). Por último, para la puesta en marcha, se adjunta un ejemplo que te dá lo básico hecho, así que a priori y salvo que se tenga que hacer más desarrollo extra como en nuestro caso, es de inmediato arranque.

Artículos recientes relacionados:


Gestores de proyectos

En la serie de artículos dedicados al tema de organización de grupos de desarrollo, hemos hablado mucho sobre la importancia de gestionar los proyectos, de coordinarse, de delegar tareas concretas y repartir el trabajo… pero no analizamos las herramientas concretas para realizar todos estos procesos. En este artículo, comentaremos unas cuantas…

  • Bonita. Desarrollado en Java, software libre, orientado de un modo especial a conceptos de la ingeniería de software.
  • DotProject. Un sistema bastante completo, actualmente el que usamos en nuestra intranet. La organización de tareas, calendario, proyectos.. está bastante pulido… pero en temas de permisos, grupos de usuarios… aún potente, queda algo flojo, entre otras cosas porque resulta algo complicado de manejar. Tiene detalles importantes, pero también alguna que otra lagunilla. Aún así, una buena elección.
  • PHProjekt. Un proyecto de los más extendidos. Foros, tareas, perfiles y skins o temas, pero nada del otro mundo.
  • Trac. Una opción muy interesante, a pesar de tener una interfaz algo simple. Trae un cliente de subversion, sistema de tickets, wiki, tareas y milestones
  • ProyectPier. Manejo de tareas, proyectos, grupos y ficheros. Simple, pero eficaz y amigable.
  • EGroupware. Otra aplicación que integra muy bien diferentes funcionalidades: gestor de tareas, archivos y tracker, wiki, contactos…
  • OpenACS. Una herramienta completa: gestión de proyectos, sistema de tracking, tareas, CMS, foros, calendario… Corre bajo bases de datos Oracle / PostgreSQL, es open source y está enfocado a sitios con mucha información y tráfico.
  • Acollab. Sencilla aplicación que incorpora chat, foros, gestor de archivos, grupos y miembros, además de contar con un espacio para editar documentación de forma colaborativa.

Y otros dos proyectos comerciales, que también nos parecen curiosos…

  • Project.net. Gestor de proyectos comercial, de código abierto. Parece también muy completo
  • Assembla. Se trata de un servicio online, que ofrece muchas posibilidades de gestión. Espacio gratuito para proyectos públicos / libres (con opción de pago que amplía características, como privatizar el entorno), subversion, tracs, wiki…. todas las herramientas básicas.
  • BaseCamp. Del estilo de Assembla, quizás más pulido, pero de mayor coste, tiene varios planes para adaptarse a la necesidad del usuario.
  • MetoCube. Aunque se trata de un sistema de documentación de procesos, puede servir como gestor de proyectos, pues está bastante depurado, pudiendo probar una demo online.

En la página Open Source CMS, en la sección de groupware, se relacionan estos y varios gestores más, para seguir teniendo donde elegir. Y tú, ¿cuál recomiendas?

Artículos recientes relacionados: