The blog for Codea, an iPad app for making games and simulations in Lua, built by the studio Two Lives Left.
HN commenters recommend Codea for teaching kids to program on iPad, often alongside Pythonista and Swift Playgrounds.
iPads have a lot of good stuff, I think. I've 2x 7 year old girls, which have iPads. Generally they're limited to 1h/day, but screentime is off for:
- Codea - https://codea.io - it took a while, but eventually they found out that there's a few sample games, so they thought they'd found a loophole to "no more screentime for games". Then it took a bit longer until they realized they can tweak the source code. "Look at this, no gravity" or "Look at my high score!" (after tweaking the scores to increase in increments of 1000 instead of 1), or "Look, I changed the text messages" etc.
- Swift Playgrounds - they're not super fascinated with this, but I see them occasionally open it and noodle around.
- Procreate - they have an Apple Pencil, and any YouTube video about using Procreate is exempt from Screentime limits. This has led to a lot of amazing digital illustrations.
- Pages - just this simple built-in app is already pretty fun if kids are bored, and something is exempt from screentime. Last weekend one of them asked to go to Starbucks, because she's "writing a novel". She wrote a short story over ~5 pages, and was super proud of it.
- YouTube - in general, this is my least favorite app of theirs, and I try to police this the most. But any requests for videos where you learn things are exempt from screentime limits (case by case). E.g. Lego builds, origami, drawing instructions, "how to make slime at home" videos, etc.
This is a great question, and I'm eager to see what…
There are options, at least if you want something to begin coding with; they're just a bit hard to find for the layperson that isn't following developer news.
For example, apps that run directly on mobile platforms (specifically, ones that don't need to connect to the 'cloud' to do their compiling):
- For iOS: Codea [1] (Lua), Continuous [2] (.NET), Swift Playgrounds [3] (Swift), Play.js [4] (Node.js + React Native) plus probably more (on that note, I really hope Continuous isn't abandoned, but it doesn't seem to have been updated in awhile).
- For Android: AIDE [5], TIC-80 [6], probably others (I'm not as familiar)
Moving up from mobile, you have FUZE4 Nintendo Switch [7] for the Nintendo Switch (excellent, but needs a bugfix update as there's lots of little annoyances). Probably the most kid-friendly thing there is right now IMHO, if you take into account the platform.
On the PC, there's just a huge amount of stuff. Minecraft [8], GameMaker [9], GDevelop [10], Godot Engine [11]. These are at least suitable for early teens.
[1] https://codea.io/
[2] http://continuous.codes/
[3] https://www.apple.com/au/swift/playgrounds/
[4] https://playdotjs.com/
[5] https://www.android-ide.com/
[6] https://tic.computer/
[7] https://www.nintendo.com/games/detail/fuze4-nintendo-switch/
[8] https://www.minecraft.net/en-us/
[9] https://www.yoyogames.com/gamemaker
[10] https://gdevelop-app.com/
[11] https://godotengine.org/
Note: Yes, obvious game-making bias here :)
There is already a thriving ecosystem of very powerful development apps on iOS.
Pythonista is a full copy of Python 2.7 and 3.x, with an IDE, links to the GUI APIs and even a basic visual GUI designer for the iPad and iPhone. You can sync your scripts source code with Macs and other iOS devices through iCloud.
http://omz-software.com/pythonista/
Pyto is another Python app for the iPad, it's not as mature but is 100% open source on Github.
https://apps.apple.com/us/app/pyto-python-3/id1436650069
Codea is an IDE for Lua with extensive integration with the iPad native APIs and fantastic graphics capabilities.
https://codea.io/
There are several others for different languages, but I think these are the most mature. Some of these have even been used to publish apps on the App Store, by dropping the code into a Python or Lua app container project in XCode. You can also integrate them with Git from iOS using an App called Working Copy.
I've just submitted an update to Codea[1] that allows for the importing of user projects[2]
It has been "In Review" for a suspiciously long time now. So I think it might be testing the application of these updated policies.
I have often submitted updates to App Review which include the ability to download and install executable code (along with review notes detailing my reasoning) with the knowledge that they would be rejected. I have also appealed Apple's rejections in order to effect a change in policy for the App Store. At some point during phone calls with the reviewers they told me they were "advocating for policy change internally on my behalf" even if they couldn't approve my app right now. I'm so glad policy has changed now.
[1] https://codea.io
[2] https://twitter.com/twolivesleft/status/873692454947442688
JSBox source code: https://github.com/cyanzhong/xteko
> JSBox is not only a full-fledged environment for standard JavaScript, but also provides many utilities: safe environment to run JavaScript natively ... editor to write JavaScript, multiple themes, auto completions and snippets... VSCode extension ... APIs to interact with iOS ... Almost all the cool tech in iOS: Today Widget, Action Extension, 3D Touch, Home Screen
Discovery is non-existent on the App Store. Other than blog posts, is there a good way to find new scripting/dev environments as they are released for iOS?
https://scriptable.app is another JS runtime.
https://codea.io is a Lua runtime.
There is Codea ( http://codea.io/ ) already which lets you make simple games and learn programming and I dont see tons of people using it. It's also less scary than Xcode.
I tried to "switch" to an iPad and the lack of a filesystem is its Achilles heel. You need to think of files if you are a developer or if you want to become one. iPad is anti-files so if you grow up using one you get brain damaged.
And no emacs so...useless.