Subir una aplicación a la App Store – Parte 2

Subir una aplicación a la App Store – Parte 2

Cómo subir mi aplicación y no morir en el intento.

Bueno, después de solucionar el problema con el nombre de mi proyecto, sigo con la segunda parte de este tutorial para subir la aplicación a la App Store.

Si esta es la primera entrada que lees del tutorial, te recomiendo que leas la Parte 1 antes de seguir.

Nos ponemos con el tema

Lo primero es abrir Member center con nuestra cuenta de desarrollador para rematar una cosa de la Parte 1 de este tutorial.

De nuevo -> Member Center -> iTunes Connect -> Manage Your Applications y hacemos click -> Ready to Upload Binary.
 

Ready to Upload Binary


 
Después de esto le indico que mi aplicación no ha sido diseñada ni incluye nada relacionado con la criptografía.
 

Criptografía


 
Por último en lo relacionado con Member Center pulso -> Continue para finalizar.
 

Continue


 

Ahora voy con la parte de Xcode

Las capturas de pantallas las hice con el nombre de la aplicación antigua por lo cual puede aparecer Totito en vez de Tatetí por algún lado, y 3enRaya en vez de IIIenRaya

Lo primero es probar que nuestra aplicación funciona correctamente en el Device que tengamos registrado. En mi caso la he probado en un iPhone 3GS que se llama Enea Kao.
 

Build Succeeded


 

Ahora tengo que generar el archivo que se manda a la App Store, para hacer esto en Xcode voy a la opción -> Product y -> Archive. Si no detecta ningún error generará nuestro archivo correctamente.
 

Archivo generado


 
Validamos nuestro archivo antes de enviar a la App Store para ser revisado. Para esto tendremos que introducir nuestros datos de acceso a iTunes Connect.
 

iTunes Connect


 
Aparecerá una ventana con los datos que ha cargado de nuestra cuenta de iTunes Connect. El primero es el nombre de la aplicación y el segundo es quien firma la aplicación. (Si tienes dudas de cómo firmar una aplicación revista este tutorial)
 
>

Aplicación y firma


 
Si nuestra aplicación pasa la prueba correctamente nos mostrará una ventana cómo esta.
 

Validation succeeded


 

Passed Validation


 
Con nuestra aplicación validada correctamente pulsamos en la opción -> Distribute y nos aparecerá una ventana como la siguiente. En la que le indicamos Submit to the iOS App Store y pulsamos Siguiente.
 

Submit to the iOS App Store


 

Being uploaded


 

Being uploaded


 
Seguidamente nos aparecerá una ventana como esta indicando que la aplicación se ha subido correctamente y que está en proceso de revisión por el equipo de Apple.
 

Submission Succeeded


 

Submitted


 
Ya estaría todo terminado, nuestra aplicación está siendo revisada por los chicos de Apple. Este proceso dicen que tarda aproximadamente 1 semana. A mi me han tardado las 3 aplicaciones que llevo subidas por ahora, justo 7 días.

Así aparece ahora si la vamos a ver a nuestra cuenta de iTunes Connect.
 

Waiting for review


 
Espero que os sirva de ayuda.
 
@eneakao
 

Subir una aplicación a la App Store – Problema con el nombre

Subir una aplicación a la App Store

Cómo subir mi aplicación y no morir en el intento.

Si el nombre de tu proyecto no empieza por un número no hagas ni caso a esta entrada

Después de terminar mi aplicación, cuando estaba preparando esta entrada me he dado cuenta que Xcode me generaba mal el nombre de mi aplicación si éste empieza con un número. El nombre que tenía mi app como os indiqué en la parte 1 de este tutorial era Totito, y el nombre de mi proyecto (que ha sido lo que me ha dado problemas) 3enRaya, Xcode me reconocía mi Bundler identifier como -enRaya.

Por este motivo, cuando la intentaba validar para subir desde Xcode me decía que no coincidia con la conexión que había realizado desde Member Center, ya que cuando di de alta mi New App ID lo hice con el nombre de 3enRaya y no de -enRaya.

Para solucionar este problema de una forma fácil (por lo menos para mi, no se si será la opción más acertada), cambié de nombre a mi proyecto desde Xcode.

