Skip to content
This repository has been archived by the owner on Nov 24, 2022. It is now read-only.

Recommend React for both the front-end and mobile #1

Closed
aem opened this issue Aug 29, 2016 · 13 comments
Closed

Recommend React for both the front-end and mobile #1

aem opened this issue Aug 29, 2016 · 13 comments

Comments

@aem
Copy link
Contributor

aem commented Aug 29, 2016

I believe it makes sense to recommend React as the front-end JavaScript recommendation, as well as mobile.

First, with React, you get both standard React and React Native, which means you learn once, write anywhere. Once you know the JSX syntax and get comfortable with React your skills apply anywhere. This simplifies development and allows you to focus on features and functionality rather than language differences.

Second, with the recent advent of create-react-app and the stabilization of react-native-cli, creating React apps on both the web and mobile platforms is as simple as running through a quick wizard, fitting right into this playbook's paradigm of write as little code as possible and make as few technology decisions as possible.

I'm happy to put together a PR for this, but I wanted to get feedback before I submitted something.

@HiFaraz
Copy link
Owner

HiFaraz commented Aug 29, 2016

@aem Awesome! React has been on my learning list for a while now. And thank you for contributing your PR!

How is the experience of creating a React project without create-react-app? I ask because its not stable yet (currently at v0.3.0-alpha), and the recommendation criteria requires stability.

@aem
Copy link
Contributor Author

aem commented Aug 29, 2016

@HiFaraz I would definitely recommend learning React. I think it provides a better separation of concerns than any other MV* framework. I wrote a thing about it here.

I must've missed the stability requirement for recommendations. Setting up a React app is unfortunately semi-painful without react-create-app. The issue is for any reasonable development process you'd need to set up webpack or a similar build tool and I'd argue that's asking a lot of the kind of developer this playbook is aimed at. Though I'd definitely prefer to suggest create-react-app (it's Facebook's own CLI which means that, unlike most other boilerplate projects, it is guaranteed to follow best practices), this boilerplate project is a very popular one that provides a really robust framework for the app. We could recommend that instead of the CLI.

@HiFaraz
Copy link
Owner

HiFaraz commented Aug 29, 2016

Ok, and how about for mobile app development? Is react-native-cli enough, or does it need to be paired with react-slingshot?

@wli
Copy link

wli commented Aug 29, 2016

@HiFaraz Not sure how "pure" you're looking for, but ExponentJS provides an amazing mobile app development experience with React Native and really speeds up the process. The simplest analogy I can think is that Ionic runs on Angular, and ExponentJS runs on React Native.

@aem
Copy link
Contributor Author

aem commented Aug 30, 2016

@wli ExponentJS looks nice, but it seems as though it doesn't add a ton of benefit other than a pretty skin on top of react-native-cli.

@HiFaraz it should be paired with react-slingshot, the react-native-cli is a Facebook tool which means they won't endorse any third party testing or state management frameworks

@HiFaraz
Copy link
Owner

HiFaraz commented Aug 30, 2016

@aem did you mean to say that react-native-cli should not be paired with slingshot?

I need to summarize this, please check this summary:

  • React is great for making a front end, but needs a lot of configuration
  • react-slingshot helps you configure your app quickly and has a learning and decision making curve
  • therefore we recommend react through react-slingshot for the front end (web)
  • react-native-cli takes your project that you set up with slingshot and turns it into a mobile app?

@aem
Copy link
Contributor Author

aem commented Aug 30, 2016

@HiFaraz no, sorry, let me clarify. react-native-cli should be paired with slingshot. react-native-cli just generates an iOS and Android app shell with a package.json that gives you a basic react app. What react-native-cli doesn't include is a state management system or anything like that because Facebook doesn't want to make architecture decisions for you. As a result you need a combination of react-native-cli and react-slingshot, the CLI to generate the iOS/Android projects, and slingshot to get the JavaScript skeleton in place.

@HiFaraz
Copy link
Owner

HiFaraz commented Aug 30, 2016

So therefore the bulleted list is correct?

@aem
Copy link
Contributor Author

aem commented Aug 30, 2016

The first 3 are correct. The last bullet, not as much. All slingshot is is a skeleton that you can copy into your app directory to get an easy React config up and running, so the process would be to run the react-native-cli and then copy the react-slingshot config into the root directory of the generated project.

Having said that, I was recently pointed to ignite, which I'm going to look into now. Give me a day, I may recommend ignite instead of react-native-cli since it looks like ignite combines the best of react-native-cli and react-slingshot

@HiFaraz
Copy link
Owner

HiFaraz commented Aug 30, 2016

Alright, please let me know and let's evaluate. It sounds like we are OK to go ahead with react+react-slingshot for front-end / browser development. I'm going to close your old PR. Can you submit a new one for front end only please?

@aem
Copy link
Contributor Author

aem commented Aug 30, 2016

Yeah, sure!

@HiFaraz
Copy link
Owner

HiFaraz commented Nov 3, 2016

Hi @aem, do you still recommend ignite? Just following up on our old thread.

@HiFaraz
Copy link
Owner

HiFaraz commented Jan 7, 2017

Closing because of lack of interest. We can revisit this if there is interest. Thanks all for your help!

@HiFaraz HiFaraz closed this as completed Jan 7, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants