iOS (iPhones and iPads)
Also see this exciting news about J on Android!
Contents
General Approach
ScreenShots
An iPad landscape view
Showing 2 trigonometric plots in the Html (or "dot") window
Showing the J Vocabulary in the Html (or "dot") window
Also showing the results of doubling the default font size
An iPad portrait view
==== Showing how to access a valuable "Lab" (interactive tutorial) ====
Windows
- Log window: This is where text output is presented, and a text line can be touched and resubmitted
- Html window: This is where graphical results are presented via Html
- Edit window: This is where script files can be created and edited -- Tap the "E" button
Help
JHelp
iOSHelp
Press the "?" icon in the bottom line of the iOS screen.
Or type 'Hall' (without the quotes) in the Entry field at the bottom of the iOS device screen,
and then press the Return icon to the right of the Entry field.
CompareToDesktop
VersionOfiOS
FileTransfers
Due to Appstore restrictions, it is not yet easy to transfer files between iOS devices and desktops. Until more streamlined methods can be developed the following files and instructions are provided. The JAL system, pacman, provides rather elegant downloads of J libraries to desktop directories (~addons/) directly from jsoftware.com, but no such direct method is yet available for iOS devices. For now, any such addons must first be downloaded to a desktop computer first, and then further transfered to iOS platforms.
Following is the jt.ijs script. Click here to Download
.
*** ~temp/jt.ijs (should be installed on Desktop computer)
0 : 0
transfer text file from desktop to iPad:
load '~temp/jt.ijs'
jattach '... file to move to iPad ...'
send email to yourself with attachment ~temp/jattach.html
read email on iPad
tap jattach.html - show attachment in browser
tap textarea - show keyboard and enter edit mode
touch-hold-release textarea
tap Select All
tap Copy
switch to J
jcbtof '~temp/t.ijs' NB. put clipboard data in file
or to edit immediately
je jcbtof '~temp/t.ijs'
transfer text file from iPad to desktop:
je '..... script'
touch-hold-release
tap Select All
tap Copy
send email with pasted contents
read email on desktop
normal methods to copy/paste data to file
Verb jt creates a single text file from a folder (similar to tar).
jt '' NB. jt help
jt 'c';'~/t.jt';'~addons/math';'misc' NB. create t.jt with addons
contents
jattach '~t.jt'
transfer single file to iPAD
jcbtof 't.jt'
jt 'x';'t.jt';'~addons/math'
)
NB. write file y wrapped in html to file x (default ~temp/jattach.html)
jattach_z_=: 3 : 0
'~temp/jattach.html' jattach y
:
t=. '<html><head>'
t=. t,'<meta http-equiv="Content-type" content="text/html;charset=UTF-8">'
t=. t,'<title>TITLE</title></head><body><div><h1>NB. TITLE</h1>'
t=. t,'<textarea name="ta" rows="20" cols="20">DATA</textarea>'
t=. t,'</body></html>'
t=. t rplc 'TITLE';y
d=. toJ fread y
d=. d rplc '&';'&'
d=. d rplc '<';'<'
d=. d rplc LF;'<br>',LF
t=. t rplc 'DATA';d
t fwrite x
)
jt_z_=: 3 : 0
if. ''-:y do.
smoutput'jt packs/unpacks text files'
smoutput'jt ''c'';''~temp/test.jt'';''~system'';''util'''
smoutput'jt ''t'';''~temp/test.jt'''
smoutput'jt ''x'';''~temp/test.jt'';''~temp/test'''
i.0 0
return.
end.
t=. >{.y
f=. >1{y
a=. LF,'NB. ********** jta '
z=. LF,'NB. ********** jtz '
r=. ''
select. {.>{.y
case. 'c' do.
assert 4=#y['needs 4 paramters'
'file path folder'=. }.y
assert 2=ftype path['path must exist'
'' fwrite file
path=. jpath path
base=. path,'/',folder
d=. {."1 dirtree base
files=. (>:#path)}.each d
for_f. files do.
f=. >f
d=. toJ fread path,'/',f
if. +./((32{.a.)-.TAB,CRLF)e.d do.
smoutput 'file with non-char bytes ignored: ',f
else.
r=.r,<f
d=. ((a,f,LF),d,z,f,LF) fappend file
end.
end.
fcase. 'x' do.
assert 3=#y['x needs 3 parameters'
path=. >{:y
y=. }:y
case. 't' do.
assert 2<:#y['t needs 2 parameters'
d=. toJ fread f
while. d do.
i=. (a E. d)i.1
if. i=#d do. r return. end.
d=. i}.d
d=. (#a)}.d
i=. d i. LF
f=. i{.d
r=. r,<f
d=. }.i}.d
i=. ((z,f,LF) E. d)i.1
if. i=#d do. r return. end.
fd=. i{.d
d=. i}.d
if. t='x' do.
p=. path,'/',f
for_n. I. p='/' do. 1!:5 :: [ <jpath n{.p end.
assert (#fd)=fd fwrite p
end.
end.
case. do.
assert 0['unsupported feature'
end.
r
)The following clarifies somewhat the transfer of file directories.
Use jt to transfer a folder of files. jt is similar to tar. It creates a single file with the info necessary to recreate a folder. On desktop jt '' NB. jt help jt 'c';'~/t.jt';'~addons/math';'misc' NB. create single t.jt file from addon/math misc folder send email with t.jt attachement On iPad read email and follow single file example to copy to clipboard jcbtof 't.jt' NB. put clipboard contents to file t.jt (at root for less name typing) jt 'x';'t.jt';'~addons/math' NB. extract contents of t.jt
Installation
- Phone
- Tablet
Keyboard
- Phone
- Tablet
Idiosyncrasies (relative to other J versions)
- To retrieve the last input, swipe left in the text entry field
- To advance to the next Lab, press the 'return' button
No package manager for ~addons (see FileTransfers)
- Limited keyboard means no 'modifier' keys like Control, Alt
Updates
