PearPass Mobile App is a secure and user-friendly password management solution designed for mobile devices. It allows users to store, generate, and manage their passwords across different platforms with strong encryption.
- Features
- Installation
- Project Architecture
- Starting the Application
- Prebuild Instructions
- Testing
- Dependencies
- Related Projects
- Secure password, identity, and credit card, notes and custom fields storage
- Biometric authentication (fingerprint and face recognition)
- Cross-device and platform synchronization
- Offline access to your credentials
- Encryption for data security
- Password strength analysis
- Random password generator
- Easy-to-use interface
Node.js: Ensure you have the correct Node.js version installed. You can check the required version in the .nvmrc file. And ensure it matches to your current node version by running:
node --version# Clone the repository
git clone git@github.com:tetherto/pearpass-app-mobile.git
# Navigate to the project directory
cd pearpass-app-mobile
# Initialize and update submodules
git submodule update --init --recursive
# To update all submodules to the latest `main` branch, use the provided script.
npm run update-submodules
# In case of specific remote use:
npm run update-submodules -- [remote-name]
# Install dependencies
npm install
# generate translation keys
npm run lingui:extract
npm run lingui:compile
# Generate worklet bundles
npm run bundle-bare
# Generate native iOS and Android directories (see Prebuild Instructions below)
npx expo prebuild --cleanThis project uses Expo Plugins to manage native iOS and Android configurations. The ios/ and android/ directories are not tracked in git and are generated dynamically using Expo's prebuild system.
- Native directories (
ios/andandroid/) are gitignored - All native configurations are managed through Expo plugins in the
plugins/directory - Running
npx expo prebuild --cleangenerates the native directories with all necessary configurations
Before starting the application, you need to build it first. The build command produces bundles for iOS, iOS extension, and Android, and also runs custom prebuild:
# Build the application
npm run build
# Then start on your preferred platform
npm run ios # For iOS
npm run android # For AndroidRun unit tests with Jest:
npm testPearPass uses Maestro for end-to-end testing. Maestro allows you to write UI tests in simple YAML format.
- Install Maestro CLI:
# macOS
brew tap mobile-dev-inc/tap
brew install maestro- Verify installation:
maestro --versionRun a specific test flow:
maestro test e2e/welcome/passwordCreate.yamlRun all test flows:
maestro test -e e2e/Each test file must have:
- A config section with appId
- A commands section after the "---" separator
Example:
appId: com.pears.pass
---
- launchApp
- assertVisible: 'Master password'
- tapOn:
text: 'Master password'For more information, refer to the Maestro documentation.
- pearpass-app-desktop - A mobile app for PearPass, a password manager
- pearpass-lib-ui-react-native-components - A library of React Native UI components for PearPass
- pearpass-lib-ui-react-components - A library of React UI components for PearPass
- tether-dev-docs - Documentations and guides for developers
- pearpass-lib-vault - A library for managing password vaults
- pearpass-lib-vault-core - A bare wrapper for Autopass and Corestore for password storage and encryption
This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.
