WWDC 2012

Ed eccoci all’annuale appuntamento con Apple. La WWDC, World Wide Developer Conference.

Quest’anno mi attendo scintille. Ma che dico.. le pretendo! :)

Questo è il primo WWDC senza Steve Jobs, avremo quindi un Tom Cook alla sua prima esperienza nei panni di CEO e davanti alla platea degli sviluppatori a San Francisco. Ma non è solamente questa la motivazione per il quale mi attendo grandi cose.

Apple ha innovato tanto in questi anni; iPhone, iOS e OSX sono dei grandissimi prodotti, ma la concorrenza inizia a farsi sentire e pesantemente.

Android e i cellulari Samsung ne sono la prova. Windows Phone e Nokia. Per non parlare di Windows 8 che, pur quanto sia ‘il‘ prodotto Microsoft che tutti conosciamo, desterà curiosità e darà del filo da torcere a OSX.

Quindi è necessario che Apple innovi. E’ necessario che riescano a tirare fuori dal cilindro qualcosa di nuovo. Una cosa che Steve Jobs sapeva fare molto bene.

Ufficialmente presenteranno:

  • OSX Mountain Lion
  • iOS 6

Poi ci sarà un One More Thing. Per forza! :D Sarà una funzionalità di iOS 6 per un nuovo prodotto? Sarà proprio un nuovo prodotto? Sarà un software?

Poi, girano le voci che Apple permetterà agli sviluppatori di creare apps per AppleTV e sarebbe una grande cosa! Mi immagino già la AppleTV come console e l’iPhone come controller :-)

Poi.. potrebbe esserci l’iPhone 5. E vista l’uscita del Samsung Galaxy S3, direi che è il minimo. Ma potrebbero rimandare a Settembre/Ottobre come lo scorso anno.

Ma.. permettetemi ancora un ma.. nel 2011 hanno presentato un 4S.. quindi un iPhone 4 potenziato.. quest’anno invece sarebbe una major release.. un prodotto nuovo.. e sinceramente, adesso, c’è bisogno di qualcosa di davvero nuovo. La WWDC sarebbe il luogo ideale per presentarlo.

Altri rumors dicono che presenteranno i nuovi computer. iMac, MacBookPro/Air e MacPro. Non meno importanti di tutto il resto. Ultimamente ho avuto l’impressione che Apple li avesse un po’ accantonati, togliendo loro importanza. Anche qui, sarebbe il caso di rinfrescare le cose e per bene. Sono degli anni che non si vedono innovazioni lato desktop/notebook.

Quindi, aspettative molte.. Non ci rimane altro che aspettare domani sera (ore 19:00 mi raccomando tutti connessi).

Buona attesa!!

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!