iSorteo de iPhone4Spain

Participa en iSorteo

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

14

May

Tutorial, como hacer downgrade a iOS 5.0.1 con Redsn0w en iPhone 4S

Alejandro Fernandez de Piñar,

14 de Mayo de 2012 a las 15:52

Tutorial, como hacer downgrade a iOS 5.0.1 con Redsn0w en iPhone 4S

Trás la actualización de Redsn0w para  elaborar Custom Firmware con los SHSH obtenidos con TinyUmbrella os ofrecemos un sencillo tutorial con el que poder realizar un downgrade o bajada de versión con nuestros SHSH.

Principalmente recomendamos el método para dispositivos como iPhone 4S, iPad 2 o Nuevo iPad ya que para los anteriores dispositivos recomendamos usar el tutorial de iFaith.[...]

REQUISITOS:
- Tener ya nuestros SHSH guardados, podéis obtenerlos con nuestro tutorial de TinyUmbrella.
- Descargar un firmware oficial de iOS 5.0.1 y iOS 5.1.1, este tiene extensión .IPSW y podemos obtenerlos desde GetiOS. Necesitamos los 2.
- Descargar el último Redsn0w

AVISO:
Este proceso nos sube la Baseband por lo que si  necesitáis liberación de operador (cualquier método que no sea por IMEI) no lo podéis hacer.

CREAMOS CUSTOM FIRMWARE:
1. Ejecutamos Redsn0w y a continuación hacemos click en “Extras” y “Even More“.

2. Pulsamos “Restore” y a continuación Pulsamos “IPSW

3. Buscamos la IPSW de iOS 5.0.1 que previamente hemos descargado. Al pulsarla nos saldrá un aviso que nos indica que necesita otro firmware. Al pulsar “OK” ahora debemos buscar la IPSW de iOS 5.1.1 que previamente hemos descargado y abrirla.

4. Nos mostrará un aviso comunicando que nuestra Baseband será actualizada, pulsamos “YES” si no necesitamos ninguna liberación.

5. Nos mostrará un aviso que indica que nuestro dispositivo está en Recovery mode. Pulsamos “OK

6. Ahora debemos seleccionar los SHSH de iOS 5.0.1, podemos escoger entre hacerlo de forma remota o local. La opción remota nos cogerá los SHSH desde Cydia si están guardados automáticamente. La opción local nos permite seleccionar los SHSH que hemos guardado gracias a TinyUmbrella, recomendamos usar esta opción, Local, ya que así nos aseguramos tener ciertamente los SHSH de iOS 5.0.1

7. Comenzará a pegar los SHSH en la IPSW de iOS 5.0.1 y al terminal ya tendremos nuestro iPhone 4S, iPad 2 o Nuevo iPad con iOS 5.0.1 de nuevo.

 

Leer Mas

,

8

May

10n1c muestra Jailbreak de iOS 5.1.1 en su Nuevo iPad

Alejandro Fernandez de Piñar,

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[...].

No obstante 10n1c se niega a hacer pública alguna herramienta. El motivo por el que 10n1c sigue negándose a hacer públicas nuevas herramientas para realizar Jailbreak está motivado por la gran cantidad de gente que está interesada en el Jailbreak exclusivamente para piratear contenidos. Problema que parece ser bastante mas grande de lo que parece y que podemos hacernos una idea tras hacer público por ejemplo el creador de Springtomize, que el 92% de la gente que usa su aplicación lo hace ilegalmente y sabiendo que esta es una de las aplicaciones mas populares, podemos hacernos una idea del beneficio que pueden obtener otras.

Ciertamente la piratería es un problema serio y por tanto insistimos en no abusar de ella ya que aunque hay gente que solo le da un uso a modo de prueba antes de decidirse a comprar o no, otros usuarios recurren a este método por la “ventaja” de obtener gratuitamente cosas nuevas.
Piratear no es una ventaja aunque a priori lo parezca, recordad que si podemos disfrutar de fantásticas cosas es porque hay gente que dedica su tiempo y dinero a crearlas y como mínimo merecen nuestro agradecimiento por su trabajo en forma de pago. Si este problema continua empezaremos a vernos perjudicados todos muy probablemente ya que habrá gente negándose a seguir ofreciendo cosas a las que no le saca ninguna rentabilidad.

