Noticias, Aplicaciones, Jailbreak y Tutoriales de iPhone, iPad y iPod Touch

8

may

10n1c muestra Jailbreak de iOS 5.1.1 en su Nuevo iPad

,

8 de mayo de 2012 a las 14:56

10n1c muestra Jailbreak de iOS 5.1.1 en su Nuevo iPad

El hacker 10n1c, tras las disputas con Pod2G y otros miembros de la scene hace poco, publica una imagen de su Nuevo iPad con Jailbreak en iOS 5.1.1.

Esta noticia nos indica que al menos su método sigue funcionando en iOS 5.1.1 y por tanto es muy probable como esperábamos, que los exploit que encontró Pod2G sigan funcionando por lo que finalmente veamos directamente el Jailbreak Untethered en iOS 5.1.1...

Leer Mas

2

may

Un truco de iOS 5, captura fotos remotamente

,

2 de mayo de 2012 a las 13:09

Un truco de iOS 5, captura fotos remotamente

Con la salida de iOS 5 ya os enumeremos las nuevas funciones y trucos que podíamos realizar sobre iOS 5.

Hoy os recordamos a los que aún no lo sepan un nuevo truco que entonces no conocíamos. La posibilidad de realizar fotos remotamente sin necesidad de instalar nada adicionalmente, es una función integrada de iOS 5 como muchas de las otras que hemos comentado en otras ocasiones...

Leer Mas

30

abr

Curso de Programación iOS. Clase 6: insertar elementos en UITableViewController

,

30 de abril de 2012 a las 23:08

Curso de Programación iOS. Clase 6: insertar elementos en UITableViewController

Bienvenidos a la Clase 6 del Curso de Programación iOS de iPhone4Spain.

En esta clase, veremos cómo añadir información en un objeto de la clase “UITableView” entre distintas escenas a través del patrón “delegado” (delegate). La utilización de este patrón nos ayudará a, en un momento dado, reorganizar las escenas sin que esto suponga algo muy laborioso ya que el patrón “delegado“ hace que el padre sólo contenga aquellos métodos que el hijo necesita.El ejemplo que vamos a explicar en esta clase, consiste en una “UITableView” en la que podemos añadir celdas con información previamente añadida. También tendremos acceso a un “UIViewController” donde se mostrará el detalle de la celda seleccionada. Cargaremos datos en la “UITableView” desde un “NSMutableArray”.

Creamos un proyecto vacío, lo vamos a llamar “Clase6”.

Una vez se ha generado todo el proyecto agregaremos los ficheros “Objective-C class“.

En el ejemplo de hoy tenemos dos “UIViewController” que las hemos llamado “DetailViewController” y “NewElementViewController“. También agregamos un “TableViewController” que lo hemos llamado “ListViewController“.

La estructura de ficheros de nuestro programa tiene el siguiente aspecto.

Abrimos el fichero “AppDelegate.m”. Creamos el objeto de la clase “ListViewController”, también creamos un objeto de la clase “UINavigationController” y lo inicializamos con “initWithRootViewController” al objeto “ListViewController” anteriormente creado. Asignamos el objeto “UINavigationController” a “rootViewController” para que sea la escena que se abra cuando arranquemos la aplicación.

Abrimos el fichero “NewElementViewController.h”. Declaramos el protocolo “NewElementDelegate”. En él se pueden declarar métodos que puede o tiene que llevar la clase padre de “NewElementViewController”, en este caso “ListViewController”. Indicamos, con el siguiente código, que “ListViewController” tiene que llevar implementado el método “newContactDidChanged” ya que, al no indicar nada. Al no definirlo con @optional, por defecto es @require. También se puede definir como @require pero el efecto sería el mismo.

Dentro de “@interface NewElementViewController” declaramos tres propiedades: La primera es el propio “delegate”, la segunda y la tercera son dos “IBoutlet” de la clase “UITextField”. Seguidamente declaramos dos “IBAction”, “saveNewContact” y “cancelNewContact”, que se encargarán de hacer la funcionalidad de los botones cuando éstos sean pulsados.

