DDAY.it DDAY.it Abbiamo provato HarmonyOS. No, non è la copia di Android

Volta: 04/Dec Di: kenglenn 341 Visualizzazioni

TweetDDAY.it DDAY.it Abbiamo provato HarmonyOS. No, non è la copia di Android

Huawei ha annunciato finalmente HarmonyOS 2.0. Al momento l’aggiornamento per gli smartphone sarà disponibile solo per la Cina, una questione crediamo legata più alle certificazioni che ad altro. Anche perché, sui tablet e sugli smartwatch, HarmonyOS arriverà in Europa nelle prossime settimane con il Watch 3 e il MatePad Pro.

Di HarmonyOS si è detto e parlato tanto, anche perché quando Richard Yu lo presentò nell’ormai lontano 2019 venne descritto come una soluzione totalmente rivoluzionaria e basata su un microkernel.DDAY.it DDAY.it Abbiamo provato HarmonyOS. No, non è la copia di Android

Quello, tuttavia, era solo un pezzo di HarmonyOS, una parte di una storia molto più complessa che si è evoluta negli ultimi anni. La scorsa settimana Huawei ha presentato HarmonyOS come un sistema unico per tutti i dispositivi, e ha portato come esempio da non seguire Apple, che invece ha un sistema operativo dedicato ad ogni dispositivo.

L’esempio non è stato troppo felice, diciamolo, perché se è vero che il sistema di Apple ha nomi diversi a seconda dei dispositivi, alla fine il cuore di tvOS, iOS, iPadOS, WatchOS e ora anche di macOS è praticamente lo stesso. A cambiare è solo il nome. Al contrario, con HarmonyOS, il nome è lo stesso, ma se guardiamo sotto la superficie troviamo diversi kernel, a seconda dei dispositivi usati, e diversi modi per sviluppare.DDAY.it DDAY.it Abbiamo provato HarmonyOS. No, non è la copia di Android

L’SDK di HarmonyOS è finalmente disponibile, e anche l’IDE, ovvero l’ambiente applicativo che server per scrivere codice, firmarlo, compilarlo e provarlo, su un dispositivo o su un emulatore, è stato rilasciato. Inizialmente per provarlo la trafila era enorme, bisognava addirittura inviare il passaporto a Huawei e andava usato su macchine virtuali, ora invece si può scaricare, installare e provare anche in Europa.

Lo abbiamo fatto, e abbiamo guardando anche dentro l’SDK per capire come ha lavorato Huawei. La prima cosa da dire è che Huawei ha preso la strada che ogni sviluppatore prenderebbe: non ha reinventato la ruota. Lo stesso software di sviluppo, il DEV Eco Studio, non è altro che un fork della versione opensource del noto IntelliJ IDEA di Jetbrains in versione Community Edition. DDAY.it DDAY.it Abbiamo provato HarmonyOS. No, non è la copia di Android

Le librerie usate oggi, così come gli IDE, i kernel e tutto quello che ruota attorno ad un prodotto sono il frutto di un lavoro di anni, con milioni di righe di codice scritte e modificate alle quale hanno contribuito sviluppatori da tutto il mondo. E’ evidente che Huawei non aveva anni di tempo, e non aveva alcun senso provare a scrivere librerie e software che già esistono, sono disponibili in rete e sono accessibili a tutti in quanto open.

La seconda cosa riguarda la domanda che si pongono tutti, ovvero se alla fine HarmonyOS è una versione di Android alla quale Huawei ha semplicemente cambiato nome. DDAY.it DDAY.it Abbiamo provato HarmonyOS. No, non è la copia di Android

Qui la risposta è decisamente più complessa, perché oggi Harmony si appoggia a diversi kernel. Come LiteOS, per i dispositivi wearable e le TV Vision oppure Linux, per tablet e smartphone. Huawei nel corso degli anni aveva fatto un lavoro enorme sulla versione opensource di Android: anche quando usava i servizi Google e la sua EMUI veniva venduta come una personalizzazione di Android era comunque una interfaccia che aveva profondamente modificato, non solo nell’interfaccia grafica ma anche a basso livello. Per fare HarmonyOS ha preso la base che ha usato in questi anni e l’ha ripulita, modificandola a suo uso. Si può fare, è open source.

Questo vuol dire che Huawei ha modificato il kernel tenendo solo i moduli che le servivano e i driver per i suoi dispositivi, ha aggiunto tutta la sua parte di servizi e ha aggiunto anche la sua interfaccia utente. Non ha stravolto tutto, non avrebbe avuto senso: doveva mantenere la compatibilità con tutte le app che oggi già esistono. DDAY.it DDAY.it Abbiamo provato HarmonyOS. No, non è la copia di Android

