Está en la página 1de 17

Revolucin Iphone - Ipha = Table Revolucion = Hardaware, formas de interactuar con el sistema operativo, negocio de aplicaciones moviles debido

a los juegos, Mercado de disctribucin, Experiencia IOS, Limitaciones de IOs = Falta de multitarea, Falta de sistema de archivos comparti dos, usuario comn, Plataformas de desarrollo = Web, Nativas, compilador nativo iphone, Restriciones de AppStore, Object C y COco = IOS --> Politica de actualizacin, autoactualizacin, actualizacin delta (los paquetes que han cambiado codigo), Iphone os hasta la 4 y desde la 4 se llama IOS, Ver 1(web), Ver2(instala aplicaciones), Ver 3(API, correo , mapa), Ver 4 (multitarea) Versiones secundarias(nuevas librerias y apis), Versiones terciarias(Solucion de problemas de seguirdad), Dispositivos Desarrollo para Iphone(I, II, III, IV, IVs, V) Ipha(I y II), IphoTouch, appleTV( no tiene AppStore), Tienen resolucin 320 x 480, todos Wifi, 3G, acelerometro, Gir oscopio, magnetometros 3GS, Camara, GPS, pantalla de 9,8 pulgadas, Programas para desarrolladores http://desarrolladores.apple.com/ios, registro de equipos 100 por 99 dolares ao, empresa debe tener documentacin, los usuarios es mas facil, Corporate no se puede publicar en AppStore in house, Cuenta Standar, aplicaciones betatester y dura 3 meses, desarrollo Mac con objetiC, aplicacin privada EEUU, aplicaciones publicas . Requisitos Aplicaciones Nativas ObjectiC Equipos Mac, Xcode(permite el simulador), equipo iphone, y cuenta en IOS develop er program AppStore Tiensa de aplicaciones, Suscripcion, Formulario, Subir la aplicacin, Revisin de re quisitos, Guias comerciales y tecnicas. no se permiten navegadores, aplicaciones que compitan, contenido censurado, Pued en ser gratuitras o pagas(de acuerdo a la escala entre 0.99 a 99 dolares), Apple se queda con el 30%, IOS 3, compra y venta de la palicacin, puede cobarar por co ntenido adicional, Se puede actualizar en forma gratuita. Apps Aplicaciones El IOS es muy estricto para evitar virus, troyanos, una sola aplicacin en pantall a a la vez y puede ser pausa al entrar una llamada u otra cosa, suspendida o con gelada esperando que el usuario vuelva, la aplicacin se cierra o minimiza y solo s

