Pokedex developed with React Native, consuming the public API: Pokeapi.
Objective:
- Consume the endpoint https://pokeapi.co/api/v2/pokemon/ and create a screen with a list of pokemons using pagination.
- Consume the endpoint https://pokeapi.co/api/v2/pokemon/{id or name}/ and create a pokemon details screen.
β
React Native
β
Native Base
β
Styled-components
β
Axios
β
React-native-linear-gradient
β
SWR
β
React-navigation
β
Context API
β
Lottie
β
Git-commit-msg-linter
β
React-native-animatable
β
React Hooks
β
Babel-plugin-root-import
β
Vector Icons
β
react-native-fast-image
β
Animated
β
Typescript
β
Jest
β
@testing-library/jest-native
β
@testing-library/react-hooks
β
@testing-library/react-native
Before proceeding, it is ideal that you have the environment set up to create applications in React Native, for this you can follow the guide of the link below:
React Native's Environment (Android/iOS)
$ git clone https://github.com/MRLSK8/Pokedex.git && cd Pokedex$ yarn install$ yarn start$ yarn android$ yarn android:buildIt will generate an APK on android/app/build/outputs/apk/app-release.apk, copy into your cellphone and install it.
$ yarn test $ yarn test:coverageThe file structure are in the following way:
βββ src/
β βββ @types/
β β βββ index.d.js
β βββ assets/
β β βββ LottieJsonFiles
β β βββ pikachu.json
| | βββ pokeball.json
β βββ components/
β β βββ GoBackButton/
| | | βββ index.tsx
| | | βββ style.ts
| | βββ LoadingWrapper/
| | | βββ index.tsx
| | | βββ style.ts
β β βββ PokemonItem/
| | | βββ index.tsx
| | | βββ style.ts
| | βββ SafeAreaWrapper/
| | | βββ index.tsx
| | | βββ style.ts
β β βββ index.ts
β βββ config/
β β βββ statusBarConfig.ts
β βββ hooks/
β β βββ pokemonContext.tsx
β βββ routes/
β β βββ index.ts
β βββ screens/
β β βββ PokemonDetails/
| | | βββ index.tsx
| | | βββ style.ts
| | βββ PokemonsList/
| | | βββ index.tsx
| | | βββ style.ts
β β βββ index.tsx
β βββ services/
β β βββ api.ts
β βββ utils/
β β βββ addPadLeftToNumber.ts
β β βββ getPokemonIdByUrl.ts
β β βββ getPokemonImageById.ts
β β βββ index.ts
β β βββ showErrorAlert.ts
β βββ index.tsx
βββ .buckconfig
βββ .editorconfig
βββ .eslintrc.js
βββ .eslintrc.json
βββ .gitattributes
βββ .gitignore
βββ .prettierrc.js
βββ .watchmanconfig
βββ app.json
βββ babel.config.js
βββ index.js
βββ LICENSE
βββ metro.config
βββ package.json
βββ react-native.config.js
βββ tsconfig.js
βββ yarn.lockThis project is licensed under the MIT License - see the LICENSE file for details.
Facebook | Instagram | Linkedin

