Now that J901 for iOS is finally released to App Store, I can recruit testers openly. If you own an iPhone/iPad with iOS/iPadOS 14.5, or a Mac with the M1 chip, I'd like to hear from you.
There's a large number of minor bugs and improvements outstanding. They need testing out before I can consolidate them into my first App Store update. This will have to go through a full review, like the app itself. But Apple gives me to understand it won't be quite so tough next time.
The low-hanging fruit gets picked first.
I have the bugs/improvements listed in a Pages spreadsheet. I'm thinking how best to present this info on the Jwiki. Hopefully without having to type the whole lot out into a MediaWiki edit box.
- Apple have just announced a scheme for co-operative working on a Pages spreadsheet. That would suit me just fine for my bug list, if it didn't bar too many good J-ers.
The Developer sure took some liberties with the IDE
Yes I know. I'm sorry. But it was easier to beg forgiveness than permission.
The chief liberties are:
- dot-commands: a crude shell/commandline interface for common housekeeping tasks
- ioslib: an annexe to stdlib, but only or mainly relevant to usage of the iOS app
- my own pet utilities in the /j/tools folder (loaded by default into _z_): bc daytime find phrases xp
- scriptorium (scrum for short): a user-transparent feature containing every textfile you edit, eventually to replace unix-type files in the app's /j/user folder
- transaction log: a largely user-transparent feature resembling Jupyter/Mathematica, supporting a "smart" session log display
- Mill: an alternative dashboard for playing with fancy nouns
- 2!:9: the J coder's API with the iOS part of the app
Do these features need justifying/killing/documenting better? (I can guess.) But do let me know anyway, to help me prioritize.
Notes for the Reviewer
User:Ian_Clark/iOS/Review_Notes have a strong bearing on the above topics. These notes were written as a candid declaration of app features the App Store reviewers demand to know about (…you can't mess with these guys). Not for the user's eyes. They discuss the smelly underbelly of the app, in contrast to the surface description of [[Guides/iOS]].
But, to my consternation, App Store has gone and published a link to them at the bottom of their app description. On reflection the user ought to know they exist, and be free to study the contents. Apple must have thought so too.
Addons having Dynamic Libraries (dylib)
Please don't ask for addons having dylibs to be put back in. Their omission is deliberate. That is the biggest disadvantage of porting a J IDE to iOS.
App Store refuses even to upload any app containing loose dylibs. Essential machine code MUST be compiled into the monolithic app binary. That goes for JE too. Apple would say banning dylibs is a major security benefit. A dylib (factory or substituted) is the perfect vehicle for trojans and 0day exploits. Rage and scream all you want: Apple Inc is not going to budge over this one.
- you can move a needed dylib into your iCloud Drive, then use Files app to move it into j/addons/. But the dylibs downloaded in macOS by pacman won't work: they need to be recompiled to use arm64 architecture.
- it seems […untried] that 3rd-party dylibs can be packaged in a framework. This embeds them in the monolithic binary, which pleases Apple Inc security people.
The dylib I cry most over is fftw. But regex has gone too. Plus a few others that many users will consider essential for serious work. They will say it reduces J901 for iOS to the status of an educational toy. But – hey! – who said iOS could ever be anything but?
It's amazing iOS App Store contains any IDEs at all. (But it does… including 2 J's – and any number of Pythons.)
With the mandatory removal of ~tools/regex/libjpcre2.dylib, regex.ijs won't work in the app.
However, UIKit does contain a regex decoding utility. For users missing regex, I could let you access this via 2!:9 in a future update. But if nobody tells me they want it, it will be low priority. Ian Clark (talk) 23:16, 25 October 2021 (UTC)
Please edit here to post a new entry, leaving this stub the bottom for the next person.