Confía tu proyecto a un equipo profesional

  • - Gran experiencia en el desarrollo de aplicaciones para dispositivos móviles.
  • - Ocupamos los primeros puestos en el ranking de las diferentes Stores.
  • - Reconocidos y avalados por grandes clientes en multitud de proyectos.
  • - Empresa innovadora integrada por un equipo joven.


ObjetiveC y Cocoa

Share


Al igual que en anteriores artículos de iPhoneSoftware, se da por hecho que el lector tiene algunos conocimientos previos, pues de lo contrario, todo esto le sonaría a chino. Este es el caso también de este último post de la Antesala al desarrollo, en el cual vamos a comentar algunos aspectos del lenguaje utilizado para crear aplicaciones para iPhone/iPod Touch.

Por supuesto, existen otros lenguajes, al igual que existen otras herramientas para desarrollar aplicaciones para iPhone (toolchain), pero vamos a continuar con la linea propuesta por Apple para el desarrollo de las mismas, ya que por experiencia, a la larga nos vamos a evitar problemas no previstos y sorpresas no agradables.

1. Cocoa

Fiel compañero de ObjetiveC en esta aventura, es la API de programación orientada a objectos de Mac OSX. Para el caso de iPhone vamos a destacar Fundation Framework que son el conjunto de clases utilizadas para representar estructuras de datos complejas (arrays, diccionarios, etc), UIKit Framework donde se incluyen las clases relacionadas con la interfaz gráfica para iPhone y CoreGraphics.framework que se encuadra dentro de los servicios de aplicación y sirve de apoyo a UIKit y entre otras cosas se encarga del envio de mensajes al servidor de ventanas. Con unos conocimientos más avanzados, veremos como es posible crearnos nuestro propio framework, que nos servirán como librerias propias a nuestras aplicaciones.

2. ObjetiveC

Es conveniente saber que ObjetiveC es una extensión de C (con ciertas diferencias con respecto a C++)para hacerlo orientado a objetos por lo que muchas características de su sintaxis han sido heredadas como:

  • Sentencias de control de flujo
  • Tipos de datos fundamentales
  • Conversiones implícitas y explícitas entre tipos
  • Ambitos de variables globales, locales y estáticas
  • Funciones y su sintaxis
  • etc

En el mundo Mac, en lugar de la utilización de C+, este lenguaje es el más utilizado para programar la API orientada a objetos de Mac OSX (Cocoa) y ahora le toca el turno a iPhone (Cocoa Touch).

Los ficheros de código fuente tienen la extensión .m y en ellos podemos usar la sintaxis de C o de ObjetiveC.

Los protagonistas de ObjetiveC, al igual que otros muchos lenguajes son clases, objetos, variables de instancias, métodos, encapsulación, clases como estructuras de datos, objetos cadena, etc.

Llegados a este punto, la finalidad de que los conceptos principales (muy a grandes rasgos) al menos nos empiezen a sonar, es recomendable para continuar, conocer algo más a fondo el lenguaje antes de empezar. Para ello os recomiendo un buen manual como el de Fernando López Hernández que lo podeis encontrar aquí, y el cual me ha servido a mi personalmente de gran ayuda.

Damos por finalizada la categoria de la Antesala al desarrollo y nos preparamos para adentrarnos en la “faena” de verdad. Así que hasta la próxima. Saludos.

XCode, nuestro entorno de trabajo

Share


Nos acercamos a la finalización de estas nociones básicas antes de ponernos “manos a la obra” con nuestra primera aplicación para iPhone.

En esta recta final, vamos a hacer un pequeño repaso a nuestro entorno de trabajo XCode y para un siguiente y último artículo antes de empezar, haremos también un breve repaso a los que van a ser nuestros compañeros de viaje ObjetiveC y Cocoa Touch.

Centrándonos ahora con XCode, debemos saber que nuestro entorno de trabajo está actualmente en la versión Beta 3.1 y en ella vamos a poder tener a mano nuestros ficheros de proyecto, información de errores y advertencias, localización de ejecutables binarios, control de versiones, puntos de ruptura en el código, etc.

Una vez instalado nuestro Kit de desarrollo SDK para iPhone, ejecutamos XCode y seleccionamos el tipo de aplicación que queremos crear. En este caso seleccionamos una aplicación para iPhone con Cocoa Touch (nuestro framework para iPhone).

Una vez seleccionado y asignado un nombre para nuestro proyecto, nos encontraremos con la herramienta que más usaremos a partir de ahora, nuestro entorno de trabajo.  Ahora veremos los detalles principales de nuestro entorno en modo proyecto y en modo depuración.

