Template repo for tiny cross-platform apps that can be modified on phone, tablet or computer.
README.md

A template repo for developing cross-platform apps on mobile devices

0 dependencies!

screenshot

Copy this repo to get a leg up creating tiny, low-maintenance, cross-platform apps that you can make changes to right on a phone or tablet.

It comes bundled with a few optional goodies:

Tap the 'edit' button and then poke around the 'load' menu to learn more.

This repo is an example of a Freewheeling App, designed above all to be easy to run, easy to modify and easy to share.

Getting started

Install LÖVE. It's just a 5MB download, open-source and extremely well-behaved.

Run the app using LÖVE.

Hacking

You can edit the app and UI right on your device. However, there are some gotchas to be aware of when editing such apps on a phone:

  • If you upgrade LÖVE you lose all your local apps and their saved settings. This includes code changes. It's hard to get code changes out due to mobile restrictions. I can't come up with an alternative to copy-paste. This imposes a strict limit on the number of changes I'm willing to make to a large app on my phone.

  • If you upgrade such apps after making local changes to them, you might see strange errors. Local changes are written to an overlay directory, whereas upgrades modify the app in place. The two locations create lots of opportunity for conflicts to arise.

    To mitigate this issue, such apps by default list local changes in the output editor every time they run. That will hopefully act as a reminder. There's also some helpers for deleting local changes in the 'scratch' page.

You can also modify the editing environment itself, or repurpose it for a different app entirely, live as it runs. This requires running it on a computer, but is much more reliable. Download the driver app. Here's an example session showing the driver (left window) editing a different app (right window containing yellow text):

making changes without restarting the app

Some reference documentation on how to create your own apps.

If the app being modified by the driver lives in a .love file, your changes will go into the save directory. If it lives in a directory (like this repo), your changes will go straight into the same directory.

Keyboard shortcuts

Within the editor widget:

  • ctrl+f to find patterns within a file
  • ctrl+c to copy, ctrl+x to cut, ctrl+v to paste
  • ctrl+z to undo, ctrl+y to redo
  • ctrl+= to zoom in, ctrl+- to zoom out, ctrl+0 to reset zoom
  • alt+right/alt+left to jump to the next/previous word, respectively
  • mouse drag or shift + movement to select text, ctrl+a to select all

Exclusively tested so far with a US keyboard layout. If you use a different layout, please let me know if things worked, or if you found anything amiss: http://akkartik.name/contact

Known issues

  • No support yet for Unicode graphemes spanning multiple codepoints.

  • No support yet for right-to-left languages.

  • Can't scroll while selecting text with mouse.

  • Some colors can't be customized yet.

Mirrors and Forks

This repo is a fork of lines.love, an editor for plain text where you can also seamlessly insert line drawings. Its immediate upstream is Lua Carousel, a lightweight cross-platform environment for creating little throwaway scripts on a computer or phone. Updates to it can be downloaded from the following mirrors:

  • https://git.sr.ht/~akkartik/template-carousel-mobile
  • https://tildegit.org/akkartik/template-carousel-mobile
  • https://git.merveilles.town/akkartik/template-carousel-mobile
  • https://nest.pijul.com/akkartik/template-carousel-mobile (using the Pijul version control system)

Further forks are encouraged. If you show me your fork, I'll link to it here.

  • https://git.sr.ht/~akkartik/sokoban.love

Feedback

Most appreciated. Messages, PRs, patches, forks, it's all good.