ssl_cli 4.0.3 copy "ssl_cli: ^4.0.3" to clipboard
ssl_cli: ^4.0.3 copied to clipboard

A flutter architecture creator package.

ssl_cli πŸš€ #

ssl_cli is your opinionated command-line companion for building production-ready Flutter apps in record time. It bakes in Clean Architecture, modular scaling, design-system best practices, and DevOps automation so your team can stay focused on shipping featuresβ€”not wiring boilerplate.


  • Architecture-first: generate full Clean Architecture projects and modules with domain, data, and presentation layers ready to go.
  • State management flexibility: pick Riverpod (default) or Bloc during scaffoldingβ€”ssl_cli generates the right folder structure and stubs for you.
  • Design system included: preconfigured global widgets (text, buttons, dropdowns, images, SVGs, app bars) and asset/color enums keep UI consistent.
  • Automation everywhere: build flavors with obfuscation, auto-share APKs to Telegram, sync assets, kick off build_runner, and generate documentation from a single CLI.

Table of Contents #

  1. Why ssl_cli
  2. Core Capabilities
  3. Clean Architecture Blueprint
  4. Quick Start
  5. Command Reference
  6. Generated Project Structure
  7. UI & Design System Guidelines
  8. Automation & DevOps Helpers
  9. Contributing
  10. License
  11. Support
  12. Changelog

Why ssl_cli #

Flutter teams fight repetitive setup: folder conventions, state management wiring, asset registries, flavor configs, documentation, and build distribution. ssl_cli turns those decisions into confident defaults:

  • Consistency: every project and module follows the same Clean Architecture and naming conventions.
  • Scalability: generate new modules on demand with the entire domain β†’ data β†’ presentation pipeline.
  • Velocity: opinionated templates reduce the cognitive load for new developers joining mid-project.
  • Quality: prebuilt service locator, ScreenUtil setup, networking hooks, and error handling nudge you towards best practices.
  • Automation: everyday chores (assets, build_runner, flavor builds) become one-liners.

Core Capabilities #

Area What ssl_cli Automates
Project scaffolding Create a Clean Architecture Flutter app from scratch with prewired core modules.
Module generation Spin up feature modules with domain/data/presentation layers and optional Bloc or Riverpod states.
Design system Global widgets, responsive typography via flutter_screenutil, centralized colors/assets enums.
Assets & L10n Auto-generate k_assets.dart, create assets folders, and seed localization structure.
Documentation Generate AI-assisted markdown docs for any folder or file.
Build & Release Configure flavors, obfuscate builds, rename APKs by flavor, and deliver them to Telegram groups.
Developer tooling Kick off build_runner or watch tasks with zero setup.

Clean Architecture Blueprint #

ssl_cli follows a layered Clean Architecture implementation.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Presentation Layer       β”‚  ▢️ Riverpod or Bloc wiring, pages, widgets
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Domain Layer             β”‚  ▢️ Use cases, entities, repository contracts
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Data Layer               β”‚  ▢️ Models, repositories, remote & local data sources
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  • Domain before details: Entity and use case templates keep business rules pure and testable.
  • Data isolation: Remote/local data sources and repository implementations ship with error-handling scaffolds, network checks, and caching placeholders.
  • Presentation clarity: Choose Riverpod (default) for provider/notifier setups or opt into Bloc to generate events, states, and blocs automatically.
  • State Management Prompt: When you scaffold a Clean Architecture project or module, ssl_cli asks for your preferred pattern and scaffolds the correct directory tree and stubs.

🧭 The project root also includes core/ utilitiesβ€”service locator, API helpers, global widgets, theming, navigation, and moreβ€”so modules can focus on feature logic.


