Ir al contenido principal

Conociendo iPhone/iPod Touch

Después de algunos posts sobre movilidad, hay algunos de vosotros que me habéis preguntado por la programación del iphone y iPod Touch.

Las plataformas más usuales son Symbian (Nokia, Sony Ericsson, PSION, Samsung, Siemens, Arima, Benq, Fujitsu, Lenovo, LG, Motorola, Mitsubishi Electric, Panasonic, Sharp), Rim (Blackberry), Windows Mobile (varios fabricantes, como HTC, Samsung, HP), Google Android (HTC, Samsung), iPhone OS (iPhone / iPod Touch). Con Java, podemos desarrollar aplicaciones para Symbian, Rim, Android (con su SDK) y Windows Mobile. Cierto es que para Windows Mobile, por ejemplo, yo prefiero usar .NET, siempre que no tengamos como Requisito No Funcional que la aplicación sea desarrollada en software libre. Para el iPhone resulta muy complejo el desarrollo en Java, más por problemas de licencia, que por cuestiones técnicas. Por ello, lo mejor es usar Objective-C.

Particularidades del iPhone / iPod Touch

- Pantalla con resolución de 480x320px
- Una sola aplicación capta el foco, las demás permanecen cerradas.
- Memoria RAM escasa. Hay que tener presente que hay que liberar recursos cuando no hacen falta (en Java este proceso es automático)
- Hardware adicional: GPS, acelerómetro, teléfono...
- Es posible acceder a datos PIM: correo, contactos,...




Aplicaciones para iPhone: AppStore
En el AppStore se pueden encontrar todas las aplicaciones para iPhone. Se trata de un gran repositorio de programas.
En él, se pueden encontrar aplicaciones gratuitas y de pago (en este caso, el 30% de cada venta va a parar a Apple), y funciona de forma similar a como lo hace iTunes, generando un beneficio de 430 millones de dólares y realizándose más de 1000 millones de descargas.

Para poder publicar en AppStore hay que tener una licencia de desarrollador que viene a salir por unos 80 euros. La aplicación que desarrollemos deberá cumplir las Condiciones de Uso, que en ocasiones es bastante restrictiva, por ejemplo, se han desestimado aplicaciones por suponer competencia de la análoga de Apple.

Arquitectura



Foundation Framework son las clases básicas para programar, común al Macintosh y al iPhone / iPod.

Cocoa Touch Framework gestiona, entre otras cosas, los eventos y la interfaz táctil. Es exclusiva a iPhone / iPod.

Objective-C es parecido a ANSI C, pero su sintaxis está extendida a Orientación a Objetos. Se trata de un lenguaje muy expresivo, para hacernos una idea, esta sería la declaración de un método:

-(NSArray *) listaCiudadesMayoresDe: (NSNumber *)kilometros delPais: (NSString *)pais;


No existe el control de acceso a los métodos, ya que todos son "public".
Otra particularidad del lenguaje es que todos los objetos vienen referenciados por su puntero. Por tanto tendremos que prestar especial atención a reservar memoria y liberarla cuando ya no sea necesaria.

Esto solo son las bases para el que quiera adentrarse en este mundo del desarrollo de aplicaciones para iPhone, que es bastante peculiar, comparado con la programación del resto de plataformas.

Comentarios

Publicar un comentario

Entradas populares de este blog

Métrica v3 vs Metodologías Ágiles

Métrica v3: Metodología de Planificación, Desarrollo y Mantenimiento de sistemas de información que propone el Ministerio de Administraciones Públicas.

Cualquier defensor de la técnicas, metodologías y herramienta ágiles sostendrá que Métrica v3 es un sistema demasiado pesado, tanto en su implementación, como en sus procesos de mantenimiento. Yo lo corroboraría, pero sin demonizarla.

Estoy acostumbrado a que en este mundo de la informática se creen auténticos "dogmas de fe", que acarrean sus propias "guerras religiosas". Algunos ejemplos podrían ser: Software privativo vs Software libre, Windows vs Linux, Web Services vs Rest, Oracle vs MySQL, Explorer vs Firefox, Apache vs IIS, Eclipse vs Netbeans, y así podríamos seguir con un largo etcétera. En vez de buscar la mejor solución, o soluciones universales, yo propongo realizar un intenso análisis, y respondernos ciertas preguntas. Por regla general, no hay una solución que valga "para todo". La pregunta que …

¿Por qué Yii Framework?

En Soltel presumimos de tener una actitud innovadora, que nos obliga a probar las distintas tecnologías que van llegando al mercado, y que ajustándose a nuestro stack, puedan mejorar en algo nuestros desarrollos.

Una vez analizado el framework o librería, lo probamos en proyectos internos que nos permitan conocer con más detalle sus características. En este trabajo de campo es donde realmente se decide si es interesante o no añadir el framework a nuestro stack, y con ello ofrecerlo en los desarrollos que realizamos para nuestros clientes.

En este proceso, llevábamos bastante tiempo buscando un framework PHP que realmente aportara valor y se adecuara en tiempos de desarrollo, rendimiento y arquitectura a lo que necesitamos ofrecer en nuestros proyectos. Ya habíamos descartado frameworks como Prado, por ser bastante pesado y tener una arquitectura demasiado compleja.

Con Yii, sin embargo, nos hemos llevado una agradable sorpresa. Yii es un framework PHP, libre (licencia BSD), basado en pr…

Arquitectura J2EE - Patrón MVC

El concepto de reutilización del software, no se ciñe solo a usar las mismas funciones, clases, o métodos para resolver problemas similares, sino que se extiende a otras fases del desarrollo del software como puede ser, como es el caso que nos ocupa en este post, la arquitectura.

En la reutilización a nivel de arquitectura interna, adquieren especial relevancia los patrones de diseño. En concreto, hoy quiero hablar del Patrón Modelo-Vista-Controlador. El MVC es un patrón muy usado en distintos tipos de aplicativos.

He escuchado comentarios de programadores, en los que asocian este patrón a J2EE, dado que hay varios frameworks que lo implementan, como por ejemplo Spring MVC, pero MVC, como el resto de patrones, no es exclusivo de una tecnología. De hecho en las primeras iteraciones de diseño, abstraemos la arquitectura de la tecnología de programación. En Soltel hemos adoptado este patrón en multitud de desarrollos de muy distinta naturaleza: movilidad J2ME, movilidad .NET, C#, y por sup…