Leer Mas

2

May

Un truco de iOS 5, captura fotos remotamente

Alejandro Fernandez de Piñar,

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[...].

Para ello necesitamos conectar unos cascos que tengan botones para el volumen, como por ejemplo los cascos originales. Una vez conectados y con la cámara activa, pulsando el botón + de los cascos podemos efectuar una foto, al igual que también podemos realizar fotos con el botón + de nuestro iPhone.

 

 

 

Leer Mas

30

Abr

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

Mario Sevilla,

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

Sara Jimenez,

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.[...]En primer lugar, si queremos configurar nuestra cuenta de Gmail en iOS, debemos seguir una serie de pasos muy sencillos:
1. Debemos dirigirnos a Ajustes/Correos, Contactos, Calendario/Añadir cuenta/Gmail.
2. Tendremos que indicar nuestra cuenta de correo Gmail.
3. Seleccionaremos Siguiente y Guardar.Como nuestro objetivo principal es mover nuestros contactos de un teléfono a otro, tendremos que realizar ahora una serie de pasos sencillos para conseguir nuestra meta. Una vez tengamos insertada nuestra cuenta de Gmail, deberemos hacer la misma operación que anteriormente pero en lugar de seleccionar Gmail, lo haremos con Microsoft Exchange.

En el apartado de correo electrónico,añadiremos nuestra dirección de correo de Gmail. El campo de Dominio lo dejaremos en blanco. Introduciremos la dirección y la contraseña nuestra cuenta de Gmail.Tras hacer esto, deberemos seleccionar Siguiente y en el campo de Servidor, escribir m.google.com.

Si os pide la contraseña de la cuenta de Exchange, podréis darle a Cancelar.

El último paso es configurar la sincronización entre Correo, Contactos y Calendario de Google con iOS. Puedes, en este paso, seleccionar lo que te gustaría hacer con los datos (puedes mantenerlos en el iPhone o eliminarlos).
Si eres un usuario en línea de aplicaciones Google no existe ninguna razón por la cual haya un cambio adicional en el iPhone. Al configurar Gmail con Exchange, todos los contactos,  correo electrónico y calendario, se sincronizan sin ningún tipo de problema.

Pasar de un teléfono Android a un iPhone no tiene por qué ser difícil, pero aún así, esperemos que con este tutorial, las dudas desaparezcan.

Leer Mas

28

Abr

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

Mario Sevilla,

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

Alejandro Fernandez de Piñar,

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[...].
¿Como liberamos usando SAM?

TUTORIAL 1
Con la mas reciente versión de SAM, el proceso se ha simplificado en gran medida. Si poseemos la versión mas actualizada solo debemos seguir los siguientes pasos:

1. Para usar este método debemos disponer de Jailbreak y agregar su repositorio, http://repo.bingner.com. Desde este repositorio encontraremos la herramienta llamada SAM.
2. Insertamos la SIM del operador que queremos usar y abrimos SAMPrefs.
3. Abrimos “Utilities” y pulsamos la opción “Attempt Activation
4. Esperamos unos instantes a que termine el proceso y realice un respring automático y ya deberá reconocer nuestro nuevo operador.

Si el método nuevo no os funciona bien siempre podéis hacer el antiguo a continuación.

TUTORIAL 2
PARTE 1

1. Para usar este método debemos disponer de Jailbreak y agregar su repositorio, http://repo.bingner.com. Desde este repositorio encontraremos la herramienta llamada SAM.
2. Una vez descargada la herramienta nos aparecerá en el escritorio con el nombre SAMPrefs, la ejecutamos.
3. Abrimos la opción Utilities y pulsamos “De-Activate iPhone“. Ahora podemos volver atrás y pulsar sobre “More Information” para comprobar que se ha desactivado.
4. Vamos a “Method” y seleccionamos “By Country and Carrier” . En Country debemos introducir nuestro pais y en Carrier el operador original del iPhone, es decir, con el que tenemos el bloqueo por permanencia.
5. Vamos atrás y nos dirigimos a “More Information” y después ”SAM Details“. Aquí debemos buscar y copiar el número de identificación IMSI. Ya copiado este nñumero pulsamos “Spoof Real SIM to SAM
6. Retrocedemos a la pantalla inicial. Vamos a “Method” y seleccionamos ahora “Manual“. Volvemos a retroceder y veremos que ahora nos sale un hueco para e IMSI vacio en la página principal. Lo pulsamos y copiamos ahí el IMSI del paso anterior.

Una vez llegado aquí no deberéis haber tenido ningún problema ya que siguiendo los pasos el proceso es sencillo. En esta segunda parte del tutorial es donde debemos tener mayor paciencia ya que puede que tengamos que repetir el proceso. Lo importante es conservar la calma y estar atentos a los pasos.

PARTE 2
1. Conectamos el iPhone a nuestro ordenador, abrimos iTunes y le decimos que reactive el dispositivo.
2. En la ventana de iTunes, en la información de nuestro iPhone veremos nuestro número de telefono. Debemos hacer doble click sobre el campo de nuestro número de teléfono para que nos muestre el código ICCID y comprobamos que este coincide con el de la SIM. Si no coincidiera, debemos repetir todo el proceso.
3. Cuando el proceso de activación termine desconectamos iPhone del ordenador.
4. Desactivamos SAM entrando desde su aplicación y tachando la opción donde dice “Enable“. Ignoramos la notificación de desinstalación ahora.
5. Conectamos el iPhone nuevamente al ordenador y ahora iTunes nos dirá que es imposible activar el teléfono. Cerramos iTunes y lo abrimos de nuevo, mientras está ejecutando iTunes  si comenzará a activarlo. Ya tendremos el iPhone liberado.

 

Leer Mas

, ,

23

Abr

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

Mario Sevilla,

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

Mario Sevilla,

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

Alejandro Fernandez de Piñar,

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.[...]

REQUISITOS
-
PC con Windows
-
iFaith 1.4.2 (descarga aquí)
-
Obtener una IPSW de iOS 5.0.1 para nuestro dispositivo (descarga aquí)
-
Tener nuestros SHSH guardados, podemos verlo en la parte 1 de este tutorial: iFaith, guarda los SHSH de iOS 5.0.1

CREAR CUSTOM FIRMWARE

Para crear un archivo .IPSW con los SHSH que previamente guardemos para hacer downgrades o restauracion a versión anterior a la mas actual debemos seguir otros sencillos pasos usando iFaith también:

1- Abrimos iFaith y pulsamos “OK

2- Pulsamos ahora sobre “Build *signed*IPSW w/Blobs

3- En el siguiente paso que aparece le damos click a “Browse for SHSH Blobs cache”.

4- seleccionamos el archivo con los SHSH que guardemos en el anterior tutorial


5- Le damos Click en “Browse for the iOs 5.0 (XXXXX) IPSW”

6- Deberemos buscar ahora el archivo .IPSW que descarguemos al inicio del tutorial, el archivo debe ser para la versión 5.0.1 y para nuestro dispositivo, en el caso de los iPhone 4  hay que seleccionar el dispositivo como “iPhone 4 GSM

7- Lo dejamos trabajar

8- Pulsamos “Build IPSW

9- Empezará a trabajar ahora la IPSW, solo debemos dejarlo mientras nos crea nuestro Custom Firmware.

10- Cuando termine este paso veremos que ya ha creado el Custom Firmware en el mismo sitio que tenemos instalado iFaith, si lo tenemos en el escritorio, veremos que se ha creado en el escritorio. Una vez veamos que el Custom Firmware ha sido creado podemos cerrar iFaith.

