Game Framework
Package Management

Dependencies

Manage dependencies between your private and public packages.

Dependency Types

1. Regular Dependencies

Runtime dependencies:

dependencies:
  flutter:
    sdk: flutter
  
  # Private package
  company_core:
    hosted:
      name: company_core
      url: https://registry.yourcompany.com
    version: ^1.0.0
  
  # Public package
  http: ^1.1.0

2. Dev Dependencies

Development and testing only:

dev_dependencies:
  flutter_test:
    sdk: flutter
  mockito: ^5.4.0
  build_runner: ^2.4.0

3. Dependency Overrides

Force specific versions:

dependency_overrides:
  http: 1.1.0  # Force exact version

Private Package Dependencies

When your private package depends on another private package:

# company_ui/pubspec.yaml
dependencies:
  company_core:  # Another private package
    hosted:
      name: company_core
      url: https://registry.yourcompany.com
    version: ^1.0.0

Transitive Dependencies

Users of your package automatically get your dependencies:

my_app
  └─ company_ui (^1.0.0)
       └─ company_core (^1.0.0)  # Transitive

Version Resolution

# See dependency tree
flutter pub deps

# Check for conflicts
flutter pub outdated

Best Practices

  1. Minimize dependencies - Only add what you need
  2. Use version constraints - Allow flexibility with ^
  3. Document private dependencies - Help team members
  4. Test dependency updates - Before upgrading
  5. Avoid circular dependencies - Keep packages independent

Next Steps