Skip to content

πŸ“ž Privacy-focused caller ID React Native app. Identify unknown callers locally without cluttering your main contacts. Built with Expo, Material Design 3, and custom native modules.

License

Notifications You must be signed in to change notification settings

BioHazard786/Alternate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

27 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

IzzyOnDroid Reproducible Releases

Contributors Forks Stargazers Issues MIT License

Alternate - Local Caller ID Detector

A privacy-focused React Native app that helps you identify unknown callers without cluttering your device's main contact list. Perfect for temporary number storage when you need to know who's calling but don't want the number to appear in WhatsApp, Telegram, or other messaging apps.

Features

  • Local Caller ID Detection: Identify incoming calls using your private database
  • Temporary Number Storage: Save numbers locally without affecting your main contacts
  • Privacy Protection: Numbers won't appear in WhatsApp, Telegram, or other messaging apps
  • Phone Number Validation: Smart phone number input with country selection
  • Custom Native Module: Built-in caller ID functionality using Android's native capabilities
  • Country Selector: Beautiful bottom sheet country picker with search
  • Material Design: Modern UI following Material Design 3 principles
  • Offline Storage: All data stored locally using Android's native SQLite database

Use Case

When you receive calls from unknown numbers but don't want to save them to your main contact list:

  • Delivery drivers - Know who's calling without adding to contacts
  • Service providers - Temporary contractors, repair services, etc.
  • Business contacts - People you interact with briefly
  • Privacy protection - Keep your main contact list clean while still identifying callers

Tech Stack

  • React Native with Expo
  • TypeScript for type safety
  • React Native Paper for Material Design components
  • Room for local data storage

Screenshots

Home Screen Add Contact Country Picker

Caller Popup Directory Support

Download

or

Download from Releases Tab

Installation

Prerequisites

  • Node.js (v18 or later)
  • npm or yarn
  • Expo CLI
  • Android Studio (for Android development)
  • Xcode (for iOS development, macOS only)

Setup

  1. Clone the repository:
git clone https://github.com/BioHazard786/Alternate.git
cd Alternate
  1. Install dependencies:
npm install
  1. Start the development server:
npx expo start

Building APK

Development Build

To build a development APK:

npx expo run:android

Production Build with EAS

  1. Install EAS CLI:
npm install -g eas-cli
  1. Configure EAS:
npx eas build:configure
  1. Build for Android:
npx eas build --platform android

Local Production Build

To build a production APK locally without EAS:

Method 1: Quick Build (Debug-Signed)

For development and testing purposes:

  1. Install dependencies:
npm ci
  1. Build for Android:
cd android
./gradlew assembleRelease

Note: This creates a release APK but signed with debug keystore. The APK will be generated at android/app/build/outputs/apk/release/

Method 2: Properly Signed APK (Recommended for Distribution)

For production distribution, use Android Studio to create a properly signed APK:

  1. Open the project in Android Studio:

    • Open Android Studio
    • Select "Open an existing Android Studio project"
    • Navigate to the android folder in your project
    • Click "OK"
  2. Generate Signed APK:

    • Go to Build β†’ Generate Signed Bundle / APK
    • Select "APK" and click "Next"
    • Choose "Create new..." to generate a new keystore or "Choose existing..." if you have one
    • Fill in the keystore details (store this information securely!)
    • Click "Next"
    • Select "release" build variant
    • Click "Create"
  3. Locate the signed APK:

    • The signed APK will be generated in android/app/release/
    • This APK is properly signed and ready for distribution

Important Notes:

  • Debug-signed APKs (from ./gradlew assembleRelease) are fine for development and testing
  • For Play Store or distribution to users, always use properly signed APKs from Android Studio
  • APKs signed with different keystores cannot update each other on Android devices

Project Structure

β”œβ”€β”€ app/                    # Main app screens
β”œβ”€β”€ components/            # Reusable components
β”œβ”€β”€ constants/            # App constants
β”œβ”€β”€ hooks/               # Custom hooks
β”œβ”€β”€ lib/                 # Utility functions and types
β”œβ”€β”€ modules/             # Custom native modules
β”‚   └── caller-id/       # Caller ID native module with SQLite integration
β”œβ”€β”€ store/               # State management
└── assets/              # Images and other assets

How It Works

  1. Add Numbers Locally: Save phone numbers with names in your private database
  2. Caller ID Detection: When calls come in, the app checks against your local database
  3. Privacy Maintained: Numbers remain completely separate from your device's contact list
  4. No Sync Issues: Won't interfere with messaging apps or cloud contact syncing

Benefits

  • Clean Contact List: Keep your main contacts organized
  • Privacy Control: Numbers stay private to this app only
  • No Messaging App Clutter: Saved numbers won't appear in WhatsApp, Telegram, etc.
  • Temporary Storage: Perfect for short-term contact needs
  • Offline Functionality: Works completely offline with local SQLite storage

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contact

Mohd Zaid - Telegram - [email protected]

Project Link: https://github.com/BioHazard786/Alternate

Acknowledgments

  • Thanks To dmkvsk for native module inspiration Repo
  • Thanks To SimpleNexus for call directory implementation Repo

Keep your contact list clean while never missing an important call again!

About

πŸ“ž Privacy-focused caller ID React Native app. Identify unknown callers locally without cluttering your main contacts. Built with Expo, Material Design 3, and custom native modules.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •