An open API service indexing awesome lists of open source software.

https://github.com/juliolmuller/ufpr-gitlab-explorer

Project developed as per college assignment:. A React Native app to consume GitLab API.
https://github.com/juliolmuller/ufpr-gitlab-explorer

gitlab-api javascript react react-native

Last synced: 10 months ago
JSON representation

Project developed as per college assignment:. A React Native app to consume GitLab API.

Awesome Lists containing this project

README

          


GitLab Explorer


Lessons Learned   |   
Technologies   |   
Environment Setup


Creation Date

Update Date

Latest Version

Pull Requests Welcome

Project License

![Application snapshot](./.github/app-overview.jpg)

Application developed as an assignment to college, subject Development for Mobile Devices, at UFPR, in order to learn building **React Native** applications. The project seeks to apply knowledge in functional components, React Navigation, HTTP calls and Context API.

The proposal was to build a simple mobile app to consume GitLab API, implementing an authentication method to be able to navigate inside the app. The application should keep the access token with [AsyncStorage](https://react-native-async-storage.github.io/async-storage/), besides implementing a navigation drawer, using [React Navigation](https://reactnavigation.org/) extension. The usa og a third-party UI library was mandatory. A good-looking app may earn extra points 😍.

## :trophy: Lessons Learned

- Configuring React Context for authentication flow;
- Using React Native AsyncStorage package 😎;
- React Native Elements UI components 😠;
- Complex navigation with React Navigation (*drawer* and *bottom tabs*);
- Holding on splash screen while app is loading resources;
- COnfiguring status bar appearance (Android);
- Fetching data from GitLab API;

## :rocket: Technologies & Resources

**Frontend:**
- React Native
- Expo Framework
- Elements UI
- Axios (HTTP client)
- AsyncStorage

**Development:**
- Visual Studio Code
- NPM routines

## :hammer: Setting up the Environment

Before starting the development server, you need to set up the environment variables in a `.env` file, at the project root. For convenience, you can use `.env.example` as reference, so you'll know all variables available in the application. The most important one is **GITLAB_API_URL**, which points to the GitLab platform you want to fetch data from.

Make sure to have **Node.js 10+** installed in your machine and its **npm** available in the command line, then use the following routines:

```bash
$ npm install # download all dependencies
$ npm start # run development server
```