Hacker News new | past | comments | ask | show | jobs | submit login
Deco Software – React Native IDE (decosoftware.com)
464 points by uptown on Feb 10, 2016 | hide | past | web | favorite | 108 comments

This looks really interesting and I'd love to try it, but these "refer your friend to jump ahead in line" tactics are pretty annoying. Stop pushing people to share it before they've even tried it, and let them share it after they actually enjoy using it.

And by the time they email me an say that I can download I'll have forgotten what this project was and what all the hype was about making me less likely to use it and even less likely to spread the news.

I agree. I can't preach something that I haven't experienced yet !

Exactly, why would I refer my friend to a product I haven't even tried yet? That's not how referral works at all, that's how spamming works.

We've got so many beta requests, we can't process them fast enough. So, just refer as many people as you can, and we'll bump you up somewhere in the "waiting list". Ingenious. ;-)

So I just started developing a react native Android app and a react desktop app in electron and it's actually been a very rewarding experience so far. Some thoughts I have on this:

1. I'd be interested to see the Android emulator and live reload in Deco. I'm using Genymotion and the live reload seems to work about half the time (as in I usually have to save the file twice to see my changes). It also sometimes can't connect to Chrome devtools. At some point I'll dive into webpack, genymotion, watchman, and devtools to see if I can fix these things but it'd be nice to have everything work smoothly out of the box.

2. Speaking of devtools, devtools! I could imagine some really nice UI that wraps devtools directly into Deco but I didn't see that in the video (admittedly I skipped around a little).

3. I love the built in styling bar. Right now styling for me involves having a color palette tab, a CSS reference, and an HTML/React native UI components reference tab open.

4. I have one more problem that could probably be solved with a 10 minute investment on my part: react with electron and react native require different nodejs versions. React native needs at least v4.0 and I believe electron only works with 0.12.9 and below. Currently I switch between them using "n". I suppose this problem is unique to my situation but this is also the kind of thing an IDE could handle with project settings.

Well this kind of devolved into me listing my pain points with React but I'm excited to try this editor and I just signed up for the waitlist!

EDIT: clarification on point #4

To point #4, if your toplevel react+electron vs. react native projects are in distinct working directories, then you can use tools like ndenv[1] to manage node/npm versions using a .node-version file at the root of each project directory, as well as a configurable 'global' default setting. ndenv is great for this, since it uses PATH to do its work, and is therefore far more widely compatible with tooling than nvm. (nvm unfortunately requires executing within a bash w/ a mess of shell functions injected into it.)

[1] https://github.com/riywo/ndenv

This is interesting, definitely. One thing people should be aware of if they're new to the React Native environment is that this technology comes built in. It is a big reason why React Native is such a huge success so far. You don't need an IDE and switching to one instead of using your own tools seems like a pretty big negative to me.

Tools such as rnpm allow for automated installation of new extensions (all of which are available on npm).

Extension installation is as simple as:

rnpm install react-native-video

Deployment is now as simple as:

react-native run-android react-native run-ios

No XCode, no Android Studio, etc. and you get live reloading, Chrome debugging, etc.

To me this is an ideal workflow, but others may disagree. Some may choose to build IDEs such as this on top of the existing architecture, that's cool too. I just want people who are starting out to be aware that there isn't much new here in terms of work flow efficiency.

Yes, for sure, a lot of the awesomeness is built into React Native. That's why we love it. Some developers will prefer an IDE, some will prefer the workflow you mentioned, and some will make their own. :)

>It is a big reason why React Native is such a huge success so far. You don't need an IDE...

Sorry if this a stupid question, but is this true if one is also targeting electron for the 'big 3' desktops for the HN crowd (rather than just mobile OSs)?

Edit: Clarifications made.

React Native is a platform for building _native_ iOS and Android apps (with no DOM (HTML or CSS)). Electron is about web apps for the desktop. Different things.

Guys, this is amazing! I've been looking for something like this for a while and almost ended up building it myself.

What about pricing? Will the editor be free with premium paid services like push to deploy?

The IDE will always be free for developers. We may add premium services in the future.

