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.
- 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-bareBefore 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 Androidexpo prebuild directly.
npm run custom-prebuild- Standard prebuild for both platformsnpm run custom-prebuild:clean- Clean prebuild (recommended)npm run custom-prebuild:ios- iOS onlynpm run custom-prebuild:android- Android only
These scripts automatically handle custom splash screen configuration during the prebuild process.
# Most common - clean prebuild for both platforms
npm run custom-prebuild:clean
# iOS only
npm run custom-prebuild:ios
# Android only
npm run custom-prebuild: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.