La struttura di Harmony per smartphone ricalca quindi quella di Android, e di fatto funzionano sia le app sia gli strumenti inseriti in Android come il Debug Tools: ADB, ad esempio, funziona anche su Harmony e pure gli strumenti che servono per aggiungere i Google Play Services funzionano anche su Harmony e permettono di installare i servizi Google, ovviamente in modo abusivo, su smartphone e tablet con Harmony.

Banalizzando, si può guardare la struttura a blocchi di un sistema come Android. Il kernel è stato modificato, è sempre Linux ma adotta esclusivamente i driver per i dispositivi Huawei. Le librerie sono tutte opensource, non sono certo librerie di Google: i Media Framework, SSL, SQLite sono tutti progetti che Google ha usato per Android ma sono frutto del lavoro di tanti sviluppatori nel corso degli anni. L’application framework è di Huawei, così come tutte le applicazioni. Di “Android”, nella versione smartphone e tablet di HarmonyOS, resta solo il runtime, che assicura la retrocompatibilità.DDAY.it DDAY.it Abbiamo provato HarmonyOS. No, non è la copia di Android

In HarmonyOS c’è tanto Android Opensource ma c’è anche tanto Huawei: tutta la parte di SDK, il nuovo compilatore ARK, le API e tutta la documentazione che Huawei fornisce ora per sviluppare le applicazioni non sono quelle di Google, sono tutto frutto di un lavoro ispirato ma originale.

Huawei avrebbe potuto, ovviamente, ripensare a tutto da zero, ma sarebbe stato un lavoro immane che avrebbe portato via anni. Basta vedere quanto ci sta mettendo Google con Fuchsia, e Google non è certo l’ultima arrivata a scrivere software.DDAY.it DDAY.it Abbiamo provato HarmonyOS. No, non è la copia di Android

Quello che cambia, alla fine, non è tanto il perché le applicazioni girano ma come girano, cosa si può fare e se effettivamente usando HarmonyOS ci sono possibilità in più che non si avrebbero con Android e Google. La risposta in questo caso è si, perché se si sviluppa una applicazione per smartphone Harmony, utilizzando le nuove librerie native, lo strumento di sviluppo e tutti i servizi di Huawei, quello che si ottiene è una applicazione che funziona solo ed esclusivamente su dispositivi Huawei con Harmony e che ha una serie di feature che Google e Android ancora non hanno perché Google non le ha introdotte. Ci riferiamo ad esempio a tutta la logica di connessione seamless tra dispositivi con Harmony OS che Huawei ha più volte citato e preso come esempio.

Le stesse considerazioni valgono anche per gli smartwatch e gli altri dispositivi: in questo caso il kernel non è Linux ma resta lo stesso kernel che veniva utilizzato fino ad oggi sui wearable, LiteOS. Abbiamo scaricato l’SDK e abbiamo provato a sviluppare una applicazione per HarmonyOS destinata agli smartwatch, quindi un tipo di applicazione che viene definita “lite”. DDAY.it DDAY.it Abbiamo provato HarmonyOS. No, non è la copia di Android

Huawei permette oggi di creare due tipi di applicazioni, normale e lite, e quest’ultima è quella che usa il kernel di LiteOS.

A partire da ieri, 4 giugno 2021, Huawei ha finalmente caricato tutta la documentazione necessaria per sviluppare infatti le applicazioni usando i suoi SDK. Tutte le api sono documentate in inglese, ci sono guide, tutorial, c’è ogni cosa che serve: chiunque abbia conoscenza di Javascript, che insieme a Java è il linguaggio necessario per sviluppare le app dedicate ai dispositivi Huawei con HarmonyOS, può farlo. DDAY.it DDAY.it Abbiamo provato HarmonyOS. No, non è la copia di Android

Nel nostro caso abbiamo scelto Javascript per un progetto vuoto destinato al Watch, e abbiamo provato a giocare un po’ con gli elementi del design e il linguaggio stesso.

C’è un file che definisce i template in HML, Harmony Markup Language, un file per lo stile (classico CSS) e un file in js per il codice dell’app, con il suo life-cycle. Se guardiamo alla cartella contenente gli SDK ci rendiamo conto che quello usato da Huawei e offerto agli sviluppatori è una sorta di framework Javascript sulla falsariga di Vue Native o di Nativescript, tutto scritto da Huawei per i quale è possibile guardare i sorgenti. Non abbiamo guardato tutto, ma Huawei sembra aver fatto un buon lavoro.DDAY.it DDAY.it Abbiamo provato HarmonyOS. No, non è la copia di Android