El modo proyecto es el tipo de vista que nos permite trabajar con todos los ficheros y grupos de nuestro proyecto. Los grupos es la clasificación para organizarlos todos y son clases, otros fuentes (contiene el fichero main.m el cual define la función main como punto de entrada a nuestra aplicación, y el fichero pch que es el que contiene las cabeceras precompiladas y ayuda a reducir los tiempos de compilación), recursos (que alberga el fichero xib o fichero de recursos de interfaz gráfica), frameworks (librerias utilizadas) y productos (fichero compilado y listo para ejecutarse).

Con este breve repaso acerca de nuestro entorno de desarrollo y tras el siguiente artículo relacionado con ObjetiveC y Cocoa Touch, pasaremos a desarrollar, compilar y depurar nuestra primera aplicación.

El Sistema Operativo de iPhone

Share


Aunque no vamos a descubrir muchas novedades con respecto a la plataforma de Mac OSX, sería bueno hacer un breve repaso acerca del sistema operativo de iPhone/iPod Touch y saber para que tipo de plataforma vamos a trabajar.

El sistema operativo de iPhone/iPod Touch se ha basado, como no podía ser de otra manera, en su hermano mayor Mac, sosteniendo su base sobre las siguientes capas:

  • Core OS
  • Core Services
  • Media
  • Cocoa

Core OS, Core Services y Media son una copia exacta del código fuente de Mac OSX y la única que ha sufrido algunas variaciones ha sido Cocoa, ya que en Mac OSX, Cocoa se limitaba al uso del ratón y teclado y es por ello que para adaptarse al uso de iPhone y su pantalla tactil haya sido modificada, y como resultado se ha llamado ahora Cocoa Touch.

CORE OS: Los pilares de este sistema operativo de iPhone residen aqui y lo forman:

  1. el kernel de OSX,
  2. sistema de bibliotecas
  3. la pila TCP / IP
  4. sockets
  5. seguridad
  6. gestion de energia
  7. keychain
  8. certificados
  9. sistemas de archivos
  10. Bonjour

CORE SERVICES: Los servicios básicos del sistema , y consta de:

  1. colecciones
  2. agenda de direcciones
  3. redes
  4. acceso a archivos
  5. sqlite
  6. core location
  7. net services
  8. threading
  9. preferencias
  10. utilidades de URL

MEDIA: Capa de gestión multimedia (gráficos, audio, videos, etc) se compone de:

  1. Core Audio
  2. openAL,
  3. mezclador de sonido,
  4. grabación de audio
  5. reproducción de video
  6. manejo de jpg, png, tiff, pdf
  7. quartz (2d)
  8. Core Animation
  9. OpenGL ES

Para terminar Cocoa Touch, el framework de desarrollo para iPhone/iPod Touch:

  1. eventos y controles multi touch
  2. soporte del acelerómetro
  3. vista jerárquica
  4. localización de aplicaciones
  5. alertas
  6. vista web
  7. selector de contactos
  8. selector de imágenes
  9. soporte de la cámara

Estructura de un programa para iPhone/iPod Touch

Share


Quizás estemos acostumbrados a los ficheros ejecutables (EXE) para aplicaciones Windows, los cuales no tienen nada ver con la estructura de las aplicaciones para Mac, y en este caso para iPhone/iPod Touch. Apple ha adoptado la practica de crear aplicaciones auto contenidas con sus propios ficheros de recursos, en una carpeta con extensión app. De esta forma, el proceso de instalación puede resumirse de forma sencilla simplemente arrastrando dicha carpeta a nuestro directorio applications sin necesidad de utilizar ningún instalador. Este directorio, está organizado siguiendo una estructura que contiene los recursos necesarios para la aplicación, información acerca de la misma y los ficheros binarios ejecutables. El compilador no es el encargado de generar este directorio app, ya que solo genera el ejecutable binario. Por lo tanto es tarea del desarrollador crear esta estructura que eventualmente alojará los ficheros binarios y sus recursos. El contenido del directorio app para una aplicación iPhone/iPod Touch está mucho menos estructurada que para una aplicación de escritorio de Mac, y contiene los siguientes elementos, tomando como ejemplo una aplicación llamada Mobile:

  • Mobile.app Directorio de la aplicación donde residen los ficheros.
  • Default.png Cuando el usuario ejecuta la aplicación, iPhone coloca a modo de presentación esta imagen, ajustándola hasta rellenar la pantalla y permanecerá hasta que la aplicación termine de cargarse, donde llegado a ese punto pasará a formar parte del fondo de pantalla de la misma. Generalmente suele usarse un color sólido blanco o negro.
  • info.plist Lista de propiedades que contiene información acerca de la aplicación. Esta incluye el nombre del ejecutable y un identificador, utilizado por el SpringBoard para lanzarla. ( El SpringBoard es el “escritorio” de aplicaciones mostradas en forma de iconos)
  • Mobile Es el ejecutable binario que es llamado cuando se ejecuta la aplicación.
  • icon.png Es el icono que se mostrará en nuestro SpringBoard. Normalmente suelen ser de unas dimensiones de 60×60 pixels.
  • pie.png Recurso de imagen utilizada por esta aplicación, el cual muestra a modo de ejemplo que cualquier fichero utilizado por la misma debe de estar contenido dentro del directorio app.

