Hacker News new | past | comments | ask | show | jobs | submit login
Play.js: The Node.js and React Native IDE for iPhone and iPad (playdotjs.com)
145 points by ceeK 61 days ago | hide | past | web | favorite | 63 comments

I clicked the logo 3 times. It's not a video :)

Me too.

The app is really slick. I'm surprised they were allowed to have their own window manager as Apple were very against that in the past. But I really like it. It actually is a nice take on a desktop environment on a tablet.

I'm curious it being Node.js. It can run my js file on flight mode so isn't using a remote execution. But I didn't believe you could run node.js on an iPad due to the Apple restrictions (hopefully I'm wrong).

That said, the whole ecosystem of Node.js is about bringing in modules. I can't see any mention of how to do that.

RE: Node modules. For now, it requires some prep with a laptop. You can use browserify --bare to squash all the dependencies into a file as they do here playdotjs://28816c75

NCC is a good tool for this too https://github.com/zeit/ncc

> they were allowed to have their own window manager as Apple were very against that in the past.

How is it a window manager when it's just an app with whatever screens it appropriate to display?

It's no more a window manager than sketchbooks in drawing apps.

It's because they've recreated the internal menus, window snapping, ability to overlay windows and has a desktop. It looks like an OS. Apple were against this in the past because it doesn't align with their OS way of doing things. I never liked the rule so I'm excited to see that it looks like they've relaxed it in recent years.

I don’t think they’ve ever had a policy about whether apps could / couldn’t re-create their own menus or windows.

I finally found it. It's the "create an alternate desktop environment" part that I would say this falls under. Mostly because you have a desktop and they've created a new windowing environment that isn't native to iOS.

>> 2.5.8 Apps that create alternate desktop/home screen environments or simulate multi-app widget experiences will be rejected.


Got it. Yeah I see what you mean. This rule is more about them wanting to maintain control over distribution than it is about having a custom desktop / windowing metaphor. They don’t want people to create a platform within their platform where a third-party is distributing app-like things in an end-run around the iOS App Store.

Regarding modules support check the app Community.

Node should be the easiest to conform to Apple’s policies. It is using the native JavaScript engine.

Node and a native JavaScript engine aren't the same thing, unless the native JavaScript engine on iOS is Node.

Which it's not. iOS uses JavaScriptCore https://developer.apple.com/documentation/javascriptcore

Node isn't even a JavaScript engine.

Is there a hidden demographic of devs building React apps on iPads? This seems very, very niche.

Hidden? Probably more like latent. I build React apps all the times professionally and in my leisure time. I also use my iPad Pro a lot. I just don’t use my iPad Pro to make React apps, because I’ve never been aware of any feasible way to do so.

I’m in a similar boat. I desperately want to be able to develop on my iPad, but just haven’t found a good way to do it yet. The best I’ve found so far is programming a micro:bit with the scratch-like environment.

I’ll probably try this out, but what I really want is something like Max/MSP so is don’t have to type so much (although I do have a keyboard for my iPad, but it’s not something I like to type for long durations on)

There are several very capable, full-blown dev environments available for the iPad and iPhone. I think the main ones are:

Codea for Lua https://codea.io/

Pythonista for Python http://omz-software.com/pythonista/

Continuous for .NET http://continuous.codes/

Codea and Pythonista also provide XCode templates you can drop your code into to create App Store apps from your projects. Not sure about Continuous.

Apple allowing iCloud syncing for code has removed the last real source of friction I'd had using Pythonista. Now I can write a script on my iPad, then reach over and run it on my phone, then if it's cross-platform sit at my Mac and run it from there too before checking it into Github. No fuss, no bother.

Another iPad IDE, for Haskell: Raskell

I think this is one of my best app purchases ever, based on how much fun I have with it. Great to be able to read a Haskell book on my iPad and flip back and forth the Raskell to try code snippets as I read.

Pythonista is another great app purchase if you want to be able to write Python code natively on an iPad.

I’ve looked at the first two of those and I found them still too awkward due to being very text-typing heavy. Similar to play.js so I guess it mightn’t work well for me. I do have a keyboard and get by, but it’s uncomfortable for anything but shortish bursts and while I can of course use a normal keyboard, when I have one available I typically also have a laptop or desktop available so it’s easier to just use those. Like I said, I really dream of something more touch-friendly like an iPad-max/msp type language.

Still, I’ll try the ones you linked again and see. Maybe I got it wrong.

Graphical development environments like that are a nice idea, but tend to be somewhat limited and very domain specific.

Pythonista does come with a graphical UI builder, but it is still a very code intensive environment.

> Graphical development environments like that are a nice idea, but tend to be somewhat limited and very domain specific.

Sure, they tend to be, but in my experience with them (mainly Max/MSP and Synthmaker) they don't have to be. The potential is there, but nobody has really done it well. Max/MSP came close when I last used it, but had a few annoying limitations[1] and there's a general negative sentiment towards graphical programming environments, which I feel puts a lot of people off trying them in earnest and therefore puts people off experimenting with building them (and they will never improve if people don't try -- remember, we have decades of textual language evolution and tooling).

Some of the negativity is justified, but some of it is, in my opinion, not. For example, people criticise the visual spaghetti code and cite examples from many existing visual languages (usually the domain specific ones), but ignore that these domain specific ones are used by non-programmers who never learned software engineering principles. Textual code when written by these same people is just as much spaghetti code lacking encapsulation and abstraction and good naming conventions as visual code written by these people. I've seen some Max/MSP code that was downright beautiful and super easy to follow. Don't get me wrong, on a laptop/desktop, I totally prefer textual like everyone else, but I feel on a tablet, visual would be a great fit.

But even with the negative aspects, I think the benefits of being able to use a touchscreen outweighs the negatives, when compared to using a textual language on a touchscreen. For me, at least, if not for others.

> Pythonista does come with a graphical UI builder, but it is still a very code intensive environment.

I guess I'll give it a try, but "code intensive" sounds like what I don't want. We will see. Thanks for the recommendation regardless!

[1] At the time, I couldn't figure out a way of nesting data structures, for example. It seems this is now possible, so I don't know if it was added since or if I overlooked it at the time. There were a bunch such limitations that prevented it from being useful as a general purpose language, but since its not meant to be one, I guess it doesn't matter.

https://nodered.org might be a starting point, but it’s still awkward to use and not exactly touchscreen-friendly. Looking for someting like that or LabVIEW for the iPad myself...

Thanks, I'll check it out. All of the web-based ones I've tried so far weren't very touchscreen friendly, sadly. Many simply don't respond to touch events, or the nodes were too small for my fingers.

I like to use a full sized Mac Bluetooth keyboard with my iPad. I haven’t found a case keyboard I’ve liked.

The issue I have is that I don't want to carry a full sized keyboard around with me and when I'm somewhere where I have one (ie at home or in the office) I also have a laptop or desktop available with much better development tools, so just use those. iPad development would be for when I'm away from these.

I do have a case keyboard and its fine for basic use (emails, HN comments, short documents, chat messages) but I've never been happy typing a lot on it and I've never been happy programming on it (I've tried various IDE's, web based tools, SSHing into a server etc and I always got frustrated).

The iPad Pro is pretty great other than the development story, and this bridges that gap petty well, at least for React native.

Schools? Certainly my both my daughters school and my niece and nephews school has bet the farm on iPads, and are now looking for ways to teach programming without having to buy new hardware for all the kids. Something like this could be another way to do that.

I would love to run VSCode and a preview browser window on my iPad Pro.

Have you tried codesandbox.io? It is in my view the most sophisticated online editor with live preview and a huge load of starter templates to spare you the build configuration.

It is my go-to solution for when i have an idea and just want to build it quickly anywhere.

There is experimental support to use VSCode as the editor, togglable in the options.

I have used it before, but didn't know about the VSCode option. I'll check that out. Thanks!

Not in developing countries where not everyone has a laptop.

Is there something similar that would allow me to use one of these on iPad Pro:

- A fully featured linux desktop with Visual Studio Code and a terminal

- A sandboxed terminal with persistent storage

- A text editor and a rust compiler

- A text editor

I could always ssh into my raspberry pi while at home, which is my second best solution. But, if anyone has some ideas/solutions in mind that require even a large bit of tinkering, please tell me :)

