Simplify flutter starter
This commit is contained in:
parent
c0cae9fcb7
commit
9453e45ced
@ -1,3 +0,0 @@
|
|||||||
APPWRITE_PROJECT_ID=
|
|
||||||
APPWRITE_PROJECT_NAME=
|
|
||||||
APPWRITE_PUBLIC_ENDPOINT=
|
|
||||||
32
README.md
32
README.md
@ -24,15 +24,39 @@ Alternatively, open the repository URL in `Android Studio` to clone it directly.
|
|||||||
## 🛠️ Development Guide
|
## 🛠️ Development Guide
|
||||||
|
|
||||||
1. **Configure Appwrite**
|
1. **Configure Appwrite**
|
||||||
Copy `.env.example` to `.env` and update the values to match your
|
Open `lib/config/environment.dart` and update the values with your Appwrite project credentials:
|
||||||
Appwrite project credentials.
|
```dart
|
||||||
|
class Environment {
|
||||||
|
static const String appwriteEndpoint = 'appwrite-endpoint';
|
||||||
|
static const String appwriteProjectId = 'your-project-id';
|
||||||
|
static const String appwriteProjectName = 'your-project-name';
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
2. **Customize as Needed**
|
2. **Customize as Needed**
|
||||||
Modify the starter kit to suit your app's requirements. Adjust UI, features, or backend
|
Modify the starter kit to suit your app's requirements. Adjust UI, features, or backend
|
||||||
integrations as per your needs.
|
integrations as per your needs.
|
||||||
|
|
||||||
3. **Run the App**
|
3. **Run the App**
|
||||||
Run by executing `./build.sh {device-name}` like `./build.sh chrome`
|
Select a target device and run the app:
|
||||||
|
```bash
|
||||||
|
# List available devices
|
||||||
|
flutter devices
|
||||||
|
|
||||||
|
# Run on a specific device (replace 'device-id' with actual device)
|
||||||
|
flutter run -d device-id
|
||||||
|
|
||||||
|
# Examples:
|
||||||
|
flutter run -d chrome # Web
|
||||||
|
flutter run -d "iPhone 15" # iOS Simulator
|
||||||
|
flutter run -d emulator-5554 # Android Emulator
|
||||||
|
flutter run -d macos # macOS Desktop
|
||||||
|
```
|
||||||
|
|
||||||
|
**Build for Web:**
|
||||||
|
```bash
|
||||||
|
flutter build web
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -45,5 +69,5 @@ production : https://docs.flutter.dev/deployment
|
|||||||
|
|
||||||
## 💡 Additional Notes
|
## 💡 Additional Notes
|
||||||
|
|
||||||
- This starter project is designed to streamline your Android development with Appwrite.
|
- This starter project is designed to streamline your Flutter development with Appwrite.
|
||||||
- Refer to the [Appwrite Documentation](https://appwrite.io/docs) for detailed integration guidance.
|
- Refer to the [Appwrite Documentation](https://appwrite.io/docs) for detailed integration guidance.
|
||||||
32
build.sh
32
build.sh
@ -1,32 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Check if .env file exists
|
|
||||||
if [ ! -f .env ]; then
|
|
||||||
{
|
|
||||||
echo "APPWRITE_PROJECT_ID=$APPWRITE_PROJECT_ID"
|
|
||||||
echo "APPWRITE_PROJECT_NAME=$APPWRITE_PROJECT_NAME"
|
|
||||||
echo "APPWRITE_PUBLIC_ENDPOINT=$APPWRITE_PUBLIC_ENDPOINT"
|
|
||||||
} >> .env
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Read .env file and convert it to --dart-define arguments
|
|
||||||
ARGS=()
|
|
||||||
while IFS='=' read -r key value || [ -n "$key" ]; do
|
|
||||||
# Ignore empty lines and comments
|
|
||||||
if [[ -n "$key" && ! "$key" =~ ^# ]]; then
|
|
||||||
ARGS+=("--dart-define=${key}=${value}")
|
|
||||||
fi
|
|
||||||
done < .env
|
|
||||||
|
|
||||||
# Check if device parameter is provided
|
|
||||||
if [ -z "$1" ]; then
|
|
||||||
echo "No device specified. Building for web..."
|
|
||||||
flutter build web "${ARGS[@]}"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
DEVICE_NAME="$1"
|
|
||||||
|
|
||||||
# Run Flutter app on specified device
|
|
||||||
echo "Running Flutter app on device: $DEVICE_NAME"
|
|
||||||
flutter run -d "$DEVICE_NAME" "${ARGS[@]}"
|
|
||||||
5
lib/config/environment.dart
Normal file
5
lib/config/environment.dart
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
class Environment {
|
||||||
|
static const String appwriteEndpoint = 'appwrite-endpoint';
|
||||||
|
static const String appwriteProjectId = 'appwrite-project-id';
|
||||||
|
static const String appwriteProjectName = 'appwrite-project-name';
|
||||||
|
}
|
||||||
@ -2,15 +2,16 @@ import 'package:intl/intl.dart';
|
|||||||
import 'package:appwrite/appwrite.dart';
|
import 'package:appwrite/appwrite.dart';
|
||||||
import 'package:appwrite_flutter_starter_kit/data/models/log.dart';
|
import 'package:appwrite_flutter_starter_kit/data/models/log.dart';
|
||||||
import 'package:appwrite_flutter_starter_kit/data/models/project_info.dart';
|
import 'package:appwrite_flutter_starter_kit/data/models/project_info.dart';
|
||||||
|
import 'package:appwrite_flutter_starter_kit/config/environment.dart';
|
||||||
|
|
||||||
/// A repository responsible for handling network interactions with the Appwrite server.
|
/// A repository responsible for handling network interactions with the Appwrite server.
|
||||||
///
|
///
|
||||||
/// It provides a helper method to ping the server.
|
/// It provides a helper method to ping the server.
|
||||||
class AppwriteRepository {
|
class AppwriteRepository {
|
||||||
static const String pingPath = "/ping";
|
static const String pingPath = "/ping";
|
||||||
static const String appwriteProjectId = String.fromEnvironment('APPWRITE_PROJECT_ID');
|
static const String appwriteProjectId = Environment.appwriteProjectId;
|
||||||
static const String appwriteProjectName = String.fromEnvironment('APPWRITE_PROJECT_NAME');
|
static const String appwriteProjectName = Environment.appwriteProjectName;
|
||||||
static const String appwritePublicEndpoint = String.fromEnvironment('APPWRITE_PUBLIC_ENDPOINT');
|
static const String appwritePublicEndpoint = Environment.appwriteEndpoint;
|
||||||
|
|
||||||
final Client _client = Client()
|
final Client _client = Client()
|
||||||
.setProject(appwriteProjectId)
|
.setProject(appwriteProjectId)
|
||||||
|
|||||||
13
prepare-env.sh
Normal file
13
prepare-env.sh
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Script used during deployment on Appwrite Sites
|
||||||
|
|
||||||
|
# Replace [appwriteEndpoint] with APPWRITE_ENDPOINT in environments files
|
||||||
|
sed -i "s|appwrite-endpoint|$APPWRITE_ENDPOINT|g" lib/config/environment.dart
|
||||||
|
|
||||||
|
# Replace [appwriteProjectId] with APPWRITE_PROJECT_ID in environments files
|
||||||
|
sed -i "s|appwrite-project-id|$APPWRITE_PROJECT_ID|g" lib/config/environment.dart
|
||||||
|
|
||||||
|
# Replace [appwriteProjectName] with APPWRITE_PROJECT_NAME in environments files
|
||||||
|
sed -i "s|appwrite-project-name|$APPWRITE_PROJECT_NAME|g" lib/config/environment.dart
|
||||||
Loading…
x
Reference in New Issue
Block a user