¡Feliz Navidad!

Deja un comentario

Hacía mucho que no escribía por aquí, ya que tengo varios proyectos muy interesantes entre manos. No quería empezar el año sin antes decirle a mis lectores: ¡Feliz Navidad y felices fiestas!

Este 2011 ha sido un año muy muy completo para mí, y espero que este 2012 lo sea aún más.

Este año (más concretamente este verano) me metí en el mundo de la programación iOS. Y ahí sigo. De momento sólo tengo una app un tanto “chorra” en el App Store, iMentiras, pero ya tengo varios proyectos muy interesantes entre manos.

Además, me ha surgido un proyecto muy interesante llamado FlayBack con dos grandes amigos de Twitter: @susgl, un crack en la informática y programación y @mrmangado, un máquina con el que podré quedar varias veces al año y que me echará una mano con la aplicación iOS de FlayBack. Por el momento no podemos decir nada del proyecto, únicamente: Stay tuned :D

Debido a este proyecto, estoy aprendiendo programación web. En concreto, ya sé defenderme con HTML y CSS, y a día de hoy ya estoy aprendiendo JavaScript y uso de servidores en iOS.

Cuando el servicio esté disponible ya avisaré tanto por Twitter como por aquí, y estaréis todos invitados a probarlo.

Un saludo y felices fiestas!

Cómo usar un PickerView

Deja un comentario

Como habéis podido observar, en iMentiras hay un PickerView para seleccionar el sonido que queremos escuchar. Pero a parte de reproducir sonidos, un PickerView sirve para otras muchas cosas como abrir vistas, cambiar valores de labels…

Para empezar a usarlo, necesitamos declarar un UIPickerView y un NSMutableArray, con sus respectivos @property y @synthesize. Una vez hecho, vamos a nuestro StoryBoard y arrastramos a nuestra vista un PickerView. Una vez hecho enlazamos el outlet de nuestra vista con el UIPickerView, pero también enlazamos con este el dataSource y el delegate.

A continuación, nos vamos al .m y metemos las siguientes funciones:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
{
 return 1;
}

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
   if (row==0){

   } if (row==1){

   } if (row==2){

   }
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
{
 return [array count];
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
{
 return [array objectAtIndex:row];
}

Donde vemos el if anidado con (row==0), (row==1)… tenemos que meter las acciones que le vamos a asignar a cada fila. Si queremos más filas, necesitaremos ampliar con (row==3), (row==4)… A continuación, necesitamos cargar los datos en el NSMutableArray para usarlos como nombre de fila en el PickerView.

-(void)viewDidLoad {
[super viewDidLoad];
array=[[NSMutableArray alloc] initWithObjects: @"Botella y la homosexualidad", @"Aznar y el régimen iraquí", @"Aznar y la DGT", @"Aznar hablando inglés", @"Josep Lluis y el catalán", nil];
}

Para ponerle los nombres que queramos, sólo debemos modificar los datos del array. Una vez terminado, le damos a Build & Run y veremos el PickerView en el simulador con los nombres que hemos cargado en el array.

Presentamos iMentiras

3 comentarios

Hola a todos. Después de estar más de dos meses sin escribir por aquí, el pasado miércoles 23 de Noviembre, Apple aprobó mi primera aplicación: iMentiras.

Ahora que está tan de moda la política con motivo del cambio de Gobierno, con iMentiras podrás escuchar las mejores frases de los políticos españoles a lo largo de la historia. Actualmente consta de unas 20 frases, pero se irán ampliando en futuras actualizaciones así como implementando mejoras como un botón de pausa. La aplicación está disponible en el App Store de forma gratuita.

Link al App Store | iMentiras

Cómo mostrar una hoja de acciones

2 comentarios


Una hoja de acciones (o Action Sheet en inglés) es el típico desplegable que nos aparece en la parte inferior de la ventana cuando queremos contactar con alguien en ciertas aplicaciones o cuando simplemente queremos eliminar un borrador en la app Mail. Lo bueno de las hojas de acciones es que son muy simples y la interacción con el usuario es muy buena.

El código es este:

-(IBAction)showActionSheet:(id)sender{

UIActionSheet *popupQuery = [[UIActionSheet alloc] initWithTitle:@"¿Cómo desea contactar?" delegate:self cancelButtonTitle:@"Cancelar" destructiveButtonTitle:nil otherButtonTitles:@"Enviar email",@"Llamada telefónica", @"SMS", nil];

popupQuery.actionSheetStyle = UIActionSheetStyleDefault;
[popupQuery showInView:self.view];
[popupQuery release];
}

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {

if (buttonIndex == 0) {
//Email
} else if (buttonIndex == 1) {
//Llamada telefónica
} else if (buttonIndex == 2) {
//SMS
} else if (buttonIndex == 3) {
//Botón de cancelar (dejar en blanco)
}
}

Para configurarla a nuestras necesidades, necesitaremos editar la línea 3. initWithTitle establece el título que va a llevar la hoja de acciones, en cancelButtonTitle establecemos el texto de nuestro botón de cancelar. Si no queremos ponemos nil. destructiveButtonTitle es el botón de color rojo. Su función es idéntica a la de los demás botones. Por último, en otherButtonTitle ponemos los botones que vayamos a usar, como en el ejemplo.

Para finalizar, deberemos editar los campos donde pone //Email, //Llamada telefónica, etc. Deberemos borrar los comentarios e insertar el código que queramos ejecutar al pulsar cada botón. Si añadimos otro botón, el buttonIndex == 3 pasará a ser de este nuevo botón y los últimos buttonIndex serán los de los destructiveButton y de los cancelButton, respectivamente.

Mostrar tu localización exacta en MKMapView

Deja un comentario

Mostrar la localización exacta de tu terminal en un MKMapView es muy fácil. Solo hay que poner el siguiente código:

-(IBAction)Localizame:(id)sender{

    mapa.showsUserLocation=YES;
    
}

Simplemente hay que cambiar el pointer mapa por el de tu MKMapView. Si lo que quieres es mostrar la localización nada más abrir la vista donde está el mapa, el código debe de ir dentro del ViewDidLoad.

Abrir una vista modal al pulsar un botón

6 comentarios


A la hora de hacer una aplicación es imprescindible poder acceder a diferentes vistas. Una manera es integrar Navigation Controller, pero si sólo quieres acceder a unas pocas, la mejor forma son las vistas modales. Además disponen de varios tipos de transiciones, concretamente cuatro.

Una vez creadas las dos vistas (donde está el botón y a la que quieres ir), hay que introducir este código en la primera:

-(IBAction)viewController:(id)sender{
    Vista2 *goView2 = [[Vista2 alloc] initWithNibName:nil bundle:nil];
    goView2.modalTransitionStyle = UIModalTransitionStylePartialCurl;
    [self presentModalViewController:goView2 animated:YES];

}

Una vez introducido el código, únicamente hay que cambiar Vista2 por el nombre de la vista a la que quieras ir al pulsar el botón. Para luego volver a la vista anterior, hay que poner este código:

-(IBAction)volver:(id)sender{
[self dismissModalViewControllerAnimated:YES];
}

Para cambiar a los distintos tipos de transiciones, solamente hay que cambiar estos códigos por el de la línea 4.

goView2.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

goView2.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;

goView2.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;

Cada uno es una transición diferente, y obviamente, sólo puede ser usada una por vista. En caso contrario dará error.

Reproducir un sonido al pulsar un botón en iPhone

8 comentarios

Seguro que algún día, mientras echabas un ojo en el App Store, te has encontrado con una aplicación de pedos o una que simula una batería. Por eso hoy os enseñaré a reproducir sonido al pulsar un botón. Lo primero y más importante es que el archivo de audio que queráis reproducir no pese mucho y que esté en formato .wav.

Una vez que hayamos añadido nuestro archivo de audio a Xcode, necesitaremos importar al proyecto el Framework AudioToolbox.

Una vez hecho necesitaremos poner este código en el archivo de implementación (.m):

-(IBAction)sonido1:(id)sender{
SystemSoundID soundID;
NSString *soundFile=[[NSBundle mainBundle] pathForResource:@"introducirnombre" ofType:@"wav"];
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:soundFile, &soundID);
AudioServicesPlaySystemSound(soundID);
}

