PocketML is a language and IDE for coding your phone. Whip up a quick GUI, plot or even prototype your new programming language anywhere and on the go!

Visit the PocketML repository.


A little sample:

app () (\event state -> state + 1)
    (\state -> Label "mylabel" (str state) @(100, 100) @(0, 0))

Guides

Blog

Docs

Motivation

This project is an exercise in input schemes. A terse functional language paired with cursor navigation (AnysoftKeyboard) using hardware buttons might actually make coding on mobile/a small screen feasable.

I learned to code in python on my phone using the app PyDroid3. Nowadays I regularly use the app to run some quick calculations for my phyics & maths classes or just to kill boredom on a long trip. This project was created because PyDroid3 has ads and because of my preference for functional languages.

Python Libraries

Note: Neither of these are fully integrated, but can be accessed fully through python blocks. The most important functions are available directly in PocketML.

Library   Features
numpy lib/math.ml 1D arrays as vectors (Vec)
kivy lib/tea.ml TEA-inspired GUI library
lark lib/parsing.ml generate custom parsers from a grammar file/string