Quick Start #

  1. Create a Flutter project (if you haven't already).

    flutter create <project_name>
    
  2. Activate ssl_cli globally.

    dart pub global activate ssl_cli
    
  3. Add the Dart pub cache to your PATH (first-time setup only):

    • Windows: update System Environment Variables.
    • macOS: add export PATH="$PATH":"$HOME/.pub-cache/bin" to ~/.zshrc.
    • Linux: add the same export to ~/.bashrc.
  4. Navigate to your Flutter project root and run:

    ssl_cli create <project_name>
    
    • Pick pattern 4 for the Clean Architecture template when prompted.
    • Choose your state management flavor (Riverpod or Bloc) when asked.
  5. Bootstrap modules anytime.

    ssl_cli module <module_name>
    

    Select the Clean Architecture module pattern, then choose Riverpod or Bloc for that module.

βœ… Always run commands from the Flutter project root so assets, localization, and configuration files generate in the right place.


Command Reference #

Project & Module Scaffolding #

ssl_cli create <project_name>      # Generate a full Flutter project (choose Clean Architecture pattern "4")
ssl_cli module <module_name>       # Add a new feature module (select Clean Architecture pattern "3")

Assets & Documentation #

ssl_cli generate k_assets.dart     # Build the assets enum (rerun after adding new assets)
ssl_cli generate <path>            # Create AI-assisted documentation for a file or folder

Code Generation Helpers #

ssl_cli generate build_runner      # Run build_runner once
ssl_cli generate build_runner_watch# Run build_runner in watch mode

Flavor Setup & Builds #

ssl_cli setup --flavor             # Configure flavor-based builds (works on existing projects too)
ssl_cli build apk --flavorType     # Build APK per flavor (--DEV/--LIVE/--LOCAL/--STAGE)
ssl_cli build apk --flavorType --t # Build and auto-share APK to Telegram (requires config.json)

ℹ️ When using the Telegram flag (--t), provide botToken and chatId in the generated config.json file. Obtain them via BotFather and the getUpdates API.


Generated Project Structure #

Below is a trimmed example of what a Clean Architecture project scaffolding looks like (Riverpod option shown):

lib/
β”œβ”€ core/
β”‚  β”œβ”€ constants/
β”‚  β”œβ”€ di/
β”‚  β”œβ”€ error/
β”‚  β”œβ”€ network/
β”‚  β”œβ”€ presentation/
β”‚  β”‚  β”œβ”€ widgets/
β”‚  β”‚  β”‚  β”œβ”€ global_appbar.dart
β”‚  β”‚  β”‚  β”œβ”€ global_button.dart
β”‚  β”‚  β”‚  β”œβ”€ global_dropdown.dart
β”‚  β”‚  β”‚  β”œβ”€ global_image_loader.dart
β”‚  β”‚  β”‚  β”œβ”€ global_svg_loader.dart
β”‚  β”‚  β”‚  └─ global_text.dart
β”‚  β”‚  └─ ...
β”‚  └─ utils/
β”œβ”€ features/
β”‚  └─ products/
β”‚     β”œβ”€ data/
β”‚     β”‚  β”œβ”€ datasources/
β”‚     β”‚  β”œβ”€ models/
β”‚     β”‚  └─ repositories/
β”‚     β”œβ”€ domain/
β”‚     β”‚  β”œβ”€ entities/
β”‚     β”‚  β”œβ”€ repositories/
β”‚     β”‚  └─ usecases/
β”‚     └─ presentation/
β”‚        β”œβ”€ pages/
β”‚        β”œβ”€ providers/
β”‚        β”‚  └─ state/
β”‚        └─ widgets/
└─ l10n/

Selecting Bloc replaces the providers/ folder with a bloc/ directory containing event/, state/, and bloc classes.


UI & Design System Guidelines #

ssl_cli ships with a unified design language to keep your UI consistent:

  • Typography: Use GlobalText; it wraps ScreenUtil to ensure responsive font sizes.
  • Fields & Inputs: Prefer GlobalTextFormField for form elements and GlobalDropdown for selects.
  • Buttons & App Bars: Use GlobalButton and GlobalAppBar components for consistent theming.
  • Images: Route PNG/JPEG assets through GlobalImageLoader and SVGs through GlobalSvgLoader.
  • Assets: Register all new assets in the enum within k_assets.dart, referencing them via the generated enum names (e.g., ImageNamePng.myIllustration).
  • Colors: Extend the enum in k_colors.dart and reference colors through their enum identifiers (e.g., ColorName.primaryBackground).
  • Fonts: Avoid directly applying .spβ€”GlobalText already handles responsive scaling.

Asset placement: store raster images under assets/images/ and SVGs under assets/svg/. Re-run ssl_cli generate k_assets.dart whenever the folders change.


Automation & DevOps Helpers #

  • Flavor-aware builds: Configure once, then ship flavor-specific APKs with automatic renaming (appName_flavor_versionName_versionCode.apk).
  • Code obfuscation: Combine ssl_cli build apk --flavorType with Flutter’s obfuscation flags in your build config for extra protection.
  • Telegram delivery: Append --t to send finished builds straight to your team chat (after configuring config.json).
  • Documentation generation: Point ssl_cli at any folder or file to bootstrap human-friendly docs for handoff or onboarding.

Contributing 🀝 #

Contributions are welcome! Please check existing issues, open new discussions, or submit a pull request to improve ssl_cli.

License πŸ“„ #

This project is licensed under the MIT License – see the LICENSE file for details.

Support ❀️ #

If ssl_cli streamlines your workflow, please give it a ⭐ on GitHub and share it with your Flutter community.

Changelog πŸ“‹ #

See CHANGELOG.md for a history of updates and new features.


Made with ❀️ by Abu Sayed Chowdhury

14
likes
0
points
21
downloads

Publisher

unverified uploader

Weekly Downloads

A flutter architecture creator package.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

args, path

More

Packages that depend on ssl_cli