6- Ya podemos guardar el Custom Firmware en la misma carpeta que tenemos el archivo de los SHSH. Recordamos que esa carpeta debe ser siempre guardada en buen lugar para no perderla.

 

Para restaurar usando nuestro Custom Firmware, solo debemos ir a iTunes y pulsar el botón restaurar mientras mantenemos pulsado el botón de mayusculas (no el botón de bloqueo de mayuscula). Al hacerlo así nos abrirá una ventana para que busquemos nuestro IPSW, aquí es donde tenemos que seleccionar el Custom Firmware y ya nos hará la restauración con este firmware modificado.

Si tenéis algún problema no dudéis en ponerlo.

 

Leer Mas

, ,

19

Abr

Tutorial iFaith, guarda los SHSH de iOS 5.0.1 parte 1

Alejandro Fernandez de Piñar,

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[...].

REQUISITOS
- PC con Windows
- iFaith 1.4.2 (descarga aquí)
- Dispositivo con versión iOS 5.0.1 instalado, (a excepción de iPhone 4S , iPad 2 o Nuevo iPad)

GUARDAR SHSH
1- Abrimos iFaith y conectamos nuestro dispositivo mediante el cable de datos al PC, pulsamos en la ventana que aparece el “OK

2- En este paso pulsamos “Dump SHSH Blobs

3- Aparece una ventana que nos avisa de los dispositivos compatibles y versiones, pulsamos “Proceed

4- En este paso pulsamos “Let´s go

5- Ahora nos aparecerá una ventana donde nos preguntará si estamos haciendo  el proceso sobre por ejemplo un Apple TV 2, marcanos “no” y a continuación seguirá el proceso.

6- En la siguiente parte nos pedirá que apaguemos nuestro dispositivo (sin desconectarlo del PC) y que pulsemos sobre “Start

7- Al pulsar “Start” nos mostrará los pasos para ponerlo en modo DFU, recordareis como hacerlo de cuando habéis realizado Jailbreak anteriores ocasiones, es la misma secuencia de botones. No obstante iFaith de forma muy intuitiva nos mostrará los pasos y solo debemos seguir sus indicaciones. Si no nos sale a la primera podemos repetir el proceso hasta que nos salga. En la primera cuenta atrás no debéis hacer nada, solo prepararos para pulsar Home+Sleep cuando lo indique.

8- Al entrar en modo DFU iFaith comenzará a trabajar, el proceso puede tardar unos minutos.

9- Cuando termine de trabajar, nos preguntará donde queremos guardar los ficheros que ha creado. Seleccionamos donde guardarlo, por lo pronto os recomiendo guardarlo en el escritorio y despues metero en una carpeta en el escritorio para tenerlo a mano ya que con el deberemos después crear nuestro Custom Firmware que guardaremos en la misma carpeta para respetar cierto orden…

 

CREAR UN CUSTOM FIRMWARE CON NUESTROS SHSH
Esto es lo que necesitaremos para poder restaurar sin subir la versión de iOS o realizar un downgrade de la versión siempre que queramos.

Podéis acceder desde aquí directamente a nuestro tutorial de iFaith parte 2.

Os recomendamos conservar esta carpeta tanto con el archivo del SHSH como con el Custom Firmware cuando esté creado ya que es lo que os dará la posibilidad de hacer todo.

 

 

Leer Mas

, ,

16

Abr

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

Mario Sevilla,

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

Alejandro Fernandez de Piñar,

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).[...]

¿Que formatos reproduce OPlayer?
XVID/DIVX AVI, WMV, RMVB, ASF, H264, MKV, TS, M2TS…entre otros muchos. Básicamente cualquier formato de vídeo comúnmente usado.
También soporta formatos de sonido MP3, WMA, WAV, OGG, FLAC…. entre otros. Y formatos de subtítulos como SMI, ASS, SUB, SRT, TXT…entre otros.