Very nifty! One question I have is that many React Native components that expose native functionality tend to have an extra step in the install process that looks like this: https://github.com/ProjectSeptemberInc/gl-react-native/raw/m... - where you have to drag in and link the library in xcode. Are these types of components handled automagically too?

Yes, we will be applying our automagic to this in the near future. :)

I recently worked on a RN project, after months of not touching it, and found out that there's a new thing called rnpm (https://github.com/rnpm/rnpm) that solves this issue.

RNPM is pretty good, but it doesn't work with some libraries that require slightly unique initialization steps or paths. I imagine this will eventually lead to some kind of postinstall hook in the module packages, which will be picked up by RNPM.

What exactly constitutes the Deco package registry?

Will I need to submit my React Native libraries to a new registry? Or are you working with something like http://js.coach (formerly react.parts)?

For the beta, we currently have our own registry, but we are looking into ways to integrate with others.

Is there a reason you aren't using NPM - I haven't done much react native development, is NPM not the go-to registry?

There are plenty of front ends for NPM so hopefully you guys can figure out something for this!

Okay! And presumably for the code scaffolding you will eventually let library authors customize that themselves?

Yep, that's right.

Any info on platforms supported (Mac, Windows, Linux)? I know React Native's toolset is mostly built for OSX with some native tool dependencies (e.g. Homebrew) and am afraid this will be repeated here.

Though the current beta builds are for OS X, we built Deco with Windows and Linux in mind. So keep an eye out for those!

Are you sure there's an app to download? No offense but this seems like some shady promotion to just build an email list. Not one person here has said they've used the application or that they've got an invite.

Thanks for asking this question. I couldn't find it anywhere on the site. Should probably be added as a separate entry on top ("Platforms" or something).

This is one of the most useful-looking things I've seen on HN for some time, going by the video. It's a step closer to being able to live art-direct (as it were) sitting with a developer.

This is great! Helps a ton for someone new to react native, lowers the already low barrier to entry. Integration with microsoft code push (https://github.com/Microsoft/react-native-code-push) could be cool.

We (the CodePush team) would love to discuss what that kind of integration might look like :)

My wife is a designer who has been getting into react-native with me. She would absolutely love this UI. Looking forward to trying it!

The screenshots seem to indicate full Apple walled garden. Will this work on Windows?

Currently OS X only, but we built it to be cross platform so keep an eye out for Windows version.

What?, Wait... React Native have windows support? or is comming? And linux?

I'm very excited to try this out. We've built one (very simple) React Native application so far and felt like the build chain could use some improvements.

Do you plan on supporting imports instead of require?

Absolutely! Everyone has their own preferred style for the new ES6 syntax, and we want to support it all.

You should add support for desktop too, like:


Why not just use browser-based React inside a wrapper like Electron to build desktop apps? Is performance much better when using a desktop implementation of React Native?

That's not native, and is much bulkier and slower.

This looks like a really cool piece of software, but I think a lot of it's best features should be unbundled or made available in the IDE you already use.


* Simple package search + install without opening a web browser * React-native hot-reloading * Scaffolding of added components, with required props filled in

I really don't want to use a different IDE, and lose everything I've got in my current IDE - I use webstorm, so this would be Live Templates, key bindings, etc.

That said, I'm really excited to see people building software that makes building react-native apps easier. It's not that it's too difficult right now - rather, it's awesome that the development workflow is so hackable, and that the react-native (and react) ecosystems seem to be evolving so rapidly, and are so willing to try out new ideas.

Anyways, nice work Deco Software, keep it up :-)

I couldn't find anything about supported platforms on the site. Will this target Linux, or just OSX?

We built Deco to be cross platform so we will be able to support Linux in the future. Currently OS X only.

I apologize that this comment is slightly off topic but does it worry anybody else that people are putting so many of their eggs in the React basket? Considering how fickle the world of front-end libraries can be..

This looks way better than things like Framer. Not only the code is more flexible (not a DSL nor their own API) but it's actually a React component that you can use anywhere. The IDE looks rad too.

This looks pretty awesome. I really like the import package feature with the scaffolding. That looks like it saves a ton of time on whatever you're building.

The left sidebar with Actions, Constants etc suggests use of some specific Flux library. Which one is that? Could others be used, too?

Looks nice. Here's hoping you'll do support for ClojureScript and Reagent. Or open source it and let me do it :-)

Released an app with react native recently and had an extremely pleasant experience throughout! Two thumbs way way up!

Are beta testing only focused on select group of users? Signed up for beta and told there is a waiting line for it.

We are adding users to the beta in batches as quickly as the team can support. We're working very closely with our beta group.

Looks awesome! We just released our React Native iOS app ( https://yes.no ) and I will definitely try it out!

Good luck!

This is incredible.

Wow this is pretty impressive. Good job OP

The beta signup form (#download) is broken in FF. The lower text is cut off. OSX: 10.10.5 FF: 43.0.4

Please send me an email at dchen@decosoftware.com and I'll look into it. We're having trouble reproducing the issue in Firefox. Thanks!

We figured it out and it should work on Firefox now. Thanks for reporting the issue! :)

Yep I can confirm that its working. No problem :)

fascinating video. love the IDE and the great convenient it offers.

Looks good, definitely going to try it out.

Here's hoping for a Linux version ...

Closed beta and a lot of marketing. Nothing to see here.

we have been building a few react native apps at gyrosco.pe/apps we have been loving it. Interested to see if we could add this to our flow easily.

can i use it?


We detached this comment from https://news.ycombinator.com/item?id=11075322 and marked it off-topic.

OR you could just install react native CLI tools, then use the BUILT IN hot module reloading (which is basically like LiveReload for web editing), and just do it yourself without this bloated piece of thing.

Look how beautiful these docs are:


Now would you rather rely on something that one person made? Or would you rely on a huge group of amazing folks, which would GLADLY help you with your project, such as the folks from Discord channel or ExponentJS on Slack.


We detached this subthread from https://news.ycombinator.com/item?id=11075830 and marked it off-topic.

Look, you're clearly passionate about React-Native, but surely there has to be a better way to channel it than this? How about an article explaining why it's better not to rely on on something like this, and why your way is better. Complete with samples to git clone. Then you can present it with your own thread. I am sure if you think about it, you'll realise it's a better approach.

I mean you don't need to trash someones project like a total klabnik. It's not a good way to live, trust me.

"Bashing on what people make is my favorite activity"


I disagree. This seems to strike a good balance between ease of use and power. It offers a visual tool for layout while still placing the code front and center.

>It's pointless

No, it's not. Prototyping.

Here's how you prototype:

npm install -g react-native

react-native init myproject

cd myproject

# open xcode simulator or android emulator

# make changes to index.ios.js and read the damn docs

# otherwise you end up dragging slides and dragging drop

# having no idea what actually goes on behind the scenes

# when if you learned what went on behind the scenes

# you could code so so much faster and have so much more control

so i need to learn IOS and Android development to learn what's going on behind the scenes as well? Ideally right? But that's definitely not a prerequisite of building RN apps. Abstractions are great if its done well..

It is so sad to see people on Hacker News with so much potential, but take the easy route out, and end up with nothing.

Why the bad karma? Look, there are people that like Emacs (like me) and there are people, especially designers, that like drag-and-drop. Even if all it accomplishes is rapid prototyping, there is great value in closing the gap between UXPin and Emacs.

Do you also tell Photoshop users that they should be using HTML/CSS for their website mockups?

Upvoted as this comment at least attempts to be informative.

Haha not really, it's bloated. You end up wasting time dragging a slider when you could just put in a number and enable HMR hot module reloading which is BUILT INTO REACT NATIVE. Lol.

You've inundated this thread with uncivil and dismissive comments. I'm sure you do know a lot about this space, but the way you've chosen to express it here is not at all ok.

People go on tilt sometimes, so it's not the end of the world, but we're banning your account for now. If you don't want it to stay banned, email hn@ycombinator.com.

We detached this comment from https://news.ycombinator.com/item?id=11075389 and marked it off-topic.


Why the hate? I see 8 negative comments from you in this thread. Edit: 13 by the time I finished writing this post.


> There are a lot of fanboy lurkers that downvote me because they are friends of the OP on here.

FYI: I'm not a friend of OP but are down voting most of your posts here. If something, you look like the fanboy here.

I now see elsewhere that you are an active react native developer. You should be happy for people building a community around the platform, shouldn't you?

Care to expand your thoughts?

I tried to below, but I continously get downvoted by friends of the OP here. This thing is a joke, the time you spend reading about it and trying to get it installed/setup you could have already read the docs for RN, installed the ACTUAL React Native CLI tools that Facebook THEMSELVES! This is for people that are lazy, don't actualy build a product that gets anywhere, or prototype something that is actually junk and needs rewritten because they had no idea what they were doing, because they didn't read the docs that the creators of RN put SO much effort into maintaining (WITH EXAMPLES!).


I've no idea who the OP is and I've downvoted you. Your comments are rude and inflammatory. I'd imagine most of the other downvotes are from people who feel the same, rather than friends of the OP.


We detached this subthread from https://news.ycombinator.com/item?id=11075245 and marked it off-topic.

Nobody is going to investigate the background of a drive-by jerk

I did look at his repo and it's respectable. Putting aside the personality issues the way we do with Terry Davis (TempleOS) I'd like to hear his complaints about this.

It looks like he's having a mental break down.

Bad day I guess...


We detached this comment from https://news.ycombinator.com/item?id=11075245 and marked it off-topic.

Android is over 70% of the market.

But Apple is over 60% of the market, which a more important metric for most developers.


(I'm an Android guy myself, just trying to be realistic)

But React apps aren't the kind you sell (like games), instead they are typically used to display data from a server - rather than process it.

Take a look at the showcase, all these apps are free! https://facebook.github.io/react-native/showcase.html

Pretty easy when pretty much anything with any version of Android OS on it constitutes as "Android". For comparison, as of February 8th, 94% of all iOS devices are on iOS 8 or later, with 82% of those on iOS 9.

Since Android 2.3, I haven't had much trouble sharing code across versions.

Performance is the major problem. Getting the code to run isn't really an issue anymore.

Interesting, for fun, can you share a story where changing Android versions resulted in a performance regression?

My problems were limited to bugs in the OGL Java wrapper in Android 2.x.

I cannot. However the performance of the apps on my colleagues' phones serves as enecdotal evidence IMO.

We 100% plan to support Android.

So the commoditization of mobile development begins...

isn't it what technology is about? Commoditizing what was exclusive before.

I'm personally glad to see tools simplyfying building a mobile app. The end goal rarely being producing the app, and more along the lines of producing value through the app.

I hope it has as big of an impact as what WP did for custom CMS…

Things I have to say:

* Background noise in your video is annoying.

* Why are you showing your face? I'd rather see your code bigger.

* Using require instead of module imports shows me that this product is going to have trouble keeping pace with FB, Babel, ECMA speeds.

* I'm not in love with adding another IDE

* hello http://getqwikly.com/ all over again

Sorry, but I'm not betting on this horse.

This product may die, however I believe competition and the fire to get what you want is more valuable than king making through bad reviews (whether intentional or unintentional). Tbh, Im not going to look at the product because Im more interested in terminal editors at the moment. But criticism should be used to enhamce a product, not degrade the blood sweat and tears that went into it

I applaud effort. I just feel there's some glaring gaps that make alarms go off. I'm sharing those. I know this looks fantastic, but that's when I start checking for a venire. And when I do, those smells popped up.

Not the best feedback but not sure it's downvote-worthy

> Using require instead of module imports shows me that this product is going to have trouble keeping pace with FB, Babel, ECMA speeds.

What does that mean?

Facebook releases so fast. So when something is brand new and it's already not using the latest, I feel afraid.

The example project doesn't use the import syntax, it's using require, and feels like it's coming from ECMA5 in a brand new video. I just worry, can they keep up? Facebook releases breaking changes often so it's a valid concern.

Facebook, as well as most of the code out there, is still using CommonJS, since there are very real issues with ES6 modules that are still unresolved[1]

[1] https://twitter.com/sebmck/status/692443162804092928

It seems like you are jumping to conclusions.

Registration is open for Startup School 2019. Classes start July 22nd.

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