Professional Documents
Culture Documents
Introducción a iOS
iOS 01
Índice
OBJETIVOS ........................................................................................................ 3
INTRODUCCIÓN ................................................................................................. 4
1.1. Introducción a Objective-C ....................................................................... 5
1.1.1. Comentarios ........................................................................................ 5
1.1.2. Estructura ............................................................................................ 6
1.1.3. Instanciación de objetos ...................................................................... 7
1.1.4. Mensajes a objetos .............................................................................. 7
1.1.5. Interfaz e implementación .................................................................... 8
1.1.6. Importación de código........................................................................ 12
1.1.7. Clases más usadas ........................................................................... 12
1.1.8. Protocolos y categorías ..................................................................... 13
1.2. Introducción a iOS ................................................................................... 15
1.2.1. Cocoa touch ...................................................................................... 15
1.2.2. Media ................................................................................................. 16
1.2.3. Core services ..................................................................................... 17
1.2.4. Core OS............................................................................................. 18
1.3. Introducción a Xcode .............................................................................. 19
1.3.1. Navegador de archivos del Proyecto ................................................. 24
1.3.2. Editor de código principal ................................................................... 25
1.3.3. Visor de utilidades ............................................................................. 27
1.3.4. Menú principal ................................................................................... 29
1.3.5. Estructuración de un proyecto ........................................................... 30
RESUMEN......................................................................................................... 35
Introducción al IOS 1
iOS 01
Objetivos
Introducción al IOS 3
Formación Abierta
Introducción
Esta es la primera unidad del libro, dónde se tratará de introducir las partes más
importantes del desarrollo de aplicaciones para iOS.
Daremos una introducción a iOS, qué es y por qué está compuesto. Conoceremos
el lenguaje Objective-C que se usa para desarrollar aplicaciones en iOS, explicando
las facetas más básicas del mismo para comprenderlo bien. Por ultimo realizaremos
los primeros pasos en el IDE (entorno de desarrollo) Xcode, para crear una
aplicación desde cero.
4 Introducción al IOS
iOS 01
1.1.1. Comentarios
Debido a que se van a utilizar a lo largo de este tema, se comienza indicando la
forma de escribir comentarios entre el código Objective-C.
// Esto es un comentario
/* Esto también es un comentario */
Introducción al IOS 5
Formación Abierta
1.1.2. Estructura
Tanto en la programación para Mac OS X como en la programación para iOS, las
aplicaciones comienzan en una función main:
#import <Foundation/Foundation.h>
#import “miLibreria.h”
Los ficheros importados mediante < y > se refieren a aquellos que pertenecen a
librerías del sistema, normalmente del núcleo / core del sistema operativo o de sus
APIs.
En cuanto a aquellos que se encuentran entre comillas, suelen ser ficheros creados
por uno mismo o por terceros.
NSLog es la instrucción que permite escribir en la consola y es muy útil para temas
de depuración.
6 Introducción al IOS
iOS 01
- (id) init {
self = [super init];
if (self) {
variableInstancia1 = valor1;
variableInstancia2 = valor2;
.
.
.
}
return self;
}
Haciendo una comparación mayor, el método alloc coincidiría con el new de Java
(es un método de clase) y el método init coincidiría con el constructor (método de
instancia).
[referenciaAObjeto metodo:parametro];
Introducción al IOS 7
Formación Abierta
[objeto metodoConEsteParametro:parametro];
[objeto metodoConEsteParametro:parametro
yEsteOtro:otroParametro];
- Las etiquetas. Son parte del método y sirven para sobrecargar métodos, es
decir, para que un mismo nombre de método pueda usarse con distintos
parámetros (en este ejemplo sería “yEsteOtro”).
Tanto el nombre del método como los “:” son obligatorios siempre. En cambio las
etiquetas son opcionales, pero se recomienda su uso porque facilita el
entendimiento.
objeto.metodo(parametro);
objeto.metodo(parametro, otroParametro);
@end
8 Introducción al IOS
iOS 01
Cuando los métodos van precedido del signo “+” significa que son métodos
de clase. En cambio, cuando van con un signo “-“ es porque se trata de un
método de instancia. En otros lenguajes como Java, los métodos de clase
son aquellos con el identificador static.
Introducción al IOS 9
Formación Abierta
@public
tipo1 variablePublica1
tipo2 variablePublica2
@private
tipo3 variablePrivada
10 Introducción al IOS
iOS 01
@end
Un método siempre debe devolver algún tipo de valor. El tipo de retorno por
defecto es el tipo genérico “id”, una especie de tipado dinámico de
Objective-C. Si no se desea que se devuelva el mismo es necesario indicar
un retorno “void”.
Introducción al IOS 11
Formación Abierta
A partir de iOS 6 existe una auto-sintetización por lo que ya sólo sería falta en el
caso de que se trate de un protocolo. La forma de acceder sería a través del
nombre de la variable precedido de un guión bajo “_”.
12 Introducción al IOS
iOS 01
- (void)metodoDeProtocolo;
- (int)metodoDeProtocolo2;
@end
#import “MiProtocolo.h"
- (void)metodoDeProtocolo {
// Aquí se implementaría el código de este
método
}
- (int)metodoDeProtocolo2 {
// Aquí se implementaría el código de este
método
return 0;
}
Introducción al IOS 13
Formación Abierta
Las categorías permiten añadir métodos a una clase sin necesidad de extender de
ella:
-(void) nuevoMetodo;
@end
- (void) nuevoMetodo {
// Implementación
}
@end
14 Introducción al IOS
iOS 01
Cocoa touch.
Media.
Core services.
Core OS.
Estas capas están ordenadas por el nivel más alto de abstracción del hardware.
Ahora las analizaremos una a una.
AirDrop.
TextKit.
UIDinaymics.
Introducción al IOS 15
Formación Abierta
Multitasking.
Notificaciones Locales/Remotas.
Reconocedores de gestos.
Storyboards.
ViewControllers del sistema.
Los principales frameworks de esta capa son :
AddressBookUI
EventKitUI
GameKit
MapKit
MessageUI
Twitter
UIKit
1.2.2. Media
En esta capa tenemos las tecnologías de video, imagen y audio para poder
desarrollar aplicaciones multimedia, poder reproducir vídeo tanto en streaming
como desde un fichero, grabar y reproducir sonidos, aplicar filtros a una imagen,
embellecer nuestra UI con animaciones o crear juegos en 3d con OpenGL.
Tecnologías de gráficos:
Core image.
Core animation.
OpenGL.
Tecnologías de video:
AvFoundation.
CoreMedia.
Media player.
Tecnologías de sonido:
Avfoundation.
Coreaudio.
OpenAL.
16 Introducción al IOS
iOS 01
Peer-to-peer.
Sqlite.
XML.
iCloud storage.
Arc.
File sharing.
Address.framework.
CFNetwork.framework.
CoreLocation.
CoreFoundation.
CoreMedia.
Foundation.
CoreData.
JavaScript.
CoreTelephony.
Introducción al IOS 17
Formación Abierta
1.2.4. Core OS
La capa de Core OS contiene las funcionalidades de bajo nivel sobre las que están
construidas las demás tecnologías. Es muy posible que no se usen de forma directa
en la aplicación, pero los frameworks que se incluyen las usarán. La utilización del
Core OS está supeditada a situaciones que hay que pelear con la seguridad,
comunicarse con un accesorio externo de hardware, usar frameworks con
operaciones matemáticas complejas (álgebra lineal, procesado complejo de
imágenes) o si necesitas usar las interfaces de UNIX que proveen funcionalidades a
bajo nivel (BSD sockets, POSIX threads), en esos casos usarás los frameworks de
esta capa.
Accelerate.framework.
CoreBluetooth.framework.
Security.framework.
ExternalAccesory.framework.
System (no esta englobado como un framework, los headers se encuentran
en la siguiente ruta /usr/include)
18 Introducción al IOS
iOS 01
El IDE es gratuito y se puede descargar tanto del AppStore como del programa de
desarrolladores de Apple. Una vez descargado, procederemos a hacer doble click
en la aplicación o a descomprimir y arrastrar a las aplicaciones (según donde lo
hayamos bajado).
Introducción al IOS 19
Formación Abierta
Como no tenemos ningún proyecto es hora de crear uno pulsando en Crear nuevo
proyecto, nos aparecerá la siguiente ventana (Figura 1.2).
Master-Detail Application
Esta es una plantilla para aplicaciones de iPad donde nos configura una
aplicación con 2 controladores en la misma vista una tabla a la izquierda y
una vista vacía en la derecha.
OpenGL Game
Page-based Application
20 Introducción al IOS
iOS 01
Tabbed application
Utility Application
Plantilla de una aplicación con una vista principal y una vista alternativa.
Empty Application
SpriteKit Game
A partir de iOS7 aparece esta nueva plantilla que nos facilita un punto de
comienzo para crear un juego con el framework SpriteKit.
Para explicar este tema, seleccionaremos Single View Application que nos creará
una aplicación nueva con un controlador de inicio. A continuación (Figura 1.3) nos
aparecerá la pantalla para dar el nombre al proyecto y algunas opciones más:
Introducción al IOS 21
Formación Abierta
Los dispositivos en los que queremos que funcione nuestra aplicación, iPhone,
iPad o ambos (Universal).
Los datos introducidos en este punto se pueden cambiar más adelante. Todas las
aplicaciones iOS tienen un identificador único (BundleID o Bundle Identifier)
compuesto por el identificador de la compañía y el nombre de la aplicación. Este
identificador único debe ser único en la AppStore y será necesario validarlo antes
de una publicación en la misma. Si ya existiera, habría que cambiarlo.
Una vez completados los datos nos aparecerá la pantalla para seleccionar la
ubicación de nuestro proyecto. Aparecerá también un check que nos permite crear
un repositorio de código en nuestro ordenador de manera local (como no es algo
obligatorio podremos seleccionarlo o no según nos convenga). Una vez lleguemos
al directorio donde queremos guardar el proyecto pulsaremos en guardar.
Dentro del directorio nos creará una carpeta con el nombre de nuestra aplicación, la
cual contiene los ficheros de configuración y el código inicial del proyecto.
22 Introducción al IOS
iOS 01
Vamos a explicar por partes la interfaz que nos muestra este IDE. En la parte
izquierda tenemos una vista de los archivos que tiene nuestro proyecto. En la parte
central será donde editaremos los archivos de código, los de propiedades (como
este que nos muestra al crear el proyecto) y donde diseñaremos las ventanas. Por
último, en la parte derecha podremos ver las propiedades de los archivos que
estemos editando.
Introducción al IOS 23
Formación Abierta
Como hemos dicho anteriormente, este navegador (Figura 1.5) de proyecto nos
muestra todos los archivos que lo componen, además de permitirnos crear/añadir
archivos en la zona de la jerarquía que queramos (pulsando el botón derecho del
ratón, arrastrar archivos como imágenes, sonidos, archivos de código fuente, etc.).
En la parte superior tenemos unas pestañas que nos permiten navegar en esta
ventana ofreciendo distintas funcionalidades:
24 Introducción al IOS
iOS 01
Cuando estamos editando código, la parte central (Figura 1.6) quedaría así:
Introducción al IOS 25
Formación Abierta
XIB: son archivos de estilo “drag&drop” que nos permiten crear la interfaz
grafica de manera visual de una pantalla o vista.
Storyboard: es un archivo que nos permite crear/editar de manera grafica la
interfaz de usuario y definir el flujo de la aplicación.Es la evolución de los
XIB
Figura 1.7. Diseño de la interfaz gráfica mediante los Storyboard o archivos XIB.
26 Introducción al IOS
iOS 01
La parte central se nos ha divido en los 2 partes, una parte más grande a la
derecha donde tenemos una vista y podemos añadir elementos a las vistas. Otra
parte más pequeña a la izquierda donde podemos ver la jerarquía de elementos
que componen el controlador seleccionado.
En el siguiente ejemplo se pueden ver las propiedades que tiene una clase UIView.
Podemos configurar la transparencia de la vista (alpha), el color de fondo que esta
tiene (background) y muchas propiedades más.
Introducción al IOS 27
Formación Abierta
En este visor también existen unas pestañas en la parte superior que permiten
cambiar distintos tipos de propiedades. Para el ejemplo del UIView se pueden ver
las siguientes:
Un inspector del fichero el cual nos da información del fichero como su ruta,
el tipo de fichero que es y si está bajo un control de versiones de código.
28 Introducción al IOS
iOS 01
En el menú superior de Xcode (Figura 1.9) es desde donde haremos algunas de las
operaciones más importantes, como por ejemplo ejecutar nuestra aplicación,
pararla o ver la interfaz del IDE de otra forma.
Como vemos en esta imagen (Figura 1.10) tenemos los botones de “Play” y “Stop” .
Si pulsamos sobre el primero, nos compilaría la aplicación, ejecutándose después
en el destino que seleccionemos más a la derecha (en este caso simulador iPhone
Retina 3.5-inch). Si pulsamos sobre el nombre de aplicación podríamos indicar la
forma en la que la aplicación va a compilarse (lo que se conoce como schemes). Si
hacemos lo mismo en los iconos de dispositivo podríamos seleccionar el destino de
instalación de la aplicación, entre los distintos simuladores instalados en Xcode o
en un dispositivo conectado al ordenador en el que se esté programando.
Introducción al IOS 29
Formación Abierta
En la parte superior central del Xcode (Figura 1.11) nos aparecerán mensajes
informativos del estado de las acciones en proceso. Por ejemplo, al ejecutar la
aplicación, nos irán apareciendo mensajes de la compilación, los errores, cuando
ha terminado, etc.
En esta parte superior derecha (Figura 1.12) podremos configurar como deseamos
ver el editor principal o las partes de la interfaz que queremos ver en cada
momento.
En la primera parte tenemos tres botones que realizan las siguientes acciones:
Si pulsamos el botón del asistente de código (el botón con forma de traje)
nos dividirá el editor de código principal en 2 editores para poder modificar 2
archivos a la vez.
Si pulsamos el editor de versiones (el botón con forma de río) nos mostrará
las distintas versiones del archivo (esto estará disponible si el archivo tiene
configurado un repositorio de código).
Después de la línea separadora tenemos otros tres botones que realizan las
siguientes acciones:
30 Introducción al IOS
iOS 01
Para ayudarnos a separar estos archivos lo que vamos a hacer es crear carpetas,
pulsaremos el botón derecho sobre la carpeta raíz y seleccionaremos “New Group”
(Figura 1.13):
Introducción al IOS 31
Formación Abierta
Para añadir ficheros a las carpetas lo haremos arrastrando y soltando los ficheros
en la carpeta. Si necesitamos renombrar las carpetas con hacer un clic sobre el
nombre, se nos hará editable el nombre.
32 Introducción al IOS
iOS 01
Introducción al IOS 33
iOS 01
Resumen
A lo largo de esta unidad unidad hemos dado las pautas fundamentales que hay
que tener en cuenta para entender los principios básicos a la hora de crear
aplicaciones en iOS. Se ha explicado los conceptos básicos y necesarios para
empezar a programar en Objective-C. También se ha ilustrado una introducción
a Xcode para poder crear una aplicación. En definitiva, al finalizar esta unidad,
hemos de ser capaces de:
Introducción al IOS 35