YouTube player integrato nell’app

Se si vogliono integrare video tratti da YoutTube nella propria app senza però rinunciare alla flessibilità e alla coerenza grafica di una UIView (quindi scartando l’ipotesi di una UIWebView), allora si può ricorrere ad una sottoclasse della UIView che visualizza video di YouTube usando un MPMoviePlayerController.

Si può usare quindi il progetto Open Source LBYouTube di larcus94 che è distribuito sotto licenza MIT ed è disponibile in github.

La sottoclasse è molto semplice da usare perché basta aggiungerla al progetto e usarla come in questo esempio (prelevato dalla pagina github e corretto):

1
2
3
4
5
6
7
LBYouTubePlayerController* controller = [[LBYouTubePlayerController alloc] initWithYouTubeURL:[NSURL URLWithString:@"http://www.youtube.com/watch?v=1fTIhC1WSew&list=FLEYfH4kbq85W_CiOTuSjf8w&feature=mh_lolz"] quality:LBYouTubeVideoQualityLarge];
 
controller.delegate = self;
controller.view.frame = CGRectMake(0.0f, 0.0f, 200.0f, 200.0f);
controller.view.center = self.view.center;
 
[self.view addSubview:self.controller.view];
LBYouTubePlayerController* controller = [[LBYouTubePlayerController alloc] initWithYouTubeURL:[NSURL URLWithString:@"http://www.youtube.com/watch?v=1fTIhC1WSew&list=FLEYfH4kbq85W_CiOTuSjf8w&feature=mh_lolz"] quality:LBYouTubeVideoQualityLarge];

controller.delegate = self;
controller.view.frame = CGRectMake(0.0f, 0.0f, 200.0f, 200.0f);
controller.view.center = self.view.center;

[self.view addSubview:self.controller.view];

Dimensioni non corrette del frame dopo una rotazione?

Se è capitato anche a voi di trovarvi con delle dimensioni non corrette di un frame, di un oggetto o una vista, quando il dispositivo (iPhone o iPad che sia) viene ruotato, allora sappiate che la proprietà frame degli oggetti in Cocoa touch è basata su un sistema di riferimento assoluto, che non cambia quando ruota il dispositivo.

Questo può essere utile quando non si vuole cambiare nulla anche quando il dispositivo ruota, ma può creare grattacapi quando invece la disposizione degli oggetti dev’essere ridefinita programmaticamente,, ovvero tramite il codice.

In questo caso bisogna usare un’altra proprietà correlata con frame, ovvero bounds, una proprietà anche questa di tipo CGRect come frame, ma questa volta basata su un sistema di riferimento relativo all’orientamento del dispositivo. Bounds, quindi, restituirà (e potrà settare) la corretta altezza e larghezza di un oggetto senza problemi.

(*)

Link dalla propria app verso l’App Store

Per promuovere le proprie app, ma non solo, è utile sapere come portare un utente direttamente alla pagina dall’App Store, magari proprio nella sezione dedicata alle recensioni. Grazie alla buona dissezione effettuata di bjango.com abbiamo la possibilità di creare questi URL a piacimento. Ecco una lista completa (e aggiornata) dei link riguardanti l’App Store:

App Store home: http://itunes.apple.com/genre/mobile-software-applications/id36?mt=8
Games: http://itunes.apple.com/genre/mobile-software-applications/id6014?mt=8
Utilities: http://itunes.apple.com/genre/mobile-software-applications/id6002?mt=8
Un app specifica: https://itunes.apple.com/it/app/seguiprezzi/id529608422?mt=8

Pagina dello sviluppatore: https://itunes.apple.com/artist/davide-troise/id437294977

(bjango fa notare che “If you’d like to hide the redirections and speed up the process, Apple recommend using NSURLConnection.”)

Pagina delle recensioni (iOS 6+):
https://userpub.itunes.apple.com/WebObjects/MZUserPublishing.woa/wa/addUserReview?id=529608422&type=Purple+Software
o solo da dispositivi iOS:
itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=529608422
(non chiedetemi cosa significa “Purple Software”…)

Link ad uno specifico codice promozionale (detto anche redeem): https://phobos.apple.com/WebObjects/MZFinance.woa/wa/freeProductCodeWizard?code=RWAPJ7XLTHN7