Contributing Guidelines
Relevant source files
The following files were used as context for generating this wiki page:
Introduction
The fikak_app project is a Flutter-based application designed for mobile platforms. These guidelines establish the technical standards, environment configurations, and development workflows required for contributing to the codebase. The project relies on specific Dart and Flutter SDK versions and adheres to strict linting rules to ensure code consistency and maintainability across the repository.
Contributors are expected to follow the established architectural patterns, primarily utilizing Flutter's widget-based UI system and the Dart programming language. The project environment is configured for Android and iOS development, with specific dependencies managed through the Pub package manager.
Sources: README.md:1, pubspec.yaml:1-10, lib/main.dart:1-5
Development Environment Setup
SDK and Dependencies
To contribute, developers must have the Flutter SDK installed. The project's dependencies and environment constraints are defined in the pubspec.yaml file. Key environment requirements include:
| Requirement | Specification |
|---|---|
| Environment | SDK: '>=3.1.2 <4.0.0' |
| Framework | Flutter |
| Main Entry Point | lib/main.dart |
Sources: pubspec.yaml:6-8, lib/main.dart:1
Android Configuration
When working on the Android portion of the application, contributors must ensure compliance with the following build configurations:
- Compile SDK Version: 34
- Minimum SDK Version: 21
- Target SDK Version: 34
- Build Tooling: Gradle (defined in
android/app/build.gradle)
Sources: android/app/build.gradle:25-50
Code Quality and Standards
Linting and Analysis
The project enforces code quality through the analysis_options.yaml file. It utilizes the flutter_lints package, specifically the recommended rule set. This ensures that all contributions meet standard Dart and Flutter best practices.
# analysis_options.yaml
include: package:flutter_lints/flutter.yaml
linter:
rules:
# Additional rules are inherited from flutter_lints
Sources: analysis_options.yaml:1-10
Application Structure
The application follows the standard Flutter entry pattern. The main entry point main() initializes the MyApp widget, which serves as the root of the widget tree.
The logic for the application root is encapsulated within lib/main.dart.
Sources: lib/main.dart:1-15
Dependency Management
All external packages and assets are managed via pubspec.yaml. When adding new features that require external libraries, contributors must add them to the dependencies or dev_dependencies section.
Core Dependencies
The project utilizes several standard Flutter components:
- cupertino_icons: For iOS-style icons.
- flutter_test: For unit and widget testing.
Sources: pubspec.yaml:27-35
Asset Integration
Assets such as images, fonts, and configuration files must be declared in the flutter section of the pubspec.yaml file. Currently, the project provides placeholders for images and specific font families.
| Type | Directory/Namespace |
|---|---|
| Images | assets/ |
| Fonts | Schyler, Trajan Pro |
Sources: pubspec.yaml:45-65
Technical Workflow
The contribution workflow involves initializing the Flutter application and ensuring the widget tree builds correctly.
Sources: lib/main.dart:1-20, pubspec.yaml:1-10
Conclusion
Contributing to fikak_app requires adherence to the Flutter SDK constraints (>=3.1.2) and the linting standards defined in analysis_options.yaml. By following these architectural patterns and environment setups, developers ensure that the application remains stable and scalable across both Android and iOS platforms.