Este era el nombre antiguo 3enRaya.xcodeproj y lo modifiqué por este otro IIIenRaya.xcodeproj.
Esta modificación la hice desde Xcode y para que me renombrara todos los archivos del proyecto dónde aparecia.

Este cambio generó otro problema, el nombre de Totito, estaba asociado a la App ID que hacía referencia a mi aplicación cuando le dije que se llamaba 3enRaya. Al no poder modificar la App ID para cambiar 3enRaya por IIIenRaya tuve que crear otra New App ID, con el nuevo y último problema añadido, el nombre de Totito ya lo tenía asignado y me decía que estaba ocupado. Ni eliminando la aplicación de mi Manage Your Apps pude poner el mismo.

(No entiendo como cuando das de alta una New App ID te deja hacerlo siendo el primer caracter un número si después Xcode no te lo reconoce).

Bueno, después de todo este lío que acabo de contar, mi proyecto se llama IIIenRaya y el nombre de la aplicación Tatetí, que según Wikipedia es otra forma de llamar a este juego de las Tres en Raya.

La mejor forma de evitar dolores de cabeza es crear el proyecto con un nombre que no empiece por número y tener muy en cuenta que al generar nuestra New App ID debemos poner el nombre exactamente igual que en el proyecto.

Este contratiempo me ha servido para retocar un poco más el icono de la aplicación. Esta nueva versión me gusta más.

 

Tatetí


 
Espero que os sirva de ayuda si habéis cometido el mismo error y si alguien tiene una forma de solucionar este error de forma más cómoda que lo escriba en un comentario y lo añadiré a la entrada bajo su nombre.
 
@eneakao
 

Subir una aplicación a la App Store – Parte 1

Subir una aplicación a la App Store – Parte 1

Cómo subir mi aplicación y no morir en el intento.

Debo reconocer que subir mi primera aplicación a la App Store me costó bastante más que desarrollarla. Y si me pongo a hacer memoria (no me tengo que ir muy atras, no hace ni cuatro meses que comencé a desarrollar para iOS), recuerdo algunos problemas que tuve con el certificado de distribución y me vuelve a doler la cabeza.

Después de subir mi primera aplicación, analicé el proceso y es bien sencillo. Sólo me faltaba atar algunos conceptos y un poco de ayuda en castellano.

Este tutorial voy a dividirlo en dos partes. No quiere decir que tenga mucha dificultad, es bastante sencillo, únicamente quiero separar la parte de cómo configurar todo lo relacionado con nuestro Member Center, de la parte de rematar nuestra aplicación -> Archive y subir mediante Xcode.

Nos ponemos con el tema

Lo primero es abrir Member center con nuestra cuenta de desarrollador.

 

Member Center


 

Una vez abierto, vamos a entrar en Provisioning portal para dar de alta el ID de la nueva aplicación -> New App ID

 

Creando New App ID


 

Nos aparecerá una pantalla como esta

 

Añadiendo New App ID


 

Rellenamos estos dos campos.
El campo de arriba sirve únicamente para que nosotros identifiquemos dentro de nuestro panel el ID creado. El campo de abajo será nuestro verdadero ID. Yo lo he acompañado con mi dominio como el ejemplo de Apple -> es.untitled.mismo nombre que hemos dado a nuestra aplicación con Xcode, es decir -> es.untitled.3enRaya

 

Añadiendo New App ID


 

Quedando en nuestro panel de esta forma.

 

New App ID añadido


 

Después de esto, volveremos a nuestro menú principal de Member Center, el que aparece en la primera imagen de esta entrada y pulsamos -> iTunes Connect. Nos aparecerá otro menú del que elegiremos -> Manage Your Applications, y pulsamos -> Add New App.

 

Añadir New App


 

Nos aparecerá una ventana como la siguiente y completaremos los datos que nos pide.

 

Añadiendo información


 

Default lenguage
Pondremos nuestro lenguaje, en mi caso he seleccionado Spanish.
App Name
El nombre real de nuestra aplicación en App Store.
SKU Number
Es el número único utilizado para identificar la aplicación que se está agregando. O eso dice más o menos cuando pulsas el botón de ayuda. Realmente todavía no se para qué sirve. Yo vengo poniendo en mis aplicaciones 0001, 0002, 0003, etc.
Bundle ID
Desde aquí seleccionaremos el ID de nuestra aplicación, el que hemos creado en los pasos anteriores.

