Cocoa Tip & Tricks – Memory Management e Notifications

Mi piacerebbe fare una sezione sui trucchetti e i migliori modi di scrivere il codice ma so già che non ce la farò.. però.. intanto inizio!

Memory Management

Ogni volta che si alloca un’istanza di un oggetto si deve rilasciare. Sempre. Ad esempio:

UIView* aView = [[UIView alloc] initWithFrame:CGRectZero];
[self.view addSubview:aView];

dopo è necessario rilasciarlo:

[aView release];
aView = nil;

Ma è importante anche assegnare il puntatore a ‘nil‘, altrimenti c’è la probabilità che punti ad una zona errata della memoria causando dei crash.

Notifications

Le notifiche sono davvero una manna e NSNotificationCenter è davvero ottimo, però bisogna ricordarsi di cancellarsi dalle notifiche, altrimenti si rischia di incappare in crash.

Quando ci registriamo quindi ad una notifica, ad esempio:

[[NSNotificationCenter defaultCenter] addObserver:observer selector:@selector(selectorDidHandle:) name:kNotificationKey object:self];

ricordiamoci anche di rimuoverci da tale notifica. In primis, quando non ci serve più, quindi ad esempio all’interno del metodo di handle:

- (void)selectorDidHandle:(NSNotification*)notification
{
   if (notification)
   {
      [[NSNotificationCenter defaultCenter] removeObserver:self name:notification.name object:notification.object];
   }
}

mi raccomando di controllare se ‘notification‘ esiste, perché se fosse ‘nil‘ allora vi rimuovereste da qualsiasi notifica perché inviereste tutti i messaggi ‘nil’ al metodo -removeObserver:name:object: e non è questo che vogliamo.

Come seconda cosa, quando si dealloca l’oggetto che si è registrato ad una qualche notifica, ricordatevi di cancellarvici.

- (void)dealloc
{
   [[NSNotificationCenter defaultCenter] removeObserver:self];

   [super dealloc];
}

Ecco, questi sono i primi tricks che ho voluto condividere con voi.. spero di avere tempo e voglia per dirvene altri..

Buona programmazione!

E’ passato un altro anno…

Ebbene si, è passato un altro anno. Avevano ragione i miei genitori quando mi dicevano che dopo i 30, gli anni sarebbero volati. Probabilmente è solo una percezione ma alla fine è proprio così.

Quindi sono qua a fare il solito recap e cercare di capire in questo ultimo anno cosa ho fatto, come sono cresciuto e cosa posso aver sbagliato.

Gli anni scorsi sono stati decisamente più movimentati e più corposi di novità. Quest’ultimo anno invece è stato lineare.

Sono cresciuto professionalmente e pure in modo personale. L’indipendenza fuori dalle mura della famiglia mi hanno fatto capire molte cose, adesso sono davvero indipendente.

Ho perso 17 chili. Finalmente dopo anni ed anni di tribolazioni e tentativi… ho imparato a mangiare! Adesso posso permettermi le cene con gli amici e contare su una dieta equilibrata.

La ricerca dell’anima gemella non sta dando frutti e non venitemi a tirare su le solite frasi fatte sul fatto che non va cercata che poi mi costringete a farvi rispondere male. Di questi tempi è dura, molto dura. Chi ha orecchie per intendere intenda. Non ho avuto delusioni e questo mi conforta.

Il mio rapporto con Dio è maturato. Ho sempre alti e bassi ma sto conoscendo sempre più a fondo la verità. La fede c’è e la certezza pure. Manco ancora di dedizione.. colpa del lavoro? colpa della pigrizia? colpa delle tentazioni? Non lo so ma ci sto lavorando e sono fiducioso :)

Sono contento di come sono andate le cose in questo anno e delle amicizie che mi ha portato e che mi ha fatto mantenere.

Buoni propositi per il prossimo anno? Nessuno. Attenderò che Dio faccia la sua volontà. Nel frattempo cercherò di fare del mio meglio in tutto quello che sono chiamato a fare.

Vi auguro di passare delle buone vacanze. Dio vi benedica!!!

 