Queste applicazioni vengono poi compilate e impacchettate, possono essere installate sui dispositivi o provate nel simulatore. Se si usano api “native” queste app funzionano solo sui dispositivi Huawei. Cambiando la lingua di App Gallery su un dispositivo Huawei, e mettendola in versione “cinese”, è possibile vedere, per alcune app, la doppia versione: quella classica che gira su tutti i dispositivi Android, realizzata usando gli strumenti di sviluppo di Google e quella “HarmonyOS”, che gira solo sui dispositivi Harmony perché è stata scritta da sviluppatori cinesi usando i nuovi strumenti forniti da Huawei.

Non si può dire che Huawei abbia copiato Android, anche se senza Android HarmonyOS non sarebbe esistito, almeno in versione per smartphone e tablet. Huawei nei giorni scorsi ha negato, probabilmente per questione di orgoglio, che alla base di HarmonyOS ci sia Android open-source ma lei stessa, nell’elenco dei progetti open dai quali HarmonyOS 2 ha preso elementi, ha inserito Android in versione opensource citandolo più volte.DDAY.it DDAY.it Abbiamo provato HarmonyOS. No, non è la copia di Android

Non è l’unico progetto: c’è Apache Weex, ci sono diversi compilatori, ci sono centinaia di librerie e ci sono anche una serie di progetti ai quali gli sviluppatori cinesi di Huawei hanno lavorato negli ultimi anni. Flutter, ad esempio, è il framework open-source creato da Google per la creazione di interfacce native per iOS e Android. Circa 10 mesi fa un gruppo di sviluppatori ha aggiunto in Flutter anche i componenti nativi della EMUI, e Huawei ha preso anche un pezzo di quel progetto.

Harmony è, come la maggior parte dei software di oggi, un puzzle di progetti opensource “forkati”.

Lodevole l’impegno di Huawei di realizzare tutta la documentazione dettagliata anche in inglese: come abbiamo scritto per uno sviluppatore Android o Javascript è relativamente semplice prendere confidenza con i nuovo sistema e realizzare una applicazione Harmony nativa.

Huawei ha lasciato, giustamente, anche la compatibilità con le app classiche, e crediamo che lo abbia fatto per un motivo semplice: una porta aperta verso l’occidente. Quando Harmony arriverà da noi, sarà difficile infatti che uno sviluppatore occidentale decida di riscrivere parzialmente (o totalmente) la sua applicazione Android, cambiando anche l’interfaccia utente, per un sistema operativo che al momento è di nicchia.

Più facile, invece, che la stessa app creata per Android, modificata, possa finire su App Gallery: quello insomma che hanno fatto Satispay, le banche e tutti gli altri sviluppatori che hanno contribuito oggi ad App Gallery in Italia.

Inoltre, nel caso in cui dovesse cambiare la situazione legata ai servizi Google, mantenendo la compatibilità in pochissimo tempo tutti i telefoni con a bordo Harmony potrebbero comunque avere YouTube, Maps, il Playstore e tutte le app che servono. Questo senza rinunciare alle app native Harmony, le uniche con l’accesso a quelle api che garantiscono una serie di funzionalità in più se vengono usati e connessi tra loro prodotti con Harmony a bordo.

Cosa cambierà per gli utenti europei? Quello che l’utente vede oggi quando usa un telefono è l’interfaccia, e l’interfaccia di HarmonyOSè l’evoluzione della EMUI. Tranne una piccola scritta “Harmony”, almeno sui tablet e sugli smartphone sembrerà di usare lo stesso telefono o lo stesso tablet che si è sempre utilizzato, senza grosse differenze se non quelle legate appunto alle novità della EMUI.

La vera differenza, a livello di prestazioni, velocità e possibilità viene data dalle applicazioni scritte nativamente per Harmony con l’SDK di Huawei: inizialmente, in Europa, saranno solo le app già presenti sul telefono più qualche caso particolare ad esserlo.

Huawei, in questo momento, sta cercando di recuperare quote sul mercato interno dove ha ancora tanta influenza e può davvero spingere molti sviluppatori a rilasciare versioni native per Harmony che offrano qualcosa in più rispetto a quello che viene offerto oggi dalla versione Android. Tanto per fare un esempio, il classico problema delle Camera2 Api di Android, ovvero dell’impossibilità di usare le funzioni della fotocamera del produttore nelle app come Instagram, viene superato dalle api native di Harmony: ogni app sviluppata per Harmony può usare tutte le funzioni delle fotocamere Huawei, dal machine learning alla modalità notte.

Huawei, con Harmony, ha praticamente portato Android dall’essere un progetto open-source con un ampia compatibilità ad essere qualcosa di più simile ad iOS, con una ottimizzazione legata all’hardware specifico e con librerie pensate per massimizzare il dialogo tra dispositivi della stessa azienda. Per farlo ne ha modificato larga parte, tenendo però il cuore.