I just picked up a new 13” iPad Pro with the hopes as using it as a travel machine. Mostly for email/writing, but also for light development. Haven’t found a solution yet. I’m in web dev land currently, so node/npm/webpack and a local http server would be needed.

I've just found a solution that works pretty nicely for me: Coda. It has an integrated SSH terminal, it has FTPS and uploads changes to files on save and it has support for many languages (don't know about rust though). It also saves your terminals and open files within each project so you can easily switch around.

Coda on iPad + Raspberry Pi (or an old Mac mini) make a pretty nice dev environment.

If you are more of a VIM guy, something like Terminus works well too.

Here's how I do this: https://stephendotz.com/posts/pocket-dev/ Originally I set it up on my iPhone, but now I use my iPad Pro "13 w/ the keyboard cover and it's really pleasant. I've written a ton of code on it. Front-end work is a little bit less fun because there aren't any browsers with dev tools for it.

Amazing, thanks!

nice setup! I think I would go for a remote server instead of a local laptop in case I would opt for SSH’ing from the ipad. Thanks for suggesting Mosh !

Cool would be if this app had some basic git(hub) support - currently seems only to support storing files locally or sharing to anything with a registered Sharing Extension (not aware of app that registers github sharing extension)

It already exposes it's document folder "On My iPad" so you can use the folder sync feature in Working Copy to work with github.

You wouldn't do this. You'd expose the filesystem (Files app) and use Working Copy, which can mount repositories as though they were folders.

I am incredibly excited for this. As a developer, all of my mobile devices excel at doing almost everything except....development. One step closer to a realized dream.

I bought this, it looks very nice and the UI has a very high level of polish to it.

I'm trying to use this with WebViews to hack together a multi-window, multi-tab browser thing, not sure if this is something that exists already.

The main issue with this is that it closes all of the windows when you switch away from this app, making it quite inconvenient at the moment.

Side note: I was expecting the background to be some really neat CSS trickery... Sadly just an image :'(

This is pretty cool. Just killed 30 minutes while in a waiting room.

Couldn’t figure out how to add modules.

Auto-prettier would be awesome.

What Node modules does it download and how can I inspect them? What are the security implications?

You will be much more productive on any Chromebook with a Linux distro than on a iPad.

Anything similar for android people who have some time to kill while commuting?

Termux + Expo.io

Or Samsung's Linux on DeX works well for app dev on your phone.

How can you use DeX and commute?

Theoretically you could use a portable HDMI screen and a battery pack, but that's quite clunky.

The Galaxy Tab S4 supports DeX right on the tablet AFAIK.

The Tab s4 and s5e both have DeX mode on screen and can be proto-laptops. Also there exist lapdock implementions by favorite being the HP Lapdock which even supports wireless pairing (Although DeX still needs to enable wireless projection mode)

Linux on DeX works outside of the desktop in shell mode. you can start the app and test inside expo even on the go.

I hate to brag but why can't you enlarge the screenshots on the App Store? Why is there no info or video what so ever to showcase the tool?

the video doesn't seem to play...

Cool but why though? I understand for those small percentage of iPad users this will be great.

That’s precisely why. Took my money. Is great.

real image?

on HN nobody knows if you’re real.

You don’t need to know how to code to use it


Very cool

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact