Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

☂️ Improve React Native onboarding experience #1936

Open
5 of 9 tasks
arushikesarwani94 opened this issue May 11, 2023 · 12 comments
Open
5 of 9 tasks

☂️ Improve React Native onboarding experience #1936

arushikesarwani94 opened this issue May 11, 2023 · 12 comments
Labels
feature request no-stale-bot This issue cannot be marked as stale by stale bot

Comments

@arushikesarwani94
Copy link
Contributor

arushikesarwani94 commented May 11, 2023

Description

Hi everyone!

This is an umbrella issue to collect a set of tasks aimed to improve the React Native onboarding experience. Onboarding experience as part of the DX pillar aims to improve user workflows like :

  • creating or starting their first React Native app;
  • trying out built-in React Native APIs for the first time;
  • installing their first third-party package in a React Native project;
  • collaborating on a React Native project with others for the first time;
  • setting up a new machine to work on an existing React Native app

We believe that everyone would benefit by improving the core developer experience, hence this umbrella issue to help us cleanup and restructure some of our codebase.

How to Test

It’s crucial that you test the changes you submit. The proper way of doing this is:

  1. Build cli codebase using : node ./scripts/build.js && yarn build:debugger
  2. Link the cli-doctor using : yarn link
  3. In the example React Native app(Awesome Project), run yarn link "@react-native-community/cli-doctor"
  4. Run the CLI Doctor using : npx @react-native-community/cli doctor

The Tasks

The following is a list of tasks we think might aid the bootstrapping experience of React Native. The list is a living one: the more we improve with the situation, the more patterns we can discover. Whenever we found some pattern that we can add, we will attach this to the list.

If you want to tackle some specific task which is not listed, feel free to post a comment with a brief description of the task and I'll make sure to add it to the list of tasks so it is tracked.

Please comment below if you're willing to take the stance on any of those task and wait for a confirmation before start working on it. Please note that if you claim a task, but don't submit a PR within 2 week, we're going to free up that task for someone else.

cli-doctor :

Open ended discussions :

  • Reduce “Installing Bundler” step noise

During the “Installing Bundler” step, seemingly unnecessary warnings are printed, e.g.
error Ignoring unf_ext-0.0.7.6 because its extensions are not built. Try: gem pristine unf_ext —version 0.0.7.6. This distracts from the actionable parts of init’s output. Reported in #1832

  • Investigate the build output reported by Gradle to "beautify" the error message for the user in CLI
@tarunrajput
Copy link
Contributor

@arushikesarwani94 , I'd like to take this one

Java version check in versionRanges should be [11 - 18] (i.e. 19 is not supported).

@tarunrajput
Copy link
Contributor

Hi @arushikesarwani94, I'd like to work on this next

feat : doctor should detect & report if packager is running correctly

@szymonrybczak
Copy link
Collaborator

Inside codebase in cli-doctor we've got few TODO: items where we don't properly handle errors:

} catch (error) {
// TODO: log the error in a meaningful way
}

} catch (err) {
// TODO: log error
process.exit(1);
}

I think this also will be nice DevX improvement to properly handle these :)

@arushikesarwani94
Copy link
Contributor Author

I think this also will be nice DevX improvement to properly handle these :)

Updated the task list.

@Shubham1429
Copy link
Contributor

Hi @arushikesarwani94, I'd would like to work on this

Node version check in versionRanges should be >= 16 and < 17 since Node 17 is not supported.

@arushikesarwani94
Copy link
Contributor Author

arushikesarwani94 commented May 31, 2023

Hi @arushikesarwani94, I'd would like to work on this

Node version check in versionRanges should be >= 16 and < 17 since Node 17 is not supported.

Thanks for your interest in this. As a pre-requisite to this one, it might be worth confirming the behavior of RN with Node 17 onwards. AFAIK Node 17 not being LTS isn't supported, however Node 18 is supported.

facebook/react-native#35443

@jeferson-sb
Copy link
Contributor

Hi @arushikesarwani94 Can I take this one?

fix : Gracefully handle errors in doctor in case of TODOs

@tarunrajput
Copy link
Contributor

feat : detect wrong app dependencies

Hi @arushikesarwani94, I'd like to pick this one

@arushikesarwani94
Copy link
Contributor Author

Hi @arushikesarwani94, I'd would like to work on this

Node version check in versionRanges should be >= 18

@Shubham1429 Would you still be interested in picking this up ?

@Shubham1429
Copy link
Contributor

Hi @arushikesarwani94, sorry for the delay. I've been busy recently. I'll create a PR by Monday.

@github-actions
Copy link

There hasn't been any activity on this issue in the past 3 months, so it has been marked as stale and it will be closed automatically if no further activity occurs in the next 7 days.

@github-actions github-actions bot added the stale label Oct 19, 2023
@szymonrybczak szymonrybczak added no-stale-bot This issue cannot be marked as stale by stale bot and removed stale labels Oct 20, 2023
@szymonrybczak
Copy link
Collaborator

If anyone wants to grab some issue to fix, here's pretty easy one #2127 🙌

@janicduplessis janicduplessis unpinned this issue Dec 8, 2023
@janicduplessis janicduplessis pinned this issue Dec 8, 2023
@TMisiukiewicz TMisiukiewicz unpinned this issue Feb 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request no-stale-bot This issue cannot be marked as stale by stale bot
Projects
None yet
Development

No branches or pull requests

5 participants