generatePubspec function
Generates a pubspec.yaml file content.
Returns the complete pubspec.yaml content as a string, configured with the appropriate dependencies based on the project's state management solution.
The config parameter contains the project configuration
including name, type, platforms, and state management.
Implementation
String generatePubspec(ProjectConfig config) {
final sm = config.stateManagement;
return '''name: ${config.name}
description: A Flutter project generated by Archit CLI.
publish_to: 'none'
version: 1.0.0+1
environment:
sdk: '>=3.3.0 <4.0.0'
dependencies:
flutter:
sdk: flutter
# State Management
${sm.packageName}
# Routing
${sm == StateManagement.getx ? ' # GetX handles routing internally' : ' go_router: ^14.2.7'}
# UI
cupertino_icons: ^1.0.8
flutter_screenutil: ^5.9.3
google_fonts: ^6.2.1
flutter_svg: ^2.0.10+1
cached_network_image: ^3.3.1
shimmer: ^3.0.0
loading_animation_widget: ^1.2.1
flutter_animate: ^4.5.0
flutter_staggered_grid_view: ^0.7.0
flutter_rating_bar: ^4.0.1
google_nav_bar: ^5.0.6
badges: ^3.1.2
awesome_dialog: ^3.2.1
# Storage & Data
hive: ^2.2.3
hive_flutter: ^1.1.0
flutter_secure_storage: ^9.2.2
# Network
dio: ^5.7.0
# Utils
logger: ^2.4.0
intl: ^0.19.0
image_picker: ^1.1.2
url_launcher: ^6.3.0
get_it: ^8.0.2
equatable: ^2.0.5
dartz: ^0.10.1
flutter:
uses-material-design: true
assets:
- assets/images/
- assets/icons/
- assets/animations/
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^4.0.0
build_runner: ^2.4.9
hive_generator: ^2.0.1
''';
}