Ormai tutte le scuole, la mia compresa, utilizzano un registro elettronico per gestire i voti e gli argomenti di ogni lezione. La nostra scuola utilizzava il registro Argo di Argo Software SRL. Il sito web, non essendo responsive, era scomodo da usare sullo smartphone e inoltre mancava di alcune funzioni base come il calcolo della media scolastica. Abbiamo quindi deciso di sviluppare un piccolo parser in PHP che prendeva i voti, li salvava in un database e ne calcolava la media del primo e del secondo quadrimestre, inoltre inviava anche una notifica email quando rilevava un nuovo voto.
Lo step successivo è stato creare un'applicazione nativa per Android per accedere più facilmente a questi dati. Analizzando l'applicazione ufficiale (scritta in Cordova al costo di 1.99€) abbiamo scoperto l'esistenza di un API JSON che permetteva di accedere a questi dati. Scrivere l'applicazione a questo punto si è rivelato un gioco da ragazzi: è bastato scrivere un servizio in grado di leggere le informazioni e realizzare un UI moderna per visualizzarli.
Dopo un'iniziale closed beta gratuita abbiamo deciso di pubblicarla sullo store ad un prezzo di 0.99€ (rispetto al prezzo di quella ufficiale, 1.99€).
In pochi mesi abbiamo realizzato che l'applicazione interessava e, nonostante il prezzo, molti hanno deciso di acquistarla.
Questo interesse ci ha permesso di aggiungere diverse features, fra cui, la più interessante dal punto di vista tecnico, la possibilità di cambiare il colore principale. L'arancione per quanto potesse essere bello a lungo andare stancava e diventava pesante. Con la luminosità alta era veramente terribile per gli occhi.
Ed è proprio adesso che iniziano i problemi... Non possiamo sapere quanto la nostra applicazione abbia intaccato le entrate dell'applicazione ufficiale di Argo ma, dall'impegno che hanno messo nel rendere "sicura" e inutilizzabile l'API, più di quanto potessimo immaginare. Hanno iniziato ad introdurre algoritmi in grado di identificare la loro applicazione dalla nostra (e qualsiasi altra applicazione non ufficiale) bloccandone temporaneamente gli utenti. Abbiamo quindi deciso di copiare pari pari gli header inviatati dall'applicazione ufficiale (anche l'ordine in cui li inviavamo). Il problema sembrava essere risolto, quando poche settimane dopo l'applicazione ha smesso di funzionare. Argo ha deciso di introdurre un nuovo algoritmo per criptare la key usata per accedere ai dati.
Capire questo algoritmo da un'applicazione compilata e obfuscata non è stato per niente facile. Rilasciato l'aggiornamento l'applicazione ha ripreso a funzionare per circa un anno. L'anno dopo infatti Argo ha deciso di rilasciare la propria applicazione gratuitamente e di rimuovere questo strano e incomprensibile algoritmo di crittografia.
Quest'ultimo aggiornamento ci ha fatto pensare che l'unico scopo dell'algoritmo di crittografia sia stato unicamente quello di preservare gli utenti della propria app, ma ancora oggi non riusciamo a giustificare l'effort tecnico ed economico. Gli utilizzatori della nostra applicazione non penso raggiungessero l'1% della loro. Che senso aveva realizzare un sistema di questo tipo?
Abbiamo anche scritto ad Argo chiedendo spiegazioni riguardo tutto ciò ma non si sono nemmeno degnati di rispondere. D'altronde siamo in Italia.. cosa ci si può aspettare
Aggiornamento 03/02/2019
Abbiamo deciso di rendere gratuita l'applicazione. Il poco tempo a disposizione non ci dà la possibilità di continuare ad aggiornare e mantenere l'applicazione ufficiale. Probabilmente partendo dall'esperienza acquisita con React Native (dall'applicazione Metodica-Mente) realizzeremo una nuova versione per entrambe le piattaforme.