A cross-platform Flutter application scaffolded with a feature-first, Clean Architecture-inspired structure.
This repository is a frontend-friendly skeleton intended to help teams build scalable, testable Flutter apps. It separates responsibilities into three layers: Presentation (features), Domain (business logic), and Data (data sources and repository implementations).
Key goals
- Clear feature-first layout to let frontend teams work on UI and state independently.
- Clean Architecture boundaries to make business logic platform-agnostic and easy to test.
- Minimal, runnable placeholder app so the repository can be run immediately.
Features (initial)
- Placeholder homepage and theming
- Project skeleton for features: auth, explore, dashboard, groups, profile
- Domain/usecase/repository stubs and mock data source for frontend-first development
Table of contents
- Clone the repository
git clone <your-repo-url>
cd skillup- Install dependencies
flutter pub get- Run the app on an emulator or device
# Run on the default connected device
flutter run
# List devices
flutter devices
# Run on a specific device
flutter run -d <device-id>- Flutter SDK (stable) — see https://docs.flutter.dev/get-started/install
- Android SDK / Android Studio for Android builds
- Xcode for iOS/macOS builds (macOS only)
- Visual Studio for Windows desktop builds (Windows only)
- Development devices or emulators for your target platforms
Android (APK)
flutter build apk --releaseAndroid (App Bundle)
flutter build appbundle --releaseiOS (on macOS)
flutter build ios --releaseWeb
flutter build web --releasemacOS
flutter build macos --releaseWindows
flutter build windows --releaseLinux
flutter build linux --releaseRun unit and widget tests with:
flutter testLinting and format
# Analyze the project
flutter analyze
# Format code
flutter format .lib/app.dart— Top-levelMaterialAppcomposition, theming and router wiringmain.dart— Application entrypoint and service initializationcore/— Shared utilities, theme, navigation, common widgetsdata/— Data sources, DTOs, repository implementations (mock + real)domain/— Entities, repository interfaces, use casesfeatures/— Presentation layer organized by feature (auth, explore, dashboard, groups, profile)
This project follows a feature-first approach so most active development will occur under lib/features/ while lib/domain/ and lib/data/ provide the plumbing to keep UI decoupled from data sources.
Contributions are welcome. A few guidelines:
- Open an issue to discuss large changes before implementing them.
- Follow existing code style and prefer small, focused pull requests.
- Add tests for new logic in
domainorfeatureswhen applicable.
Notes / Next steps
- Replace the placeholder home with
GoRouteror Navigator 2.0 routes when ready. - Implement the mock API service to enable frontend-first development without backend dependencies.
- Add CI for tests and static analysis.
This project does not include a license file by default. Add a LICENSE file if you plan to open-source the repository or specify your preferred license here.
Contact
For questions about this scaffold, update requests, or suggestions, open an issue in the repository.