System Requirements
Minimum Requirements
- Flutter SDK: 3.5.0 or higher
- Dart SDK: ^3.5.0 (included with Flutter)
- Operating System:
- Windows 10 or higher
- macOS 10.14 or higher
- Linux (64-bit)
Platform-Specific Requirements
Android
- Android SDK 21 (Lollipop) or higher
- Android Studio 2022.1 or higher
- Java Development Kit (JDK) 11 or higher
- Minimum 8GB RAM recommended
iOS
- macOS operating system
- Xcode 12.0 or higher
- iOS 11.0 or higher target
- CocoaPods 1.10 or higher
- Valid Apple Developer account (for device testing)
Web
- Modern web browser (Chrome, Firefox, Safari, Edge)
- Web server for hosting (optional)
Desktop (Windows/macOS/Linux)
- Platform-specific build tools
- Windows: Visual Studio 2022 or higher
- macOS: Xcode command-line tools
- Linux: GTK 3.0+ development libraries
Flutter SDK Installation
If you haven’t installed Flutter yet, follow these steps:Visit flutter.dev and download the Flutter SDK for your operating system.
cd ~/development
unzip flutter_sdk.zip
export PATH="$PATH:`pwd`/flutter/bin"
# Add to ~/.bashrc or ~/.zshrc for persistence
Project Dependencies
The Trello App uses the following dependencies defined inpubspec.yaml:
Install Dependencies
After cloning the repository:The
any version constraint means the latest compatible version will be installed. For production, consider pinning specific versions.Firebase Configuration
Step 1: Create Firebase Project
- Navigate to Firebase Console
- Click “Add Project” or select existing project
- Enter project name (e.g., “trello-app-production”)
- Enable Google Analytics (optional but recommended)
- Complete project creation
Step 2: Enable Firebase Services
Authentication
- In Firebase Console, go to Authentication → Sign-in method
- Enable Email/Password:
- Toggle “Email/Password” to enabled
- Save changes
- Enable Google:
- Toggle “Google” to enabled
- Enter support email
- Save changes
Cloud Firestore
- Go to Firestore Database → Create database
- Choose starting mode:
- Test mode: Open access (development only)
- Production mode: Secure with rules (recommended)
- Select database location (closest to your users)
- Click “Enable”
Storage
- Go to Storage → Get started
- Review security rules
- Choose storage location
- Click “Done”
Step 3: Register Your App
Android App
- In Firebase Console, click the Android icon to add Android app
- Enter Android package name:
com.example.app_tareas(checkandroid/app/build.gradlefor actual package) - Optional: Add app nickname and SHA-1 certificate
- Download
google-services.json - Place file in
android/app/google-services.json - Follow the setup instructions to modify Gradle files (usually auto-configured)
iOS App
- Click the iOS icon to add iOS app
- Enter iOS bundle ID: Check
ios/Runner.xcodeprojorios/Runner/Info.plist - Optional: Add app nickname
- Download
GoogleService-Info.plist - Open
ios/Runner.xcworkspacein Xcode - Drag
GoogleService-Info.plistinto the Runner folder - Ensure “Copy items if needed” is checked
Web App
- Click the Web icon to add Web app
- Enter app nickname
- Copy the Firebase configuration object
- Update
lib/firebase_options.dartwith your configuration:
Google Sign-In Setup
Android Configuration
- Ensure
google-services.jsonis properly placed - SHA-1 certificate is registered in Firebase Console
- Google Sign-In is enabled in Firebase Authentication
iOS Configuration
- Add
GoogleService-Info.plistto Xcode project - Update
Info.plistwith reversed client ID (found inGoogleService-Info.plist):
- Run
pod installin the ios directory:
Web Configuration
-
Add authorized domains in Firebase Console:
- Go to Authentication → Settings → Authorized domains
- Add your domain (e.g.,
localhostfor development)
-
Create OAuth 2.0 Client ID in Google Cloud Console:
- Visit Google Cloud Console
- Navigate to APIs & Services → Credentials
- Create OAuth 2.0 Client ID for Web application
- Add authorized JavaScript origins (e.g.,
http://localhost)
Platform-Specific Setup
Android
Update Gradle Files
Ensureandroid/app/build.gradle has minimum SDK version:
Permissions
The app requires these permissions (already inAndroidManifest.xml):
iOS
Update Podfile
Ensureios/Podfile has minimum version:
Run Pod Install
Permissions
UpdateInfo.plist with required permissions:
Web
Update index.html
Ensure Firebase is initialized inweb/index.html:
Build and Run
Development Mode
Release Build
Android APK:Troubleshooting Common Issues
Firebase Initialization Failed
Problem:[core/no-app] No Firebase App '[DEFAULT]' has been created
Solution:
- Ensure
Firebase.initializeApp()is called inmain()beforerunApp() - Verify
google-services.json(Android) orGoogleService-Info.plist(iOS) is in correct location - Check that Firebase configuration matches your project
Google Sign-In Not Working
Problem: Google Sign-In returns null or fails Solution:- Android: Verify SHA-1 certificate is registered in Firebase Console
- iOS: Check reversed client ID in
Info.plist - Web: Ensure domain is in authorized origins
- Verify Google Sign-In is enabled in Firebase Authentication
Image Picker Crashes
Problem: App crashes when selecting images Solution:- Android: Check permissions in
AndroidManifest.xml - iOS: Add camera/photo library usage descriptions to
Info.plist - Test on physical device (some emulators don’t support camera)
Firestore Permission Denied
Problem:Permission denied when reading/writing Firestore
Solution:
- Review Firestore Security Rules
- Ensure user is authenticated before accessing data
- Update rules to match your data structure:
Build Errors on iOS
Problem: CocoaPods or Xcode build failures Solution:Gradle Build Failures (Android)
Problem: Gradle sync or build errors Solution:If you continue to experience issues, check the Flutter and Firebase documentation for platform-specific troubleshooting steps.
Next Steps
Once installation is complete:- Review the Quickstart Guide for first-time setup
- Explore the source code in
lib/to understand the architecture - Customize the app for your needs
- Configure production Firebase Security Rules
- Set up CI/CD for automated builds