r/Tcl • • Jul 10 '26

iWish — Tcl/Tk (AndroWish's undroidwish) running natively on iPad, with BLE and a prebuilt IPA

I've ported undroidwish — AndroWish's batteries-included, SDL2-rendered Tcl 8.6 / Tk 8.6 wish — to iOS/iPadOS, arm64. It's called iWish. It's the iOS sibling of Christian Werner's AndroWish / undroidwish work: the same SDL-based drawing path that runs on Android and the desktop, now on Apple tablets.

Meant for iPad. It'll launch on iPhone, but the native wish UI (menus, canvas, standard Tk widgets) is desktop-sized — a phone is just too small to use comfortably. Think of it as running your Tk desktop app on a tablet.

What's in it

  • A real Tcl 8.6 / Tk 8.6 interpreter under iOS/iPadOS. Tk renders through an X11-on-SDL2 layer (SdlTkX) onto Metal — native canvas and widgets, no UIKit bridging.
  • Batteries included: ~114 bundled packages, 64 of them native arm64-apple-ios dylibs — tkimg, TLS (LibreSSL), TclCurl, sqlite3, itcl/itk, Thread, tDOM, Tktable, tktreectrl, zint, TkBLT, Tix, VecTcl, and more.
  • Bluetooth LE via CoreBluetooth (a ble-ios native shim) — Tcl apps can talk to BLE peripherals directly.
  • An iOS device bridge (borg) for platform features.
  • A File ▸ Demos menu with ready-to-run examples: TkBLT plotting, a BLE debugger, iOS-bridge demos, and a paint tool.

Download / install

  • Prebuilt IPA (alpha): iWish.ipa on the releases page — currently iWish 0.2-alpha.
  • The IPA is unsigned — re-sign with your own Apple Development certificate, then install. A free Apple ID works but expires after 7 days; a paid developer account ($99/yr) gives a 1-year signature. Easiest paths: Sideloadly or AltStore (they re-sign as they install), or straight from Xcode.
  • Source + build recipes: https://github.com/johnbuckman/iwish
  • 32-bit / iOS 9 (original iPad mini, A5–A6): separate project, androwish-ios9. Apple won't take 32-bit apps in the App Store, so that one is sideload-only.

Status: it's 0.2-alpha and young, but the underlying runtime is the same one shipping in the iOS build of the Decent Espresso machine app — a big real-world Tk app (thousands of lines, live graphs, BLE hardware control). If it runs that, it'll very likely run yours.

Bug reports, PRs, and "here's my Tk app running on an iPad" screenshots all welcome. Built entirely on Christian Werner's AndroWish/undroidwish foundation — thank you.

20 Upvotes

4 comments sorted by

3

u/GlobalReputation4996 Jul 10 '26

Here's a PDF of the presentation I'm giving next week at EuroTcl 2026 on this topic:
https://github.com/johnbuckman/iwish/blob/main/iWish-for-iOS.pdf

1

u/CGM Jul 10 '26

Impressive!

1

u/d_k_fellows Jul 11 '26

Based on my experience with Androwish, you'll want an external keyboard of some type for this. You can use it without, but you won't enjoy it much; on-screen keyboards aren't typically optimised for typing Tcl code. 😄

1

u/GlobalReputation4996 Jul 12 '26

Definitely, apps that assume a large screen, windowing UI, don't resite nicely on a tablet.

For our espresso machine app using Androwish, I wrote a finger-friendly widget library and the app is always running full screen. If you're curious, the download is free https://decentespresso.com/downloads and doesn't require an espresso machine to try (you can run it on most other OSes too)