This project is a starting point for a Flutter application buixlt with best practices and useful integrations to accelerate your Flutter development.
A few resources to get you started if this is your first Flutter project:
For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.
- Provider State Management: Efficient and scalable state management using the Provider package.
- Inbuilt Logger Tracking System: Integrated logging system to help track app events and debug easily.
- Shared Preferences Setup: Persistent local storage for simple key-value data.
- Hive CE Database: Local NoSQL database integration using Hive CE for structured data storage.
- Changelog Script: Optimized script to generate a changelog based off your git commits
lib/
├── app/
│ ├── helpers/
│ │ └── (Utility functions and helper classes)
│ ├── screens/
│ │ └── (UI screens and pages)
│ ├── theme/
│ │ └── (Theme data and styling configurations)
│ ├── widgets/
│ │ └── (Custom reusable widgets)
├── hive/
│ └── (Hive database configurations and models)
├── main.dart
├── firebase_options.dart
packages/
└── cupertino_native/
└── (Local Git submodule for Cupertino Native UI components)
lib/: The main directory containing all the Dart source code for the Flutter app.app/: Contains the core application code, organized into subdirectories.helpers/: Utility functions and helper classes used across the app.screens/: UI screens and pages that represent different views of the app.theme/: Theme data and styling configurations for consistent app appearance.widgets/: Custom reusable widgets used throughout the app.
hive/: Configurations and models for Hive, a lightweight NoSQL database.main.dart: The entry point of the Flutter application.firebase_options.dart: Configuration file for Firebase integration.
packages/: Directory for local dependencies managed as Git submodules.cupertino_native/: A local Git submodule providing Cupertino-style native UI components. This is referenced inpubspec.yamlvia a path dependency.
To get started with this project, clone the repository and follow these steps:
-
Clone the Repository:
git clone https://github.com/tek-juice/kampala_nights_mobile.git cd kampala_nights -
Initialize Git Submodules: Since this project uses Git submodules (e.g., for local packages like
cupertino_native), initialize and update them:git submodule update --init --recursive
-
Pull and update submodule
cd packages/[package] git fetchThis ensures all submodules are cloned and checked out to the correct commit.
-
Install Dependencies:
flutter pub get
-
Run the App:
flutter run
- Building hive models: Run (
dart run build_runner build):
