flutter_infra 0.0.1 copy "flutter_infra: ^0.0.1" to clipboard
flutter_infra: ^0.0.1 copied to clipboard

A comprehensive Flutter package providing clean, type-safe local storage solutions and robust network infrastructure with advanced token management and refresh strategies.

Flutter Infra ๐Ÿ—๏ธ #

A comprehensive Flutter package providing clean, type-safe local storage solutions and robust network infrastructure with advanced token management and refresh strategies.

โœจ Features #

๐Ÿ’พ Storage Infrastructure #

  • ๐ŸŽฏ Multiple Storage Backends: SharedPreferences, FlutterSecureStorage, and Hive support
  • ๐Ÿ” Security First: Clear separation between normal and secure storage operations
  • ๐Ÿงฉ Type Safety: Built-in support for JSON, lists, DateTime, and custom objects
  • โšก Performance: Optional caching and optimized storage implementations

๐ŸŒ Network Infrastructure #

  • ๐Ÿš€ Dual HTTP Clients: Built-in support for both dart:io HTTP and Dio implementations
  • ๐Ÿ”‘ Token Management: Automatic token injection and secure storage integration
  • ๐Ÿ”„ Refresh Token Strategy: Configurable token refresh with Strategy design pattern
  • ๐Ÿ“ก Interceptor System: LoggerInterceptor and TokenInterceptor with extensible design

๐Ÿ”ง Common Features #

  • ๐Ÿ”ง Dependency Injection: Clean DI support with flexible configuration
  • ๐Ÿ“ฑ Cross Platform: Works on iOS, Android, Web, Windows, macOS, and Linux
  • ๐Ÿงช Fully Tested: Comprehensive test coverage with mock support

๐Ÿš€ Quick Start #

Installation #

dependencies:
  flutter_infra: ^0.0.1

Basic Usage #

import 'package:flutter_infra/flutter_infra.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // Storage operations
  final storageService = await StorageService.create();
  await storageService.setString('username', 'john_doe');
  await storageService.setSecureString('api_token', 'secret_token');
  
  // Network operations  
  final networkService = await NetworkService.create(
    config: NetworkConfig(baseUrl: 'https://api.example.com'),
  );
  final response = await networkService.getJson('/users/profile');
  
  runApp(MyApp());
}

With Authentication #

// Create network service with automatic token management
final networkService = await NetworkService.createWithTokenSupport(
  config: NetworkConfig(baseUrl: 'https://api.example.com'),
  tokenManager: DefaultTokenManager(storage: storageService),
);

// Tokens are automatically handled
final userProfile = await networkService.getJson('/protected/profile');

๐Ÿ“š Documentation #

๐Ÿ“– Getting Started #

  • ๐Ÿš€ Quick Start Guide - Get up and running in minutes
  • ๐Ÿ—๏ธ Architecture Overview - System design and component relationships
  • โš™๏ธ Configuration Guide - Advanced setup and customization options

๐Ÿ“‹ Service Documentation #

  • ๐Ÿ’พ Storage Service - Complete storage documentation with implementations and typed extensions
  • ๐ŸŒ Network Service - Network client documentation with interceptors and configuration
  • ๐Ÿ” Token Management - Token manager, refresh strategies, and security

๐Ÿ’ก Guides & Best Practices #

  • ๐Ÿ“‹ Complete Examples - Real-world usage patterns and implementation examples
  • ๐Ÿ† Best Practices - Recommended patterns, security guidelines, and performance tips

๐Ÿงฉ Key Capabilities #

Typed Storage Extensions #

// JSON operations with both normal and secure versions
await storageService.setJson('user_profile', userData);
await storageService.setSecureJson('auth_tokens', tokenData);

// DateTime and list operations
await storageService.setDateTime('last_login', DateTime.now());
await storageService.setStringList('interests', ['tech', 'music']);

Smart Network Client #

// JSON convenience methods
final users = await networkService.getJson('/users');
await networkService.postJson('/users', jsonBody: newUser);

// Automatic token management and refresh
final profile = await networkService.getJson('/protected/profile');

๐Ÿ—๏ธ Architecture #

Flutter Infra follows a layered architecture with clear separation of concerns:

  • Application Layer: Your Flutter app, repositories, and services
  • Flutter Infra Layer: StorageService, NetworkService, TokenManager
  • Implementation Layer: Storage implementations, network clients, interceptors
  • Platform Layer: SharedPreferences, FlutterSecureStorage, Hive, HTTP clients

๐Ÿ“ฑ Example App #

Check out the example directory for a complete Flutter app demonstrating:

  • Default Usage: Basic storage and network operations
  • Common Usage: Token management and API integration
  • Advanced Usage: Custom configurations and interceptors

๐Ÿงช Testing #

dart test

The package includes comprehensive test coverage with unit tests, integration tests, and mock support for testing your own code.

๐Ÿค Getting Help #

๐Ÿ“„ License #

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


Flutter Infra - Building robust Flutter applications with confidence! ๐Ÿš€

0
likes
140
points
41
downloads

Publisher

unverified uploader

Weekly Downloads

A comprehensive Flutter package providing clean, type-safe local storage solutions and robust network infrastructure with advanced token management and refresh strategies.

Repository (GitHub)
View/report issues

Topics

#flutter #storage #network #http #secure-storage

Documentation

Documentation
API reference

License

MIT (license)

Dependencies

dio, flutter, flutter_secure_storage, hive, http, shared_preferences

More

Packages that depend on flutter_infra