Una vez hecho el paso anterior, el siguientes es abrir el fichero “NewElementViewController.m” y hacer “@synthesize”  de todos los objetos declarados en el “NewElementViewController.h” para que el compilador genere el código para crear los métodos accesorios para sus propiedades.

Ahora implementamos los métodos, “saveNewContact” y “cancelNewContact”, anteriormente declarados en “NewElementViewController.h”.

El método “saveNewContact” guardará los datos introducidos en los dos “UITextField” en el objeto “NSMutableDictionary” que creamos al entrar en el método. Una vez hecho esto saldrá de la escena con la propiedad “dismissModalViewControllerAnimated”.

El método “cancelNewContact”, simplemente saldrá de la escena modal con la propiedad  “dismissModalViewControllerAnimated”.

En el “NewElementViewController.xib” y enlazamos, tanto los “IBOutlet” con los “UILabel” correspondientes, como los “IBAction” con los “UIButton” correspondientes.

Vamos ahora a modificar el fichero “DetailViewController.h”.

En él vamos a declarar tres @property:

  • NSMutableDictionary item” -> contendrá la información de la fila seleccionada de la “UITableViewController”.
  • IBOutlet UILabel nameLabel” -> en el que guardaremos el nombre del contacto seleccionado de la lista.
  • IBOutlet UILabel surnameLabel” -> en el que guardaremos el apellido del contacto seleccionado de la lista.

Abrimos ahora el fichero “DetailViewController.m” y hacemos @synthesize de las @property que hemos declarado en el fichero “DetailViewController.h”.

Buscamos el método “viewDidLoad” y asignamos a la propiedad “text” de los “IBOutlet” cada uno de los campos que el objeto “item” tiene.

En “DetailViewController.xib” hay que enlazar los “IBOutlet” con sus correspondientes componentes.

En el fichero “ListViewController.h” vamos a declarar una @property, “items”, donde almacenaremos todos los datos de la lista. Además, vamos a declarar un “IBAction”, el cual será el encargado de abrir la escena de en la que añadiremos contactos a la lista.

Abrimos el fichero “ListViewController.m”, importamos “DetailViewController.h” y “NewElementViewController.h”, y hacemos @sinthesize de la @property declarada en “ListViewController.h”.

En el método “viewDidLoad” tenemos que inicializar el objeto “items”, le vamos a poner un título a la escena “ListViewController” y creamos un “rigthBarButtonItem” el cual ejecutará el método declarado anteriormente “addElement”.

Ahora vamos a insertar en la “UITableView” los datos asignados, anteriormente, a la “NSMutableArray”. Para hacer esto, hay que modificar 3 métodos:

  • numberOfSectionsInTableView: En él indicamos el número de secciones que vamos a tener en nuestro listado.
  • numberOfRowInSection: En este método vamos a indicar el número de filas que tendrá una sección.
  • cellForRowAtIndexPath: Es el método donde configuraremos la fila en cuestión para que se muestre la información deseada.

Al arrancar la aplicación no habrá ningún dato en la lista, por lo que primero tenemos que añadir un contacto.

Implementamos el método “IBOutlet” “addElement”, en el que mostraremos la escena modal.

También hay que implementar el método “newContactDidChanged” en el que asignamos los nuevos contactos a la lista y actualizamos el “UITableView”.

Por último, vamos a “ListViewController.xib” y enlazamos todos los “IBAction” y “IBOutlet“.

Ejecutamos y comprobamos el funcionamiento de la aplicación.

La clase de hoy y la última, que será publicada el lunes 7 de mayo, no tendrán ejercicio propuesto. De esta manera podréis aprovechar y repasar las clases anteriores del curso. Intentad combinar los ejercicios vistos con anterioridad para practicar.

Un saludo y hasta la próxima clase!!!

Leer Mas

28

abr

Tutorial: Cómo transferir contactos desde un Android hasta un iPhone

,

28 de abril de 2012 a las 19:41

Tutorial: Cómo transferir contactos desde un Android hasta un iPhone

