A Guide to the latest version of the J IDE for iOS/iPadOS.
This is the new page (which is linked from the J901 app): Guides/iOS
The old page (for the J701 app – still available from App Store): Guides/iOS/J701
The Developer User:Ian_Clark is wholly independent of Jsoftware Inc. Nothing on this JWiki website should be construed as an attempt by either the Developer or Jsoftware Inc to invite donations of funds towards the development of this app in violation of Apple Inc App Store guidelines.
An iPad portrait view
Showing the Welcome message in the Home scene
- NOTE: this is the appearance when the iPad is set to Dark Mode (recommended)...
Showing the results of doubling the default (17 pt) font size
Showing 2 trigonometric plots in the Plot scene
Showing the NuVoc portal in the Info scene
- Scrolling / widening with two fingers…
Showing the J Vocabulary in the Info scene
Showing how to access a valuable "Lab" (interactive tutorial)
- NOTE: You can now advance the lab by tapping the Return key.
Alternatively (if you are using a bluetooth keyboard) enter: ⌘J
Scenes (fullscreen displays)
- Home scene: This shows the J session log. Type a new J sentence at the bottom or alter a line
- Edit scene: This is where to edit and run scripts. It has multiple tabs, plus Find.
- Info scene: This is where you can read on-line help material, e.g. NuVoc. Also view user-written html files.
- Plot scene: This is where the Plot package displays its charts. Scroll through the latest 6. (Like Info, this is a html display.)
- Slate scene: This is where the Viewmat package displays its images. It will also show other image formats, e.g. JPG, PNG.
- Mill scene: This is where you can experiment on a complicated J noun. It has 2 factory "apps" including Conway's Game of Life.
The original Help pages, bundled-in with all J IDEs from J 6.02 onwards: Online help for J
The default Help for the present app is the NuVoc portal.
You need an iPhone with iOS 14.5 or higher, or an iPad with iPadOS 14.5 or higher.
If you have a Mac with the M1 chip, you can download and run the app from App Store, albeit in a crippled form.
Using Import and/or the Files app
Tapping the Import Button shows a display like a cut-down Files app.
This lets you browse, edit and load scripts (and other text files) residing on
- your iCloud Drive (use this to transfer scripts from your Mac or other computer)
- on your iPad (i.e. files in the so-called Sandbox or Jail).
It also lets you copy any file to any other visible location. Typically you'll want to copy a script from iCloud Drive into your temp or user folder. Get familiar with the Files app to learn how to use this feature to greatest advantage.
The basic action is
- locate the icon of the script you want to move/copy
- touch and hold the icon (…a list of options appears)
- select (say) copy (…it then invites you to navigate to the target location)
- Some drag-and-drop of icons onto locations in the left sidebar is supported, but you'll need to experiment.
NOTE: Apple Security restricts obvious but unsafe actions like in-place editing of scripts in iCloud Drive. In this version of j901 for iOS, if you edit or load such a script, it is first copied to your temp folder and editing/loading is done on the copied file. You are then free to use Import (or better: the Files app) to copy your edited file back into your iCloud Drive, or move it into (say) your user folder.
The app can only be installed by downloading it from App Store.
The app is free-of-charge.
Locate the app in App Store (iOS or Mac/M1) with the search term: j901
Locate the old app in App Store (iOS or Mac/M1) with the search term: j701
System Keyboard (onscreen)
This is shown below for the iPad in landscape orientation:
You can now rock a key (…drag slightly downwards) e.g. rock m to type: Colon (:).
saves cumbersome use of the shift key.
There is now a toolbar of custom keys, to ease the pain of using the onscreen keyboard to do these actions:
- Fetch line from history – i.e. further up the J session log
- Move cursor left / right – has better ux than built-in manual repositioning of cursor using forefinger
- Type quote-quote and place the cursor between them (a fast way to provide dummy y-argument)
- Go to the Edit scene (the pen icon)
- Go to the Info scene: (the ringed query icon) - for Help (NuVoc). Place cursor before an unknown J primitive for context help.
Hardware Keyboard (Bluetooth)
This behaves much as it does with macOS using the attached (USA) keyboard.
To see a menu of Cmnd-keys (⌘-keys), tap the ⌘ button (top-left of screen).
Idiosyncrasies (relative to other J versions)
The main differences from (say) jqt are:
- An ultra-simple shell provides access to system utilities with minimal typing. See #Dot-commands
- stdlib is augmented by iosutils, a collection of verbs adapted to the iOS environment
- The folder structure has been flattened to assist newcomers to J find their way about
- The Foreign conjunction: 2!:9 offers rich facilities to access the UI (user interface) of the app. See: #Foreign_.282.21:9.29
- A restricted version of ~addons comes with the app. Apple privacy and security requirements forbid the use of the J Package Manager pacman. Instead, individual addons (or the whole ~addons folder) must be manually imported from iCloud Drive, or some other container, using either the Files app or the built-in import facility (known to iOS developers as Document Picker).
- the Plot and Viewmat packages have been adapted to iOS and absorbed into the system, now residing in the folder j/system.
This feature offers rich facilities to access the UI (user interface) of the app.
'baby' 2!:9 '' NB. show the classic dancing baby GIF 'beep' 2!:9 '' NB. built-in "klunk" sound 'beep' ui 1030 NB. "hunt" sound, with cover verb: ui for 2!:9 'getclip'ui'' NB. return the contents of the (system) general pasteboard 'goto' ui 'Edit' NB. show the script editor 'goto' ui 'Info' NB. show jwiki portal
No valid J sentences begin with dot (.). This feature leverages this fact to provide a simple shell-style commandline interpreter. The app detects a leading dot in your input line and interprets what follows according to an elementary command repertoire.
Enter a single dot to view this repertoire as a ghost menu. Then place cursor on a chosen line, (edit it) and tap ReturnKey.
- Most commands are single-char (following the dot).
- Some commands are covers for factory J-verbs residing in the z-locale.
- Others bypass the J engine to interact directly with the iOS UI (User Interface).
- Boilerplate ghost menus use // to begin a trailing comment.
Periodic app updates will be provided subject to App Store review. These will incorporate both app features and factory scripts
The latest versions of iOS-relevant JAL addons will be shipped this way.
Meanwhile, for users with access to a macOS version of the J IDE, follow these steps:
- (on Mac): download the latest version of selected addons using the Package Manager (pacman)
- (on Mac): copy the relevant folder (e.g. /Applications/j903/addons/math/calculus) to your iCloud Drive,
- Move from Mac to iOS device...
- (on iOS): use Files app (see above) to move the folder into j/addons/math/calculus
Add your comments here, or use the Discussion page.