Una vez metido, cambiamos el nombre del IBAction por el que nosotros queramos y metemos el nombre del archivo en la fila 4 pero sin la extensión.
Luego simplemente vamos al archivo .xib, el de la interface gráfica, añadimos un botón y enlazamos el File’s Owner con este.

Poner chincheta en MKMapView

Deja un comentario

A la hora de implementar un mapa en una aplicación, muchas veces requerimos seleccionar el sitio exacto del lugar (o lugares) al que queremos hacer referencia. Con este sencillo código podremos marcar el sitio exacto de un determinado lugar sobre un MKMapView.

El código en cuestón es este:

CLLocationCoordinate2D loc = CLLocationCoordinate2DMake(34.923964,-120.219558);
MKCoordinateRegion reg = MKCoordinateRegionMakeWithDistance(loc, 1000, 1000); self->mapa.region = reg;
MKPointAnnotation* ann = [[MKPointAnnotation alloc] init];
ann.coordinate = loc;
ann.title = @"Park here";
ann.subtitle = @"Fun awaits down the road!";
[self->mapa addAnnotation:ann]
[ann release]; self->mapa.hidden = NO;

Este código va dentro del ViewDidLoad y tienes que cambiar la variable mapa por el pointer de tu MKMapView. Si quieres poner varias chichetas, tienes que poner el mismo código a continuación en el ViewDidLoad y cambiar las variables loc, reg y ann por loc1, reg1 y ann1, por ejemplo.

Si lo que quieres es que te lleve directamente al mapa al pulsar un botón, a parte de ponerlo en el ViewDidLoad, también tienes que ponerlo en un IBAction.
Para establecer el lugar, tienes que cambiar las coordenadas del código por las del lugar que quieres asignar. Para ello accede a esta web y arrastra el muñeco naranja sobre el lugar que desees poner la chincheta. A continuación, copia los dos número pequeñitos que te aparecerán justo debajo de los cuadros amarillos y pégalos en el código, respetando la coma y si llevan signo (-).

Por último, para cambiar el texto y la descripción de la etiqueta, cambia el texto entrecomillado de las líneas 5 y 6 respectivamente.

Realizar una llamada telefónica al pulsar un botón

Deja un comentario

Seguro que si has hecho una aplicación donde haya comunicación con alguien, ya sea vía email o SMS, has querido introducir también la opción de la llamada telefónica. Con este código podrás ejecutar la opción de la llamada al pulsar un botón, es decir, introducir el código dentro de un IBAction.

El código es el siguiente:

-(IBAction)callPhone:(id)sender {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:XXXXXXXXX"]];
}

Obviamente, hay que sustituir las “X” por el número de teléfono que queramos asignar y cambiarle el nombre al IBAction por el que nosotros queramos.

Cómo integrar Mail en tu aplicación de iPhone

8 comentarios

Si quieres poder mandar un mail desde tu aplicación de iPhone, con este sencillo código podrás hacerlo sin problemas. Si quieres que se te despliegue la ventana del mail, tendrás que introducir el código dentro de un IBAction en el archivo de implementación previamente declarado en el archivo de cabecera o header.

Más

Entradas más antiguas

Seguir

Get every new post delivered to your Inbox.