Volendo realizzare una piccola #demo (per un #concept che per me non ha una vera utilità oltre l'essere uno spassoso #EsercizioDiStile), ho dovuto creare una piccola #applicazione #Android. 🤖️

Pro: ora ho il #software che mi permette di fare quello che mi serviva, per cui non avevo trovato altre soluzioni già fatte che fossero funzionanti. In realtà, l'idea iniziale era di fare una #app specifica per questa #dimostrazione, ma strada facendo ho deciso che avrei reso questa più semplice e generica, potenzialmente utilizzabile anche per altri usi, e avrei implementato parte della mia logica sul mio #server con qualcosa di più rapido. Quello che è uscito fuori ora è una piccolissima app che esegue codice #JavaScript fornito dall'utente e permette a questo di interfacciarsi con API native. 3 API al momento, lmao. Non so se nel tempo la espanderò o no, ora mi serviva appena questa poca roba, e la #UX è #grezza grezza perché non ho tempo. Il codice è quì (ma non è bello): https://gitlab.com/octtspacc/DroidScriptin. ☕️

Contro: la programmazione Android in sé, che è sempre un leggero incubo. Tuttavia, l'unica alternativa teoricamente (chissà praticamente!) viabile sarebbe stata fare un'app per Symbian o J2ME, che certamente non avrebbe semplificato le cose. Vabbé, anche per questo ho alla fine realizzato questa parte del mio progetto demo nel modo in cui ho detto. La cosa più strana attuale del codice? (Content Warning: 🤓️) Il fatto che io debba tenere una classe dedicata funzionalmente vuota per dichiarare l'uso di un BroadcastReceiver all'OS, anche se io nella pratica quello lo uso nella MainActivity, e non nella classe che specifico nel manifest per quel permesso (perché non riesco a mettere MainActivity lì). Ah, però questo per quanto non abbia senso, funziona. La cosa veramente più strana, invece, lo è perché non funziona: su #Android4.4 (mio target) la UI è a posto, mentre su #Android13 (che monta il mio #smartphone principale) manca la barra dell'activity, e quindi non c'è manco modo di accedere al menu... vabbè, il #programma deve funzionare sul #telefono #vecchio, e lì appunto va. 🎈️

Il bug che ho descritto sopra, a confronto screenshot del mio telefono con quello dell'emulatore Android 4.4.
(Ma come farà ad accadere questo #bug? 😩️)

Nel mezzo: ne ho approfittato per provare #Kotlin un pochino, che avevo sempre snobbato, e adesso me ne pento... di non avergli dato una chance prima. È molto più piacevole di #Java da usare, secondo me, sintassi estremamente più pulita e concisa. Kotlin compila in #bytecode #dalvik e in generale targetta la #JVM direttamente, quindi le #API sono quasi identiche a Java, e avendo usato quello non bisogna imparare quasi nulla di nuovo; sintassi a parte appunto, che però si impara semplicemente scrivendo, è esotica ma assolutamente non esoterica. 🧶️

E giustamente vi chiedete, a che mi serviva esattamente? Se rientra nell'essere un sano #WeekendProject come ho programmato ieri, allora domani lo saprete... per ora non faccio spoiler, oltre a dire che il mio #MicroBlog potrebbe ottenere una funzione che solo #Twitter aveva e solo nei primissimi anni, e ora è un concetto estinto. Non vi dico che leggendo il #SourceCode potete intuire, ma mai dire mai... 👁️

@octospacc



  • Tags: Android, Android13, Android4, API, app, applicazione, bug, bytecode, concept, dalvik, demo, dimostrazione, EsercizioDiStile, grezza, Java, JavaScript, JVM, Kotlin, MicroBlog, programma, server, smartphone, software, SourceCode, telefono, Twitter, UX, vecchio, WeekendProject
  • Categories: Senza categoria