e puede instalar va AppStore. Exepciones cuando estamos desarrollando, o la aplicacin es in house. Ciclo de vida Los equipos tienen multitarea solo los IOS 5, pero no es real. No Multitarea --> Tab, icono, aplicacion main hasta que sea cerrada. Con Multitarea --> Home o abre otra, la aplicacin va a background y luego a suspe ndido o congelado y no ejecuta codigo hasta que vuelva a la aplicacin, la cual nu nca se cierra. en GPS si hay multitarea. ************************************************************************ *********************************** XCODE permite aplicaciones Mac o IOS, se crean librerias estticas, Xcode provee cierto codigo pregenerado. Nuevo proyecto --> Mac o IOS(Framework u Objeto vacio), Aplicacin Vaca, control in terno de versiones, control de fuentes Ventanas del entorno: Ventana del proyecto y en el proyecto varias pestaas, Cada pertaa tiene su propia distribucin de paneles Entorno de Trabajo Panel Izquierdo(Navegador de proyecto, proyecto en carpetas llam adas grupos, Sistema de archivos alterno en proy Navegador de clases(vista plana o jerarquica) Navegador de baquedas en el proyecto Navegador de errores y warning Debug e hilos de ejecucin Breakpoint de puntos de control Salidas de informacin En la barra inferior del panel hay unos filtros del panel Panel Derecho - Quick Help Panel de Componentes Panel inferior y Variables de control Zona Superior - Mensajes de compilarin Botn de presin para los Breakpoint Zona de ejecucin(Run, Stop, Simuladores de Iphone , Ipha, Ios, Edicin --> Estandar, Asistente y versin Navegador --> Panel de proyecto, archivos recientes, archivos sin grabar, contra partes, clases, Hermanos, navegacin atras y delante navegador de objetos, Navegaro de errores Navegador de web --> proyecto, carpeta, archivo, funcin, mtodos Barra de navegacin de Isus --> O sea los problemas, errores o Warning Organizador --> Dispositivos(versiones, dispositivos conectados, programas), cer tificados de desarrollo instalados

Repositorios( proyectos, versiones, paquetes de compilacin = Arca des, Documentacin oficial de clases Repositorios --> de Versionamiento Proyectos --> En creados o en edicin Arcades --> Paquetes de compilacin de aplicaciones para distribuir en la tienda o enel AppStores Documentacin --> On Line - de clases, palabras, ayudas, Se puede descargar de ver siones anteriores Simulador --> Incluido en Xcode y provee la interfaz de Iphone, tiene fotos, con tactos, no tiene mail, tiene Home, tiene Setting, center, navegar. La tecla Alt Shift simula 2 dedos, simula el modo educin al dejar el dedo presionando el icono , Emula rotacin del dispositivo en el menu hardware, se puede agitar, se puede bl oquear, seales de memeoria, activar barra de estado, teclado fisico y salida de T V, cambiar la versin del IOS, se puede descarvar nuevas versiones desde preeferen ces, se puede cambiar el dispositivo por Ipad, Iphone Retina(es el iphne 4 y se dice asi por que tiene el doble de la resolucin) y tomar Screen a travs del menu a rchivo capturar pantalla Depuracin y limpieza --> Activar animaciones lentas, capas mezcladas, imagenes co piadas sin margen, ubicacin geogrfica creando una ubicacin determinada. Se puede ca mbiar el idioma, Reestablecer contenidos y ajustes,

************************************************************************ *********************************** Primer Proyecto File New project Single view aplicaction con una sola vista Nombre Direccin de internet en forma inversa compaia y producto como identificado r nico Prefijo de clase(vacio) Familia de dispositivo(Ipad(familia), Iphone(Ipad, Iphone, Ipod) o unive rsal(esta tiene doble pantalla)) Story board Automatic References cautin (dos grandes cambios que permiten aplicacion es mas facil) Testing de unit Siguiente Seleccionar capeta destino Version(por defailt) create Archivos del proyecto(archivos punto h y punto m, son archivos objetiC para las clases, H es encabezado y M es el objeto) Archivos h Archivos m Archivos StoryBoard(guin visual de la aplicacin interfaz visual y de naveg acin) Soporte Files Stream(texto para multiples idiomas) Archivos P-List (xml que permite definir valores de configuracion Archivo PCH (manipula los Framework) Archivos xib - Son archivos de versiones anteriores al HistoryBoard Grupo FrameWork - Referencia los Frame del proyecto Products app - La aplicacin compilada

Configuracin del Proyecto Seleccionar el proyecto(parte superior del panel) Version de IOS References Contraseas propias del target Summary Id de aplicacin IOS proviene de Mac OS y este de UNix, que es un sistema de segu irdad la cual permite el acceso solo de 1 usuario y el usuar io es el nombre de la aplicacin y debe ser unico en el sistema Versin Build = Compilacin Main StoryBoard Main Interface Orientaciones(Vertical, horizontal) Icons e imagens de apertura Frames y Librerias para compilar(YouIki - Interfaz grafica, Foun dation Lib = Clases principales, Codigo de bajo nivel Mas informacin para los servidores de apple summary mas extenso y todo va al archivo info.P-List Fases de compilaci Reglas de compilacin Creando la interfaz basica Se trabajacon el archivo Storyborad Escena(compuesta por la Vista y el Doc) En el panel de componenetes se seleccionan los objetos a utilizar en la interfaz Definiendo el nombre El nombre se puede editar desde las propiedades del proyecto Selecciono el proyecto Selecciono la carpeta Info Selecciona la propiedad Bundle Display Name Bundle Name es el nombre de la aplicacin en la carpeta del proyecto Cambio el nombre y recurede que los caracteres deben ser mono space Definiendo Iconos Iconos de 512 x 512 Tamaos de iconos de baja resolucin, de alta resolucion y Ipad(114 x 114 Re tina, 72 x 72 Ipad, 57 x 57 Iphone en formato png 32) Selecciono el proyecto Selecciono la carpeta Summary Selecciono el selector de iconos Click derecho y selecciono el archivo icono+ Definiendo pantallas de carga o imagenes de Splash Habilito la animacin lenta y el sistema trae la imagen de la ultima vez c uando se cerr Selecciono el proyecto Selecciono la carpeta Summary Selecciono las imagenes de lunch Restablezco el simulador Stop al debuger Ejecuto de nuevo ************************************************************************ *************************

Escenas Las pnatallas, el flujo y el diseo se manejan desde HistoryBoard y a part ir del panel de componentes, procedemos al diseo Los objetos disponibles, son Control, Windows & Bars y Data Views. Los d emas son para uso del dock y no son visuales Los objetos son de alineacin automtica ya que son interactivos a travs del dedo y evitar las colisiones. Clonar elementos - Tecla Alt, selecciono el elemento y lo arrastro Tamao se accede con la tecla Alt y el mouse sobre los bordes del objeto(a lto, ancho, x, y distancia respecto a bordes Todo control es una clase y estos heredan de la clase llamada UIView por ejemplo la clase de un Labes es UILabel Nuevo Panel - Con la flecha de la esquina inferior izquierda lo que perm ite la visin completa de la escena Buscador - en la pate inferior de este panel y permite filtrar los contr oles que se tienen en dicho panel; es msutil en las aplicaciones para Ipad ya que tiene ms controles, ya que son ms cat icas. Atributos de Vistas Fondo de la Escena - Sus atributos aparecen en el panel de ayuda Identidad - Propiedades internas Ayuda - de la clas UIView Identidad de Clase Atributos - Por ejemplo el Lab el tiene propiedades del Label y del View ya que todos los controles heredan de View y aqu aparecen las propiedades de ambos. Tag - Permite asociar un nmero a un control Interaccin - True Multiple Touch Alfa - Trasparencia a los controles visuales 0(oculto) 1 (visible) Background Opacidad - La transparencia utiliza mayores recursos Hidden - Oculta el control Metrica - Define alto, ancho, posicin y autosize Conexiones Utilidad del View - Ademas de se la clase padre y el fondo de la aplicacion View = Panel - El fondo y tiene propiedades como Color de fondo Ancla - Permite cambiar la ubicacin por default del objeto Autosizing - Autodimensin del objeto disponible a partir del orig en. En Xcode de Mac, pero no en Ipad y Iphone. Su dimensin sea relativa con el alto y el ancho Label - Sus propiedades son Text No se Auto dimensionan Multiline Autoshring - Modifica el tipo de tipografia y si no cabe, expone puntos suspensivos Maximun Size - 10 BaseLine - Corta por palabras Font - las del sistema son System, System Bold, System Italica o personalizada que provee un gran listado Zise - Tamano de la fuente En el sitio IOSFont.com Ver 5.0 provee 58 tipografias pa ra Iphone y Ipad, antes de la ver 4.0 Ipad tenia mas TextColor HighLighted - Color de la luz

Shadow - sombra Shadow Offset - Movimiento de la sombra respecto al texto origin al hacia cualquiera de los lados. Align - Alineacin del texto Boton - Round Rect Button y su clase es UIButton ya viene con sus dimens iones por default Text - Con doble click Tipo - Rounde Rect = Rectangulo redondeado, personalizado, colo r del fondo Add Contac - Circulo con + en el interior Info Dark - i en un circulo oscuro como para configurar algo y aparece en la esquina inferior derecha Info Light - Iguan al anterior para fondos oscuros Detail Disclosure - > en un circulo como indicando sigui ente State Config Default HighLighted - Presionado Seleted - Seleccionado Disable Image Title Font Background TextColor ShadowColor Reverse on HighLight HighLight Tint Drawing - show Touch on HighLight, HighLight Adjust Image, Disab le Adjunst Image Margen interior del texto Insert - Permite mover el texto o la imagen en el boton Aligment Text View = Texto Multilinea - No permite el texto alegre Editable Aligment Text Color Font Detection - Links, Phones, address, Events de forma automatica q ue se encuentren en el texto Opciones de edicin Propiedades de Scroll Text View View Scroll view Scrollers = Ecunce = Rebote Zoom Touch Backgroud Manipulacin de Imagenes - Las aplicaciones son potentemente ricas en imag enes en formato png, jpg o gif Image View - Se recomienda copiar los elementos dentro del proye cto Image - Prefiere el png ya que aplica un proceso de comp resin, Debido a la diferencia de resolucin la imagen con @2x en el nombre es seleccionada a utomaticamente como de alta resolucin Mode - Scale to Fitl(pierde el aspecto), Aspect Filt(no pierde el aspecto),

Aplicaciones para Ipad y Universales - Todas las aplicaciones Iphone son ejecuta bles en Ipad, el cual tiene la opcin 2x para aumentar su presentacin la cual se ve pixelada. File, Neq project, Name (IappHD) y en Family (Ipad), Create. Las dems pro pieades son equivalentes HistoryBoard es semejante, pero ms grande, con diferencias sutiles. Aplicaciones Universales - son aplicaciones para ipad y Iphone, con propiedades para Ipad y propiedades para Iphone como si fuesen dos apli caciones en una sola con dos HistoryBoard; cuando se complila se crea una sola a plicacin y se sube a la tienda un solo producto y se comparte mu chos de sus elementos. Ventajas - Si un usuario tiene varios equipos y adquiere una cuenta, est a le sirve para todos los equipos para adquirir aplicaciones ************************************************************************ ************************* Diseo con Tablas Flie, New, New Prject, Master Detail Aplication, Name, Iphone, History B oard, Auto Reference Counting, siguiente, Guardar Mirando los archivos, se tiene un HistoryBoard(tres escenas) y dos clase s MasterViewControler y un Navigation Controler Navigation Controler - Administra varias escenas al mismo tiempo hacia a delante y atras y para editar se utiliza Zoom In La primera escena es la controladora, la segunda es la Master y la terce ra es la de Detalles La primera escena esta dentro del controlador y contiene: Barra de Navegacin con ttulo Tabla View - Para mostrar contenido Content(Static cell - Todo se disea en la tabla y Dinamic cell - completada con codigo ObjetiC) Style - Plain o clasico y Gruped o Agrupado que muestra bordes redondeados y usado para formularios Separator Cell Table View Basic Right Detail - Dos etiquetas Left Detail - Dos label alineados a la izquierda Subtitle - Titulo y subtitulo como si fuese otra celda Custom - Se puede manipular como se quiera, perm ite cambiar el color de seleccin(blue, gray, none) Se puede seleccionar el accesorio(> Disc losure indicator, > Ditail Disclosure (zona blanca para edicin y un modo detalle) y CheckMark. Manipulacin de Celdas y Secciones Table View Cell - Permite poner celdas dentro de una tabla y cada una co n su propia configuracin Sections - Selecciono la tabla y me dirijo a las propiedades y agrego se cciones, esto adiciona un titulo de seccin, esto permite ver que las tablas se dividen en secciones y las secciones en celdas. Cada seccin tien pi e de pgina tambin, cuando las tablas ocupan un espacio mayor, automaticame nte tienen Scroll y Desplazamiento

Entendiendo el funcionamiento - De las tablas y los navegadores, las celdas tien en alto 44 pixeles y ancho definidode acuerdo al espacio disponib le. Cuando se aplica click en la celda,esta pasa el control a otra escena a travs del enlace que tiene un icono con efecto de push hacia atras. Para duplicar una escena, selecciono la actual, voy al men Edit y elije D uplicate. Estando seleccionada la nueva escena, vamos a propieda des y encontramos una llamada Metricas Simuladas, y seleccionamos la propiedad Top Bar, selecciono Navigation Bar Creando Segues - Comportamiento a las tablas estaticas. Los Segues son las conex iones entre las escenas y se encuentran en StoryBoard Segues(definen transisiones lentas entre escenas (la palabra proviene del ingles y el italiano entre los que hacen msica y se superponen dos canciones) Entre sus propiedades estn: Identificador - Nombre Style - Push(se usa cuando se tiene un Navigation Controler), Modal, Cus tom Para crear un Segue se aplica la tecla Control CRTL y son el Mouse se ar rastra desde la celda hasta la escena y se selecciona el estilo, automaticamen te se crea el segue y se procede a darle el identificador. El Navigation Control er asigna el botn de Back - Otra manera de crear un Segue es seleccionando la celda, click en el Icono de Conexiones del panel de propiedades y seleccionar en HistoryBoard Segues, uno de tipo Push, aplicando Click en el sign o + y arrastrando hasta la escena. Para eliminar un Segue, lo selecciono y plico Delete. - Otra forma de cr ear un Segue es seleccionando la Celda, aplica Click Derecho y selecc iona el estilo Push y se arrastra hasta la escena. De esta forma la ventana popu p es Modal y no se puede cerrar y quedan encendidos en primer pla no Creando niveles de navegacin - Utilizando escenas En el panel de Componentes, se selecciona la pertaa Controles, selecciona Controladores y Objetos y selecciona: View Controler - Es una escena vaca Table View Controler - Generan tablas de tipo dinmico y se puede cambiar la propiedad Content ************************************************************************ ************************* Creando Proyectos con Tabs - Pestaasc File, New, New Project, Tabbed Aplication, Product Name, HistoryBoard, A utomatic References Counting El HistoryBoard tiene tres escenas formadas por un Tab Bar Controler, un Fisrt view y un Second View Tab Bar Controler - Tiene dos zonas representando cada una de las pestaas y esta ubicado en la parte inferior de la interfaz Y su comportamiento es automatico. Cada una de las escen as tiene su tab bar Item Fisrt view - tien las siguientes propiedades en el Bar Item: Title - Titulo Image - Icono Tag Enabled Identificator - Favoritos y automaticamente se cambia el icono y el ttulo por el de favoritos (una estrella), Search,

Download, Custom, History, Contacts, More Creando Nuevos Tabs Para ello se crea una escena agregando un View Controler o duplicar algu na de las escenas existentes. Las nuevas escenas no tienen el Tab Ba r, la cual se agrega desde las metricas asociadas, luego se asigna el Segue arra strando desde el View Controler y aparece una nueva opcin llama da RelationShip - View Controler y en el View Controler aparece una nueva pestaa. El mximo de pestaas soportadas es de 5 y a paritr de ah, en el lugar de la quinta pestaa aparece el Icono More y puntos suspensivos que llevan a una Table View que no aparece en el HistoryBoard, este Table View no es persona lizable. Para evitar esto, se recomienda que la quinta pestaa sea More y enla vista enlazada, disear como se presentar la escena. En el caso de Ipad, se permite 12 etiquetas. Importante: Si la aplicacin tiene perstaas y un Tab Bar Controles, estamos en presencia de un Tab Bar Controler de primer nivel y es la navegacin principal, adems la relacin de pestaas es de hermanas en la navegacin. Las pestaas se utilizan para navegaciones principales y son independientes unas de otras. Creando Tabs con Navegadores - Mezcla de unos y otros Para ello se agrega un Table View Controler y para volver una celda de u na tabla interactiva, se debe agregar un Navigation Controler, ya qu e la tabla es visual. Para ello se selecciona la escena, Men Editor, Embeb In, Na vigation Controler. Los Tab son la navegacin principal ************************************************************************ ************************* ObjetiveC - Desarrollo para Iphone, Ipad, MacOS Creado en 1980, 1988 lo adopto NextStep para MacOS, 1992 liberado bajo G LP Open Source, A finales de los 90 Steve Jobs regreso y con l, el siste ma operativo surgiendo MacOSx y Objetive-C se convirti en el compilador por defec to para aplicaciones Mac y se hizo masivo con la salida de Iphone. Es un SuperSet de Ansi C, orientado a objetos, herencia simple, dinmico(Hay cosas que se deginen en tiempo de ejecusin y no de complilacin), se pue de mezclar con C y C++, dicen que es un Framework sobre C, simplifica a C, es ms simple que C, es un lenguaje de enlace tardio(el enlace con el codigo re al lo hace en tiempo de ejecucin), se usa C cuando se llama a una li breria, Versiones: hay 2 versiones 1 y 2. Iphone funciona con la 2.0, framework ha variado bastante, lo mismo que el lenguaje, se puede tener arc hivos mm que equivalen a C++. Protocolos - Lista de metodos a cumplir = concepto de interface de Java Categorias - Imcorpora comportamientos a clases ajenas Objetos - La llamada a metodos a travs de mensajes tiene cosas de SmallTalk Tipos de Datos - Codigo C con agragados y funcionan todos los tipos primitivos d e C, tales como: Float int double unsigned in short long char signed char(-127 - 128)

unichar(caracter de 2 bytes) tipos definidos - typedef in distancia; typedef unsigne char temperatura ; booleanos(no lo tiene), pero un tipo definido todo en mayuscula BOOL, no es un tipo de datos y es YES y NO en mayuscula, BOOL x = YES; Estructuras - typedef struct punto { int x, int y; } Enumeraciones - typedef enum EstadoCivil { soltero, casado, viudo, divor ciado } EstadoCivil e = soltero; Objetos como tipos Clase * Clase * objeto; string * Nombre; Clase* objeto; Clase *objeto; id - Representa cualquier objeto de cualquier clase Convencin - Esta es similar a Java, no admite paquetes ni nombres de espa cio, no hay maneras de agrupar clases en un nombre Nombres explicitos, sin abreviaturas - muy ablado Notacin camello - Nombre con muchas palabras Variavles locales, atributos y propiedaes que comienzan en minscu la Nombres de clase que comienzan en mayscula Prefijo de dos digitos mayscula - Lon nombres de las funciones UI View, String - son una clase - El NS proviene del prefijo del Framework Fundat ion Framework donde esta la clase string y viene de la empres NextSt ep NSString * NSMutableString * Sintaxis Toda estructura entre { } Toda lnea termina en ; Es case-sensitive - Diferencia entre minusculas y maysculas Declaracin de variables: tipo_de_datos nombre_de_variable; if (condicin) { } else { } - (condicion) ? valor_si : valor no; switch(variable) { case valor: instrucciones; break; default: in strucciones } while(condicion) { } do { } while(condicion); for (int i=0; i<maximo; i++) { } for (tipo elemento int coleccion) { } nil - nulo self - this = yo mismo super - Padre Creacin de clases - xcode File, New, New file, objetive-C class, nombre de la clase class, nombre de la subclase a la que pertenecer subclass of subclass of - NSObjetic, UItable Vieq Cell, UIView - ya que no hay heren cia implicita Siguiente, carpeta destino, create y se crean dos archivos h y m. Se esta usando la tecnologa Arc (nuevo modelo de manejo de memoria) en IO S 5.0, la cual obliga a agregar algo mas en las propiedades de tipo class u obje ct. Propiedades publicas de la clase, todo se define pblico ya que no existe lo privado @property en verdad es un mtodo que graba un valor en esa propiedad y un metodo que lee un valor en esa propiedad, los metodos se llama n codigo y setcodigo y dichos metodos se escriben en el archivo m, ya sea manual o generados por el compilador.

(nomatomic) - Metadato o Atributo para las Getter Setter de tipo objeto quitando el manejo de hilos y los lock y unlock Strong - (Fuerte) Esto indica que por cada variable objeto en el programa y este en memoria, esta estara garantizada y vi va Weak - (Debil) Si alguien elimina esta variable de la memoria ta mbien se elimina (nulo) retain - Proyecto anterior a IOs 5 y desaparece cuando aparece l a tecnologia Arc assign - Proyecto anterior a IOs 5 y desaparece cuando aparece l a tecnologia Arc Otros Atributos Readonly - La propiedad no va a tener un Setted o sea que no se va a poder cambiar su valor desde afuera de la clase y como s e genera un atributo privado ReadWrite - Es el valor por default Getter, Setter - Se puede cambiar el nombre (getter = Setcodigo) El modo asistente del editor, permite abrir la contraparte o sea que pue do tener abierto simultaneamente los archovs h y m Para el uso de variables privadas se escribe el atributo iniciando con u nderline, ejemplo _codigo o puede ser codigodecurso @syntesize codigo = _codigo; o @syntesize codigo = codigodecurso; Metodos de clase e instancia Signo -() Metodo de instancia y se puede invocar sobre objetos de esta c lase Signo +() Metodo de clase y se aplica a toda la clase en forma global Void - El metodo no devuelve nada Signo - ESC proporciona todos los metodos que se pueden implementar objeto ESC proporciona todos los metodos, los que estn tachados no son ac cesibles puede que esten obsoletos : se utilizan para los metodos que reciben parametros -(void) inscribir: (NSString *) nombre; Ejemplo: -(void) inscribir: (int) documento conNombre: (NSString *) nomb re; el nombre del metodo es inscribir:conNombre: Luego se compila - Project build y si no hay errores <definicion de protocolos> - Concepto similar a las interfaces de otros lenguajes Clase appDelegate - El delegado de la aplicacion con su h y m, los metodos que h ay en el m y no estan en h es porque pertenecen al protocolo o esta n implementados en el padre, hacen parte de la cadena de herencia lo que genera un h implicito. El AppDelegate es la clase donde comienza la palicacin de Iphone y tiene un metodo que indica que la aplicacin acaba de ejecutarse con estas opc iones #import "archivo.h" - El archivo esta definido en el mismo proyecto #import <archivo.h> - El archivo esta definido fuera del proyecto y son importados del framework del sistema y no se tiene el codigo f uente y se importa la interfaz publica y no su implementacin Instanciacin Curso * cursoIOS; [objeto nombre_metodo]; - llamada a un metodo [cursoIOS inscribir:nombre]; - llamada a un metodo

cursoIOS = [Curso alloc]; - Busca memoria para el objeto, con la estruct ura de la clase y los atributos quedan en cero o nil Constructores - Objective-C no tiene constructores pero se ha creado una convenc in haciendo que todos los objetos tengan un metodo i nit que lo instancie pero no a la clase pero se hace en dos pasos ([cursoIOS ini t]; este es el constructor, pero asi no se llama, para ello se utilizan los dos siguientes pasos:) cursoIOS = [[Curso alloc] init]; cursoIOS = [[Curso alloc] init]; esto es igual a (cursoIOS = [Cu rso alloc]; y esto [cursoIOS i nit];) init esta creado en la clase NSObject y todos los objetos tiene creado e l init - Curso * cursoIOS = [[Curso alloc] init]; Llamadas a metodos con atributos propios de la clase o sea privados [self inscri bir:nombre];] Ciclo de vida de los objetos - El ciclo de vida lo detecta automaticamente el co mpilador cuando se trabaja en modo Arc Arc = Automatic References Couting = Sistema de conteo automatico de ref erencias. El compilador hace un conteo automatico de referencias de c uando usa una variable, un objecto, si lo ha pasado a otro, de cuando liberarlo y toma la desicin si se deja o no ese objecto en memoria. Garvage Colector = Revisa permanentemente la memoria y si un objeto no s e usa, lo retira de ella. Los objetos de tipo Strong, como nombre y descripcin desaparecen de la me moria cuando la clase Curso que los contiene desaparezca de l a memoria, a no ser que el atributo lo halla pasado a otro objeto. Arc existe d esde IOS 5, antes de este los objetos eran liberados con un metodo llamado Rel ease. El compilador por su cuenta se encarga del manejo de memoria. __autoreleasing - Le indica al procesador que este objeto no va a morir cuando se deje de utilizar,. sino que perdutra un tiempo mas en me moria y se define en la creacin del objeto ARC se debe tener cuidado que al crear un proyecto este activado Use Aut omatic References Coutin, ya que de lo contrario se generan las bote llas de memoria por que no se liberan los objetos de la memoria o list de memori a Constructores - No existen los contructores, pero estan emulados a travs del meto dso init, o tambien se pueden implementar, implementando un metodo _(id)init { return self; } donde el identificador id retorna cualquier c osa. Si el objeto esta vacio con nil, no se genera una excepcion y ObjectiveC se puede tratar pero los objetos que lo usen no hacen nada y se puede enviar mensajes a los nil. Constructores con parametros - Es un contructor con un metodo como el siguiente -(id) initWithCodigo: (int) unCodigo;, Curso * cursoWinPhone = [[curso alloc] initWithCodigo:20 andNombre:@"Win dows Phone 7.5"]; Factory = Fabricas - clases que implementan la idea de fabricas, con la diferencia que es un elemento de clase que devuelve un curso +(Curso *) cursoWithCodigo: (int) unCodigo Clase NSString - Esta dentro de todas las clases bases de Objetive-C, la clase N SString y todos los objetos son inmutables Inmutables - Una vez contruido no se puede modificar. Para construir un string con contenido se utiliza un constuctor con parametros por e

jemplo initWith..., utilizar un string de C, o sea sin @, ejemplo NSString * texto = [[NSString alloc] initWithCString: "Hola bienvenidos" encoding: (NSUTF8StrongEncoding)]; pero eso es igual a NSString * texto = @"Hola bienvenidos"; pero aun no se pueden modifica r. NSMutableString - Es una clase que si se puede modificar durante toda su vida. Otra forma es utilizando iniWithFormat iniWithFormat - Este se crea de forma dinmicas pero a partir de ah queda i nmutable. Clase NSArray - Vectores, la clase principal es NSArray y son inmutables, esta a rray NSArray * coneleccion = [[NSArray alloc] init]; es inmutable , e ste arreglo NSArray * coneleccion = [[NSArray alloc] initWithObjects: (id), ..., nil]; tiene un centinela nil que indica el final del arreglo. El arreglo en cada posicin puede tener d atos de cualquier tipo. El objectAtIndex devuelve un NSObjetc, o s ea cualquier objeto y no sabe que es. Para forzar a un tipo especfico, se debe ha cer Casteo. Casteo - Para ello se escribe el tipo entre parentesis (NSString *) Otra forma de recorrerlo es la enumeracion rapida o for pero no con sus posiciones, sino con cada uno de los elementos es for (NSString * elemento in coleccion) y recorre los elementos de manera automatica. Otra manera es NSMutableArray * coleccionModificable = [[MSMutableArray alloc] initWith Array: coleccion]; Clase NSDictionary - son un tipo de coleccin donde las posiciones son alfanumeric as y se conoce como un array asociativo, un lugar donde se almacen a informacin y se accede a travs de una clave o Key. Los diccionarios son inmutabl es, los datos se almacenan primero valor y luego la clave . un diccionario puede guardar cualquier tipo de objeto, puede ser un objeto, un array, un diccionario. Tambien se tiene los diccionarios mutable s: NSMutableDictionary * coleccionModificable = [[NSMutableDictionary alloc ] init]; Trabajo con consola - Para la salica por consola se aplica una funcin de C, llama da NSLog(NSString * format, ...), por ejemplo NSLog(@"Esto es una salida por consola"); y el resultado aparece en el p anel inferior derecho de Xcode, en el panel de Debugging aparec e una pequea consola. La ltima pertaa del panel del proyecto (izquierdo), dicho pan el va acumulando todas las compilaciones y podemos ver el comportamient o de las salidas por consola en el panel central. Mensajes con contenido dinmico para la consola - NSLog(@"El producto %@ c uesta %i", nombre, precio); Todos los String y todos los NSOject tienen un metodo que se llama descr ipction [diccionario description] y este metodo siempre devuelve un NSString y es comparable con lo que se llama ToString de Java y es la manera como un objeto se convierte en un texto. Para que una clase del usua rio aparezca en consola, se debe definir el metodo description en la clase. Las salidas por consola solo se pueden ver en Xcode o en un equipo cone ctado via usb. ************************************************************************

************************* La conexin que me permite capturar el evento que implica que un objeto ha sido pr esionado es La conexin del ViewController que me ayuda a cambiar una propiedad de un elemento del storyboard, como el tamao, texto, etc, es

Trabajo con Codigo - El delegado de la aplicacin es una clase que existe en todas las aplicaciones de iOS, heredada d eUIResponder e implementa un protocolo lla mado UIApplicationDelegade y es lo ms parecido al main() de C y se encuentra en e l archivo main.m es de bajo nivel y no se puede modificar nunca. Tiene un metodo llamado application didFinishLaunchingWithOptions donde se puede n hacer cosas antes de que la vista este cargada o alguna de las escenas, el met odo applicationWillTerminate que se ejecuta cuando la aplicacin esta por terminar y se ejecuta solo en dos casos, cuando el equipo no soporta multitarea y se ha aplicado en home. El otro caso es cuando el equipo tiene multitarea y el usuario esta por apagar el equipo o se queda sin bateria. Tambien esta el metodo applicationDidenterBackground lo que sucede en un equipo multitarea y la aplicacin pasa al backgraound(pero aqu se queda poco tiempo) y lue go pasa a suspendido o congelado. El metodo applicationDidEnterForeground se ejecuta cuando la aplicacin pasa al fo regraound cuando el usuario regresa antes de que la aplicacin salga de memoria. El metodo applicationDidBecomeActive se ejecuta luego de una pausa enque la apli cacin estaba inactiva por una llamada u otra cosa #import <UIKit/UIKit.h> @interface AppDelegate: UIResponder <UIApplicationDelegate> @property (nomatomic, strong) UIWindows * window; @end; Objeto UIApplication - Todos los metodos de AppDelegate ejecutan el UIApplicatio n que representa la aplicacion en si misma, el cual tiene metodos y propiedades que se pueden modificar. applicationIconBadgeNumber - Es un nmero que se asigna a una aplicacin a travs de c odigo para recordarle al usuario que tiene algo pendient e cuando se cierra la aplicacin, solo puede ser cambiado cuando la aplicacin esta activa o sea en Foreground a travs de una API de push. application.applicationIconBadgeNumber = 50; statusBarHidden - Permite modificar si se desea que la barra de estado este ocul ta. application.statusBarHidden = YES; La statusBar es la barra superior del dispositivo donde aparece el carrier, la bateria, la sea l inalambrica, etc y se puede quitar en el momen to en que yo quiera. application didFinishLaunchingWithOptions - Es el primer metodo que se ejecuta, cuando se ejecuta una aplicacin y por ende, todo lo que se halla escrito en el y vale la pena quitar la barra de estado solo si la a plicacin es inmersiva, como un juego

, pero se debe dejar visible en las aplicaciones standard. La barra se puede modificar cambiando el estilo a travs d el metodo statusBarStyle y sus alternativas son default, black opaque o black translucido. Para ver la ayuda, ALT y Click en la variable mostrando un menu popup y para ver la ayuda completa, se aplica click en el libro, el cual abre el organizer con l a ayuda en particular. application networkActiviyIndicatorVisible - Es un esquiner en la barra de estad o que muestra un circulo en movimiento cuando se accede a internet. application openURL - Es un metodo que permite abrir una pginma Web desde la apli cacin. La pagina es abierta en Safari, se usa as NSURL * url = [[NSURL alloc] initWihtString:@"http://www.video2brain.com "]; [application openURL:url]; application se puede ejecutar desde otra clase diferente fuera del AppDelegate. application tiene un singleton que puede ser llamado desde cualquir parte y se e scribe as en la clase donde desee usar application: UIApplication * application = [UIApplication shareApplication]; Controladores - son objetos que ya estn predefinidos en cualquier proyecto nuevo diferente al proyecto vacio. Un proyecto de estos adems de tener un historyboard y un appDelegate tiene un viewControler que es una clase. viewController.h - es una clase que ntroler esta en el frame UIKit el cual esta CocoaAtach (conj de Iphone. UIKit tiene todo lo relacionado con interfaz de usuario hereda de UIViewControler y UIViewCo dentro fremes para el desarrollo de Ipad y la

viewController.h - es la implementacin de la clase la cual ya tiene metod os implementados. La idea es que sigue un patron de diseo coo cido como viewControler. Separemos la vista y la clase que controla esa vista. La vista es la escena en el historyboard y es un view, el controlador po see la vista. El historyboard esta asociado al viewController y desde la implementacin de la clase, vamos a manipular la vista a partir del codi go. Los enevot de la vista, son metodos que inicain con la palabra view y no se puede cambiar el nombre de ellos porque su nombre es la forma de captura durante la ejecucin y estan definidos en el padre (UIViewController), por eso no aparecen en la clase h. Estos metodos se dividen en dos, los que tienen el auxiliar Did y los que tienen el auxiliar will, son auxiliares del ing les que representan pasado y futuro. viewDidLoad - Este es el main, el lugar de inicio para la vista y todo l o que esta en el historyboard ya fue instanciado. Cada vista, cada escena puede tener su viewController y cada uno su viewDidLoad. Es el punto de inicio para hacer algo viewDidUnLoad - Indica que se ha liberado de memoria y lo nico que se pue de hacer es poner en nil las variables enlazadas a controles.

viewWillAppear - Permite capturar si se esta pasando de una escena a otr a a travs de los segues viewWillUnAppear - Permite capturar si se esta regresando de una escena a travs de los segues Creando Controladores - cuando se crea un proyecto, se crea uno o mas viewCotro ller asociados a la cantidad de escenas del historyboard. Se debe crear un nuevo viewController para cada una nueva escena que se necesite e n el proyecto Para asociar una escena a un viewController, en el panel de propiedades, selecciona la pertaa custonClass si se fuera asociar a uno exitente. Para crear un nuevo viewController, men file, new file, y seleccionamos la opcin UIViewController subClass, siguient e, nombre, no se usa XIB para la interface cuando se trabaje con historyboard, y a que se genera un archivo de sobra, siguiente, des tino y crear. Ya tenemos un nuevo proyecto, con su viewController pero no esta asociado a nadie. Vamos a las propiedades y le asociamos el nuevo viewContr oller. Rotacin de vistas - En iOS 5, cuando se crea una vista, se ejecuta la apl icacin y al rotar el equipo, la etiqueta de la vista se pierde, al llegar al estado inicial vuelve a aparecer pero esta distorcionada. Esto se puede mejorar desde las metricas en el panel de propie dades del view, pero es dificil controlar todo desde aqui, entonces se puede tomar la desicin que la aplicacin es para ejecutarse de manera vertical. shouldAutorotateToInterfaceOrientation - Es un metodo del viewController que sirve para bloquear la rotacin de la interfaz. Otra tcnica es la de utilizar escenas distintas y cuando se rote, hacemos un camb io de los objetos de la interfaz Creando contoles desde cdigo - Esto se hace desde el viewDidLoad, por ejemplo, cr ear una etiqueta: -(view)viewDidLoad { [super viewDidLoad]; UILabel * etiqueta = [UILabel alloc] init]; CGRect frame; frame.origin.x = 10; frame.origin.y = 100; frame.size.width = 200; frame.size.hight = 50; etiqueta.text = @"Hola desde codigo"; etiqueta.frame = frame; etiqueta.text = @"Hola desde codigo"; etiqueta.textColor = [UIColor redColor]; etiqueta.backgroundColor = [UIColor clearColor]; etiqueta.frame = CGRectMake(10, 100, 200, 50); // es otra forma de hace r lo mismo [self.view addSubview: etiqueta]; } self.view - es una propiedad del viewController y esta enganchada al vie // para enviarlo a la pantalla

w del fondo que contiene a todos los dems, adems es etodos para ejecutar subview

pblica y tienen m

IBOutlet - Es un apropiedad publica que permite manipular elementos del view desde codigo, que esta en el viewController y esta dir ectemente conectada con un elemento definido en el historyboard. Esto se hace ha bilitando el modo editor el cual permite ver la escena y el controla dor de dicha escena. Para hacerlo se utiliza la tecla CTRL y con el mouse se aplica click en el contro y se arrastra hasta el codigo h, esto habilita una ven tana que sugiere poner un codigo Outlet, permitiendo escr ibir el nombre, tipo y almacenamiento y aplico connect. Esto genera una propieda d: @property (strong nonatomic) IBOutlet UILabel * etiqueta ; Creando una marca en el borde izquierdo de la ventana de cdigo qu e indica que hay un IBOutlet es un amarca del interface builde r para que xcode sepa que hay un enganche con algo del storyboard. Tambin se puede crear aplicando click derecho sobre el objeto y d iligenciando las propiedes de la ventana emergent e. IBAction - Permite la progrmacin de acciones y para programarlo se proced e similar al IBOutlet precionando las teclas CTRL y aplicando click sobre el objeto arrastrandolo hasta el co digo h, en la ventana emergente, debo seleccionar el tipo de accin Action, nombre y pregunta a que evento se quiere asociar, se selecciona de la lista de eventos el evento touch UpInside, que es lo ms pare cido al click y connect, lo que crea un metodo -(IBAction) cambiarTexto:(id)sender; Lo que devuelve una marca llamada IBAction. Movimiento entre escenas -

Cambiando el tipo de transicin -

************************************************************************ ************************* Picker View - plist - Carpeta default iOS - Secure - Switch - Navigation Bar - O bjective- C

También podría gustarte