This was fun to make. You can search for repositories, bookmark them, and check them in a preview that will display their readme file. Search results will automatically update as you scroll through them.
When the readme is big, rendering the preview screen can take a lot of time. This might be a good opportunity to try React's experimental concurrent mode... when it's available for React Native.
The code should be clean and self-explanatory. Classes, functions, and lines are kept short to ensure legibility. I use SonarLint to ensure code consistency and cleanliness.
I'm usually not a big fan of Redux (I prefer MobX State Tree), but at least Redux has the advantage of being very easy to test. I used React Native Navigation, which is definitely better for performance, but made testing navigation a little bit harder.
A good app is a well-tested app :)
I'm used to Appium for e2e testing but Detox seems to be pretty much the same thing. I added 2 Detox scenarios :
- 1 that checks adding and removing bookmarks.
- 1 that checks searching for a repository, scrolling through search results, and previewing a repository.
- AsyncStorage to keep bookmarks ✔️
- Localization ✔️
- Sharing to contacts
- Add more information to the preview screen top card
- Tabs on the preview screen to also see pull requests and issues
- A scrollToTop button
- Login to Github -> star repos, check private repos, create issues, etc.
- pullToRefresh on lists
- Optimize rendering ✔️
- Fixing testing the RNShare wrapper ✔️
- Split the store's tests into several files ✔️
- Figure out why the SearchView makes a weird "act" warning in Jest
- Optimize rendering even more (still running slow on lower end devices)