Zapify is a lightweight app that helps you quickly open chat applications using just a phone number — no need to save contacts!
There are many apps with similar purposes, but this one is just a "lab" to experiment with Flutter/Dart, try out new ideas, share knowledge, and — most importantly — because I believe all software should be open source.
- Open popular chat apps that support phone numbers, without saving them as contacts;
- Use your phone call log to help you reach people you've recently talked to (available only when the app is installed from source);
- Handle
tel:
links by offering multiple messaging options when tapping on a phone number.
- Flutter ^3.29.2
- Platform SDKs: Android and/or Xcode
- Firebase project with registered Android/iOS apps
- Firebase CLI installed and authenticated
# Clone the repository
git clone https://github.com/trilobitech/zapify.git zapify-app
# Go to the project directory
cd zapify-app
# Get dependencies
flutter pub get
# Install flutterfire_cli
dart pub global activate flutterfire_cli
# Download Firebase configuration
flutterfire configure -y \
--project=REPLACE_WITH_YOUR_PROJECT_ID \
--out=lib/firebase_options.dart \
--platforms=android,ios \
--android-package-name=com.zapfy.app \
--ios-bundle-id=com.zapfy.app
make run
flutter test
Some key dependencies used in this project:
- url_launcher: check and launch apps via deeplinks;
- phone_number: parse, format, validate phone numbers and provide country metadata;
- get_it: lightweight dependency injection;
- sqlbrite: reactive SQLite wrapper based on sqflite;
- receive_intent: receive incoming
tel:
intents; - flutter_bloc: handles presentation layer using state management via events and states.