Si actualmente tienes un Android, pero quieres hacerte con un iPhone, existe un pequeño problema que muchos no saben solucionar y llena de dudas al usuario, ¿Qué pasará con mis contactos del teléfono? ¿Se borrarán? ¿Los tengo que pasar uno a uno al iPhone cuando encienda este?
Estas y otras dudas os las explicaremos en este pequeño tutorial en el que os comentaremos los pasos que debemos seguir para transferir nuestros contactos y calendarios desde un Android a un iPhone....

Leer Mas

28

abr

Curso de Programación iOS. Clase 5: solución y explicación del ejercicio propuesto

,

28 de abril de 2012 a las 15:41

Curso de Programación iOS. Clase 5: solución y explicación del ejercicio propuesto

Bienvenidos a la solución y explicación del ejercicio propuesto de la Clase 5 del Curso de Programación iOS de iPhone4Spain.

Cómo ya vimos en la Clase 5, veremos cómo crear un listado y un detalle utilizando el protocolo delegado (delegate).

Este protocolo nos permitirá realizar aplicaciones mucho mejor acabadas y nos facilitará el proceso de reestructurado de la aplicación, siempre que éste sea necesario.

Empezaremos, como siempre, creando un nuevo proyecto “Empty Application” y le escribimos un nombre. Nosotros lo hemos llamado “EjercicioClase5“.

Añadimos dos nuevos ficheros. Uno subclase de “UITableViewController” y el otro subclase de “UIViewController“. En ambos seleccionamos la opción “With XIB for user interface” para que genere la interfaz de usuario.

El “UITableViewController” es el que vamos a utilizar para hacer el listado de elementos. Lo hemos llamado “ListViewController“.

El “UIViewController” lo utilizaremos para realizar el detalle, en el que mostraremos la información de la celda y podremos realizar la modificación de su texto. Lo hemos llamado “DetailViewController“.

La estructura de ficheros que tendrá la aplicación es la que vemos en la siguiente imagen.

Abrimos el fichero “AppDelegate.m” para editarlo. Queremos que la aplicación se abra en la interfaz del listado y, cuando pulsemos una celda, realice una transición hacia el detalle.

Para conseguir este primer requisito, lo primero que haremos será importar “ListViewController.h“.

Creamos un objeto de la clase “ListViewController” y creamos otro de la clase “UINavigationController“, que será el encargado de realizar la transición. En la declaración del objeto “UINavigationController“, utilizaremos el objeto de “ListViewController” para igualarlo al método “initWithRootViewController“.

Igualamos, en la propiedad “rootViewController” de “window“, el objeto de “UINavigationController“.

Vamos a empezar haciendo el detalle para ver qué es lo que necesitamos en el listado.

Primero editamos el fichero “DetailViewController.h“.

Lo primero que hay que hacer es crear el “@protocol“. Lo llamamos “DetailDelegate” y le decimos que la clase que soporte este delegado tiene que contener implementado, de manera opcional “@optional“, el método “nameDidChange“.

Dentro de “@interface” crearemos la propiedades de “DetailViewController“: “delegate” y “cellName“. Además, crearemos un “IBOutlet” para el “UITextField” de la interfaz y un “IBAction” para el botón que cambia el nombre de la celda.

En el fichero “DetailViewController.m” hacemos “@synthesize” de las propiedades declaradas en “DetailViewController.h” y programamos el “IBAction“.

En el método “viewDidLoad“, cambiamos el título de la interfaz y el texto del “UITextField“.

El “IBAction” se encargará de cambiar el nombre de la celda. Para ello, trabajamos con el método que ha de tener la clase que soporta el protocolo. También vuelve a la interfaz de la lista.

Una vez hecho el detalle, vamos a hacer el listado.

Editamos el fichero “ListViewController.h“.

Haremos que “ListViewController” soporte el delegado de detalle “<DetailDelegate>” y creamos dos propiedades: cells y selectIndex.

Por último, vamos a editar el fichero “ListViewController.m“.

Lo primero que haremos es “@synthesize” de las propiedades declaradas en “ListViewController.h“.

Creamos el método “didReceiveMemoryWarning” que va a controlar posibles avisos de memoria.

Editamos el método “viewDidLoad” en el que cambiaremos el “title” de la interfaz y rellenaremos “cells” con información.

En el método “numberOfSectionsInTableView“, hacemos que devuelva 1 y, en el método “numberOfRowsInSection“, que devuelva el contador de “cells“.

Editamos el método “cellForRowAtIndexPath” para que, el “textLabel” de cada celda, coja el texto de cada uno de los valores de “cells“.

En el método “didSelectRowAtIndexPath” es donde crearemos el objeto de “DetailViewController” e igualaremos el delegado de “DetailViewController” con “self“. Es lo más importante del ejercicio.

Por último, creamos el método encargado de cambiar el nombre de la celda.

Sólo queda enlazar todos los “IBOutlets” y “IBActions” a sus correspondientes elementos de la interfaz.

Ejecutamos la aplicación y probamos que todo funciona correctamente.

Con la solución del ejercicio propuesto damos por terminada la Clase 5 del Curso de Programación iOS de iPhone4Spain.

Un saludo!!!

Leer Mas

25

abr

Tutorial: Liberar iPhone con SAM, SAM actualizado

,

25 de abril de 2012 a las 20:03

Tutorial: Liberar iPhone con SAM, SAM actualizado

Hace un par de días os hablemos de SAM y ayer dediquemos una entrada tras comprobar que funciona pese a ser una versión beta. Es un método novedoso para liberar nuestros iPhone sin depender del BaseBand que tengamos y válido para todas las versiones de iOS hasta la fecha. Podéis saber mas acerca de SAM desde la entrada de ayer.

A lo largo de esta madrugada y día SAM recibió la actualización que se comentó que llegaría para facilitar aún mas el proceso con diversas mejoras y añadidos como poder clonar una SIM...

Leer Mas

, ,

23

abr

Curso de Programación iOS. Clase 5: listado y detalle con patrón delegado

,

23 de abril de 2012 a las 23:11

Curso de Programación iOS. Clase 5: listado y detalle con patrón delegado

Bienvenidos a la Clase 5 del Curso de Programación iOS de iPhone4Spain.

En esta clase, veremos cómo pasar información entre distintas escenas a través del patrón “delegado” (delegate). La utilización de este patrón nos ayudará a, en un momento dado, reorganizar las escenas sin que esto suponga algo muy laborioso ya que el patrón “delegado“ hace que el padre sólo contenga aquellos métodos que el hijo necesita.El patrón “delegado” hace el hijo no tenga que incluir(con “import”) la cabecera del padre. Es esto lo que hace al patrón “delegado” algo muy útil para este tipo de aplicaciones.

El ejemplo que vamos a explicar en esta clase, consiste en una “UITableView” en la que tendremos acceso a un “UIView” donde se mostrará el detalle de la celda seleccionada. Para hacerlo un poco más complejo, veremos cómo cargar datos en la “UITableView” desde un “NSMutableArray”.

Creamos un proyecto “Empty Application“.

Lo vamos a llamar “Clase5”.

Ahora vamos a añadir, en el proyecto, dos ficheros con sus correspondientes interfaces de usuario.

El primer fichero va a ser del tipo “Objective-C class” y de la subclase “UITableViewController“.

Lo vamos a llamar “ListViewController“. Va a ser la lista de elementos.

También seleccionamos “With XIB for user interface” para que se generen las interfaces.

El segundo fichero que vamos a insertar va a ser “Objective-C class” pero, en este caso, va a ser subclase de “UIViewController“.

Lo hemos llamado “DetailViewController“. Es el detalle de cada elemento de la lista.

Como siempre solemos hacer, agrupamos todos los ficheros insertados, en carpetas.

En la siguiente imagen podemos ver cómo tiene que ser la estructura de nuestro proyecto.

Vamos a pasar ya a la programación de los ficheros.

Abrimos el fichero “AppDelegate.h”. Creamos el objeto instanciado de la clase “ListViewController” y un objeto “UINavigationController” el cual lo inicializamos con “initWithRootViewController” para que “ListViewController” sea la escena que se abra cuando arranquemos la aplicación.

Vamos a empezar a realizar el detalle para declarar el patrón “delegado” y los demás componentes que nos hará falta.

Seleccionamos “DetailViewController.xib” y añadimos los componentes que vamos a utilizar para mostrar la información. Añadimos dos “UILabel” en el que mostraremos el nombre del campo y el titulo de la celda seleccionada anteriormente. Además agregaremos un “UIButton” que va a realizar la misma función volver que realiza el “Navigation Item” que aparece en la “Navigation Bar” pero nos servirá para ver la instrucción que realiza internamente el “Navigation Item”.

Abrimos el fichero “DetailViewController.h” y añadimos lo siguiente:

Declaramos el protocolo “DetailDelegate”. En él se pueden declarar funciones que puede o tiene que llevar la clase padre de “DetailViewController”, en este caso “ListViewController”. Como “ListViewController” no tiene que hacer ninguna funcionalidad lo dejaremos vacío.

Dentro de “@interface DetailViewController” declaramos dos propiedades: La primera es un “NSString” que se llamará “cellName” que se encargará de guardar el nombre de la celda y la segunda es el propio “delegate”. También dentro de “@interface DetailViewController” declaramos el “IBOutlet” del “UILabel” que contendrá el título de la celda y un “IBAction” llamado “returnButton“, que se encargará de hacer la funcionalidad del botón cuando éste sea pulsado.

Una vez hecho el paso anterior, el siguientes es abrir el fichero “DetailViewController.m” y hacer “@synthesize”  de todos los objetos declarados en el “DetailViewController.h” para que el compilador genere el código para crear los métodos accesorios para sus propiedades.

Cuando entremos al detalle de una celda de “ListViewController” mostramos su nombre en el “title” de la escena y también en el “label” que hemos declarado antes.

Lo último que hay que programar en el “DetailViewController.m” es la funcionalidad del botón que tiene la escena. El botón lo que va a hacer es volver a “ListViewController” con el método de la clase “UINavigationController” “popViewControllerAnimated”.

Una vez realizada toda la programación de “DetailViewController” vamos a empezar a hacer la programación de “ListViewController”.

Abrimos el fichero “ListViewController.h” y añadimos “<DetailDelegate>” en la declaración de la “@interface” para que el compilador sepa que la “@interface” soporta el delegado de “DetailViewController”.  Para ello, tenemos que importar “DetailViewController.h”.

Lo siguiente es declarar el “NSMutableArray” que contendrá la información de las celdas y un “int” en el que captaremos el índice de la celda seleccionada.

Ahora volvemos a abrir “DetailViewController.xib” y realizamos los enlaces de los “IBOutlet” y “IBAction” con los diferentes objetos declarados en la escena, tal y como lo hemos hecho en clases anteriores del Curso de Programación iOS de iPhone4Spain.

Una vez hecho el paso anterior, abrimos el fichero “ListViewController.m”. Primero hacemos el “@synthesize” de las “@property” anteriormente declaradas.

Buscamos el método “viewDidLoad” y rellenamos el objeto “cells” con la información deseada. En este ejemplo, vamos a escribir el texto “Celda ” y el número correspondiente a esa celda. El método quedará como vemos en la siguiente imagen.

Hay que tener en cuenta que no estamos insertando nada en la “UITableView”, sino que estamos insertando la información en la lista que tenemos en memoria (“NSMutableArray”), por lo que en pantalla no aparecerán los datos si ejecutamos la aplicación. Es un ejemplo similar al que tendríamos si tuviésemos una base de datos.

Ahora vamos a insertar en la “UITableView” los datos asignados, anteriormente, a la “NSMutableArray”. Para hacer esto, hay que modificar 3 métodos:

  • - numberOfSectionsInTableView: En él indicamos el número de secciones que vamos a tener en nuestro listado.
  • - numberOfRowInSection: En este método vamos a indicar el número de filas que tendrá una sección.
  • - cellForRowAtIndexPath: Es el método donde configuraremos la fila en cuestión para que se muestre la información deseada.

