|
From: Christopher C. <chr...@gm...> - 2018-11-03 00:15:00
|
> On Oct 18, 2018, at 6:37 PM, Simon Dorfman <si...@ya...> <mailto:si...@ya...> wrote: > > Hello, > I have a soft spot in my heart for an old game written in TCL/TK: > https://github.com/spellfire/crossfire <https://github.com/spellfire/crossfire> > ...and I just managed to get it working on my Mac again. And it got me thinking, has anyone developed a way to convert a TCL program to an iOS app? I did some googling and didn't find anything so I thought I'd ask this list. > Thanks, > Simon Hi Simon, I'm a newer Tcl/Tk user and not familiar with this topic specifically, but here's some things I could find. In short, while there have been some efforts for Tcl/Tk on iOS, and there is currently a way to run Tcl scripts on iOS, there doesn't seem to be much as that's ready to use for Tk for GUI on iOS. Note that I'm interpreting your question of "converting" a program for iOS as equivalent to running the program as-is on a Tcl/Tk port for iOS. The Tcl Wiki has this page: https://wiki.tcl-lang.org/page/iOS <https://wiki.tcl-lang.org/page/iOS> , but all it has is a link to Wikipedia. Ideally that might be a good place to keep track of anything related to this topic. It looks like this has been brought up a few times before. Here’s one of the earlier threads: https://code.activestate.com/lists/tcl-mac/1189/ <https://code.activestate.com/lists/tcl-mac/1189/> This response in particular notes not just the technical challenge of getting Tk working on iOS, but also that the desktop UI/UX for mice and keyboards, which Tk is designed for, might not be ideal for touchscreens and smartphones. Some ideas or prototypes for Tk on iOS have appeared in past Tcl/Tk Conference Proceedings, and a few have their own pages on Tcl Wiki. - APWTCL (Objective C version, https://wiki.tcl-lang.org/page/APWTCL+%28Objective+C%29 <https://wiki.tcl-lang.org/page/APWTCL+(Objective+C)>) allows Tcl itself to be used in a native iOS app, but does not provide Tk for GUI. So with APWTCL, any Tcl can be used for the "business logic" of the program, while the UI might be redone in e.g. Objective C for iOS compatibility. - WubTk (https://wiki.tcl-lang.org/page/WubTk <https://wiki.tcl-lang.org/page/WubTk>) is a newer approach to running Tk in a browser without a plugin (i.e. unlike the older "Tcl Plugin" for desktop browsers). This sounds like the closest thing to have had Tk working on iOS. - NaTcl (https://wiki.tcl-lang.org/page/NaTcl <https://wiki.tcl-lang.org/page/NaTcl>) is Tcl for Chrome/Chromium browsers’ NaCl platform, and which planned to adapt WubTk into NaTk. (NaCl is being discontinued in favor of WebAssembly, which is supported by other major browsers and recent iOS versions; I haven’t found if that’s what any of these projects intend to move over to.) - WTK for APWTCL (https://wiki.tcl-lang.org/page/WTK+for+APWTCL <https://wiki.tcl-lang.org/page/WTK+for+APWTCL>) is another idea that proposed using OpenGL ES for GUI (though that is now deprecated as of iOS 12). - A couple years ago someone posted a job bulletin for porting Tk to iOS (https://wiki.tcl-lang.org/page/Offering+TCL+Jobs#e035a00e8c6f3526cdff680cea2e2f5bf1dd34afffe53000c47dba285126b8fc <https://wiki.tcl-lang.org/page/Offering+TCL+Jobs#e035a00e8c6f3526cdff680cea2e2f5bf1dd34afffe53000c47dba285126b8fc>), presumably by extending the Androwish project (Tcl/Tk for Android, https://www.androwish.org <https://www.androwish.org/>). I have no idea if anything became of that. Of these, sometimes the goal is to provide an incomplete "Tk-like" API rather than one that is compatible with existing Tk. So they may not support all features or will require new/rewritten code in order to support iOS. With the exception of Androwish, I don't know if any of these are actively maintained. There is also plenty more discussion out there on Tk for web browsers in general. These are just some scattered notes, but I hope this helps give an idea of what's out there. Christopher A. Chavez |