react-native-community / discussions-and-proposals

Discussions and proposals related to the main React Native project
https://reactnative.dev
1.69k stars 127 forks source link

Prioritize React-Native documentation to adopt the default method? #633

Open karmicdice opened 1 year ago

karmicdice commented 1 year ago

After reviewing the react-native apps, recently I saw a trend that is, every app is now an expo app.

I looked at the documentation. I understand expo makes React Native development easier however, the way documentation is structured, it looks more like an official documentation of expo than of react-native. For example: https://reactnative.dev/docs/environment-setup when someone wants to get started the default tab open is of "Expo Go Quickstart" instead of "React Native CLI Quickstart" . Same with TypeScript : https://reactnative.dev/docs/typescript While Expo is undeniable a great kick-starter! I also believe that official docs should have an option for users to choose expo and not the other way around.

Discussion points

cortinico commented 1 year ago

I'm unsure what you're asking for exactly,

  • Prioritize React-Native native as opposed to any 3rd party, for now it is just Expo.

Are you suggesting we make the default tab for reactnative.dev/docs/environment-setup being the CLI rather than Expo?

You mention this:

the way documentation is structured, it looks more like an official documentation of expo than of react-native.

The docs are actually agnostic to expo. If you check all the other pages you'll see that there are little reference to Expo as we point you to their official documentation.

  • More examples with TSX instead of JSX

Most of the examples are in TSX. Which examples are you referring to?

NickGerleman commented 1 year ago

Most of the examples are in TSX. Which examples are you referring to?

Adding more context to this, every Expo snack example is valid as TypeScript compiled under strict options. In many examples, where TypeScript will infer types, the same code is shown for both JavaScript and TypeScript. E.g. we can say const [num, setNum] = useState(0); for both languages, without needing separate examples. There are some examples where we do need explicit types, and in those cases we duplicate them under different tabs for each language.

There are lighter weight code snippets, which we don't typecheck. I tried to do a best effort sweep of these, but if any of them are not valid TSX, making an issue on the website (or a quick PR to fix 😉) would be appreciated.

karmicdice commented 1 year ago

Are you suggesting we make the default tab for reactnative.dev/docs/environment-setup being the CLI rather than Expo?

Yes. Unless ofcourse if this project is sponsored by Expo.

New learners do not notice the tab, they just go to the docs and kick-start. As I said in my previous comment, most projects are Expo, not because they use Expo but because they read the expo way.

If you check all the other pages you'll see that there are little reference to Expo as we point you to their official documentation.

True. But, would be great if they worked their way through CLI - the start point should be ReactNative CLI default.

karmicdice commented 1 year ago

There are lighter weight code snippets, which we don't typecheck. I tried to do a best effort sweep of these, but if any of them are not valid TSX, making an issue on the website (or a quick PR to fix ) would be appreciated.

I have unlimited respect for people maintaining the open-source development. I will try to contribute and send a PR when I find something. I thought it would be appropriate to first post in proposals and then see if CLI can be put as default on environment-setup page.