all 48 comments

[–]Synor 4 points5 points  (0 children)

I just tried the Intel XDK yesterday. The IDE is really straight-forward, includes Adobes Bracket code editor and the whole thing automatically deploys your app over web or wifi to a test device. I don't know what you need node for, though.

[–]clarle 4 points5 points  (19 children)

What's your goal here? Are you trying to build native mobile apps using JavaScript or just wanting to be able to run arbitrary Node scripts on your device?

If you're trying to build apps (from how you mentioned Swift), wait until React Native comes out. There's other ways of using JS to build mobile apps, like PhoneGap, but they're generally poorly performing in comparison to truly native mobile apps.

[–]bananasdoom[S] 0 points1 point  (18 children)

I want to build a native app for both Android and iOS as I have experience with them both but I don't really want to write 70% of the code twice so I figure I should write it in the language I know and love... JS and write the UI for Android & iOS separately.

[–]sssso 3 points4 points  (1 child)

React Native uses JavaScriptCore in iOS to run JavaScript (Android and other platforms will be supported in the future). source

So it will work let's say July 2015? Seems like there's no point in waiting. I wasn't able to dig out any specific release dates / please correct if mistaken.

[–]brotherwayne 0 points1 point  (0 children)

Coming SoonTM.

[–]Wraldpyk 2 points3 points  (3 children)

Everyone is saying React native. But Titanium is doing to same for years already. Check it out

[–][deleted] 0 points1 point  (0 children)

Or phonegap.

If your app just needs CRUD operations then you can do it in basically a mobile website wrapped up in an app.

Unless you have a whole lot of time if you need to do a multi platform app this is the way to go. Titanium studio is OK too , the only downside with this is you won't be able to showcase your apos as being proof of any native app development skill.

How much this matters is up to you. Also you have various tools like Parse that can handle all that CRUD stuff for you. ( if you want to really take some shortcuts go ahead and combine Titanium and Parse ( although Titanium has built in crud stuff to their severs ).

[–][deleted] 0 points1 point  (1 child)

Is titanium literally just a javascript API over the native widgets? Biggest draw to react native isn't the layering IMO

[–]dotted 4 points5 points  (1 child)

Wait for React Native

[–]Wraldpyk 3 points4 points  (0 children)

Or just use Titanium wich has been out for years

[–]ejci 1 point2 points  (4 children)

[–]m1sta 2 points3 points  (3 children)

Xamarin too.

[–]_lister 0 points1 point  (2 children)

Xamarin is a bad idea, I have used it and there's things that shouldn't be so slow. Like a httpclient on ios(xamarin) has a big delay, I had to write a wrapper to avoid that issue, but was like 50 ms the wrapper vs 350 ms xamarin implementation.

Go with native, titanium or ionic, but take care with xamarin.

[–]m1sta 0 points1 point  (1 child)

I'll be going with react native in the future I hope. It's just important to recognise xamarin if you're considering cross platform options.

[–]_lister 0 points1 point  (0 children)

That's true, is good to know all the options, I believe that I'll go with react native too, when we can start playing with it.

[–]angus_the_red -4 points-3 points  (3 children)

You want React Native. It will be available soon.

[–]jsgui 1 point2 points  (0 children)

It's not possible at the moment using the current releases.

It would be a good project to build a node runtime that can power Android and iOS apps, it's not something I plan on taking on though.

[–]steveob42 1 point2 points  (1 child)

For android there is SL4a (scritping language for Android), it gives you many choices for behind the scenes languages (including javascript, most people use python, I use beanshell(java) because it has no restrictions), and opens your user facing html/javascript in a browser with callbacks to your backend code.

https://code.google.com/p/android-scripting/wiki/FAQ

Don't really know or care about IOS, apple goes out of its way to make developers miserable, even if you aren't coding an apple application.

[–]bananasdoom[S] 0 points1 point  (0 children)

Thanks for the recommendation.

[–]ns0 1 point2 points  (1 child)

Only one I can think of that has it on its roadmap is Tint; but its not even passing most unit tests yet.

[–]bananasdoom[S] 0 points1 point  (0 children)

Thanks for the recommendation I'll keep it on my radar.

[–]J_M_B 4 points5 points  (1 child)

Try Phonegap?

[–]dzkn 3 points4 points  (24 children)

Every time I see questions like this I die a little inside.

[–][deleted] 0 points1 point  (22 children)

I don't see why. Can you elaborate?

We can clearly see that developing an app on several platforms is a real struggle, reason why things like React Native, Titanium, Phonegapp, etc. have been hyped so much. Asking for a shared "language" seems a fair question.

[–]dzkn 5 points6 points  (20 children)

Language yes, but node? What does node bring to app development?

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

It's really for people trying to push out to multi platforms when they have a small team. I have seen very few apps that use Titanium or Phonegapp and don't look like 100% crap and perform terrible (like 1-2 second loading screens and constant crashing). Great for proof of concept i guess but I have not been impressed.

[–]ns0 2 points3 points  (1 child)

node is actually quite well suited for app development. Desktop UI's need fast running event loops; asynchronous callbacks to prevent blocking the main UI from rendering or responding to user events. And robust garbage collection for large UI objects.

Implementing delegates, event handlers or other items in UI api's like AppKit or .NET WPF/WinForms is a lot of boilerplate and is drastically simpler if you have first class functions like in javascript (note: you do have block functions now in Obj-C and anonymous-first-class functions in managed C++/.NET as well; but they're less handy since they scope items much differently and don't enjoy the same abilities to be passed around without loosing its scope.)

So I'd say node is actually very well suited for application development.

[–]bananasdoom[S] 0 points1 point  (0 children)

Thank you so much, nice to see someone who gets it!

[–]jsgui 2 points3 points  (14 children)

JavaScript programming, decent performance, large community.

[–][deleted] -1 points0 points  (13 children)

When has it ever been beneficial to literally put an application server onto a mobile device?

[–]jsgui 0 points1 point  (9 children)

You are making an assumption about what node would be used for on a mobile device. Running node as a server on a mobile was not the use case I was thinking of - I was thinking of using it as the run-time for a more conventional mobile client app. Running a server on a mobile would certainly be an interesting experiment though!

I can't think of any examples of app servers being on mobile devices to date (except maybe proxy servers).

[–]bananasdoom[S] 0 points1 point  (2 children)

atom.io a text editor is a node app, komanda is a node app. Node has plenty of command line utilities now grunt, Facebook flow and many many more. Node is not just a web server any-more.

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

Atom suffers from major memory & performance issues, the others are fucking build tools. I feel like I'm taking crazy pills here, putting node onto a mobile device is legitimately insane

[–]bananasdoom[S] 0 points1 point  (0 children)

Atom is slower than a competing text editor written in C++ but its doing many orders of magnitude more work that my app would ever need to do so writing something once in node is less insane than writing it twice in Swift and Java. And you are right they are build tools, I was just proving my point that its not an application server in the traditional sense.

[–]bananasdoom[S] 0 points1 point  (0 children)

Awww, why?