PHONK Turns Android Devices Old and New Into Networked, Programmable Dev Platforms
Fully open source, PHONK offers local and remote browser-based coding with a wealth of APIs to unlock Android devices' capabilities.
Developer Victor Diaz has released a locally-hosted scripting toolbox which aims to turn Android devices new and old into a programming playground with access to everything from Bluetooth Low Energy to MIDI interfaces: PHONK.
"PHONK is a self-contained creative scripting toolbox for new and old Android devices," Diaz writes. "Create scripts rapidly from your phone or using the remote Web Editor on your computer. The API is simple and extensive: GUI, audio, graphics, Bluetooth BLE, Arduino, OSC, MIDI, and much more."
The PHONK project, which is compatible with Android versions as old as Android 4.1, installs from a single APK package and creates a locally-hosted coding environment built around Android Studio, Java, and Vue.js. When installed, it creates a network server allowing any system with a browser to write code which runs on the phone or for programs to be written directly on the device — including offering full access to sensors and the underlying network.
"Android coding environment and APIs felt too overwhelming for the type of projects I wanted to create," Diaz explains of the inspiration behind the tool. "I wanted something where I could prototype something super quickly. Then I made a tool that took forever to create... but that's another story. [Also,] I think soon will be more and more old Android devices getting dust in drawers than trees in the world. So why not using them for some tinkering rather than buying new stuff? Old tech is good!"
The PHONK project began back in 2013 as Hayai, but was for personal use only; it later became Protocoder, and has now been released as PHONK. In addition to the precompiled APKs, available on the Google Play Store and as a direct download, Diaz has released the source code on GitHub; the APK and a getting started guide can be found on the official project website.