Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Node-android – Run Node.js on Android (github.com)
70 points by sequoiar6868 9 months ago | hide | past | web | favorite | 28 comments

Serious question: what sorts of things would a person do with this?

Not throwing rocks, this is a question based in my own ignorance. I know what Node is, but I don't use it and I'm not an Android dev. Thanks!

What I’d do is running a full blown database application on the device. Couchbase Lite can do that as an example - replicate to a Couchbase server and allow offline access to data and indices. If your server part is Node.js based you should be able to have the whole thing running offline on devices.

Why? I’m Swiss. We drive a lot of trains and they enter a lot of tunnels. Or on the plane. Or on a mountain. Imagine you can just keep on editing all your business data and sync the delta once you get a connection.

In the past I've used PouchDB inside a webview for this use-case.

This is pretty much what Firebase is. https://firebase.google.com/docs/database/

You may be interested in a new way to develop web applications that I have been developing. An entire site is represented in JSON, and pages are built by Javascript in the browser. This greatly reduces server calls, making it much faster as well as largely working offline.

The site is in late alpha: https://www.sparational.com/

(If you goto the Login screen and enter an unused username and password, it will create an account for you.)

What makes this a better approach than having something like React run in a ServiceWorker?

www.sparational.com seems to have gone down since I started writing this comment, but when I clicked on the link, it seemed to have quite a considerable wait until anything appeared on the screen.

On my phone, it just says application error

Which browser? I've tested on desktop Chrome, mobile Chrome, and mobile Firefox.

IE and Edge aren't currently supported, and might never be.

I tried Firefox Focus, Firefox Mobile, and Chrome. Just tested again and it's working now though. Looks interesting!

I don't know about others, but developing react native apps I sometimes have the necessity to use some NPM modules that can't be used directly into react native. For example, I'm developing a 1-person chatbot platform and I want to run botkit processes inside the app so I don't need a backend. It can't be done with React Native but could be done using node-android or nodejs-mobile.

I was working on making a reddit auto repost detector bot based on opencv that I was going to leave running on an old phone.

I got node running on it without this though, but funemployment ended before getting the proper drivers running on it

If the purpose is to just run JavaScript code on Android outside of a browser context, React Native and NativeScript have been doing this for a while.

If the purpose is to run JavaScript functions as background services this is somewhat implemented via Service Workers in Progressive Web Apps.

I don't think there is any way (currently) to register a JavaScript function/library as an always-on server process. I don't see why this would be unsafe or particularly undesirable unless there is something computationally intensive happening.

This is cool, but Termux gives you this and more.

This looks like a NodeJS implementation written in Java (I'm guessing from a dead-push to make Java's JS VM capable of running NodeJS APIs - and note that its compatible with Node 0.10.x - very oldish) Still would likely fill a niche where previously not possible.

"Run Node.js on Android by rewrite Node.js in Java"

It also hasn't been meaningfully updated in two years. I don't think that this is really useable.

I was able to get Node running on both Android and iOS using this library: https://github.com/janeasystems/nodejs-mobile

Here's the writeup:


Very nice! I've been playing with https://github.com/janeasystems/nodejs-mobile to get the Dat project to run on Android and iOS. This might be another way to do the same thing on Android!

Your linked project makes a lot more sense since it is a native NDK port instead of a complete rewrite/re-implementation in another programming language.

termux (on android) has nodejs

  $ apt search nodejs
  nodejs/stable 8.11.2 arm
    Platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications
disclaimer: I haven't used it

Great hack, but what does it give me that Node under Termux doesn't?

You could probably packages a Node.JS app with this and release it as an Android app. I think this project need some examples.

I'm probably being blind here, but why would you need to re-write node.js in Java in order to be able to run it under Android? Why couldn't this be achieved through JNI (or similar)?

I used an old Android phone with Linux Deploy to run Node with MongoDB around 3 years ago. Now Termux allows to do basically the same.

the initial purpose is to run http over udp with nodejs on Android for p2p web service. I have spent years of effort on it, but I feel tired now. anyone interested in it, can fork and continue on it. thanks.

Do we have one for iOS?

I would like to run my own web servers in Cordova!!

https://github.com/janeasystems/nodejs-mobile Is the most promising project right now! Secure Scuttle Butt is using it to get running on mobile.

Why link to a fork?

Now we just need android phones with 32gb of ram.

Applications are open for YC Summer 2019

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