I've been working on an iOS app that teaches programming and allows you to practice your coding skills using MiniScript.
Here's the link: https://apps.apple.com/us/app/codeboat/id1572784273
The challenges can be solved either by typing the solution directly with the keyboard, by dragging and dropping the solution snippets into the code textfield, or some combination of both.
Challenge solutions are run against a suite of test cases, and I'm counting the steps the interpreter takes for the user solution as well as the reference solution, to give three stars for an optimal solution, and one or two stars if the user solution is off by a significant amount compared to the reference (e.g. when implementing a O(n2) solution when there is also one that runs in linear time).
Any feedback is greatly appreciated! Especially if you've found something confusing, or difficult to use, I'd be very happy to know. Coding on a mobile phone is definitely tricky, but my goal with the app is it to make it as easy as possible.
I would love to also get a proper iPad app out, especially with a connected keyboard that would be a great way to solve some programming challenges while traveling. But one thing at a time 🙂