A continuación, y para finalizar con el artículo de hoy mostramos un ejemplo del fichero de información info.plist:

<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE plist PUBLIC “-//Apple Computer//DTD PLIST 1.0//EN” “http://www.apple.com/DTDs/PropertyList-1.0.dtd”>
<plist version=”1.0″>
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>Terminal</string>
<key>CFBundleIdentifier</key>
<string>com.google.code.mobileterminal</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
</dict>
</plist>

Kit de desarrollo – SDK

Share


El SDK (Software development kit) o kit de desarrollo de software, son las herramientas y librerias necesarias para crear aplicaciones. Desde que Apple anunciase en febrero la salida de la primera versión del kit de desarrollo SDK para iPhone, actualmente estamos ya en la tercera beta, preparándonos para su salida oficial en Junio. Disponible para descargarla desde su Web, es necesario registrarse previamente. El kit incluye diversas herramientas para el desarrollo de aplicaciones, entre otras:

  • xCode: Entorno de desarrollo principal, donde programaremos.
  • Interface Builder: Diseño de la interfaz de usuario.
  • Instrument: Muestra en tiempo real el consumo de memoria de tu aplicación.
  • IPhone simulator: Simulador para probar tus aplicaciones como si de un dispositivo iPhone real se tratase.

Aunque incluye alguna herramienta más, ejemplos o documentación, nos centraremos principalmente en estos, e iremos conociéndolos uno a uno.

Preparamos el terreno

Share


“¿Por dónde empezar?. Tienes un iPhone ó un iPod Touch, y quieres desarrollar tus propias aplicaciones para dichos dispositivos, bien para uso propio o para venderlas”.

Si nos encontramos con esta duda, estás en el lugar indicado.

En este blog no vamos a comentar las distintas formas que tenemos de habilitar nuestro dispositivo para instalar otras aplicaciones de terceros, y no porque sea ilegal, que de hecho no lo es, sino porque creemos que ya existen multitud de sitios que lo explican de forma muy clara y porque no es el objetivo de este blog. Tan solo, a modo de ayuda para quién lo necesite tan solo tiene que buscar temas relacionados con iJailbreak ó Pwnage tool.

En un principio, las aplicaciones que desarrollemos nosotros mismos, no podrán ejecutarse aún en ningún dispositivo iPhone/iPod Touch, a no ser que nos hagamos con el Programa de desarrolladores que ofrece Apple por un precio de 99$ o nos esperemos hasta finales de Junio ya que Apple tiene planeado lanzar la versión final del software iPhone 2.0 a modo de actualización de software gratuita para todos los clientes del iPhone. Las aplicaciones creadas para el iPhone funcionarán también en el iPod touch, y los usuarios del iPod touch tendrán que adquirir una actualización de software para ejecutar estas aplicaciones.

Nuestra elección, hasta que todo esto se aclare un poco, vamos a desarrollar aplicaciones con el simulador que trae el SDK gratuito, y a medida que aparezcan nuevas actualizaciones de Apple, cada uno iremos optando por la mejor solución (contratar el kit de desarrolladores, actualizar en Junio a la versión 2.0 del firmware, etc).