Puede ser que cuando pulsamos continuar nos marque algún error. El más común es cuando seleccionamos un nombre en App name y ya está siendo utilizado por otra aplicación.

En mi caso me dio varias veces, intenté que se llamara 3 en raya y también Tres en raya, pero los dos estaban ya siendo utilizados. Al final me decanté por Totito que es otra forma de llamar al mismo juego según Wikipedia.

Me sonó simpático, Totito.

Seguimos y nos aparecerá otra pantalla para seguir cumplimentando formularios sobre nuestra aplicación. En este de ahora le vamos a indicar desde cuando queremos que esté disponible nuestra aplicación, el precio y si hacemos descuentos para instituciones relacionadas con educación, entre otros.

 

Añadiendo precio


 

Después pasamos a otro formulario, esta gente de Apple no se cansa de solicitar información :)

Los nuevos datos que va pidiendo no voy a explicarlos, creo que son demasiados obvios. Si tu inglés no te permite descifrar que está pidiendo en cada caso usa el traductor de Google.

 

Completando información


 

Añadiendo información


 

Añadiendo información


 

Ahora tendremos que añadir el icono y dos imágenes que se mostrarán cuando se descargue nuestra aplicación. Estas 3 imágenes tienen una medida específica. En cada símbolo de interrogación indica la medida que necesita tener cada una.

 

Añadiendo imágenes


 

Pulsamos -> Done y de esta forma ya la tendremos preparada para subir a la App Store, ponerla en revisión y esperar que los chicos de Apple la acepten.

 

Finalizar


 

Así aparecería en espera para ser subida en nuestro panel de control de las aplicaciones.

 

Mis aplicaciones


 
Desde aquí puedes ver la Parte 2 de cómo subir tu aplicación a la App Store.
 
Desde aquí puedes solucionar el problema para subir tu aplicación si el nombre de tu proyecto empieza por un número.
 
Espero que os sirva de ayuda.
 
@eneakao
 

Senku 32

Senku 32

Juego solitario Senku para iPhone.

El nombre original de este juego es de origen japonés. También se conoce como Uno solo. A mi personalmente me gusta mucho más Senku, suena más étnico.

 

Senku 32


 

A día de hoy han pasado algo más de 15 días y todavía no he sido capaz de resolverlo entero, mira que le he dado vueltas, pero nada. Me quedo con dos fichas la vez que más me acerco a la victoria.
El comodín de mirar en Youtube la solución todavía no lo he agotado, me hace más ilusión completarlo.

La otra noche antes de acostarme me puse a dar vueltas a la cabeza para llevar este juego de mesa al Iphone (debo reconocer que últimamente quiero transformar en app de iOS casi todo, sí, he dicho casi todo, incluso salir a comprar el pan).

Lo primero que hice fue analizar el tablero y los posibles movimientos de cada ficha dentro de éste.

Si sabes jugar a Senku, sabrás que el movimiento de cada ficha es muy sencillo. Puedes mover las fichas en línea recta y en todas direcciones, nunca en diagonal. Siempre que para el lado que vamos a mover haya otra ficha y que en el lugar dónde se vaya a colocar esté vacío.

Es decir, tenemos que hacer saltar una ficha hasta un lugar vacío y así estamos comiendo la ficha que saltamos. Los saltos obviamente son de uno en uno. No podemos saltar a un lugar vacío dejando tres fichas en el medio y zampándonolas.

Bueno, pues con este tipo de movimiento en la cabeza se me ocurrió una forma muy sencilla de llevarlo hasta el iPhone.

Me centré en vez de en los movimientos de las fichas en el tablero.

Cada cuadro de mi tablero puede recibir un número determinado de jugadas posibles, dependiendo de la situación de las fichas en cada momento.

 

Senku


 

Creando un evento in side para cada uno de mis cuadros del tablero, pregunto varias cosas desde cada una de las posibles posiciones correctas. Siempre hago las mismas preguntas.

Si se cumplen alguna vez todas mis preguntas es un movimiento correcto. De no ser así no hago nada.

Las preguntas son estas:

1º ¿Lo que ha pulsado el jugador es realmente un cuadro vacío de mi tablero?
2º ¿La ficha que hay seleccionada está a dos fichas del cuadro vacío de mi tablero?
3º ¿La ficha intermedia entre el cuadro del tablero y la seleccionada existe?

En esta entrada no voy a poner el código del juego, lo tengo ya subido a la App Store, puedes descargarlo desde allí. Sí voy a darte una gran pista para que lo puedas realizar tu, únicamente utilizo la estructura IF.

Si decides descargar este juego, que sepas que vas a tener entretenimiento para rato y además estarás contribuyendo a que pueda seguir comiendo y actualizando mi blog :)

Aquí puedes verlo en la App Store.

Quiero dar las gracias a Ivo por la traducción del juego. Mi inglés de mercadillo no me hubiera permitido sacarlo en otro idioma que no fuera el castellano.

Espero que disfrutéis.
 
@eneakao
 

Aniversario de ZX Spectrum

Aniversario de ZX Spectrum

Desde Untitled.es queremos felicitar el aniversario de ZX Spectrum. No te olvidamos.
 

 

 

Aquí os dejo un manual que puede poner los pelos de punta a más de uno.
Manual Basic Spectrum 48k.

UISlider con iOS

UISlider con iOS

Voy a crear un ejemplo en el que incluiré un elemento del tipo UISlider.

Este elemento puede tomar cualquier valor numérico dentro de un rango que definamos. Para este ejemplo voy a utilizar como su valor más bajo el 0 y su valor más alto el 1.
De esta forma jugaré con la opacidad de una fotografía.

 

UISlider con iOS


 

Nos ponemos con el tema

Antes de nada, como en todas las entradas anteriores quiero indicar a las personas que vienen siguiendo los tutoriales, que actualicé mi Xcode por la versión Xcode 4.3.2.

Lo primero que tenemos que hacer es crear un proyecto nuevo.

Con nuestro proyecto nuevo ya creado, añado una imagen negra para el fondo, una Label y un elemento UISlider.
Modifico un poco sus propiedades asegurándome que el UISlider tiene sus valores de rango máximo y mínimo de 1 y 0. Modificaré su Current a 0 para que aparezca su valor inicial a 0.

 

Imagen 1


 

Después de esto voy a añadir otra fotografía, que será la que aparezca y desaparezca una vez que mueva el slider.
Para mi ejemplo utilizaré una foto de mi hermosa gata Rama, que modificaré con opacidad 0 para que no aparezca en el inicio.

 

Imagen 2


 

Una vez que tengamos la parte del diseño terminada pasamos a nuestros archivos de código.

Así debe quedar nuestro archivo .h

 

#import < UIKit/UIKit.h>
@interface ViewController : UIViewController {
    UILabel *contador;
    IBOutlet UIImageView *imagen;
}
@property(nonatomic, retain) IBOutlet UILabel *contador;
-(IBAction)moverSlider:(UISlider *)sender;
@end

Así debe quedar nuestro archivo .m

 

#import "ViewController.h"
@implementation ViewController
@synthesize contador;
-(IBAction)moverSlider:(UISlider *)sender{
    contador.text = [NSString stringWithFormat:@"%f", sender.value];
    imagen.alpha =  sender.value;
}
@end

 
Ahora faltaría unicamente enlazar nuestro código con nuestros elementos y moverSlider con el elemento UISlider del storyboard con Value Changed.
 

Imagen 3


 
Bueno, pues con esto estaría terminada nuestra aplicación.
Aquí tenéis un vídeo de como se ve la aplicación funcionando en el emulador del Iphone.

Espero que os haya servido de ayuda.
@eneakao

UISwitch con iOS

UISwitch con iOS

Voy a crear un ejemplo en el que incluiré un elemento del tipo UISwitch.

Este elemento puede tomar dos posiciones de forma boleana. Voy a utilizar su posición OFF para que no haga nada y su posición ON para que nos muestre la aplicación a pantalla completa haciendo desaparecer la barra de estado.

 

 

Nos ponemos con el tema

Antes de nada, como en todas las entradas anteriores quiero indicar a las personas que vienen siguiendo los tutoriales, que actualicé mi Xcode por la versión Xcode 4.3.2.

Lo primero que tenemos que hacer es crear un proyecto nuevo.

Con nuestro proyecto nuevo ya creado, añado una imagen de fondo para decorar un poco el ejemplo.
Esta imagen la coloco un poco más grande que nuestro View Controller por la parte de arriba, donde está la barra, de esta forma cuando desaparezca también se verá la imagen.

 

Imagen 1


 

Después voy a añadir este elemento del que venimos hablando que hará la función de activar y desactivar. Modifico algunas de sus propiedades para decirle que por defecto aparezca OFF y que cambie su color a gris.

 

Imagen 2


 

Una vez que tengamos la parte del diseño terminada pasamos a nuestros archivos de código.

Así debe quedar nuestro archivo .h

 

#import "ViewController.h"
#import < UIKit/UIKit.h>
@interface ViewController : UIViewController{
    UISwitch *interruptor;
}
@property (nonatomic,retain) IBOutlet UISwitch *interruptor;
-(IBAction) cambiarValor;
@end

Así debe quedar nuestro archivo .m

 

#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
-(IBAction) cambiarValor{
    if (interruptor.on) {
        [[UIApplication sharedApplication] setStatusBarHidden:YES
        withAnimation: UIStatusBarAnimationSlide];
    }else{
        [[UIApplication sharedApplication] setStatusBarHidden:NO
        withAnimation: UIStatusBarAnimationSlide];
    }
}
@synthesize interruptor;
@end

Esta línea del código es la que dice que se muestre o no la barra de estado:
 
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation: UIStatusBarAnimationSlide];
 
Yo la he puesto dentro de la estructura if de la aplicación. De esta forma dependiendo del valor que tome en cada momento nuestro elemento UISwitch, su valor hidden estará en YES o en NO. Así se mostrará oculta o visible.

Ni que decir tiene que esta línea la podemos poner de esta forma y mostraría nuestra aplicación a pantalla completa desde que se abra.

 

-(IBAction)viewDidLoad{
    [[UIApplication sharedApplication] setStatusBarHidden:YES
    withAnimation: UIStatusBarAnimationSlide];
}

 
Ahora faltaría unicamente enlazar nuestro código cambiarValor con el elemento UISwitch del storyboard con Value Changed.

 

Imagen 3


 

Bueno, pues con esto estaría terminada nuestra aplicación.
Aquí tenéis un vídeo de como se ve la aplicación funcionando en el emulador del Iphone.

Espero que os haya servido de ayuda.
@eneakao

Sonidos SystemSoundID con iOS

Sonidos SystemSoundID con iOS

Ayer estuve poniendo sonidos a los botones de una aplicación que tengo casi preparada para enviar a revisión y se me ocurrió preparar una entrada relacionada con el funcionamiento de sonidos de forma muy simple.

Para esta entrada voy a modificar el ejemplo anterior del segundero para que suene una alarma cuando pase un determinado número de segundos. En vez de ir añadiendo segundos, lo voy hacer como cuenta atrás.

 

 

Nos ponemos con el tema

Antes de nada, como en todas las entradas anteriores quiero indicar a las personas que vienen siguiendo los tutoriales, que actualicé mi Xcode por la versión Xcode 4.3.1. Ya están disponibles otras versiones nuevas pero por ahora no he actualizado.

Lo primero es crear un proyecto nuevo, o abrir el ejercicio de la entrada anterior ya que tengo intención arrancar este ejemplo desde ahí.

Una vez con mi ejercicio abierto, le añado un framework para poder utiliza sonidos en mi aplicación. Desde aquí puedes ver cómo añadir un framework a mi proyecto.

Añadiremos AudioToolbox.framework

Después de esto, añado a mi proyecto el sonido en formato .wav que he descargado de esta página de sonidos.

 

Imagen 1


 

Para editar el sonido un poco y adaptarlo a mi gusto he utilizado el programa Soundbooth de Adobe, la versión CS5, la verdad muy intuitiva y fácil de manejar para hacer algo básico como adaptar el volumen.

 

Imagen 2


 

Este ejercicio no tiene nada de parte gráfica nueva, únicamente como puedes ver en la imagen 1, he suprimido 2 de los 4 botones del ejemplo anterior.

Así debe quedar nuestro archivo .h

 

#import < UIKit/UIKit.h>
#import < AudioToolbox/AudioToolbox.h>

@interface ViewController : UIViewController{
    NSTimer *contadorTimer;
    IBOutlet UILabel *segundero;
    int i;
}
-(IBAction)empezar:(id)sender;
-(IBAction)reiniciar:(id)sender;

@end

Así debe quedar nuestro archivo .m

 

#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
-(void)comienza:(NSTimer *) elContador
{
    //Comienzo a restar la cantidad de 1 a i por cada segundo que pasa.
    i=i-1;
    //Mientras i sea mayor o igual de 0 el segundero seguirá cambiando
    de valor en pantalla.

    if(i>=0){
        segundero.text = [[NSNumber numberWithInt:i] stringValue];
    }
    //Cuando i tome el valor de 0 cambio el caracter de segundero
    por este otro y hago que suene mi alarma.

    if (i==0){
    segundero.text = @"睤";
    SystemSoundID soundID;
    NSString *path = [[NSBundle mainBundle] pathForResource:@"alarma"
    ofType:@"wav"];  

    AudioServicesCreateSystemSoundID((__bridge_retained CFURLRef)[NSURL
    fileURLWithPath:path],&soundID);

    AudioServicesPlaySystemSound (soundID);
    }
}
- (void)empezar:(id)sender{
    //Como se puede ver inicio la variable i con el valor 10
    i=10;
    contadorTimer = [NSTimer scheduledTimerWithTimeInterval:1.0
                            target:self
                            selector:@selector(comienza:)
                            userInfo:nil
                            repeats:YES];
}
- (void)reiniciar:(id)sender{
    //Detengo el contador
    [contadorTimer invalidate];
    contadorTimer = nil;
    segundero.text = @"10";
}
@end

Bueno, pues con esto estaría terminada nuestra aplicación.
Aquí tenéis un vídeo de como se ve la aplicación funcionando en el emulador del Iphone.

Espero que os haya servido de ayuda.
@eneakao

Segundero utilizando NSTimer con iOS

NSTimer con iOS

Voy a crear un ejemplo muy básico de lo que se puede llegar a realizar con NSTimer.
Haré un segundero con 4 botones.

- Empezar
- Pausa
- Terminar
- Reiniciar

 

 

Nos ponemos con el tema

Antes de nada quiero indicar a las personas que vienen siguiendo los tutoriales, que he actualizado mi Xcode por la versión Xcode 4.3.1. Ya están disponibles otras versiones nuevas pero por ahora no he actualizado.

Lo primero es crear un proyecto nuevo.

Una vez con el proyecto creado voy a añadir la imagen de fondo que he creado para que la aplicación quede más bonita (es mi opinión), es la misma imagen que utilicé para la entrada anterior y tengo intención de utilizar para casi todas.

También añadiré una etiqueta y cuatro botones.

 
Imagen 1
 

Después de modificar algunas propiedades de los botones y de la etiqueta, como podéis ver la aplicación gana en diseño bastante.

 
Imagen 2
 

Una vez que tengamos la parte del diseño terminada pasamos a nuestros archivos de código.

Así debe quedar nuestro archivo .h

 

#import < UIKit/UIKit.h>
@interface ViewController : UIViewController{
    NSTimer *contadorTimer;
    IBOutlet UILabel *segundero;
    int i;
}
-(IBAction)empezar:(id)sender;
-(IBAction)terminar:(id)sender;
-(IBAction)pausa:(id)sender;
-(IBAction)reiniciar:(id)sender;
@end

 

Así debe quedar nuestro archivo .m

 

#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
-(void)comienza:(NSTimer *) elContador
{
    i=i+1;
    segundero.text = [[NSNumber numberWithInt:i] stringValue];
}
- (void)empezar:(id)sender{
contadorTimer = [NSTimer scheduledTimerWithTimeInterval:1.0
                            target:self
                            selector:@selector(comienza:)
                            userInfo:nil
                            repeats:YES];
}
- (void)terminar:(id)sender{
    [contadorTimer invalidate];
    contadorTimer = nil;
    i=1;
    segundero.text = @"✿";
}
- (void)pausa:(id)sender{
    [contadorTimer invalidate];
    contadorTimer = nil;
}
- (void)reiniciar:(id)sender{
    i=0;
    segundero.text = @"0";
}
@end

 

