Installare app via WIFI sul tuo iDevice durante lo sviluppo

A partire dalla versione 4.3 di Xcode Apple è eliminato la comoda (ma raramente funzionante) funzionalità di installare (ed eseguire il debug) delle applicazioni in modalità remota (via Wi-FI).
PDAgent ha creato un applicazione molto semplice da usare che, in parte, sopperisce a questo problema. Il meccanismo è molto semplice, si copia l’applicazione in uno spazio condiviso in rete e la si scarica sul proprio dispositivo via Wireless, il tutto ottimamente confezionato in un’applicazione Drag&Drop.

Vantaggi:

  • installazione sui dispositivi senza doverli avere connessi al computer (e sempre sotto carica)
  • installazione contemporanea su più dispositivi risulta più semplice e veloce (non bisogna continuamente collegare e scollegare i dispositivi dal computer)

Svantaggi:

  •  non abbiamo a disposizione il debug (e la console), che in parte si può ovviare con sistemi di logging remoto (vedi testflight, ….)

Come funziona:

  • si copia l’app compilata su uno spazio condiviso (consiglio l’uso di DropBox)
  • si riceve una notifica via email o push tramite boxcar
  • si scarica l’applicazione dal dispositivo

Potete scaricare l’applicazione per il Mac direttamente da AppStore da questo indirizzo AppDropOTA.

Per la configurazione DropBox – Boxcar procedere come segue:

  • inserire l’indirizzo email con il quale si è registrati presso il servizio Boxcar
  • selezionare un file qualsiasi all’interno della cartella Public e copiare il il link pubblico (pulsante destro)

 

  • trascinare l’app dalla cartella di Xcode in
  • aspettare la notifica sul proprio device e procedere con il download

Le 32 risorse che un developer di applicazioni deve conoscere

Ecco una infografica decisamente ben riuscita in merito agli strumenti che uno sviluppatore di applicazioni per dispositivi mobili (nello specifico per piattaforma iOS) dovrebbe conoscere.

Top 32 Resources A Mobile App Developer Should Know About
[Source: iPhone App Design]

Il fatto interessante è che copre quasi tutti i campi/passaggi dello sviluppo di un applicazione, presentato siti che tutorial completi, forum di discussione, siti per la promozione delle applicazioni o per lo sviluppo (o idee) per le interfaccie.

Delle risorse presentate  una che mi permetto di consigliare vivamente è  il blog di Ray Wenderlich che copre diversi temi con tutorial ben fatti e completi (tra cui anche diversi su cocos2d).

j2me ticker con iPhone?

L’iPhone non implementa i Ticker, quelle scritte che scorrono orizzontalmente in fondo allo schermo del vostro telefonino con java. È però semplice implementarle in obj-c utilizzando le animation. L’approccio che ho utilizzato è decisamente semplice, ho diviso la windows in 2 view separate, e su quella posizionata in basso ho inserito il testo (UILabel).

Il codice per far scorrere il testo è il seguente (viene descritto di seguito):

[myLabel setText:@"Hello world, I'm happy to be here today... have fun - d4kr"];
[myLabel setTextAlignment:UITextAlignmentCenter];

imposto il testo nella Label e lo centro, è importante centrarlo per creare un effetto lineare.

CGSize textSize = [[myLabel text] sizeWithFont:[myLabel font]];
CGFloat textWidth = textSize.width + myLabel.frame.size.width;
if (textWidth < myLabel.frame.size.width) {
    textWidth = myLabel.frame.size.width;
}
NSInteger myLabelWidth = textWidth + myLabel.frame.size.width;
myLabel.frame = CGRectMake(0, myLabel.frame.origin.y, myLabelWidth, myLabel.frame.size.height);

Calcolo le dimensioni del testo che si è andato ad inserire nella UILabel cosi da ridimensionare la Label per contenerlo tutto. Vengono poi aggiunti degli spazi cosi da avere una continuità di movimento. Se il testo della Label è minore della dimensione minima impostata questa vinene automaticamente modifica alla massima definita.

NSInteger time = textWidth/50; // 1 secondo per ogni 50px

Si imposta la velocità di scorrimento, 50px al secondo sono un buon rapporto e permette una semplice lettura.

[UIView beginAnimations:@"ticker" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
[UIView setAnimationDuration:time];
[UIView setAnimationRepeatCount:FLT_MAX];
myLabel.frame = CGRectMake(-textWidth, myLabel.frame.origin.y, myLabelWidth, myLabel.frame.size.height);
[UIView commitAnimations];

Questo è il blocco che contiene l’animazione, si tratta di un semplice movimento lineare che viene ripetuto infinite (FLT_MAX) volte.

Ecco a voi il progetto d’esempio testTicker.

Flurry – Mobile Application Analytics

Se avete necessità di monitorare come la vostra applicazione mobile funziona, quindi come/dove/quando/… questa viene utilizzata allora avete a disposizione flurry. Si tratta di una specie di google analytics però specifico per le applicazioni mobili e funziona su diverse piattaforme (iphone, android, blackberry e j2me) e cosa non da ultima, è liberamente utilizzabile se le vostre esigenze sono quelle di un normale sviluppatore.

Per quanto mi riguarda sto provando il servizio in una mia applicazione sviluppata per iPhone, ma andiamo con ordine, innazitutto è necessario registrarsi sul sito, procedura rapida, gratuita e senza compicazioni, quindi procedere con il download del framework da integrare nel proprio progetto.

Procediamo quindi con il login all’interno dell’area dedicata agli sviluppatori al seguente link dev.flurry.com e registriamo la nostra applicazione. A questo punto di quali servizi disponiamo e come facciamo ad integrarli?

Dobiamo integrare il Framework all’interno del nostro progetto in Xcode ma prima dobbiamo decidere se vogliamo implementare la geolocalizzazione della nostra applicazione oppure no. Questo servizio utilizza il sistema GPS per determiare la posizione di chi sta utilizzando la vostra applicazione (utile per delle statistiche localizzate).

Import del framework nel progetto
Import del framework nel progetto

Attualemente la versione disponibile è la 1.3, se questa viene aggiornata al vostro prossimo login sul sito di flurry verrete avvisati della disponibilità della nuova versione e potrete (se lo riterrete necessario) provevdere all’aggiornamento, questo chiaramente comporta il rinvio dell’applicazione alla Apple per il processo di approvazione.

Alla registrazione della vostra applicazione viene pure genereta una chiave (API Key) che dovrete integrare nel codice della vostra applicazione. Il sistema più semplice per implementare il servizio è quello di eseguire la chiamata all’interno del vostro AppDelegate come segue:

#import "FlurryApi.h";
...
[FlurryApi startSessionWithLocationServices:@"apikey"];

A questo punto la vostra applicazione è già pronta per supportare la geolocalizzazione ed il tracciamento degli utenti (modalità d’uso, tempi, …), cioé tutte quelle informazioni che vi permettono di capire meglio che tipo d’uso viene fatto del vostro sudore.

Ma non è tutto qui quello che potete fare, ad esempio il sistema permette di registare degli eventi che seguono specifiche chiamate, cosi da poter registarare casi particolari, … ma di questo parlerò in un prossimo post.

Buona statistica a tutti.