homigo_sdk 1.0.1
homigo_sdk: ^1.0.1 copied to clipboard
Reusable Flutter foundation, design system, platform services, and production infrastructure for HomiGo applications.
HomiGo SDK #
HomiGo SDK is a reusable Flutter foundation for building consistent, production-ready applications.
It provides a shared design system, reusable UI components, platform adapters, core application services, networking infrastructure, reliability tools, and optional Firebase integrations.
Version #
Current release: 1.0.1
Features #
Design System #
- Liquid / Water Glass visual system
- Material 3
- Light, dark, and system themes
- Central brand configuration
- Typography, spacing, radius, and color tokens
- Edge-to-edge system UI
- Safe area handling
- Keyboard inset handling
UI Components #
HomiGo SDK includes reusable components for:
- Buttons
- Text fields
- Dropdowns
- Searchable dropdowns
- Number and phone inputs
- Checkboxes
- Radio controls
- Switches
- Segmented controls
- Tabs
- Cards
- List tiles
- Expansion tiles
- Chips
- Badges
- Avatars
- App bars
- Navigation bars
- Drawers
- Bottom sheets
- Dialogs
- Snackbars
- Menus
- Tooltips
- Sliders
- Range sliders
- Progress indicators
- Date and time pickers
- Steppers
- Skeleton loading
- Loading, empty, and error states
Core Services #
- Central SDK configuration
- Service registry
- Logging
- Environment configuration
- Validation utilities
- Formatting utilities
- Localization foundation
- Storage abstraction
- Secure storage abstraction
- Session management
- HTTP networking
- Connectivity abstraction
- Permission abstraction
Platform Adapters #
- SharedPreferences
- Flutter Secure Storage
- HTTP transport
- Connectivity Plus
- Permission Handler
- File Picker
- Image Picker
- Device information
- Package information
Production Infrastructure #
- Unified application bootstrap
HomiGoResult<T>- Central error mapping
- Retry policies
- Exponential backoff
- Timeout policies
- Cancellation tokens
- Network interceptors
- Offline request protection
- Authentication token refresh coordination
- Application lifecycle monitoring
- Diagnostics
- Health checks
Installation #
Add HomiGo SDK to your Flutter project:
flutter pub add homigo_sdk
Or add it manually to your application's pubspec.yaml:
dependencies:
homigo_sdk: ^1.0.1
Then run:
flutter pub get
Basic Initialization #
The recommended entry point is HomiGoBootstrap.
import 'package:flutter/material.dart';
import 'package:homigo_sdk/homigo_sdk.dart';
Future<void> main() async {
await HomiGoBootstrap.initialize(
config: HomiGoBootstrapConfig(
sdkConfig: const HomiGoConfig(
appName: 'My HomiGo App',
environment: HomiGoEnvironment.production,
themeMode: ThemeMode.system,
),
),
);
runApp(const MyApp());
}
Theme #
Use the HomiGo theme directly with MaterialApp:
MaterialApp(
theme: HomiGoTheme.light(),
darkTheme: HomiGoTheme.dark(),
themeMode: HomiGoTheme.mode,
);
The theme uses the brand configured through HomiGoConfig.
Branding #
Custom branding can be supplied through HomiGoBrand:
const config = HomiGoConfig(
appName: 'My App',
brand: HomiGoBrand(
primaryColor: Colors.blue,
secondaryColor: Colors.cyan,
),
);
Networking #
An API base URL can be registered during bootstrap:
await HomiGoBootstrap.initialize(
config: HomiGoBootstrapConfig(
sdkConfig: const HomiGoConfig(
appName: 'My App',
),
apiBaseUrl: 'https://api.example.com',
),
);
The registered network client is available through:
final network = HomiGoServices.network;
The production networking layer supports:
- Retry policies
- Exponential backoff
- Timeouts
- Offline guards
- Network interceptors
- Token refresh coordination
- Request cancellation
- Centralized API error handling
Result Handling #
Operations can use HomiGoResult<T> to represent success and failure without exposing raw exceptions to higher application layers.
final result = await HomiGoErrorMapper.guard(
() async {
return 'HomiGo';
},
);
if (result.isSuccess) {
final value = result.dataOrNull;
} else {
final failure = result.failureOrNull;
}
Diagnostics #
A diagnostic snapshot can be generated with:
final snapshot = HomiGoDiagnostics.snapshot();
print(snapshot.toMap());
A runtime health check is also available:
final report = await HomiGoHealthCheck.run();
Firebase Companion Package #
Firebase integrations are intentionally kept outside the Core SDK.
This prevents applications that do not use Firebase from inheriting Firebase dependencies.
Add the Firebase companion package with:
flutter pub add homigo_sdk_firebase
Or add it manually:
dependencies:
homigo_sdk: ^1.0.1
homigo_sdk_firebase: ^1.0.0
Firebase Features #
The companion package provides integrations for:
- Firebase Core
- Firebase Authentication
- Firebase Cloud Messaging
- Firebase Analytics
- Firebase Crashlytics
- Firebase Remote Config
Basic initialization:
import 'package:homigo_sdk_firebase/homigo_sdk_firebase.dart';
await HomiGoFirebase.initialize();
Applications configured with FlutterFire can pass platform-specific Firebase options:
await HomiGoFirebase.initialize(
options: DefaultFirebaseOptions.currentPlatform,
);
Firebase project configuration remains the responsibility of the host application.
Depending on the platform and setup, this may include:
google-services.jsonGoogleService-Info.plist- Generated
firebase_options.dart
HomiGo SDK Firebase does not embed application-specific Firebase credentials.
Firebase With Unified Bootstrap #
Firebase can be initialized after the Core SDK through the bootstrap hook:
await HomiGoBootstrap.initialize(
config: HomiGoBootstrapConfig(
sdkConfig: const HomiGoConfig(
appName: 'My HomiGo App',
),
afterCoreInitialize: () async {
await HomiGoFirebase.initialize();
},
),
);
Example Application #
A runnable Flutter application is available in:
example/
Run it with:
cd example
flutter pub get
flutter run
Package Structure #
homigo-sdk/
├── lib/
│ ├── homigo_sdk.dart
│ └── src/
│ ├── adapters/
│ ├── bootstrap/
│ ├── core/
│ ├── design_system/
│ ├── platform/
│ └── widgets/
├── packages/
│ └── homigo_sdk_firebase/
├── example/
├── test/
└── .github/
└── workflows/
Development #
Get dependencies:
flutter pub get
Format:
dart format lib test
Analyze:
flutter analyze
Run tests:
flutter test
Test the package publication:
dart pub publish --dry-run
Firebase Package Validation #
cd packages/homigo_sdk_firebase
flutter pub get
flutter analyze
flutter test
Continuous Integration #
GitHub Actions validates the Core SDK and Firebase companion package independently.
The CI pipeline performs:
- Dependency resolution
- Static analysis
- Automated tests
SDK Requirements #
- Dart
>=3.11.0 <4.0.0 - Flutter compatible with Dart 3.11 or newer
Platform availability can depend on the configuration and platform support of the underlying Flutter plugins.
Issues #
Report bugs and request features through the GitHub issue tracker.
License #
HomiGo SDK is available under the BSD 3-Clause License.
Copyright © 2026 HomiGo.