All Projects → solygambas → react-native-shopping-app

solygambas / react-native-shopping-app

Licence: other
A shopping app using React Navigation, Redux, Redux-Thunk and Firebase.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to react-native-shopping-app

react-native-boilerplate
React Native Boilerplate - React Native Starter Kits : react-navigation and its dependencies, redux, redux persist and redux thunk, redux toolkit, react native vector icons, react-native async storage
Stars: ✭ 68 (+1.49%)
Mutual labels:  react-navigation, react-redux, redux-thunk
react-native-boilerplate
Expo + Redux + React Navigation Pre-setup Template (expo SDK 44)
Stars: ✭ 142 (+111.94%)
Mutual labels:  react-navigation, react-redux, expo
crypto-markets
react-native-cryptocurrency-ticker
Stars: ✭ 27 (-59.7%)
Mutual labels:  react-redux, redux-thunk, expo
cerebro-web
Website for Cerebro
Stars: ✭ 21 (-68.66%)
Mutual labels:  react-redux, redux-thunk
proffy
React Native + ReactJS + NodeJS project developed on RocketSeat NexLevelWeek. This project is based on an application for connect students and teachers.
Stars: ✭ 30 (-55.22%)
Mutual labels:  react-navigation, expo
React-Playground
Learning reactjs from the ground up (router, redux, thunk, hooks, context, portals, and functional components)
Stars: ✭ 15 (-77.61%)
Mutual labels:  react-redux, redux-thunk
fetch-action-creator
Fetches using standardized, four-part asynchronous actions for redux-thunk.
Stars: ✭ 28 (-58.21%)
Mutual labels:  react-redux, redux-thunk
pro-chat
Full featured chat app built with 💙 Expo & Firebase 🔥
Stars: ✭ 24 (-64.18%)
Mutual labels:  react-navigation, expo
RN-Book-Search
A Book search app using Expo (React Native) and Google Books API
Stars: ✭ 29 (-56.72%)
Mutual labels:  react-navigation, expo
acgnfuns-app
A react native app based on expo, dva, etc.
Stars: ✭ 14 (-79.1%)
Mutual labels:  react-navigation, expo
umi-react-native
umi preset plugins for react-native
Stars: ✭ 54 (-19.4%)
Mutual labels:  react-navigation, expo
DLReactNativeArchitecture
React Native Architecture
Stars: ✭ 18 (-73.13%)
Mutual labels:  react-navigation, react-redux
coronadev
Aplicativo para consultar a situação global do COVID-19
Stars: ✭ 44 (-34.33%)
Mutual labels:  react-navigation, expo
think
Instagram clone using React Native with funcional components, React Hooks, React Navigation 4x and Reactotron debugger
Stars: ✭ 20 (-70.15%)
Mutual labels:  react-navigation, react-redux
gotoReact-
react的一些案例
Stars: ✭ 20 (-70.15%)
Mutual labels:  react-redux, redux-thunk
SocialApp-React-Native
Social Networking mobile app similar to Instagram in React Native.
Stars: ✭ 79 (+17.91%)
Mutual labels:  react-navigation, expo
Covid19-Stats-IN
This app helps in tracking COVID-19 cases in India using covid19India apis
Stars: ✭ 13 (-80.6%)
Mutual labels:  react-navigation, react-redux
cra-redux-boilerplate
⚛️🔨create-react-app application with redux and another cool libraries to make your life easier.
Stars: ✭ 15 (-77.61%)
Mutual labels:  react-redux, redux-thunk
spring-boot-react-ecommerce-app
eCommerce application based on the microservices architecture built using Spring Boot and ReactJS.
Stars: ✭ 221 (+229.85%)
Mutual labels:  react-redux, redux-thunk
react-native-boilerplate
A collection of curated and well maintained React Native boilerplates with various possibilities and combinations.
Stars: ✭ 24 (-64.18%)
Mutual labels:  react-navigation, react-redux

Shopping App

A shopping app using React Navigation, Redux, Redux-Thunk and Firebase.

Features

  • authentication screen to log in or sign up.
  • shop to see all products and product details.
  • cart to add/remove products and order them.
  • orders screen to retrieve orders.
  • user admin to create, update and delete products.

React Navigation

  • handling stack of screens for products, orders and user admin with createStackNavigator and createAppContainer.
  • using props.navigation to navigate between screens.
  • handling data from component to header with setParams and getParam.
  • custom header title with navigationOptions.
  • custom cart button in the header with react-navigation-header-buttons.
  • custom SideDrawer with react-navigation-drawer.
  • adding listener with props.navigation.addListener to reload data from server.
  • handling manual logout with SafeAreaView and DrawerNavigatorItems.
  • handling autologout and forced reload with a custom wrapper for the navigator thanks to useRef and NavigationActions.

Redux and React-Redux

  • using actions and reducers to authenticate and to store data (token and user ID, products, cart, orders).
  • using useSelector hook to get the state.
  • using props.navigation to pass data to the header without re-render.
  • using useDispatch hook to dispatch actions.
  • passing useDispatch to the header with useEffect and useCallback to limit re-render cycles.
  • handling logic for the cart (quantity, removing a product and clearing the cart).
  • debugging with redux-devtools-extension and React Native debugger.

React Native

  • using FlatList, ScrollView, TouchableOpacity, KeyboardAvoidingView, ActivityIndicator, Alert, AsyncStorage and SafeAreaView.
  • custom reusable components (Card, HeaderButton, Input).
  • custom fonts, color and environment constants.
  • using React hooks (useState, useEffect, useCallback, useReducer, useRef).
  • handling input validation with useReducer and custom TextInput component.
  • handling dates with Moment.js.
  • handling sessions with AsyncStorage, setItem and getItem.

Redux-Thunk and Firebase

  • using Redux-thunk as a middleware to add async code.
  • using Firebase as a database for products and orders with fetch (POST, PATCH, DELETE).
  • handling authentication with Firebase (email and password).
  • showing a loading spinner with ActivityIndicator and useState while fetching data/trying to authenticate.
  • handling errors with try/catch blocks and throwing Alerts.
  • using getState from Redux-thunk to send http requests with a token.

Usage

Add your Firebase url and key in constants/Environment.js.

Based on React Native - The Practical Guide by Maximilian Schwarzmüller.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].