Giocando con Appcelerator Titanium, un framework open source e rilasciato con licenza Apache per lo sviluppo di applicazioni mobile native a partire da una sola codebase, ho realizzato un'applicazione per il concorso Wiki Loves Monuments Italia.

ferdi2005/monumenti
Applicazione iOS e Android per cercare i monumenti di Wiki Loves Monuments vicino a sé - ferdi2005/monumenti

In una settimana, è stato possibile implementare la possibilità di trovare monumenti tramite geolocalizzazione e mostrarli su una mappa, sia qualla di cercare una determinata località italiana (per esempio, Roma) e vedere i monumenti ivi presenti. In più, c'è anche una bellissima scheda per ogni monumento e un simpatico tasto refresh da premere quando ci si sposta, per esempio durante una wikigita.

Backend

Ebbene, quando scrivi un'app mobile ti serve anche un backend! Ho deciso quindi di riutilizzare il mio progetto wlm.puglia.wiki ed ho esposto quindi alcune nuove simpatiche API in alcune delle nuove versioni. Quella piccola webapp prima aveva solamente la stessa funzione dell'app e dava la possibilità di trovare i monumenti vicino a sé con Leaflet + OSM, mentre ora svolge anche da backend dell'app. Per ragioni tecniche (non c'era un framework per Appcelerator Titanium), non ho potuto utilizzare OSM anche sull'applicazione mobile, quindi troverete su Android le mappe di Google e su iOS quelle di Apple, ma tutto il lavoro di geocoding è fatto da OSM, precisamente da Mapbox con OSM.

Trovare i monumenti

Il primo endpoint che ho messo a disposizione, un bel po' di tempo fa già prefigurandomi l'app, è /monuments.json, che accetta come parametri sia latitude e longitude che city, per cercare invece i monumenti vicino ad una città.

La risposta è di questo tipo, il secondo array rappresenta il centro della mappa, cioé il punto al centro di tutti i risultati o, in caso di città, la localizzazione della città:

[[{"id":34746,"item":"Q61905499","wlmid":"16A6620042","latitude":"41.132779","longitude":"16.838713","itemLabel":"Non creiamo precedenti","image":null,"created_at":"2020-06-07T22:54:03.906Z","updated_at":"2020-06-07T22:54:03.906Z","itemDescription":"Scultura presso lo Stadio della Vittoria","distance":0.69212135568994,"bearing":"109.201534968318"}], [41.13698328712448,16.826640973289223]]

Più informazioni sul singolo monumento

A vostra disposizione c'è anche l'endpoint /show.json che accetta il parametro id corrispondente all'id del monumento che si ottiene attraverso la prima richiesta API. La risposta corrisponderebbe, visitando wlm.puglia.wiki/show.json?id=34746, a:

{"id":34746,"item":"Q61905499","wlmid":"16A6620042","latitude":"41.132779","longitude":"16.838713","itemLabel":"Non creiamo precedenti","image":null,"created_at":"2020-06-07T22:54:03.906Z","updated_at":"2020-06-07T22:54:03.906Z","itemDescription":"Scultura presso lo Stadio della Vittoria","distance":0.69212135568994,"bearing":"109.201534968318"}

Notare che gli ID cambiano ad ogni risincronizzazione del database e questo endpoint è stato creato esplicitamente per fornire le informazioni dall'app.

Indirizzo

Dato che il geocoding a quanto pare non funziona benissimo su iOS, ho predisposto un endpoint API del tipo /address.json che accetta il parametro id, sempre corrispondente all'id del monumento ottenuto sempre nel primo endpoint.

Per esempio wlm.puglia.wiki/address.json?id=34746 risponde:

Piazzale Vittorio Emanuele Orlando, Bari, Bari, 70132, Italy

Ringraziamenti

Siamo ormai giunti alla versione 1.1.3. 😁 Per il raggiungimento di questo risultato mi preme ringraziare i miei fidi beta tester anticipati Yacine Boussoufa e Stupeficium, ma anche il carissimo sviluppatore Titanium Michael Gangolf, che mi ha dato alcuni importanti consigli per l'applicazione

Download

Siete convinti adesso? Mentre risolvo i problemi con la burocrazia per pubblicare su iOS (magari ottenendo lo sconto della quota per il no profit), vi lascio i link per scaricare l'applicazione su Android. Notate che per utilizzare l'app è necessario avere i Google Play Services attivi.

Wiki Loves Monuments Italia - Apps on Google Play
Tramite quest’applicazione, facendo uso delle funzionalità di localizzazione e di mappa, potrai vedere tutti i monumenti partecipanti a Wiki Loves monuments Italia vicino a te, analizzarne i dettagli in una scheda, ottenendo le informazioni dell’elemento Wikidata (nome, descrizione e indirizzo), un …
Se avete il Google Play Store usate questo link.
ferdi2005/monumenti
Applicazione iOS e Android per cercare i monumenti di Wiki Loves Monuments vicino a sé - ferdi2005/monumenti
Altrimenti usate questo per scaricare l'APK

E non dimenticate di lasciare una recensione o un commento, o di scrivermi se avete qualche dubbio!