Skip to content

nickolasrm-Learn/ReactNative-1-GitHubRepoList

Repository files navigation

App logo

Coverage Status

Introduction

GitHubRepoList is the first application I made using React Native. It is a simple app that fetches repositories given a username, and displays them in a list. Otherwise it shows you a not found modal.

GIF

An animation of the app usage

Features

  • Responsive: Both texts and screen rotation are optimized
  • Tested: The application and its components are tested with unit and functional tests
  • Internationalized: Support for multiple languages
  • Documented: All components are documented with docstrings and comments
  • Performance optimized: Use of memos

What is React Native?

React Native is a mobile development framework made by Facebook. It allows you to write React code using JavaScript and to compile it to native Android and iOS code. This can drastically improve performance when compared to webview ports like Phonegap and AppsGeyser.

How to use it

  1. Make sure you have Node and npm installed. If not, download them here
  2. Clone this repository into any folder in your computer
  3. Open a terminal window in the repository root folder and run npm install, and then npm start
  4. A browser window should opened in your computer. Check if it happened
  5. Download Expo Go into Play Store or App Store
  6. Follow the in app instructions in your phone and read the qr code displayed into the previously opened Expo tab bottom-left corner with the Expo app
  7. Wait for the app to be loaded
  8. Enjoy

I want to learn how to make it

All important files are commented and documented. Check these files out in the following order:

  1. App.tsx
  2. src/screens/Home/index.tsx
  3. i18n/index.ts
  4. src/adapters/Github.ts
  5. src/template/HomeTemplate/index.tsx
  6. src/components/Input/index.tsx
  7. src/other/Style.tsx
  8. src/components/ListItem/index.tsx
  9. src/components/List/index.tsx
  10. src/components/ErrorModal/index.tsx
  11. __tests__/App.test.tsx

Remember, this is not a React and neither a CSS or Typescript tutorial, this is a project made using React Native where I explain the important steps I followed to learn this tool.

Technologies used