introducción ios 5 mistela&tweets

26
Introducción IOS 5 Mistela&Tweets Juan Vicente Pascual

Upload: eriksanvi

Post on 14-Jul-2015

552 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Introducción ios 5 Mistela&Tweets

Introducción IOS 5

Mistela&TweetsJuan Vicente Pascual

Page 2: Introducción ios 5 Mistela&Tweets

Historia

Page 3: Introducción ios 5 Mistela&Tweets

En lo que respecta a Hardware se requiere:1.Un computador con Mac OS X 10.6 o posterior. Esto es obligatorio.2.Un dispositivo Móvil para pruebas. Esto es opcional ya que la herramienta que provee Apple viene con un simulador de iPhone y de iPad.El software básico trata de:1.Xcode: Este software viene en el CD de instalación de Mac OS X en la versión 10.6 pero en la última versión se baja desde App Store.2.iOS SDK: Este incluye lo necesario para programar en iOS pero está la versión 4.0 que es para la versión Mac OS X 10.6 y la versión 5.0 requiere Mac OS X 10.7 o OS X Lion.

¿Qué necesitas?Requisitos de hardware y software para programar en iOS

Page 4: Introducción ios 5 Mistela&Tweets

•Firefox•TextWrangler•EverNote•OpenOffice (Office and iWorks alternative)•GIMP (Photoshop alternative)•Inkscape (Illustrator alternative)•Cyberduck (FTP and Cloud storage client)•FileZilla (FTP client)•iBooks Author and Book Proofer•iAd ProducerIn addition, some of the most popular Open Source or free Mac programs are pre-installed or to be installed upon your request:

MacinCloud includes popular SDKs such as:•iOS SDK (Xcode 4.6 and Xcode 4.5.2) with Application Loader and iOS Simulator•Android SDK and NDK (Eclipse is available)•Corona SDK from Corona Labs (previously Ansca Mobile)•Xamarin Studio (NEW!)•Titanium Studio from Appcelerator•GameSalad•Mono, MonoDevelop, MonoTouch•Phonegap (Click Here to Read More)•Google App Engine SDK•Stencyl•ShiVa3D Authoring Tool from StoneTrip•YoYo Games GameMaker Lite•Heroku Toolbelt for OSX•MoSync•Sencha•Gideros Studio from Gideros Mobile•Unity3D•NetBeans•LiveCode from RunRev•We welcome your recommendations of other popular SDK and tools

• iTunes Producer• Github for Mac• Google Chrome• Dropbox• Google Drive• Adobe Flash Player• Adobe Reader• Silverlight Software that is currently BANNED from all

servers:• Any torrent clients or P2P software

Page 5: Introducción ios 5 Mistela&Tweets

iOS (anteriormente denominado iPhone OS) es un sistema operativo móvil de Apple desarrollado originalmente para el iPhone, siendo después usado en todos los dispositivos iPhone, iPod Touch e iPad. Es un derivado de Mac OS X, que a su vez está basado en Darwin BSD.

El iOS tiene 4 capas de abstracción,

¿Qué es?

La capa Core OS es la base del sistema operativo. Se encarga de realizar la gestión de memoria, el sistema de ficheros, conexión a la red y procesos que interactúan con el hardware.

La capa Core Services nos permite el acceso a los servicios básicos, tales como la agenda, el acceso a la base de datos, preferencias, conexión a servidores y procesamiento de URLs, etc...

La capa Media nos permite la ejecución de tareas multimedia. Entre ella el acceso al Audio, OpenGL, Imágenes y PDF, Animaciones, etc...

La capa de Cocoa Touch es la gestiona la interacción visual con el usuario. nos permite acceder al acelerómetro, los eventos y controles táctiles, la jerarquía de vistas, alertas, etc...

Page 6: Introducción ios 5 Mistela&Tweets

Media Cocoa Touch

Core OS Core Services

Page 7: Introducción ios 5 Mistela&Tweets

Objective-C (Introducción)

Lenguaje de programación orientada a objetos.Es un superset de ANSI C.Está basado en Smalltalk.Fue desarrollado en 1980.Adoptado por NEXTSTEP en 1988.En 1992 fue liberado bajo licencia GPL para GCC.Es compatible con C y con C++.Es la base que utilizan Cocoa y Cocoa Touch.

Definimos archivos de encabezado y de código..h para los archivos de encabezado.m para el código en C y Objective-C

Las clases se definen en dos partes: el interfaz (.h) y la implementación (.m)

Soporta el uso de #import como directiva paraincluir los archivos .h en los archivos .m

Podemos utilizar los tipos de variables de C y C++.

La mayoría de los tipos de Objective-C se definencomo punteros.

Todos los objetos son descendientes de NSObject.

Page 8: Introducción ios 5 Mistela&Tweets

Objective-C (Sintaxis)

El signo - identifica el método de instancia (+ para métodos de clase). (void) tipo de retorno.insertObject:atIndex: selector del método.(id) y (NSUInteger) tipos de los parámetros.anObject y index nombres de los parámetros.

Las llamadas a métodos se hacen a través del envío de mensajes a objetos (Smalltalk).Los mensajes se envían entre corchetes []

Page 9: Introducción ios 5 Mistela&Tweets

Objective-C (Propiedades)

La síntesis de propiedades automatiza el proceso de creación de los métodos de acceso a las variables de instancia:Si la variable se llama myVar entonces:• El método de escritura será setMyVar:• El método de lectura será myVar

La sintaxis de las operaciones no orientadas a objetos como variables, expresiones, declaraciones y llamadas de funciones, son idénticas a C.

La sintaxis de objetos de Objective-C deriva de Smalltalk, y está basado en el envío de mensajes a instancias de objetos

Page 10: Introducción ios 5 Mistela&Tweets

El framework Foundation¿Qué es?El Foundation framework es mucho más que una colección de clases para trabajar con numbers, strings, y collections (arrays, dictionaries, sets).Define docenas de protocolos, funciones, tipos de datos, and constantes.

NSObjectEs la clase base para la mayoría de objetos del IOS SDK.

Métodos más importantes:

NSDataNSArrayNSMutableArrayNSValueNSDictionary

NSFoundationNSFileManager NSURLNSJSONSerialization

Page 11: Introducción ios 5 Mistela&Tweets

MVC

Page 12: Introducción ios 5 Mistela&Tweets

Novedades en IOS 5- ARC (Automatic Reference Counting): Mantenimiento de la memoria automáticamente.- StoryBoards: Creación de la interfaz en una sola ventana con todos los View Controllers y sus

relaciones.- Compilador LLC: Mejor generación y optimización del código.- iCloud: Permite almacenar archivos y sincronizarlos con todos nuestros dispositivos

automáticamente.- Twitter: Integración con la red social Twitter.- Core-motion: conjunto de interfaces para acceder a toda la información basada en el movimiento(motion-based) del dispositivo. Incluye el acceso a la información proveniente del giroscopio.- Core-Image: conjunto de herramientas para la manipulación de vídeo e imágenes.- Data protection: sistema integrado de encriptación.- Notification Center: sistema avanzado de notificaciones.

Page 13: Introducción ios 5 Mistela&Tweets

ARCMantenimiento automático de la memoria.

La gestión de memoria es esencial para asegurarnos de que aprovechamos bien nuestros recursos.

A través de los @properties indicamos el tipo de gestión de memoria del objeto que hemos declarado.

Para ello ARC añade 2 nuevos tipos de atributos:–strong: Especifica que hay una relación de propiedad (relación fuerte).–weak: Específica que existe una relación de nopropiedad (relación débil).

ARC se encarga de realizar el “deallocated” a cada objeto automáticamente.

Page 14: Introducción ios 5 Mistela&Tweets

StoryBoardsCreación de la interfaz en una sola ventana con todos los View Controllers y sus relaciones.

- Están incluidos el diseño de todos los ViewControllers y las relaciones entre ellos.

- Son útiles para aplicaciones con muchas pantallas diferentes y transiciones entre ellas.

- Reduce el código que debemos escribir y el número de NIBs.

Tenemos una mejor visión global de la aplicación y la relación entre las diferentes pantallas.Las transiciones entre pantallas se hacen mediante los “segues”, que se enlazan mediante ctrl+arrastrar entre un controlador y otro.En el editor de Storyboard se pueden diseñar TableViews de manera visual, ahorrando una gran cantidad de código.

Page 15: Introducción ios 5 Mistela&Tweets

Core-motion Conjunto de interfaces para acceder a la información basada en el movimiento (motion-based) del

dispositivo. Incluye el acceso a la información proveniente del giroscopio.

Acelerómetro y giróscopo (sólo iPhone4 y iPod Touch nuevo).Antes se usaba UIAccelerometer class

CMMotionManager:- solo una instancia por aplicación pero es un recurso para “todos”- dos modos: muestrear periódicamente la medición más reciente o suscribir un “manejador” para recibir todos los updates. (muestrear más eficiente, mejor, salvo que “no se pueda perder ni una medida”).

1 – Comprobar disponibilidad del hardware, @property (readonly) BOOL {accelerometer,gyro,deviceMotion}Available;2 – Empezar la “captura” de datos. - (void)start{Accelerometer,Gyro,DeviceMotion}Updates;3 – “desconectar” la captura (Ahorro de bateria) -(void)stop{Accelerometer,Gyro,DeviceMotion}Updates;Acceder a los datos@property (readonly) CMAccelerometerData *accelerometerData;Que contiene: @property (readonly) CMAcceleration acceleration; typedef struct {double x;double y;double z;}CMAcceleration; (incluye gravedad)@property (readonly) CMGyroData *gyroData;Que contiene: @property (readonly) CMRotationRate rotationRate; typedef struct { double x; double y; double z;} CMRotationRate;

@property (readonly) CMDeviceMotion *deviceMotion; (combinación de medida del gyro y acelerómetros)

Page 16: Introducción ios 5 Mistela&Tweets

Xcode

Page 17: Introducción ios 5 Mistela&Tweets
Page 18: Introducción ios 5 Mistela&Tweets

Son pruebas creadas por nosotros mismos en el que comprobamos que nuestra lógica desarrollada está funcionando de la manera correcta. Estas pruebas están especialmente indicadas para proyectos grandes en el que es muy complicado tener un control total de toda la lógica y al añadir nuevas funcionalidades podríamos “cargarnos” algo desarrollado anteriormente.Con ellas tenemos más confianza al realizar cambios (en código propio o ajeno) e incluso las pruebas nos servirían como documentación.Hay dos tipos de pruebas:

•Pruebas de lógica (Logic tests): Se refiere a la prueba directa de la lógica de clases. Prueba la lógica de los métodos que no interactúan con elementos UI “White-box testing“. Por ejemplo, hay un método muy sencillo que elimina elementos duplicados en un NSArray y una prueba sería comprobar que este método devuelva unNSArray. Solo se pueden lanzar en el simulador.

•Pruebas de aplicación (Application tests): Comprueba que las interacciones con los controles UI y la propia UI de la aplicación te da los resultados esperados “Black-box testing“. Solo se pueden lanzar en un dispositivo.

Page 19: Introducción ios 5 Mistela&Tweets
Page 20: Introducción ios 5 Mistela&Tweets
Page 21: Introducción ios 5 Mistela&Tweets

Proceso de publicación de una Aplicación 1/3

1.- Crear certificado de desarrollador/Distribución (Se puede exportar a diferentes equipos).2.- Te descargas el .cer3.- Dar de alta la aplicación com.jvptelecom.mistela&tweets (petición de registro de la aplicación o suite de aplicaciones)4.- Dar de alta dispositivos beta (se necesita el Identificador del terminal, a través de iTunes), una licencia, permite el alta de hasta 100 dispositivos.5.- Enlazar aplicación con dispositivos el fichero .app y el mobile.provision (se obtiene en el portal)

Page 22: Introducción ios 5 Mistela&Tweets

Proceso de publicación de una Aplicación 2/3

6.- Crear Aplicación7.- Nombre, precio, fecha lanzamiento8.- Descripción, palabras clave,edades contenido, capturas de pantalla9.- READY TO UPLOAD BINARY

Page 23: Introducción ios 5 Mistela&Tweets

Proceso de publicación de una Aplicación 3/3

10.- Instalar el certificado11.- Firmar la aplicación12.- mobile.provision para distribuir o compilar para publicar (Con la última versión de Xcode).13.- product - Archive - Submit

Page 24: Introducción ios 5 Mistela&Tweets

Consejos en la publicación de apps

• La app se debe categorizar correctamente.

• Se debe proporcionar una descripción de la aplicación.

• Adicionalmente, hemos de introducir las palabras clave.

• No se deben incluir capturas de pantalla de partes de la aplicación no-accesibles.

• La aprobación de la aplicación puede variar entre 1 y 2 semanas, por lo que es interesante fijar una fecha para la publicación.

• De esta manera, podemos realizar una serie de acciones concretas durante el tiempo de espera a la publicación.

• Es conveniente lanzar la aplicación junto a una versión gratuita, de manera paralela.

• Un buen método para recuperar las descargas es el de actualizar la aplicación con pequeños cambios.

• En iTunes Connect podemos visualizar las ventas y descargas de nuestra aplicación.

• La aplicación iTC Mobile genera información diaria de las descargas.

Page 25: Introducción ios 5 Mistela&Tweets

¿Realmente es necesario?APP. NATIVAS

- Aprovechar los recursos del dispositivo (CPU,GPU)

- Notificaciones PUSH

- Nuevas funciones

- Bajo consumo, y alto rendimiento.

APP. WEB

- Aprovecha la mayoría de las capacidades de los equipos.

- Independiente del dispositivo (IOS,Android, Windows, Palm, BlackBerry,...)

- Menor curva de aprendizaje.

Page 26: Introducción ios 5 Mistela&Tweets

Bibliografía- Foundation Framework

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/ObjC_classic/_index.html

-Stanford CS193p Developing Applications for iOS

- Desarrollo de aplicaciones en IOS 5, Alejandro Torrentí

- Publicar una App en el apple store.http://docs.xamarin.com/guides/ios/deployment,_testing,_and_metrics/ap

p_distribution_overview/publishing_to_the_app_store