Vendere un’app su App Store, il punto

Dopo mesi di silenzio e un po’ di numeri in più sono in grado di fare un punto della situazione più preciso per quel che riguarda le vendite su App Store.

Prenderò come esempio La Costituzione Italiana, applicazione che ho iniziato a sviluppare nel 2009 e che ad oggi è arrivata alla versione 2.0 con molte novità e dei buoni numeri di vendita.

Cosa offre quest’app?
Si può consultare tutta la Costituzione Italiana, articolo per articolo. Aggiungere ogni singolo articolo ai preferiti e condividerlo su Facebook, via email o copiando nei clipboard il testo.

I preferiti sono sincronizzati su iCloud, per chi ha iOS5 e l’app è universale per iPhone e iPad.

Quindi come si può vedere quest’app è abbastanza completa e fa bene il suo lavoro.

Per sopperire alle spese di sviluppo è stato inserito un banner iAD e la possibilità di rimuovere lo stesso in modo permanente a 0,79€ tramite InApp Purchase.

Ora, veniamo ai numeri.

Dal 2009 ad oggi l’app è stata scaricata da circa 120.000 utenti.
Ogni giorno l’app fa circa 1500 richieste di banner ad Apple e ne vengono soddisfatte dal 50 al 20%.

Purtroppo iAD non è molto remunerativo. Il CMP è basso circa 1$.

Alla fine della giornata si hanno guadagni che oscillano da 2$ a 0$.

InApp Purchase non è da meno. Circa 2 utenti la settimana acquistano l’iAD Removal, quindi significa che in una settimana i guadagni oscillano da 0,96€ a 0€.

Ci sono stati anche dei momenti d’oro, quando, un anno fa, iAD ha avuto un periodo di circa 2 mesi in cui il CMP era molto alto (10$ o poco meno). In questo periodo ho avuto guadagni che sfioravano i 6$ il giorno. Poco, ma almeno un po’ di soddisfazione c’era.

So che posso fare molto di più e che, forse, la scelta migliore sarebbe stata quella di mettere l’app a pagamento. Non si smette mai di imparare ;)

Spero di avervi dato qualche informazione in più per poter valutare come procedere con i vostri progetti.

Buona programmazione!

L’inverno

Adoro le stagioni fredde.

I motivi sono vari ed uno di questi sono le donne.
In questo periodo assumono un aspetto differente.

Indossano felpe e giacconi e ti costringono a concentrarti su aspetti molto più profondi.

Lo sguardo, il taglio degli occhi, il movimento delle labbra, la pelle che si arrossa, il movimento delle mani quando parlano e gesticolano..
Riusciamo a vedere più in là dell’aspetto, senza pregiudizi.
Ogni movimento è una scoperta, ogni espressione una piacevole novità.

Adoro le stagioni fredde.

Problemi con iCloud – Soluzione provvisoria

In questi giorni ho riscontrato problemi con iCloud. Principalmente l’applicazione (le applicazioni, dato che oltre alla mia Costituzione Italiana pure quella di Apple ‘iTunes Movies’ non funzionava) non riusciva a recuperare i dati da iCloud.

L’errore era sempre lo stesso:

Error Domain=NSCocoaErrorDomain Code=256 “The operation couldn’t be completed. (Cocoa error 256 – The item failed to download.)” UserInfo=0x19a000 {NSURL=file://XXXXX, NSDescription=The item failed to download.}

All’Apple Tech Talk non mi hanno saputo dare alcuna risposta.

Tranquilli sviluppatori, il vostro codice è scritto bene.

A quanto pare il problema sta nei backup di iCloud e nel sistema in cui vengono recuperati. Deve essere cambiato qualcosa dal giorno del lancio di iOS5 ed adesso non riesce a recuperarlo.

La soluzione temporanea è quindi di cancellare il backup dell’applicazione da Impostazioni -> iCloud -> Archivio e Backup -> Gestisci Archiviazione.

Perderemo i nostri dati ma almeno iCloud riprenderà a funzionare correttamente.

Altrimenti bisogna attendere che apple faccia qualcosa. Sperando che lo faccia.