N900, iPhone, Nexus One i càmera

A la imatge podeu veure a dalt a l’esquerra la Nokia N900, a sota l’iPhone d’Apple1  i finalment a la dreta el Nexus One de Google. Evidentment la càmera és amb la que he fet la foto, una Sony DSCHX5VB si m’ho pregunteu, té GPS, grava vídeo en HD, compensa el moviment, etc etc etc.

A la feina estem fent una aplicació per a l’iPhone2 i l’Android, de manera que necessitem els terminals per fer les proves de camp (treballar dades del GPS és un mal de cap, per sort però ja està tot arreglat :D

La Nokia N900 va caure ben bé per sorpresa. Després d’anar al Maemo Barcelona Long Weekend i d’intercanviar correus amb gent de Nokia ens en van enviar un :)

iPhone

Nota prèvia: La valoració dels 3 aparells no serà molt igualada ja que només amb l’iPhone i tenim el pla de dades, de manera que és el que més utilitzo de camí cap a la feina i en general.

En general funciona prou bé pel hardware amb què està fet (si el comparem amb els altres dos), evidentment a costa de no ser multi-tasking3.

La navegació per Internet és prou correcta i en general la interfície respon prou ràpid4.

Lo pitjor: la càmera … no m’estranya que amb la pròxima suposada versió del hardware hi posin una càmera molt millor, ja que la que hi ha ara és pèssima!

Nokia N900

Destaquen dues coses, una bona i una de dolenta (també per segons qui, clar) a primer cop d’ull: el teclat físic i les mides (és gairebé el doble de gruixut que els altres dos).

Un cop t’acostumes a les pantalles tàctils de l’iPhone i l’Android, la pantalla de la N900 et sembla tosca, però tot i així també t’hi acabes acostumant5.

Tot i així, té molt mèrit haver arribat a fer un mòbil tant i tant ben fet com és la N900 si partim de la base que és un “Debian modificat” i que el desenvolupament, en bona part, s’ha fet en obert, amb moltes empreses col·laborant en obert, etc etc

La fusió dels projectes Moblin i Maemo que ha resultat en el MeeGo només pot portar beneficis (la primera de totes, la interfície basada en Clutter) i se suposa que a finals d’aquest mateix any ja en veurem el primer mòbil (si Nokia no ha canviat els plans que tenia abans de la fusió clar).

En conclusió: està en un clar pas enrere que els altres dos, però amb una base prou sòlida i potent com perquè tot sigui qüestió de temps que sigui un gran producte.

Nexus One

És amb el que he pogut jugar menys de tots, m’atabala MOLT el fons de pantalla amb els bits de colorets movent-se, per sort es pot canviar :)

És un entremig entre l’iPhone i la N900, ja que si bé no té un teclat sencer com la N900, sí que té més d’un “botó” que l’iPhone, els quals són força còmodes un cop t’hi acostumes.

Té una espècie de persiana per les notificacions que està prou bé.

Això sí, evidentment al ser el Nexus One, ja des des de la primera pantalla de configuració en l’auxiliar inicial t’avisen que sense un compte de Google no podràs fer pràcticament res i, almenys a mi, no m’agrada gens… amb l’iPhone també has de donar les teves dades, però almenys són unes dades que pots posar les que vulguis i no tenen cap manera fàcil de relacionar-ho amb altres dades personals, però aquí al ser un compte de Google ja t’enllaça els contactes, el correu i tot el que tingueu a Google. Molt útil si ho teniu tot allà i un merder si no hi teniu pràcticament res i no voleu haver de tenir-ho allà6.

No l’he explorat molt però està prou bé com a producte final, la gràcia d’Android és que com que hi ha força empreses que hi treballen s’avança prou ràpid el desenvolupament, haig de ficar-me més en les tripes del sistema operatiu tot i així per poder-ho valorar millor.

Ja els heu pogut provar? Què n’opineu vosaltres?

  1. I sí, ja el tinc en “català del TERMCAT” … []
  2. De fet ja hi ha una primera versió penjada a l’App Store, busqueu gastroteca.cat ;) []
  3. I el multitasking del iPhone OS 4 … bé no és exactament el que se’n diria multi-tasking purament dit, però com que en fa l’efecte la gent ja s’ho pren com a tal []
  4. Tot i que ara que faig servir l’iPhone OS 4 peta més que una escopeta de fires :D []
  5. Al cap i a la fi els mateixos de Nokia qualifiquen la N900 com un mòbil per a early adopters, quan els altres dos són, sense cap dubte, productes per a usuaris finals []
  6. M’he passat més de mitja hora per poder passar els contactes de la N900 als contactes de Google … []

afegir mètodes a classes ja existents (objective-c)

Introducció

Amb l’Objective-C tens classes, categories i protocols.

Les classes implementen un seguit de protocols (un llistat de mètodes, una interfície vaja) i per facilitar la lectura i manteniment del codi, aquestes classes es poden separar en diversos fitxers (cada un d’ells una categoria) que haurien d’implementar un subconjunt de les funcions que es vol que faci la classe.

Així per exemple la classe String compleix amb el protocol Copy, per tant es poden copiar strings i una de les categories de funcions és la de spellChecking.

Problema

Si tenim un classe que ja ens ve del sistema (la classe String per exemple) i n’hem creat sub-classes (StringA, StringB, StringC) que totes tenen un mètode en comú (markSpell), quan creem instàncies de les subclasses ho podem fer amb un punter a la classe String però quan s’executa el codi ens dóna un avís de que la classe String podria no respondre1 al missatge markSpell.

Solució

Crees un protocol que contingui aquest mètode2:

@protocol MarkSpell

– (void) markSpell

@end

I quan crees el punter genèric de la classe Spell li dius que la variable compleix el protocol anterior:

String <MarkSpell> *myString = [[String alloc] init];

I amb això el compilador de l’Xcode ja no es queixarà més :)

  1. A Objective-C les crides a mètodes en diuen enviament de missatges []
  2. Sí, la sintaxi és una mica estranya, però al final t’hi acostumes []