Como vemos en la imagen anterior, en el método “cellForRowAtIndexPath” es donde modificamos el contenido del “UITableView”. Con la instrucción “cell.textLabel.text = [self.cells objcectAtIndex:indexPath.row]”, se selecciona cada celda de “cells” con el índice “indexPath.row” y lo insertamos en la propiedad “text” del “textLabel” del objeto “cell”.

Por último, nos queda llamar a la escena “DetailViewController” cuando seleccionamos una fila del ”UITableView”.

Nos dirigimos al método “didSelectedRowAtIndexPath” y simplemente creamos una instancia de “DetailViewController”, asignamos la información de la celda seleccionada, indicamos el índice de la celda seleccionada, igualamos el delegate a self y hacemos “pushViewControler” para pasar a “DetailViewController”.

Por último, ejecutamos la aplicación y comprobamos que funciona correctamente.

El ejercicio propuesto para esta semana consta de un listado y un detalle como el que hemos realizado hoy, pero en el detalle vamos a tener que poder modificar el texto de la celda seleccionada.

El ejercicio propuesto es algo difícil pero hay que intentarlo.

El viernes 27 de abril publicaremos la solución del ejercicio.

Un saludo!!!

Leer Mas

20

abr

Curso de Programación iOS. Clase 4: solución y explicación del ejercicio propuesto

,

20 de abril de 2012 a las 23:10

Curso de Programación iOS. Clase 4: solución y explicación del ejercicio propuesto

Bienvenidos a la solución y explicación del ejercicio propuesto de la Clase 4 del Curso de Programación iOS de iPhone4Spain.

Vamos a enseñar cómo hacer un listado con el componente “TableViewController“.

Como dijimos en la Clase 4, es un componente muy utilizado en las aplicaciones que contienen listados.Empezamos la explicación creando un proyecto nuevo. “File -> New -> Project…“.

Seleccionamos “Empty Application“.

Nombramos el proyecto. Nosotros le hemos puesto el nombre de “EjercicioClase4“.

Ahora vamos a añadir una clase “UITableViewController”  en la que vamos a mostrar el listado.

Añadimos los ficheros.

Seleccionamos “Objective-C class“.

Elegimos “UITableViewController” en el apartado “Subclass of“.

Marcamos “With XIB for user interface” para que, a la vez, cree el fichero .xib con la interfaz de usuario.

Por último, le damos un nombre. Nosotros lo hemos llamado “ListViewController“.

Agrupamos todos los fichero creados en carpetas para tener ordenado el proyecto.

Editamos, ahora, el fichero “AppDelegate.m” para que arranque la aplicación en el listado.

Importamos “ListViewController“. Buscamos el método “didFinishLaunchingWithOptions” en el que creamos un objecto de la clase “ListViewController” y lo asignamos a la propiedad “rootViewController” de “window“.

Ahora, vamos a editar el fichero “ListViewController.m“.

Buscamos los métodos “numberOfSectionsInTableView“, “numberOfRowsInSection” y “cellForRowAtIndexPath

Editamos estos métodos para que el listado cumpla con los requisitos del enunciado.

Ejecutamos y comprobamos que funciona correctamente.

Con la solución del ejercicio propuesto damos por terminada la Clase 4 del Curso de Programación iOS de iPhone4Spain.

Siguiente clase: Clase 5, listado y detalle con patrón delegado.

Un saludo!!!

Leer Mas

20

abr

Tutorial iFaith, crea un Custom Firmware de iOS 5.0.1 parte 2

,

20 de abril de 2012 a las 22:23

Tutorial iFaith, crea un Custom Firmware de iOS 5.0.1 parte 2

Tras el tutorial para guardar los SHSH con iFaith de nuestro iOS 5.0.1, hoy os mostramos el segundo paso, crear un Custom Firmware de iOS 5.0.1 con nuestros SHSH.

Este paso es fundamental para poder realizar los downgrade o restauraciones sin subir la versión de iOS cuando ya hay una mas reciente....

Leer Mas

, ,

19

abr

