Creare una semplice App per indovinare una frase

Tempo fa avevo creato un app semplice giusto per divertirmi (praticamente i giorni prima del nuovo anno 2013), con pochi e semplici codici. Aprendo un nuovo progetto su Xcode andiamo nello storyboard e inseriamo una UITextView e scriviamo qualcosa dentro tipo : Io mi chiamo___.

app semplice di natale

Dove sono gli trattini bassi inserite un UITextField modificando la sua larghezza quanto i trattini. Inserite anche un bottone possibilmente sotto la UITextView. Adesso andiamo nel file delle dichiarazioni e inseriamo i codici degli oggetti che abbiamo inserito:

[code lang=”obj-c”]
{
IBOutlet UITextView *testo
IBOutlet UITextField *first;
}
-(IBAction)okButton:(id)sender;
[/code]

Inseriamo anche il protocollo  <UITextFieldDelegate> e per rendere l’app più carina inseriamo un framework già presente in Xcode “AVFoundation”  importando la sua classe nell nostro progetto. Faremo una cosa semplice: Quando il bottone verrà premuto faremmo partire una canzone.

Colleghiamo gli outlet nello Storyboard e poi andiamo nel file del implementazione nel ViewDidLoad :

[code lang=”obj-c”]
first.delegate=self;
testo.text = @"Io mi chiamo___.";
[/code]

Implementiamo il metodo dichiarato:

[code lang=”obj-c”]
-(IBAction)okButton:(id)sender
{
NSMutableString *mtmbStringa = [NSMutableString stringWithString:testo.text];
NSUInteger firstLength = [first.text length];
[mtmbStringa replaceCharactersInRange:NSMakeRange(23,firstLength) withString:first.text];
testo.text = mtmbStringa;
NSString *rightString = @"Io mi chiamo Apple.";

if ([mtmbStringa isEqualToString:rightString])
{
first.text=@"";
[self soundPlay];
}else {
UIAlertView *alert= [[UIAlertView alloc] initWithTitle:nil message:@"No, ti sbagli" delegate:self cancelButtonTitle :@"Riprova" otherButtonTitles: nil];
[alert show];
[sound stop];
}
}
[/code]

Praticamente se la stringa è uguale a quello che noi vogliamo, faremmo partire un suono o una musica.
Come vedete, abbiamo inserito anche un metodo “soundPlay”:

[code lang=”obj-c”]
-(void)soundPlay
{
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/JINGLE BELLS – FRANK SINATRA.mp3", [[NSBundle mainBundle] resourcePath]]];
NSError *error;
sound = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
sound.numberOfLoops = 0;
[sound play];
}
[/code]

Non dimenticate di dichiarare una classe “AVAudioPlayer“:

[code lang=”obj-c”]
AVAudioPlayer *sound;
[/code]

Adesso possiamo testare il progetto e se volete potete confrontarlo con quello un po più esteso del tutorial.

download codice sorgente