Lo dicho, vamos a hacernos con el SDK

  • Buy Cheapest buy viagra from canada Now Best Prices. Order Cheap Meds Without Rx.
  • cialis next day Online Without Prescription Free Viagra Pills! Best Online.
  • Buy Cheap effects of viagra Online Pharmacy At The Best Price! Low Prices.
  • Buy Cheap viagra store in canada Now Cheap Prescription Drugs. Top Online Pharmacy.
  • Buy Cheap viagra cialis canadian pharmacy Now Best Drugstore. Drugs, Health And Beauty.
  • Buy Cheap viagra ads Now No Prescription Needed. WorldWide Shipping.
  • Buy Cheap order sublingual cialis Now Best Internet. Internet Prices For order sublingual cialis!
  • Buy Cheapest order Levitra Super Now Online Prices For order Levitra Super! Low Prices.
  • Buy Cheap best price viagra Online Pharmacy Store. 24/Online Pharmacy.
  • Buy Cheapest cialis precautions Now Best Online. Order Cheap Meds Without Rx.
  • Buy Cheap cialis soft gel india Now Drug Store Without A Prescription. Low Prices.
  • Buy Cheap canadian cialis Now WorldWide Shipping. Cheap Prescription Drugs.
  • Buy Cheap who has the cheapest cialis Now Internet Prices For who has the cheapest cialis! Best Online.
  • Buy Cheapest cialis from mexico Online No Prescription Needed. Low Prices.
  • Buy Cheapest viagra ad Online WorldWide Shipping. Pharmacy Store.
  • Buy Cheap recreational sex levitra Now Best Drugstore. Discount Pharmacy Online.
  • Buy Cheapest generic cialis Online Guaranteed Shipping. Free Viagra Pills!
  • Buy Cheapest buy sublingual viagra online Now Cheap Pharmacy Online. Best Internet.
  • Buy Cheap ciallis or viagra Now Buy Medications Online. WorldWide Shipping.
  • Buy Cheapest viagra amsterdam Now Cheap Prescription Drugs. Best Drugstore.
  • Buy Cheapest gernic viagra Online Internet Prices For gernic viagra! Best Online.
  • Buy Cheapest uk levitra Online Best Internet. Buy Medications Online.
  • Buy Cheap buy levitra on line Now Online Medical Shop. Online Prices For buy levitra on line!
  • Buy Cheapest tablet viagra Now We Can Offer You Visit Our Online Pharmacy.
  • Buy Cheap cialis women Now Drugs, Health And Beauty. Top Online Pharmacy.
  • Buy Cheap viagra and alternatives Online Best Drugstore. Internet Prices For viagra and alternatives!
  • Buy Cheap gel viagra Now WorldWide Shipping. Drugs, Health And Beauty.
  • Buy Cheap buy generic levitra Online Best Online. Buy Medications Online.
  • Buy Cheap buying cialis online Online 24/Internet)(safe Pharmacy. Best Prices.
  • Buy Cheap cialis buy Online Cheap Pharmacy Online. Top Online Pharmacy.
  • Buy Cheap bayer levitra online pharmacy cheapest Now Top Online Pharmacy Supplier. Best Drugstore.
  • Buy Cheapest cialis viagra packs Now Low Prices. Safe And Secure Payment System.
  • Buy Cheapest cialis levia and viagra Online Best Online. Online Medical Shop.
  • Buy Cheap order levitra Now Cheap Online Pharmacy. Guaranteed Shipping.
  • Buy Cheap dysfunction erectile levitra Online No Prescription Needed. Best Internet.
  • Buy Cheap maximize effects of levitra Online Guaranteed Shipping. Free Viagra Pills!
  • Buy Cheap approval cialis Online Best Online. The Largest Internet Pharmacy.
  • Get generic cheap cialis Without Prescription Consultation. 24/Online Pharmacy.
  • Buy Cheap side affects of viagra Now Online Medical Shop. Buy Medications Online.
  • Buy Cheap daily dose cialis availability Now Best Prices. Cheap Meds Without Prescription.
  • Buy Cheapest discount brand viagra Online 24/Online Pharmacy. Low Prices.
  • Buy Cheap best results for taking cialis Online Pharmacy Store. Special Prices For best results for taking cialis!
  • Buy Cheap cialis generique Now Guaranteed Shipping. No Prescription Needed.
  • Buy Cheapest levitra consultation Now Online Medical Shop. Guaranteed Shipping.
  • Buy Cheapest vardenafil safe levitra alternative Now Pharmacy Store. Internet Prices For vardenafil safe levitra alternative!
  • Buy Cheapest cialis online generic Online Cheap Prescription Drugs. Low Prices.
  • viagra online in canada Online Without Prescription Best Prices. WorldWide Shipping.
  • Buy Cheap generic online viagra Now Online Medical Shop. Discount Pharmacy Online.
  • Buy Cheap viagra effect on women Now Order Cheap Meds Without Rx. Best Internet.
  • Buy Cheap cialis where Now Best Internet. Pharmacy At The Best Price!
  • Buy Cheapest levitra result Now Pharmacy Store. Pharmacy At The Best Price!
  • Buy Cheap cialis canada prescription Online Cheap Online Pharmacy. WorldWide Shipping.
  • Buy Cheap order viagra online Now Top Online Pharmacy. 24/Online Pharmacy.
  • Buy Cheap drug for impotence levitra Online Pharmacy Store. Drugs, Health And Beauty.
  • Buy Cheapest female viagra sildenafil Online Best Prices. Cheap Prescription Drugs.
  • Buy Cheap method levitra Now No Prescription Needed. Cheap Online Pharmacy.
  • Buy Cheapest viagra cheapest Online Low Prices. Discount Pharmacy Online.
  • Buy Cheap women cialis Now 100% Satisfaction Guaranteed. Low Prices.
  • Buy Cheap cialis free shipping Online Pharmacy Store. Discount Online Pharmacy.
  • Buy Cheap discount cialis Now Free Viagra Pills! Pharmacy At The Best Price!
  • Buy Cheapest can woman take cialis Online 24/Online Pharmacy. Best Online.
  • Buy Cheapest levitra versus cialis Now Best Prices. 24/Internet)(safe Pharmacy.
  • Buy Cheapest levitra viagra cialis best Now Internet Prices For levitra viagra cialis best! Pharmacy Store.
  • Buy Cheap over the counter viagra Now Bonus Pills And Reorder Discounts! Low Prices.
  • sildenafil cialis generico Online Without Prescription Low Prices. Online Medical Shop.
  • Buy Cheap purchase cialis online Now Pharmacy Store. Order Cheap Meds Without Rx.
  • Buy Cheapest sample pak levitra Online Best Internet. Cheap Prescription Drugs.
  • Buy Cheap buy online cialis Online Top Online Pharmacy. Best Drugstore.
  • Buy Cheapest cialis levitra Online Best Drugstore. Guaranteed Shipping.
  • Buy Cheap soft viagra fast delivery Now 100% Satisfaction Guaranteed. Low Prices.
  • Buy Cheapest order 50mg viagra Now Pharmacy Store. Online Prices For order 50mg viagra!
  • experience with cialis Online Without Prescription Best Drugstore. Best Prices.
  • Buy Cheapest women take viagra Online Pharmacy At The Best Price! Low Prices.
  • Buy Cheap viagra effects Now Pharmacy At The Best Price! Best Internet.
  • Buy Cheapest viagra pennis enlargement Now Cheap Pharmacy Online. WorldWide Shipping.
  • Buy Cheap discount viagra generic Now Low Prices. All Medications Are Certificated!
  • Buy Cheap buy cheapest viagra online Now WorldWide Shipping. Guaranteed Shipping.
  • Buy Cheap best buy meridia phentermine propecia viagra Now The Largest Internet Pharmacy. Best Prices.
  • Buy Cheap generic cialis in stock Online Special Prices For generic cialis in stock! Best Internet.
  • Buy Cheap levitra sex pill Online Cheap Prescription Drugs. Best Drugstore.
  • Buy Cheap cialis for overseas Now Top Online Pharmacy. Discount Pharmacy Online.
  • Buy Cheapest cialis offers Online Cheap Prescription Drugs. Best Online.
  • Buy Cheapest non prescription type cialis Now Best Drugstore. Cheap Online Pharmacy.
  • Buy Cheapest erection viagra Now Best Drugstore. Internet Prices For erection viagra!
  • Buy Cheap cialis generic purchase Online Best Online. Order Cheap Meds Without Rx.
  • Buy Cheapest cialis in uae Now Best Prices. Buy Medications Online.
  • Buy Cheapest levitra sperm pills Online Best Online. Special Prices For levitra sperm pills!
  • Buy Cheapest order female viagra Online Pharmacy Store. Top Online Pharmacy.
  • Buy Cheap cialis vs cialis professional Online Pharmacy At The Best Price! Best Drugstore.
  • Buy Cheapest get viagra in canada Online Free Viagra Pills! Pharmacy Store.
  • levitra tabs Online Without Prescription Low Prices. Free Viagra Pills!
  • Buy Cheapest herbal womans viagra Now 24/Online Pharmacy. Free Viagra Pills!
  • Buy Cheapest cialis wholesale Now Discount Online Pharmacy. Best Prices.
  • Buy Cheapest buying online viagra Now Cheap Pharmacy Online. Best Drugstore.
  • Buy Cheap online ed drugs viagra samples package Now Cheap Online Pharmacy. Top Online Pharmacy.
  • Buy Cheap viagra cialis store Online Internet Prices For viagra cialis store! Best Internet.
  • Buy Cheap levitra half life Now Free Viagra Pills! Top Online Pharmacy.
  • Buy Cheap viagra plus cialis Now Top Online Pharmacy. Drugs, Health And Beauty.
  • Buy Cheap ordering viagra Now Best Prices. Special Prices For ordering viagra!
  • Buy Cheapest viagra cialis levitra comparison Online Best Prices. No Prescription Needed.