Tutorial iFaith, guarda los SHSH de iOS 5.0.1 parte 1

,

19 de abril de 2012 a las 19:15

Tutorial iFaith, guarda los SHSH de iOS 5.0.1 parte 1

iFaith es una herramienta para Windows que permite guardar los SHSH y hacer un Custom Firmware con ellos. Esto nos permite restaurar nuestro dispositivo siempre que lo deseemos con esa versión de iOS aunque existan versiones de iOS mas recientes.

Ya os mostremos un tutorial anteriormente para hacerlo con la versión iOS 5.0 y el proceso es similar pero para los nuevos usuarios os mostraremos un nuevo tutorial mas detallado, gracias al nuevo sistema de tutoriales de iPhone4Spain, con los enlaces de descarga actualizados...

Leer Mas

, ,

16

abr

Curso de Programación iOS. Clase 4: introducción a TableViewController

,

16 de abril de 2012 a las 20:09

Curso de Programación iOS. Clase 4: introducción a TableViewController

Bienvenidos a la Clase 4 del Curso de Programación iOS de iPhone4Spain.

En esta clase vamos a hacer una introducción a la utilización del “TableViewController“, uno de los componentes más importantes y más utilizados en la aplicaciones iOS. A lo largo del curso profundizaremos más en utilidades y propiedades de este componente.Este componente se utiliza para crear listados de elementos. Sin ir más lejos podemos ver el ejemplo en la AppStore, donde tendremos listados de los tipo de aplicaciones que hay.

Empezamos ya con la clase creando un proyecto nuevo. “File -> New -> Project…“. Seleccionamos una “Empty Application”.

Nombramos el proyecto. Nuestro proyecto lo hemos llamado “Clase 4“.

Una vez creado el proyecto, vamos a añadir un nuevo fichero de la clase “UITableViewController” con el que crearemos el listado.

Primero, pulsamos el botón derecho en la carpeta del proyecto y pulsamos “New File…

Seleccionamos “Objective-C class“.

En el siguiente paso nombramos a la clase. Nosotros la hemos llamado “ListViewController“.

Seleccionamos que es subclase de “UITableViewController” y marcamos “With XIB for user interface“.

Agrupamos los ficheros en carpetas con el nombre de la clase para tener el proyecto ordenado.

Una vez añadido la “ListViewController” vamos a hacer que la aplicación arranque en la escena asociada. Para ello, como siempre, editamos el fichero “AppDelegate.m“.

Importamos “ListViewController.h“, creamos un objeto de “ListViewController” y lo asignamos a la propiedad “rootViewController” de “window“.

Ahora abrimos el fichero “ListViewController.m” y vamos a observar los métodos “numberOfSectionsInTableView“,  ”numberOfRowsInSection” y “cellForRowAtIndexPath“.

En “numberOfSectionsInTableView” es el método donde indicamos el número de secciones que va a tener el “TableViewController“. En “numberOfRowsInSection” indicamos el número de filas que tendrá el componente. Es importante quitar los #warning una vez modificamos los métodos.

El “TableViewController” de la aplicación va a tener una sección y doce filas.

Además, el texto que va a tener cada celda es “Celdas“. Para ello, modificamos el método “cellForRowAtIndexPath“.

También, hay que comprobar que “cell” sea igual a “nil” e inicializar “cell“, sino dará error al ejecutar la aplicación.

Ejecutamos y probamos el funcionamiento de la aplicación. Podéis poner un “breakpoint” en el método “cellForRowAtIndexPath” para ver cómo se comporta cuando se ejecuta.

La aplicación mostrará el “UITableViewController” con doce filas en las que el “textLabel” tendrá escrito “Celdas

La aplicación que vamos a proponer esta semana ha de tener 25 filas en las que mostraremos el número de celda y el índice que tiene. Para ver el índice utilizaremos una variable que recibe el método, “indexPath“.

Ya está disponible la solución al ejercicio de esta clase: Solución.

Siguiente clase: Clase 5, listado y detalle con patrón delegado.

Un saludo!!!

Leer Mas

16

abr

