Google Play Store ha una grave mancanza
Prima di spiegarti il problema devo darti un po' di contesto, sarò breve te lo prometto 😉
Ho pubblicato, qualche mese fa, un’app Flutter su AppStore e GooglePlay.
Mi è capitato di effettuare un aggiornamento con delle breaking changes, ovvero delle modifiche presentavano degli errori a chi utilizzava la vecchia versione dell’app.
La motivazione è molto semplice: ho dovuto cambiare la firma di una API.
La vecchia app conosceva i paramentri vecchi, ma la nuova API rispondeva solo con i nuovi. Ho anche cercato di evitare questo disagio e per poco più di 2 settimane ho mantenuto entrambe le versioni dell’API, sperando fosse una finestra di tempo ragionevole.
A quanto pare però mi sbagliavo e il giorno successivo a quello in cui ho dismesso la compatibilità mi sono arrivati dei ticket dagli utenti.
Per fortuna già conoscevo la causa e mi è bastato rispondere:
Gentile < utente >,
prova ad aggiornare l'app all'ultima versione disponibile sullo store
di riferimento e l'app tornerà a funzionare come sempre.
Progressify
Come pensavo di risolvere il problema
Ho pensato: se potessi automaticamente controllare l’ultima versione dell’app interrogando gli store con una API, poi dovrei semplicemente controllare se la versione dell’app in esecuzione è la stessa di quella disponibile sullo store.
Sinceramente non mi aspettavo di trovare grandi difficoltà. Con mia enorme sorpresa: Apple mette a disposizione una API che fa' esattamente quello che immaginavo ma Google non ha niente del genere!
Alcuni utenti hanno pubblicato delle librerie che per ottenere delle informazioni sulle app da Play Store fanno lo scraping della pagina web. Può funzionare ma mi sembra una soluzione temporanea e soggetta a malfunzionamenti.
Inoltre testando una di queste librerie ho notato che ormai il numero di versione sulla pagina web del Play Store non è più presente, perchè con gli app bundle Google può distribuire anche versioni differenti dell’app a seconda del dispositivo dell’utente.
API di Apple
L’API di Apple è semplicissima.
Basta fare una richiesta GET all’url: https://itunes.apple.com/lookup passando solo 2 parametri:
bundleId: il package della tua appcountry: il paese in cui vuoi effettuare la ricerca- ho inserito un timestamp per evitare problemi di cache, ma non è obbligatorio
In risposta un JSON con tutte le informazioni pubbliche dell’app che hai richiesto. Visto che utilizzo questa API anche in un mio progetto Python ti lascio un GitHub Gist con il codice che ho scritto:
Hai avuto anche tu questa necessità in un tuo progetto? Come hai risolto il problema?
Scrivimi nei commenti o nel mio canale Telegram
Immagine di copertina generata con 🍌 Nano Banana.
AP