Otras características destacadas:
• Puede reproducir en una TV a través de tecnología AirPlay o directamente desde cable como HDMI, etc.
• Nos permite ordenar nuestros archivos, renombrarlos e incluso añadir contraseña para abrir OPlayer.
• Modo de bloqueo para poder ver una película sin que gire la pantalla si la movemos.
• Dispone de transferencia USB, a través de iTunes con el cable de datos podemos transferir archivos. Podéis ver nuestro tutorial para transferir vídeos valido para otros reproductores también mediante USB.
• Servidor y cliente FTP, que nos permite cargar películas a través de FTP con soporte para Cyberduck /Filezilla. El Cliente nos permite descargar archivos directamente desde un FTP a nuestro dispositivo.
• Cliente SAMBA, permite  descargar los archivos desde un servidor SAMBA.
• Soporta streaming, soporte para HTTP / RTSP / MMS / FTP / streaming SAMBA.

¿Como podemos traspasar vídeos del ordenador a OPlayer?
PRIMER MÉTODO: USB
El método mas común y principal es el método USB, que es el sistema que usan la mayoría de reproductores y otras aplicaciones para añadir o sacar archivos de las aplicaciones. Podéis ver nuestro tutorial para transferir vídeos por USB.

SEGUNDO MÉTODO: WIFI
Este método que integra OPlayer es muy cómodo y sencillo, solo debéis seguir los siguientes pasos aparte de tener el dispositivo y ordenador conectado en la misma red :

Primero paso
Abrirmos OPlayer y en la barra superior a la izquierda pulsamos el botón con+“.
Pulsamos “Transferir vía WIFI“.
Copiamos aparte la puerta de enlace que nos muestra en el primer recuadro porque debemos introducirla en el navegador de nuestro ordenador.

Segundo paso
Sin tocar OPlayer, abrimos un navegador en nuestro ordenador como Explorer, Firefox o Chrome.
Introducimos la puerta de enlace marcada anteriormente.
Ya podemos importar archivos directamente mediante WIFI pulsando sobre la opción “Upload File

TERCER MÉTODO: FTP, SAMBA
Para este método deberemos seguir los mismos pasos del anterior pero seleccionando “añadir servidor SAMBA” o “FTP“. Después solo debemos rellenar los datos de conexión y ya podremos usarlo.
Estos métodos son fáciles para los usuarios que usen estos métodos por lo que no necesitan un tutorial mas detallado, para los usuarios que desconozcan esto les resultará mas sencillo y rápido la transferencia por USB o por WIFI.

 

 

Leer Mas

,

14

Abr

Tutorial: Encontrar la ruta a la carpeta Download de Installous

Alejandro Fernandez de Piñar,

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[...].

¿Que necesitamos?

Primer Paso:
Necesitamos tener nuestro iPhone u otro dispositivo conectado a la misma red que el PC o MAC, da igual si estos están conectados por cable y el iPhone por WIFI, solo necesitamos que estén dentro de la misma red conectados. iFile realiza la conexión mediante WIFI, hay otras herramientas USB pero nosotros recomendamos esta por su utilidad y comodidad, además podemos obtenerla gratis aunque podemos donar si lo consideramos oportuno.

Segundo Paso:
Debemos abrir iFile, y pulsar en la barra de opciones inferior el icono de WIFI. Esto nos mostrará una pantalla en negro y al final nos mostrará una puerta de enlace. (192.168…). Debemos poner esas numeraciones en el navegador de nuestro ordenador tal cual y ya quedará conectado a nuestro dispositivo.

Tercer Paso:
Debemos abrir la siguiente ruta:
/private/var/mobile/Documents/Installous/Download
Desde aquí podemos seleccionar un archivo .ipa y subirlo o descargarlo pulsando sobre el. De esta forma se pueden instalar aplicaciones bajadas a través del ordenador manualmente.

 

Os recordamos que en la entrada de iFile en iPhone4Spain disponemos de mas información sobre esta herramienta y mas rutas útiles.

Leer Mas

Página 1 de 5123...Last »

iPhone4Spain en Google+

Añádenos a tus círculos

Publicidad

Blogs de interés en español

Interesting around the world