Skip to content
| Marketplace
Sign in
Visual Studio Code>Snippets>Jatis Flutter GeneratorNew to Visual Studio Code? Get it now.
Jatis Flutter Generator

Jatis Flutter Generator

hakanon

|
34 installs
| (0) | Free
Generate Flutter presentations with consistent architecture patterns
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Jatis Flutter Generator

A comprehensive VS Code extension for generating Flutter presentations, dependencies, and services following Jatis standardization. Built with consistent architecture patterns, complete unit testing, and flexible configuration options to ensure team-wide development consistency.

Features

🚀 Flutter Project Creation

  • Complete Flutter project setup with automatic platform configuration
  • Platform detection and enabling - automatically enables disabled platforms (web, windows, linux, macos)
  • Comprehensive multi-platform creation including Android, iOS, Web, Windows, macOS, and Linux by default
  • Automatic project opening after successful creation
  • Flutter installation validation before project creation
  • Streamlined workflow with just project name input

🏗️ Presentation Generation

  • Generate complete Flutter presentations with consistent architecture patterns
  • Creates organized folder structure: constants, controller, service, model, view
  • Additional controller functions with custom input prompt (e.g., getUserData, updateProfile)
  • Automatic test generation for all components including additional functions
  • Generates clean, maintainable code following best practices

🔧 Dependency Management

  • Generate dependency classes with reusable components
  • Additional dependency functions with custom input prompt (e.g., initialize, configure, cleanup)
  • Automatic dependency test generation for reliable code including additional functions
  • Organized code structure with clear separation

📋 Model Generation from JSON

  • Generate Dart models from JSON with automatic type detection and conversion
  • Nested model support - automatically creates separate model files for nested objects
  • Plural-to-singular conversion - converts array names like users → User model
  • Smart type mapping - generates proper Dart types (List<User>, String, int, etc.)
  • Directory selection - choose target directory within lib/ folder with history tracking
  • JSON validation - real-time validation with preview before generation
  • Comprehensive model methods - fromJson, toJson, toString, and proper constructors

⚙️ Service Generation

  • Generate standalone service classes with interface-implementation pattern
  • Additional service functions with custom input prompt (e.g., authenticate, refreshToken, logout)
  • Configurable service paths for organized code structure
  • Automatic service test generation with comprehensive test setup including additional functions
  • Clean separation between business logic and presentation layer

🧪 Testing & Build Tools

  • Automated test file generation for all presentations, dependencies, and services
  • Testing framework setup with automatic mock generation
  • Build runner support with easy directory selection
  • Test coverage reports to ensure code quality
  • GetX state management package installation and configuration
  • History tracking for recently used directories and files

🌐 Network, Navigation & Security Layers

  • Complete Dio-based HTTP client with SOLID principles and clean architecture
  • Automatic layer generation when creating Flutter projects
  • Multi-service support with API client factory for different base URLs
  • Comprehensive error handling with typed exceptions (Network, Timeout, Server, Certificate, Serialization)
  • Request/response logging with built-in logging interceptor
  • SSL certificate pinning for enhanced security
  • Platform-adaptive HTTP adapter with conditional imports (io/web)
  • GoRouter navigation with RouterConfigProvider pattern, AppRouter for route definitions
  • Security service with jailbreak/root detection, developer mode check
  • App info service for app version retrieval via package_info_plus
  • Flavor system integration for environment-specific base URLs
  • GetX dependency injection with automatic AppBinding registration
  • Generic type support for automatic JSON serialization/deserialization

📍 Geolocation, Biometric & Media Layers

  • Geolocation service wrapping geolocator — current position, last known position, position stream, permissions, distance/bearing calculations
  • Biometric service wrapping local_auth — fingerprint/face authentication, device support checks, available biometrics
  • Permission service wrapping permission_handler — photo/storage permission requests
  • Gallery service wrapping image_gallery_saver_plus — save media files to device gallery
  • Download service with Dio-based client — download files to temp, save to gallery, share files via SharePlus
  • Camera re-export for jatis_camera private package
  • Filename sanitization built into download service
  • Automatic AppBinding registration for all services
  • Configurable timeouts and custom headers support

🔒 Secure Storage Generation

  • Complete Secure Storage Service using flutter_secure_storage
  • Automatic storage layer generation when creating Flutter projects
  • Unified service implementation in secure_storage_service.dart
  • Centralized keys management via StorageKeys abstract class
  • Comprehensive error handling with SecureStorageException
  • Automatic AppBinding registration for dependency injection
  • Full unit test coverage including key verification

⚙️ Configuration Management

  • Flexible path configuration to organize your project structure
  • Easy setup with user-friendly configuration options
  • Clean import paths in generated code
  • Package version management for testing and build tools
  • Project-level settings with simple setup interface