Desde scheduledTimerWithTimeInterval:1.0 podemos indicarle cada que intervalo hace lo que le digamos.
Yo en el ejemplo cada segundo estoy sumando i=i+1 y mostrando en la etiqueta el valor de i. Si le damos un poco de vueltas a la cabeza veremos rápidamente que se pueden hacer muchas cosas.
A mi así de repente se me ocurren 2, una cuenta atrás y que el intervalo de tiempo sea mayor y sirva para avisarnos de algo cada cierto tiempo. En fin, eso ya cada uno que le de vueltas.

Una vez terminado el código, únicamente nos faltaría enlazar éste. Para esto hacemos click sobre nuestro storyboard y enlazamos el código con nuestros botones y con la etiqueta.

 
Imagen 3
 

Bueno, pues con esto estaría terminada nuestra aplicación.
Aquí tenéis un vídeo de como se ve la aplicación funcionando en el emulador del Iphone.

Espero que os haya servido de ayuda.
@eneakao

Alertas UIAlertView con iOS – Varios botones

Alertas UIAlertView con iOS – Varios botones

Voy a crear un ejemplo en el que incluiré un botón y una etiqueta. Cada vez que pulse el botón me aparecerá una alerta con varias posibilidades para elegir. Estas diferentes posibilidades se van a encargar de modificar el color del texto de la etiqueta.

Los colores van a ser verde y rojo, también añadiré un botón para no modificar el color, sera el botón de cancelar.

Para que se entienda mejor.

Esta alerta del ejemplo va a servirnos para que el usuario decida que hacer mediante varias opciones, este tipo de alertas que sirve para preguntar al usuario y en función a su respuesta nuestra aplicación hace una cosa u otra.

 

 

Si necesitas mostrar una alerta que tenga únicamente un botón, puedes ver mi anterior ejemplo de alerta UIAlertView con un solo botón.

Nos ponemos con el tema

Antes de nada quiero indicar a las personas que vienen siguiendo los tutoriales, que he actualizado mi Xcode por la versión Xcode 4.3.1. Ya están disponibles otras versiones nuevas pero por ahora no he actualizado.

Lo primero es crear un proyecto nuevo.

Una vez con el proyecto creado voy a añadir la imagen de fondo que he creado para que la aplicación quede más bonita (es mi opinión), es la misma imagen que utilicé para la entrada anterior. También añadiré una etiqueta y un botón.

 

 

Ahora añadiré un botón UIButton y una etiqueta UILabel a mi storyboard. El botón va a servirme para mostrar la alerta, dependiendo del botón que pulsemos en la alerta, la etiqueta va a cambiar de color, si pulsamos la opción cancelar se quedará del último color seleccionado sin modificar.

 

 

Una vez que tengamos la parte del diseño terminada pasamos a nuestros archivos de código.

Así debe quedar nuestro archivo .h

 

#import < UIKit/UIKit.h>
@interface ViewController : UIViewController  {
IBOutlet UILabel *frase;
}
- (IBAction)mostrarMensaje:(id)sender;
@end

 

Así debe quedar nuestro archivo .m

 

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (IBAction)mostrarMensaje:(id)sender {
frase.textColor = [UIColor blackColor];
UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Untitled.es"
                           message:@"Color para la etiqueta"
                           delegate:self
                           cancelButtonTitle:@"Cancelar"
                           otherButtonTitles:@"Rojo", @"Verde", nil];
[message show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:
(NSInteger)buttonIndex
{
    NSString *title = [alertView buttonTitleAtIndex:buttonIndex];
    if([title isEqualToString:@"Cancelar"])
    {
        //Lo que queremos que haga una vez que pulsamos cancelar.
    }
    else if([title isEqualToString:@"Rojo"])
    {
        frase.textColor = [UIColor whiteColor];
        frase.backgroundColor = [UIColor redColor];
    }
    else if([title isEqualToString:@"Verde"])
    {
        frase.textColor = [UIColor whiteColor];
        frase.backgroundColor = [UIColor greenColor];
    }
}
@end

 
Una vez terminado el código, únicamente nos faltaría enlazar éste. Para esto hacemos click sobre nuestro storyboard y enlazamos frase con nuestra etiqueta y mostrarMensaje con nuestro botón mediante Touch up inside.

 

 

Bueno, pues con esto estaría terminada nuestra aplicación.
Aquí tenéis un vídeo de como se ve la aplicación funcionando en el emulador del Iphone.

Espero que os haya servido de ayuda.

@eneakao
 

Entradas más antiguas «