This document provides an overview of the technology stack and all major libraries used in the POSApp project, as defined in package.json.
-
React Native (
react-native):
The primary framework for building native mobile applications using React. -
Expo (
expo):
A framework and platform for universal React applications, simplifying development and deployment for iOS, Android, and web. -
TypeScript (
typescript):
Provides static typing for JavaScript, improving code quality and maintainability. -
Redux Toolkit (
@reduxjs/toolkit,react-redux):
State management solution for predictable and centralized application state. -
Expo Router (
expo-router):
File-based routing for Expo and React Native apps.
-
@react-navigation/native
Core utilities for navigation in React Native apps. -
@react-navigation/drawer
Drawer navigation for React Native. -
react-native-drawer-layout
Drawer layout component for React Native. -
react-native-tab-view
Tab view component for React Native.
-
@expo/vector-icons
Icon library for React Native. -
react-native-paper
Material Design UI library for React Native. -
react-native-modal
Modal component for React Native. -
react-native-svg
SVG support for React Native. -
twrnc
Tailwind CSS-in-JS for React Native. -
tailwindcss
Utility-first CSS framework (used for styling, especially on web).
-
react-native-reanimated
High-performance animations for React Native. -
react-native-gesture-handler
Gesture handling for React Native.
-
redux-persist
Persist and rehydrate Redux state. -
expo-secure-store
Secure storage for sensitive data (tokens, user info). -
expo-sqlite
SQLite database support for local storage.
-
axios
Promise-based HTTP client for API requests. -
expo-file-system
Access to device file system. -
expo-sharing
Share files with other apps. -
expo-print
Printing support for documents. -
expo-constants
System information and constants. -
expo-linking
Deep linking support. -
expo-status-bar
Status bar management. -
expo-updates
Over-the-air updates for Expo apps. -
uuid
Generate unique IDs. -
react-native-get-random-values
Polyfill forcrypto.getRandomValues.
-
echarts
Powerful charting and visualization library. -
@wuba/react-native-echarts
ECharts integration for React Native.
- @react-native-community/datetimepicker
Date and time picker component.
-
@react-native-picker/picker
Picker component for React Native. -
react-native-dropdown-picker
Dropdown picker for React Native.
- react-native-html-to-pdf
Convert HTML to PDF in React Native.
-
@babel/core, babel-preset-expo
Babel configuration for transpiling modern JavaScript/TypeScript. -
ts-node
TypeScript execution environment for Node.js.
-
electron
Build cross-platform desktop apps with JavaScript, HTML, and CSS. -
electron-builder
Package and build Electron apps for distribution.
-
react-native-web
Run React Native components and APIs on the web. -
react-dom, react
Core React libraries for web rendering.
- start: Launches the Expo development server.
- android: Runs the app on an Android device/emulator.
- ios: Runs the app on an iOS simulator/device.
- web: Starts the app in a web browser.
- electron: Runs the Electron app.
- build-electron: Builds the Electron app for distribution.
POSApp is a cross-platform Point of Sale application built with React Native and Expo, supporting mobile, web, and desktop (Electron) environments. It leverages a modern stack for state management, navigation, UI, data persistence, and device integration, making it robust and scalable for restaurant and retail use cases.