Installation

  1. Install from VS Code Marketplace: Jatis Flutter Generator
  2. Or install manually:
    code --install-extension hakanon.jatis-flutter-generator
    

Usage

Create Flutter Project

  1. Right-click on any folder in Explorer or use Command Palette
  2. Select "Create Flutter Project" from context menu
  3. Enter project name (follows Flutter naming conventions)
  4. Select target platforms (default: android,ios)
    • Supports: android, ios, web, windows, macos, linux
    • Extension automatically enables disabled platforms
  5. Project is created and automatically opened in VS Code

Example Project Creation:

Input: my_flutter_app
Platforms: web,windows,linux

Result:
✓ Enables Flutter platforms (if disabled): web, windows, linux
✓ Creates project with platform directories:
  - android/
  - ios/
  - web/
  - windows/
  - linux/
✓ Automatically opens the new project

Included Network Layer: The generated project includes a complete network layer at lib/base/network/:

lib/base/network/
├── adapter_helper/
│   ├── adapter_helper.dart             # Platform adapter stub
│   ├── adapter_helper_io.dart          # Native adapter (no-op)
│   └── adapter_helper_web.dart         # Web adapter (BrowserHttpClient)
├── api_client_interface.dart           # HTTP client contract
├── dio_api_client.dart                 # Dio implementation with factory
├── dio_factory_interface.dart           # DioFactory abstraction
├── dio_factory.dart                     # Dio creation (SSL, adapter, interceptor)
├── api_client_config.dart              # Configuration with copyWith & withCredentials
├── api_client_factory.dart             # Multi-service registry
├── api_client_exception.dart           # Typed exceptions
├── certificate_validator.dart          # SSL pinning (SHA-256)
└── interceptors/
    └── logging_interceptor.dart        # Request/response logging

test/base/network/
├── adapter_helper/
│   └── adapter_helper_test.dart
├── dio_api_client_test.dart
├── api_client_factory_test.dart
├── api_client_config_test.dart
├── api_client_exception_test.dart
└── interceptors/
    └── logging_interceptor_test.dart

The API client is automatically registered in lib/base/binding/app_binding.dart and integrated with the flavor system for environment-specific base URLs.

Included Navigation Layer:

lib/base/navigation/
├── app_router.dart                     # Route definitions (GoRouter)
├── app_routes.dart                     # Route constants
├── navigation_service.dart             # Navigation methods
└── router_config_provider.dart         # Router config interface

test/base/navigation/
└── navigation_service_test.dart

Included Security Layer:

lib/base/security/
└── security_service.dart               # Jailbreak & dev mode detection

test/base/security/
└── security_service_test.dart

Included App Info Layer:

lib/base/app_info/
└── app_info_service.dart               # App version retrieval

test/base/app_info/
└── app_info_service_test.dart

Included Storage Layer: The generated project includes a secure storage layer at lib/base/storage/:

lib/base/storage/
├── secure_storage_service.dart        # Implementation, Interface, and Exceptions
└── storage_keys.dart                  # Centralized storage keys

test/base/storage/
├── secure_storage_service_test.dart   # Service tests
└── storage_keys_test.dart             # Key verification tests

The storage service is automatically registered in lib/base/binding/app_binding.dart as StorageServiceInterface.

Included Geolocation Layer:

lib/base/geolocation/
└── geolocation_service.dart            # Geolocator wrapper

test/base/geolocation/
└── geolocation_service_test.dart       # FakeGeolocatorPlatform tests

Included Biometric Layer:

lib/base/biometric/
└── biometric_service.dart              # LocalAuthentication wrapper

test/base/biometric/
└── biometric_service_test.dart         # MockLocalAuthentication tests

Included Permission Layer:

lib/base/permission/
└── permission_service.dart             # Permission handler wrapper

test/base/permission/
└── permission_service_test.dart        # FakePermissionHandler tests

Included Gallery Layer:

lib/base/gallery/
└── gallery_service.dart                # Image gallery saver wrapper

test/base/gallery/
└── gallery_service_test.dart           # MethodChannel mock tests

Included Download Layer:

lib/base/download/
├── download_client.dart                # Abstract client + exception
├── dio_download_client.dart            # Dio-based download implementation
└── download_service.dart               # Download, save to gallery, share

test/base/download/
├── download_client_test.dart
├── dio_download_client_test.dart
└── download_service_test.dart

Included Camera Layer:

lib/base/camera/
└── camera.dart                         # jatis_camera re-export (private package)

Included CI/CD:

Jenkinsfile                            # infra-shared-library pipeline

Generate Presentation

  1. Right-click on any folder in Explorer
  2. Select "Generate Presentation" from context menu
  3. Enter presentation name (e.g., user_profile, payment)
  4. Presentation and tests are automatically created

Generated Structure:

lib/presentation/user_profile/           # Configurable: lib/{moduleSubpath}/
├── constants/user_profile_constant.dart
├── controller/
│   ├── user_profile_controller.dart
│   └── user_profile_binding.dart
├── model/user_profile_viewmodel.dart
├── service/user_profile_service.dart
└── view/user_profile_page.dart

test/presentation/user_profile/          # Configurable: test/{testSubpath}/
├── constants/user_profile_constant_test.dart
├── controller/
│   ├── user_profile_controller_test.dart
│   └── user_profile_binding_test.dart
├── model/user_profile_viewmodel_test.dart
└── service/user_profile_service_test.dart

Generate Dependencies

  1. Right-click on any folder in Explorer
  2. Select "Generate Dependencies" from context menu
  3. Enter dependency name (e.g., database, api_client)
  4. Dependency class and tests are automatically created

Generated Structure:

lib/base/dependencies/database/         # Configurable: lib/{dependenciesSubpath}/
└── database.dart

test/dependencies/database/             # Configurable: test/{dependenciesTestSubpath}/
└── database_test.dart

Generate Service

  1. Right-click on any folder in Explorer
  2. Select "Generate Service" from context menu
  3. Enter service name (e.g., auth, payment, notification)
  4. Service class and tests are automatically created

Generated Structure:

lib/services/auth/                      # Configurable: lib/{serviceSubpath}/
└── auth_service.dart

test/services/auth/                     # Configurable: test/{serviceTestSubpath}/
└── auth_service_test.dart

Create Model from JSON

  1. Right-click on any folder in Explorer or use Command Palette
  2. Select "Create Model from JSON" from context menu
  3. Choose target directory within lib/ folder (with search and history)
  4. Enter model name (e.g., User, ApiResponse, ProductData)
  5. Input JSON data - extension validates and shows preview
  6. Models are automatically generated with nested support

Example JSON Input:

{
  "id": 1,
  "name": "John Doe",
  "email": "john@example.com",
  "hair": {
    "color": "brown",
    "length": "short"
  },
  "users": [
    {
      "name": "Alice",
      "age": 25
    }
  ]
}

Generated Structure:

lib/models/                             # Your selected directory
├── api_response.dart                   # Main model
├── hair.dart                          # Nested object model  
└── user.dart                          # Array element model (users → User)

Generated Model Features:

  • Proper Dart types (int, String, List<User>, etc.)
  • Required/optional parameters based on nullable analysis
  • fromJson() and toJson() methods with proper type conversion
  • toString() method for debugging
  • Null-safe constructor with proper parameter handling

Build Runner Operations

  • Install Build Runner: Automatically installs build_runner package
  • Run Build Runner: Execute for entire project or specific directories
  • Directory Selection: Choose specific folders to build with history tracking

Package Management

  • Install Packages: Choose from Mockito, Build Runner, or GetX packages with automatic installation
  • Run Test Coverage: Execute tests with coverage reports
  • Directory-specific Testing: Run tests for specific modules or the entire project

Commands

Access via Command Palette (Ctrl+Shift+P / Cmd+Shift+P):

  • Jatis: Create Flutter Project - Create new Flutter project with platform configuration
  • Jatis: Generate Presentation - Create new Flutter presentation module
  • Jatis: Generate Dependencies - Create dependency classes
  • Jatis: Generate Service - Create standalone service classes
  • Jatis: Create Model from JSON - Generate Dart models from JSON input with nested support
  • Jatis: Install Packages - Install Mockito, Build Runner, or GetX packages
  • Jatis: Run Build Runner - Execute build runner with options
  • Jatis: Run Unit Test with Coverage - Execute test coverage
  • Jatis: Configuration - Open settings panel

Configuration

Configure the extension via VS Code Settings or the built-in Configuration UI.

Path Configuration

The extension uses a flexible path system with absolute roots and configurable subpaths:

Setting Default Value Description
jatis.baseModuleSubpath presentation Subpath under lib/ for presentation generation
jatis.baseTestSubpath presentation Subpath under test/ for presentation tests
jatis.baseDependenciesSubpath base/dependencies Subpath under lib/ for dependencies
jatis.baseDependenciesTestSubpath dependencies Subpath under test/ for dependency tests
jatis.baseServiceSubpath services Subpath under lib/ for service generation
jatis.baseServiceTestSubpath services Subpath under test/ for service tests
jatis.mockitoVersion ^5.6.4 Mockito package version
jatis.buildRunnerVersion ^2.15.0 Build runner package version
jatis.getVersion ^4.7.3 Get (GetX) package version
jatis.flavorizrVersion ^2.4.2 Flavorizr package version

Requirements

  • Flutter SDK 3.0.0 or higher
  • Dart SDK 2.17.0 or higher
  • VS Code 1.102.0 or higher

Platform Support

This extension is fully cross-platform compatible and has been tested on Windows, macOS, and Linux.

Release Notes

See CHANGELOG.md for full release history and details.


Happy Flutter Development! 🚀

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft