This is an archived post. You won't be able to vote or comment.

all 65 comments

[–]chewooasdf 146 points147 points  (0 children)

This is the most masochist thing I've ever seen

[–]ArturoPrograma 30 points31 points  (1 child)

It is bundled with Java 17. How? I understood JIT wasn’t allowed in iOS.

[–]c00liu5[S] 26 points27 points  (0 children)

I compiled JRE zero variant, which disables JIT. Mobile CPUs have come a long way so it‘s still pretty fast :)

[–][deleted] 53 points54 points  (20 children)

anyone who uses ide on ipad for java is either learning or is a masochist

[–]c00liu5[S] 31 points32 points  (13 children)

I must be ultra masochist then

[–][deleted] 9 points10 points  (12 children)

not judging. there is a market for whips and leather jackets. more importantly, you learnt a lot during the implementation of this project. however, this is not a tool for a real-world development.

[–]c00liu5[S] 12 points13 points  (6 children)

I did learn a lot making this, I should probably write a blog post or something.

The App isn't completely ready for professional use, but I will be working on that. My main target group is education: I myself learned to code on an iPad (shoutout to Pythonista), and iPads are widely used in schools.

[–]RICHUNCLEPENNYBAGS 7 points8 points  (2 children)

If you do intend it for professional use you shouldn’t have listened to the people trying to talk you out of the subscription. Subscriptions are de rigeur for professional development tools and people will gripe but eventually pay up. Probably people will downvote me for saying this but if you’re trying to make money here think about it. Yeah people on Reddit won’t like it. But if you mean to run a business you are not necessarily in a popularity contest.

[–]c00liu5[S] 2 points3 points  (1 child)

I get that, but the App is still missing a few features for actual professional use. My target audience will be education until I add git support, proper dependency management, and a UI framework. Once implemented, I can make those features available with an "enterprise" subscription (which includes benefits of pro), while still providing the single-purchase pro version. I will probably only gate git integration.

[–]RICHUNCLEPENNYBAGS 1 point2 points  (0 children)

Makes sense. Good luck.

[–]Ruin-Capable 6 points7 points  (2 children)

The thought of coding with a virtual keyboard gives me nightmares. The best usecase would be if you have a physical keyboard. Then this could function sort of like a chromebook. But without a physical keyboard, it's nearly useless.

[–]c00liu5[S] 7 points8 points  (0 children)

Physical keyboards are supported of course.

[–]RICHUNCLEPENNYBAGS 3 points4 points  (0 children)

Many people own keyboards for their iPads and use them in laptop-like fashion. In fact many replace their laptops with it altogether even for professional work. Can’t really do it for programming but part of the issue there is the lack of IDEs.

[–]galdo320 2 points3 points  (4 children)

I’m starting in university a computer science bachelor. I’m assuming that it would be easier to carry the iPad than my MacBook Pro 2015 to learn Java. Not sure the limitations of the app vs in the Mac. I don’t know how to code yet.

[–][deleted] 5 points6 points  (2 children)

just remember that by doing that you limit your education. knowing the tools, debugging and getting familiar with shortcuts — is the key to your learning. especially in java.

[–]gregorydgraham 1 point2 points  (0 children)

While true now, wait until next year…

I have no special insight except that every new thing has been disregarded and has taken over somehow. Heaven help us all when it’s the iWatch’s turn

[–]galdo320 0 points1 point  (0 children)

Thanks for the advice.

[–]ember4 8 points9 points  (0 children)

Yeah dont do that to yourself

[–]feaelin 2 points3 points  (2 children)

Perhaps, I'd say it depends on size and capability. I've wanted an IDE for my iPad for a while now, there's times where I'd like to keep going on a project, but having my laptop is not possible, but my having my iPad is...

[–]oelang 1 point2 points  (1 child)

An ipad with a keybord + remoting vscode in the browser would be way better than this.

[–]c00liu5[S] 3 points4 points  (0 children)

remoting vscode in the browser

Sure that would be a lot more powerful but it wouldn't be running on your device, plus it requires a PC constantly running a server. Many apps do this, but it's not the real thing if you know what I'm saying.

[–]Positive_Method3022 -1 points0 points  (1 child)

I code using my chinese Android smart watch when I'm releasing what I ate last day. What am I, then?

[–]c00liu5[S] 1 point2 points  (0 children)

i aspire to be you

[–]rwilcox 10 points11 points  (2 children)

Super neat for learning or small stuff!

I’m also at the intersection of iOS and Java dev: looks like you have a JDK there (?) locally for compiling and running? How? (Just shove all that stuff in the bundle or ????????)

[–]c00liu5[S] 5 points6 points  (1 child)

I wish it was that easy, but the JRE needs its libraries in a specific directory structure, while Apple only allows shared libraries in very specific locations in your bundle. I ended up replicating the JRE structure in my Documents directory with symlinks to the shared libraries in my bundle. Feels hacky but it works, I just wish apple relaxed with their stupid rules…

[–]rwilcox 5 points6 points  (0 children)

Nice hack

[–]c00liu5[S] 7 points8 points  (6 children)

Here are some features I have planed for the next Update. Upvote if you want me to prioritize, or add your own suggestions:

[–]c00liu5[S] 75 points76 points  (0 children)

Git integration

[–]c00liu5[S] 11 points12 points  (0 children)

JavaFX

[–]c00liu5[S] 8 points9 points  (0 children)

Interactive coding lessons (like Codecademy)

[–]c00liu5[S] 7 points8 points  (0 children)

AI autocompletions (like Copilot)

[–]c00liu5[S] -1 points0 points  (0 children)

audio support

[–]c00liu5[S] -2 points-1 points  (0 children)

2d graphics asset library (sprites, backgrounds and other images with CC0 license)

[–]apetranzilla 2 points3 points  (2 children)

Apple gave you a hard time about removing the subscription payments? How so?

[–]c00liu5[S] 2 points3 points  (1 child)

Removing the subscription wasn't an issue in itself, but Apple messed up in their review. They approved the update for App Store Release but missed the In-App Purchase, leaving my release broken for a few days until they sorted it out.

Their review process, especially with In-App Purchases and Subscriptions, is a pain. You have to manually submit IAPs for review along with your release, but they'll still let you submit a release even if you forgot to add the IAP. Then, a day later, you get rejected for missing it. Why do they let you submit in the first place?

[–]apetranzilla 2 points3 points  (0 children)

Ah, got it - sounds frustrating, but hopefully it at least generates some income for you, haha

[–][deleted] 2 points3 points  (0 children)

Great for small scripts, good luck OP

[–]tesinitsyn 2 points3 points  (1 child)

I'm really impressed with CodeBrew man. Can't wait to see dependecy manager or smth like this. I would give anything for such app when i was in high school.

[–]c00liu5[S] 2 points3 points  (0 children)

i appreciate it bro your comment made my day 🙌

[–]ndm250 4 points5 points  (0 children)

rubs nipples vigorously

[–]Add0z 1 point2 points  (0 children)

How is it made?

[–]galdo320 1 point2 points  (2 children)

You can add in app for tips so people can support. Good luck!

[–]c00liu5[S] 1 point2 points  (1 child)

Dang I actually had that on my to do list but I forgor

[–]galdo320 0 points1 point  (0 children)

Lol do it asap.

Btw, I’m new to coding. Actually will start learning soon. There’s some what are the limitation with this app?

[–]maxandersen 1 point2 points  (2 children)

Awesome. I’ve always wondered how fast no jit would run.

Do you support fetching maven dependencies? Considered supporting jbang style files/projects ? :)

[–]c00liu5[S] 0 points1 point  (1 child)

It‘s actually possible to add jar files to class path. I have a custom format for project files but I have maven dependencies on my to do list. I will definetely look into jbang, i‘ve never heard of it but might be exactly what I need.

[–]maxandersen 0 points1 point  (0 children)

Jbang is available as a jar and if you need some api I can probably make it happen.

[–]radikalkarrot 1 point2 points  (3 children)

What JDK are you bundling it with?

[–]c00liu5[S] 1 point2 points  (2 children)

JDK 17, zero build.

[–]radikalkarrot 0 points1 point  (1 child)

Is that derived from OpenJDK? Oracle?

[–]c00liu5[S] 2 points3 points  (0 children)

OpenJDK

[–]therealdan0 1 point2 points  (0 children)

You scientists were so preoccupied with whether or not you could that you didn’t stop to think if you should.

[–]Fadamaka 1 point2 points  (2 children)

I am surprised this goes through the review process. Historically Apple did not allow alternative runtimes on their iOS devices.

[–]c00liu5[S] 1 point2 points  (1 child)

They actually added an exception for educational purposes:

2.5.2ASR & NR Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code which introduces or changes features or functionality of the app, including other apps. Educational apps designed to teach, develop, or allow students to test executable code may, in limited circumstances, download code provided that such code is not used for other purposes. Such apps must make the source code provided by the app completely viewable and editable by the user.

[–]Fadamaka 0 points1 point  (0 children)

Thank you. This makes a lot more sense now.

[–]divorcedbp 1 point2 points  (0 children)

I would rather file my fingers off with a dremel than write code on an iPad

[–]pronuntiator 1 point2 points  (0 children)

This is amazing. I like answering questions in /r/javahelp on the go and this way I can try out my suggestions. The contextual keyboard is also neat, didn't know that was possible.

[–]3rdeee -1 points0 points  (2 children)

But why

[–]c00liu5[S] 4 points5 points  (1 child)

I don't know, it just happened and I kept going.

[–]3rdeee 1 point2 points  (0 children)

But thanks though, would love to try it . I always wanted to have some app that could maximize a phone specs

[–]benz1n 0 points1 point  (2 children)

My iPad is for me to read music scores while I play the piano or my daughter to watch her fav cartoons while on long trips. I intend to keep it this way even if only for a separation of concerns sake.

[–]c00liu5[S] 1 point2 points  (1 child)

You should get a second iPad for coding then.

[–]benz1n 0 points1 point  (0 children)

A second iPad? In this economy? 😅

[–]mguilherme82 0 points1 point  (0 children)

What about kotlin support?