Lo sviluppo per Apple Watch: no pain no gain

Abbiamo sviluppato per Apple Watch, ecco le nostre impressioni

Negli ultimi due mesi ci è capitato di lavorare a due diversi progetti per Apple Watch, questo ci ha permesso di esplorare in maniera abbastanza approfondita il framework di sviluppo ed apprezzarne pregi e difetti. Vediamoli assieme.

Anzitutto, come molti di voi sapranno, le app per Apple Watch non sono stand alone ma sono un’estensione delle app per iOS e quindi utilizzabili solo con un iPhone a portata e la relativa app installata. Per programmare su Apple Watch è necessario quindi aprire il progetto dell’applicazione per smartphone con Xcode e aggiungere all’app l’estensione per smartwatch, watchkit (qui una guida su come utilizzare il watchkit).

Il Watchkit per lo sviluppo di Apple Watch apps

Il framework è minimale e senza fronzoli, comodo per alcuni aspetti, meno per altri. La mancanza della possibilità di sovrapporre elementi, ad esempio, impedisce al programmatore di sovraccaricare il sistema, che di suo è già molto lento. Se da una parte ringraziano le prestazioni, dall’altra vengono limitate le possibilità. Anche l’assenza di informazioni riguardo le dimensioni dei componenti grafici è davvero poco pratica e ci ha costretto a ricorrere ai buoni vecchi post-it.

“l’assenza di informazioni sulle dimensioni dei componenti ci costringe all’utilizzo di carta a e penna”

Fin qui niente di drammatico, nulla che qualche imprecazione non sia in grado di risolvere. Il vero supplizio arriva quando si parla di debug.

Il debugger, lento e malfunzionante

giphy (1)

Armatevi di molta pazienza e, perché no, anche di un po’ di aglio che non fa mai male. Con il debugger dell’Apple Watch la frustrazione sale alle stelle. Il meccanismo è il seguente: il debugger si “collega” via cavo all’iPhone, poi da iPhone a Apple Watch via bluetooth e ritorno. Già così capite che la cosa non è proprio pensata benissimo (menzione d’onore a chi ha progettato questo simpatico sistema), ma è lo stesso meccanismo utilizzato per il funzionamento delle app e quindi ci potremmo anche mettere il cuore in pace. Peccato che semplicemente non funziona.

“Ah, se avessimo avuto un nichelino per ogni volta che il debugger non ha fatto il suo lavoro…”

Anche tralasciando le volte in cui il debugger non ha voluto collegarsi all’orologio (a onor del vero non tantissime), di norma Xcode ci segnala uno stato di Running dell’applicazione ma in realtà l’applicazione dell’Apple Watch non passa alcun dato. Questo non accade ogni tanto ma praticamente sempre (una percentuale realistica potrebbe essere l’80% delle volte, percepita 99%).

La soluzione per far funzionare il debugger dell’Apple Watch

Cosa fare per non impazzire, scagliare tutto contro il muro e fuggire agitando le mani al vento e emettendo strani versi gutturali? Il workaround più diffuso è quello di aprire la fotocamera dall’orologio, in modo da forzare l’attivazione del bluetooth e, sempre con tanta pazienza, attendere che il debugger si svegli, beva il caffè e cominci a lavorare. Noi abbiamo trovato interessante utilizzare Instagram al posto della fotocamera come trigger per il bluetooth, visto che dobbiamo aspettare, almeno facciamolo guardando cose piacevoli per gli occhi e lo spirito.

L’Apple Watch è lento.


Ora, dopo “l’angolo dello sviluppatore frustrato”, possiamo passare ad un altro problema che affligge l’orologio della mela: la lentezza. La sua lentezza è piuttosto generale e deriva da diversi fattori che non sono oggetto di questo articolo.

“All’inizio pensavamo ci fosse un criceto a far girare il sistema, poi abbiamo capito che lo spazio fisico era troppo poco e che probabilmente l’Apple Watch è solo lento”

Quello che ci interessa sottolineare è però il fatto che, come già accennato, la scarsa potenza di calcolo del device pone alcuni limiti allo sviluppo delle app. Noi ne abbiamo riscontrato uno piuttosto fastidioso che riguarda il caricamento delle immagini da web di dimensioni medio-grandi. L’Apple Watch infatti fa fatica a caricare immagini che superino certe dimensioni, non abbiamo fatto troppe prove ma già con un 2000px per lato l’app va in crash.
Se non abbiamo il controllo del server e di conseguenza la possibilità di ottimizzare lato backend le immagini web da caricare sull’Apple Watch, è necessario trovare un’alternativa rispetto al caricamento diretto. La nostra soluzione è stata – ancora una volta – passare per l’iPhone che, scaricate le immagini, le rimpicciolisce e le manda all’orologio.

Apple Watch sì o Apple Watch no?

Dipende da te. L’apple watch è un device davvero interessante, in grado di offrire nuove opportunità di interazione. È l’oggetto giusto su cui sviluppare se sei una persona-a-cui-piace-fare-cose-con-la-nuova-tencologia come noi. Dall’altro lato della medaglia ci sono parecchie limitazioni fastidiose che rendono l’esperienza frustrante. Niente che non si riesca a risolvere, ma onestamente ci saremmo aspettati di più da Apple, specialmente se si parla di Apple Watch, che necessita ancora di moltissime app per riuscire a conquistare il mercato.

Settori

  • Blog

Tecnologie utilizzate

  • Swift
  • Apple Watch Kit