OPlayer, genial reproductor de video mas tutorial para envio de archivos

,

16 de abril de 2012 a las 18:17

OPlayer, genial reproductor de video mas tutorial para envio de archivos

OPlayer es quizá uno de los mejores reproductores de vídeo para dispositivos iOS tanto por su funcionamiento como posibilidad y gran cantidad de formatos que puede reproducir.
Dispone de dos versiones universales, OPlayer en App Store (2,39€) y OPlayer Lite en App Store (gratis)
Además cuenta con dos versiones mas especialmente diseñadas para iPad, OPlayer HD en App Store (3,99€) y OPlayer HD Lite en App Store (gratis)....

Leer Mas

,

14

abr

Tutorial: Encontrar la ruta a la carpeta Download de Installous

,

14 de abril de 2012 a las 15:20

Tutorial: Encontrar la ruta a la carpeta Download de Installous

En este breve tutorial os mostraremos la ruta para acceder a la carpeta Download de Installous, útil para importar o exportar archivos .ipa desde un PC / MAC e instalarlos directamente.

Para acceder a ella recomendamos iFile, esta app de Cydia nos permite navegar por los directorios de nuestro dispositivo además de importar o exportar archivos o carpetas a la raíz...

Leer Mas

14

abr

Curso de Programación iOS. Clase 3: solución y explicación del ejercicio propuesto

,

14 de abril de 2012 a las 14:36

Curso de Programación iOS. Clase 3: solución y explicación del ejercicio propuesto

Bienvenidos a la solución y explicación del ejercicio propuesto en la Clase 3 del Curso de Programación iOS de iPhone4Spain.

Hoy explicaremos la realización del ejercicio propuesto en la Clase 3, en la que vimos cómo realizar una aplicación con diferentes categorías utilizando el popular componente “TabBarController“. Vimos cómo añadir imágenes en el “TabBarController” y cambiar el título que aparece debajo de la imagen.El ejercicio propuesto en la Clase 3 es muy parecido al de la explicación por lo que, al igual que el ejercicio propuesto de la Clase 2 del Curso de Programación iOS de iPhone4Spain, no hay que buscar información adicional para realizarlo.

Empezamos creando un proyecto nuevo, “File -> New -> Project…“. Seleccionamos “Empty Application“.

Le ponemos nombre al proyecto. Nosotros lo hemos llamado “EjercicioClase3“.

Agregamos todos los ficheros que necesitamos para hacer la aplicación. Les hemos llamado “HomeViewController“, “ChatViewController” y “AppleViewController“.

Para agregar los ficheros, pulsamos el botón derecho del ratón dentro de la carpeta “EjercicioClase3“.

Seleccionamos “Objective-C class“.

Nombramos los ficheros.

Agrupamos en carpetas todos los ficheros relacionados para tener ordenado el proyecto.

La estructura del proyecto ha de ser la siguiente.

Vamos ya a editar el fichero “AppDelegate.m“, como hicimos en la Clase 3, para crear el “UITabBarController” por código y hacer que “rootViewController” se ejecute en la escena que queremos.

Insertamos al proyecto las imágenes que queremos que lleven los botones del “TabBarController“. El tamaño aproximado de las imágenes es 30×30. Modificad el tamaño si veis que no se consigue cuadrar dentro del cuadro correspondiente. Las imágenes serán con formato .png con fondo transparente.

Nosotros hemos subido al proyecto 3 imágenes: “home.png“, “chat.png” y “apple.png

Seleccionamos la imagen y quedará insertada en la correspondiente carpeta.

Modificamos el método “initWithNibName” de los ficheros “HomeViewController.m“, “ChatViewController.m” y “AppleViewController.m” para que las escenas tengan título e imagen en el “TabBarController“.

Por último, vamos a cambiar el color de fondo de las interfaces para ver el cambio entre las escenas.

Probamos la aplicación y vemos su correcto funcionamiento.

Ya damos por terminada la Clase 3.

Siguiente clase: Clase 4, introducción a TableViewController.

Un saludo!!!

Leer Mas

Página 3« Ir a Primera...234...