Afrodite is a dating app. This repository contains the frontend part. Backend repository
The app is under development and it is not ready for production.
Check features.md.
Tagged development preview versions (0.x) of frontend and backend with the same minor version number are compatible with each other. Main branch might be broken or incompatible with the backend.
-
Install dependencies.
-
Add placeholder files. If building for iOS then also add missing iOS project files.
-
Build and run the frontend.
flutter devices
flutter run --release -d DEVICE
-
Optionally install development dependencies.
-
Optionally add push notification and Sign in with Google support.
-
Install Rust.
-
Install Android Rust targets.
rustup target add aarch64-linux-android
rustup target add armv7-linux-androideabi
rustup target add i686-linux-android
rustup target add x86_64-linux-android
- Install Flutter.
-
Install Rust.
-
Install iOS Rust targets.
rustup target add aarch64-apple-ios
rustup target add aarch64-apple-ios-sim
rustup target add x86_64-apple-ios
-
Install CocoaPods.
https://guides.cocoapods.org/using/getting-started.html#sudo-less-installation
-
Install Flutter.
Makefile commands starting with watch
requires fswatch
.
# Ubuntu
sudo apt install fswatch
# macOS with Homebrew package manager
brew install fswatch
Commands make watch-translations
, make watch-translations-linux
and make update-translations
requires xml2arb.
Commands make watch-freezed-code
and make update-freezed-code
requires icegen.
Command make update-api-bindings
requires openapi-generator-cli
.
- Install node version manager (nvm) https://github.com/nvm-sh/nvm
- Install latest node LTS with nvm. For example
nvm install 18
- Install openapi-generator from npm.
npm install @openapitools/openapi-generator-cli -g
- Start backend in debug mode.
- Run
make update-api-bindings
.
Command make update-licenses-for-native-utils
requires
cargo-about.
lib/firebase_options.dart
import 'package:firebase_core/firebase_core.dart';
class DefaultFirebaseOptions {
static const FirebaseOptions currentPlatform = FirebaseOptions(
apiKey: '',
appId: '',
messagingSenderId: '',
projectId: '',
);
}
lib/sign_in_with_google_ids.dart
String signInWithGoogleBackendClientId() {
return "";
}
The file ios/Runner.xcodeproj is not included in the repository as it contains development team ID. It can be created with following commands
cd afrodite-frontend
flutter create --platforms ios --project-name app .
Other new files or changes which flutter create
command creates can be
removed.
Sign in with Google buttons are from https://developers.google.com/static/identity/images/signin-assets.zip ZIP file found from https://developers.google.com/identity/branding-guidelines.
Add web client ID by modifying web/index.html line
<meta name="google-signin-client_id" content="TODO">
Add iOS client ID by modifying ios/Runner/Info.plist location
<!-- Copied from downloaded OAuth 2 client info. Value for key REVERSED_CLIENT_ID. -->
<string>TODO</string>
Enable gradle plugin for Google Services from android/app/build.gradle
// START: FlutterFire Configuration
// Uncomment the following line if you have google-services.json added
// id 'com.google.gms.google-services'
// END: FlutterFire Configuration
Also add files
android/app/google-services.json
ios/Runner/GoogleService-Info.plist
lib/firebase_options.dart
lib/sign_in_with_google_ids.dart
firebase.json
Check backend README.md.
Only bug fixes or documentation improvements are accepted at the moment.
Contributions must have the same license as the project (dual-licensed with MIT and Apache 2.0).
MIT License or Apache License 2.0