The app store page doesn't mention debugging, so I assume it's not there.
And probably not "go to definition". Completion quality is also questionable. These are very hard problems, even for a language with strict typing like Java. It's not easy to get these basic lookups correct and smooth.
>It's not easy to get these basic lookups correct and smooth.
Exactly, Intellij has been in the autocompletion industry for what, almost 2 decades? And still they present me with types in the autocomplete drop-down that I have never ever used in any of my projects. Yes I know, but I got tired eventually from excluding them. In my brain autocomplete is not hard, yet for an IDE guessing seems really really hard. AI improved this, at the cost of a second latency. No thankee sir.
Yet IntelliJ has always (figuratively, I dunno about its first years) been famous for having by far the best auto-completion ever. People used to become very upset when they were forced to use Eclipse after experience with IntelliJ.
True, it was good and lightning fast back then. Granted, the language (java) was arguably simpler then. Autocompleting a lambda is nightmarish at the moment. Nowadays it gets in the way more often than not. I feel it's starting to implode very slowly.
Because Java is static and relatively simple, the level of autocompletion is absolutely fantastic. E.g. a simple case, typing:
int a = obj.
Would show first only methods that return integers. But this gets far more sophisticated with completion anticipating your preference, naming variables for you, filling in the parameters with sensible values etc.
Going back to the simple list of options is a bit of a pain. Also, this needs to be written in Java since it needs to read the API classes to make suggestions. But his editor code is probably in Swift.
I got OpenJDK 17 to compile for iOS, but I had to disable JIT compilation as iOS doesn't allow running unsigned Code.
Running the JVM itself is possible as long as the binaries are signed, and located at the correct paths.
The paths issue really made me jump through hoops because Apple doesn't sign binaries unless they are bundled in Frameworks at the root of the bundle. That forced me to create symlinks to replicate the directory structure expected by the JVM while satisfying Apple's stupid policy.
Of course this whole thing only occured when I tried to submit to the App Store and the whole app was finished. I wasn't going to give up at that point.
This is a common misconception. The Classpath exception only applies to the class library, not to Hotspot (the core of the JVM implementation). The class library is also more tightly integrated with Hotspot than it used to be.
And of course the Classpath exception does not waive the notification and other requirements for the OpenJDK libraries that are distributed under the Classpath exception.
WASM is indeed one possible workaround. That's how a-Shell [1] manages to include a C compiler and run resulting programs at (I believe) better-than-interpreted speeds.
The app is monetized by limiting the number of “runs” you can do per month. Based on iOS limitations I think we can assume this means the compilation is done on a remote server.
EDIT: nevermind! I tried running a program with airplane mode on and it still worked. Now I’m really interested to hear how this was accomplished.
Probably a OpenJDK Zero VM build. That's a configuration without JIT or template interpreter, but a "plain" C++ switch dispatch interpreter that requires no runtime code generation.
More like code that runs code, not code that generates code. Assuming the latter means that it's generating native code and attempting to execute it natively, that's not allowed.
Code that generates code - specifically user-specified code - has been allowed on the App Store for years now. They have a very patronizing term for it, too: "learn-to-code apps".
Granted, Apple's never going to give you the entitlements necessary to make this performant or let you create separate temporary containers for compiled apps like Swift Playgrounds can. But you can absolutely ship a dev environment on iPadOS as long as you're willing to deal with those limitations.
I don't have a compatible device but I'm curious how the pricing works. Does it work like a subscription where you pay monthly for unlimited runs per month? Or do you just need to pay for enough runs and buy more if you run out?
In university, my friend used an iPad for all his notetaking. He had a keyboard for it, and used it like a little laptop. Bet he would have been all over this!
This is very common. A majority of my engineering maths students are writing lecture notes and exercises on a digital device, the plurality on iPad (Surface next most common). Many of these iPad users have a laptop as well as or instead of a keyboard for their tablet though, as the extra screen and flexibility are worth it.
This is awesome! I definitely think it makes coding way more accessible to beginners and would allow me to work on cool side projects, without having to carry a laptop around. Can't wait to try it out.
This is my biggest hang up about the iPad. Hardware is great. The OS is… passable. Sort of.
For me: I can’t do computer things that I want to do (mainly code, but sometimes game, etc).
I ended up buying a used Surface Pro X. A bit slow, but I like that I can run something like VS Code and a Node server, or even a real web browser with network debugging tools, all using a touchscreen while on a bus or in an airplane.
(For my gaming fix, I find that GeForce Now or Moonlight work pretty well for streaming my existing games — not as practical to do on a bus though.)
I understand what you are saying. The iPad is the best choice for some people and the worst choice for others. I have an older iPad Pro and it’s by far my favorite computer mostly because it doesn’t really feel like a computer.
My favorite apps are Procreate and GoodNotes. For me, either one is a killer app that justifies having an iPad.
I also have a ThinkPad for my personal projects and a desktop workstation for my job. Each machine has its strengths and weaknesses. Each was chosen because it was a great choice for what I need to do with it.
I’m one of the few people that hope the iPad doesn’t get more computer-like. I miss the days when you had an Atari or Amiga or PC or Mac and they were all very different and exciting and in competition with each other. Now we are approaching a very boring endgame where cross platform apps look the same everywhere and there’s nothing fun about any of it.
> I’m one of the few people that hope the iPad doesn’t get more computer-like.
Genuine question; what loss of features or capabilities are you expecting if the iPad does become more computer-like? I don't understand how features like sideloading, compiling or emulating limits your ability to use Procreate and GoodNotes.
While I’d love an iPad running macOS (You know there’s a lucky Apple engineer with one), The worry having the features is that it will require futzing with to get it to work right. Right now an iPad is like a Video game console. You just plug it in and it works. There is an expectation of a very, very smooth user experience. The fear is that in adding computer-like features, it won’t be as smooth anymore. Don’t know if I agree with that, but that’s the concern anyway.
I guess I just don't agree with it either. None of the features I mentioned should have any negative impact on the end-user unless the OEM deliberately implements it wrong.
One solution is to tape a pi to your iPad case. :)
No internet connection required.
This should work for node but not compiled languages. I think that the compilation would happen on the slower Pi but maybe someone can figure out a way to compile but not run on the iPad.
But I also have internally a bigger app that is doing similar approach (not open source code though) - https://www.smartercurrency.app
I’ve yet tried and I guess it’s limited for trying to do any ObjC++ / C++ / Metal. But I do believe Apple is using playgrounds as a playground for Xcode successor.
The biggest issue though, is version control (git…) which requires more work to get things properly.
> I guess it’s limited for trying to do any ObjC++ / C++ / Metal
The last time I tried, I couldn't get it to work, except...
One of the documented ways of creating compiled Metal kernels is to provide the source code as a string in your Swift code. And that works in Swift Playgrounds. It will compile and run your C++ Metal kernels, but it either works or doesn't. You get no compiler output.
That's the main drawback I find with the iPad. So much memory, so much processor, and not being able to use an app that allows me to create iOS apps. It's the reason why I only have an old iPad Air, it's enough for browsing, reading ebooks, and watching a movie on a trip. Anything bigger would be too bulky with the MacBook.
> and not being able to use an app that allows me to create iOS apps
Maybe you already know about this and you just mean there isn't an app that provides the equivalent of your full MacOS dev environment, but you can absolutely build and run iOS apps on your iPad with Swift Playgrounds.
It has a lot of shortcomings, but I've used it to create a couple little personal apps that I can run without distributing them through the App Store.
So far, sort of. Continuous does have the advantage of having both C# and F# (although it’s a bit crashy these days on modern iOS). I can take the code I test there and build it on a desktop system as well, but haven’t figured out how easy it is to round-trip stuff in this yet (should be as easy, if not easier, but re-using libraries might be trickier).
And probably not "go to definition". Completion quality is also questionable. These are very hard problems, even for a language with strict typing like Java. It's not easy to get these basic lookups correct and smooth.
Personally I wouldn't call it an IDE (yet).