{"id":32298082,"url":"https://github.com/fathialamre/jet","last_synced_at":"2025-10-23T04:52:03.889Z","repository":{"id":302518054,"uuid":"1012734899","full_name":"fathialamre/jet","owner":"fathialamre","description":"🚀 Jet - A production-ready Flutter framework with batteries included. Built on Riverpod 3, featuring type-safe networking, forms with 70+ validators, secure storage, theming, i18n, routing, and a rich component library. Accelerate development from prototype to production with best practices baked in.","archived":false,"fork":false,"pushed_at":"2025-10-21T17:09:25.000Z","size":3567,"stargazers_count":7,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-23T04:51:55.548Z","etag":null,"topics":["dart","flutter","forms","framework","localization","mobile-development","networking","riverpod","routing","state-management","themeing","toolkit"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fathialamre.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/SECURITY.md","support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-02T19:50:33.000Z","updated_at":"2025-10-21T17:09:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"1e9e295a-e03c-49b5-9b87-97b8f38222cd","html_url":"https://github.com/fathialamre/jet","commit_stats":null,"previous_names":["fathialamre/jet"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/fathialamre/jet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fathialamre%2Fjet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fathialamre%2Fjet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fathialamre%2Fjet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fathialamre%2Fjet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fathialamre","download_url":"https://codeload.github.com/fathialamre/jet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fathialamre%2Fjet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280563530,"owners_count":26351731,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-23T02:00:06.710Z","response_time":142,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dart","flutter","forms","framework","localization","mobile-development","networking","riverpod","routing","state-management","themeing","toolkit"],"created_at":"2025-10-23T04:51:52.573Z","updated_at":"2025-10-23T04:52:03.879Z","avatar_url":"https://github.com/fathialamre.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Jet Framework\n\n**Jet** is a production-ready, lightweight Flutter framework designed for building scalable, maintainable applications with confidence. It provides a complete architectural foundation with best practices baked in, eliminating boilerplate and accelerating development from prototype to production.\n\nBuilt on **Riverpod 3** with code generation support, Jet combines powerful state management, type-safe networking, secure storage, and a rich component library—all working seamlessly together.\n\n## ✨ Why Jet?\n\n- **🎯 Batteries Included** - Everything you need from day one: routing, networking, forms, storage, notifications, and more\n- **📐 Opinionated Architecture** - Best practices and patterns built-in, no more architectural decisions paralysis\n- **⚡ Developer Experience** - Hot reload friendly, minimal boilerplate, fluent APIs, and comprehensive documentation\n- **🔐 Production Ready** - Security features, error handling, logging, and performance optimizations out of the box\n- **🌍 Global Ready** - Built-in internationalization, RTL support, and adaptive UI components\n- **🧩 Modular Design** - Use what you need, extend with adapters, customize to fit your requirements\n\n## 📑 Table of Contents\n\n- [Installation](#-installation)\n- [Quick Start](#-quick-start)\n- [Features](#-features)\n  - [Configuration](#️-configuration)\n  - [Routing](#-routing)\n  - [Adapters](#-adapters)\n  - [Storage](#-storage)\n  - [Theming](#-theming)\n  - [Localization](#-localization)\n  - [Environment Configuration](#-environment-configuration)\n  - [Networking](#-networking)\n  - [Error Handling](#️-error-handling)\n  - [Forms](#-forms)\n  - [Components](#-components)\n  - [Dialogs \u0026 Sheets](#-dialogs--sheets)\n  - [Extensions](#-extensions)\n  - [Security](#-security)\n  - [Sessions](#-sessions)\n  - [State Management](#-state-management)\n  - [Notifications](#-notifications)\n  - [Debugging](#-debugging)\n  - [Helpers](#-helpers)\n- [Key Features Summary](#-key-features-summary)\n- [Documentation](#-documentation)\n  - [Core Features](#core-features)\n  - [Advanced Features](#advanced-features)\n  - [Utilities](#utilities)\n- [Additional Resources](#-additional-resources)\n- [Contributing](#-contributing)\n- [License](#-license)\n\n## 📦 Installation\n\nAdd Jet to your Flutter project:\n\n```yaml\ndependencies:\n  jet:\n    path: packages/jet\n```\n\n## 🚀 Quick Start\n\nGet up and running with Jet in 3 simple steps:\n\n### 1. Create Your App Configuration\n\nCreate a configuration file at `lib/core/config/app_config.dart`:\n\n```dart\nimport 'package:jet/jet.dart';\nimport 'package:flutter/material.dart';\n\nclass AppConfig extends JetConfig {\n  @override\n  List\u003cJetAdapter\u003e get adapters =\u003e [\n    RouterAdapter(),\n    StorageAdapter(),\n    NotificationsAdapter(),\n  ];\n\n  @override\n  List\u003cLocaleInfo\u003e get supportedLocales =\u003e [\n    LocaleInfo(\n      locale: const Locale('en'),\n      displayName: 'English',\n      nativeName: 'English',\n    ),\n  ];\n\n  @override\n  ThemeData? get theme =\u003e ThemeData(\n    colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue),\n    useMaterial3: true,\n  );\n}\n```\n\n### 2. Set Up Your Router\n\nCreate a router file at `lib/core/router/app_router.dart`:\n\n```dart\nimport 'package:auto_route/auto_route.dart';\n\n@AutoRouterConfig()\nclass AppRouter extends RootStackRouter {\n  @override\n  List\u003cAutoRoute\u003e get routes =\u003e [\n    AutoRoute(page: HomeRoute.page, path: '/', initial: true),\n  ];\n}\n\nfinal appRouterProvider = AutoDisposeProvider\u003cAppRouter\u003e((ref) {\n  return AppRouter();\n});\n```\n\n### 3. Initialize in main.dart\n\n```dart\nimport 'package:flutter/material.dart';\nimport 'package:jet/jet.dart';\nimport 'core/config/app_config.dart';\nimport 'core/router/app_router.dart';\n\nvoid main() async {\n  final config = AppConfig();\n  \n  Jet.fly(\n    setup: () =\u003e Boot.start(config),\n    setupFinished: (jet) {\n      jet.setRouter(appRouterProvider);\n      Boot.finished(jet, config);\n    },\n  );\n}\n```\n\n**That's it!** 🎉 You now have a fully configured Jet app with routing, theming, localization, storage, and notifications ready to go.\n\n## 📋 Features\n\n### ⚙️ Configuration\n\nCentralized app configuration with `JetConfig` for adapters, locales, themes, and network logging.\n\n```dart\nclass AppConfig extends JetConfig {\n  @override\n  List\u003cJetAdapter\u003e get adapters =\u003e [RouterAdapter()];\n\n  @override\n  List\u003cLocaleInfo\u003e get supportedLocales =\u003e [\n    LocaleInfo(locale: const Locale('en'), displayName: 'English', nativeName: 'English'),\n  ];\n}\n```\n\n📖 **[View Complete Documentation](docs/CONFIGURATION.md)**\n\n---\n\n### 🧭 Routing\n\nType-safe navigation with **[AutoRoute](https://pub.dev/packages/auto_route)** integration. AutoRoute provides code generation for type-safe routes, eliminating string-based navigation and providing compile-time safety.\n\n```dart\n// Navigate to a route\ncontext.router.push(ProfileRoute());\n\n// Navigate with parameters\ncontext.router.push(ProfileRoute(userId: '123'));\n```\n\n📖 **[View Complete Documentation](docs/ROUTING.md)**\n\n---\n\n### 🔌 Adapters\n\nExtend Jet with custom adapters for third-party services.\n\n```dart\nclass FirebaseAdapter implements JetAdapter {\n  @override\n  Future\u003cJet?\u003e boot(Jet jet) async {\n    await Firebase.initializeApp();\n    return jet;\n  }\n}\n```\n\n📖 **[View Complete Documentation](docs/ADAPTERS.md)**\n\n---\n\n### 💾 Storage\n\nSecure local storage for lightweight data using **[shared_preferences](https://pub.dev/packages/shared_preferences)** for regular data and **[flutter_secure_storage](https://pub.dev/packages/flutter_secure_storage)** for encrypted sensitive data (tokens, passwords).\n\n```dart\n// Regular storage\nawait JetStorage.write('user_name', 'John Doe');\nString? name = JetStorage.read\u003cString\u003e('user_name');\n\n// Secure storage (encrypted)\nawait JetStorage.writeSecure('auth_token', 'your-jwt-token');\nString? token = await JetStorage.readSecure('auth_token');\n```\n\n📖 **[View Complete Documentation](docs/STORAGE.md)**\n\n---\n\n### 🎨 Theming\n\nBuilt-in theme management with persistent storage using **[shared_preferences](https://pub.dev/packages/shared_preferences)**. Supports light, dark, and system theme modes with smooth transitions and Material 3 design.\n\n```dart\n// Add theme toggle button\nAppBar(\n  actions: [ThemeSwitcher.toggleButton(context)],\n)\n\n// Or use programmatically\nthemeNotifier.toggleTheme();\n```\n\n📖 **[View Complete Documentation](docs/THEMING.md)**\n\n---\n\n### 🌍 Localization\n\nInternationalization support using **[intl](https://pub.dev/packages/intl)** package with language switching, RTL support, and persistent language preferences. Easy multi-language setup with date and number formatting per locale.\n\n```dart\n// Add language switcher\nAppBar(\n  actions: [LanguageSwitcher.toggleButton()],\n)\n\n// Access translations\nfinal text = context.jetI10n.confirm;\n```\n\n📖 **[View Complete Documentation](docs/LOCALIZATION.md)**\n\n---\n\n### 🔧 Environment Configuration\n\nType-safe environment variable management using `.env` files.\n\n```dart\n// Access environment variables with type safety\nfinal apiUrl = JetEnv.getString('API_URL', defaultValue: 'http://localhost');\nfinal timeout = JetEnv.getInt('API_TIMEOUT', defaultValue: 30);\nfinal debugMode = JetEnv.getBool('ENABLE_DEBUG', defaultValue: false);\n\n// Check if key exists\nif (JetEnv.has('API_KEY')) {\n  final apiKey = JetEnv.getString('API_KEY');\n}\n```\n\n📖 **[View Complete Documentation](docs/ENVIRONMENT.md)**\n\n---\n\n### 🌐 Networking\n\nType-safe HTTP client built on **[Dio](https://pub.dev/packages/dio)** with automatic error handling, interceptors, and beautiful console logging via **[pretty_dio_logger](https://pub.dev/packages/pretty_dio_logger)**. Supports FormData, request cancellation, and timeout handling.\n\n```dart\nclass UserApiService extends JetApiService {\n  @override\n  String get baseUrl =\u003e 'https://api.example.com/v1';\n\n  Future\u003cList\u003cUser\u003e\u003e getUsers() async {\n    return await get\u003cList\u003cUser\u003e\u003e(\n      '/users',\n      decoder: (data) =\u003e (data as List)\n          .map((json) =\u003e User.fromJson(json))\n          .toList(),\n    );\n  }\n}\n```\n\n📖 **[View Complete Documentation](docs/NETWORKING.md)**\n\n---\n\n### ⚠️ Error Handling\n\nComprehensive error handling with `JetError` for consistent, type-safe error management.\n\n```dart\ntry {\n  final result = await apiService.getData();\n} on JetError catch (error) {\n  if (error.isValidation) {\n    // Handle validation errors\n  } else if (error.isNoInternet) {\n    // Handle network errors  \n  }\n}\n```\n\n📖 **[View Complete Documentation](docs/ERROR_HANDLING.md)**\n\n---\n\n### 📝 Forms\n\nPowerful, type-safe form management built with **[Flutter Hooks](https://pub.dev/packages/flutter_hooks)** and **[Riverpod 3](https://pub.dev/packages/riverpod)**. Two approaches available:\n\n**🎯 Simple Forms** (recommended to start) - Use `useJetForm` hook for 80% of forms:\n\n```dart\nclass LoginPage extends HookConsumerWidget {\n  @override\n  Widget build(BuildContext context, WidgetRef ref) {\n    final form = useJetForm\u003cLoginRequest, LoginResponse\u003e(\n      ref: ref,\n      decoder: (json) =\u003e LoginRequest.fromJson(json),\n      action: (request) =\u003e apiService.login(request),\n      onSuccess: (response, request) {\n        context.showToast('Welcome!');\n        context.router.push(const HomeRoute());\n      },\n    );\n\n    return JetSimpleForm(\n      form: form,\n      children: [\n        JetTextField(\n          name: 'email',\n          validator: JetValidators.compose([\n            JetValidators.required(),\n            JetValidators.email(),\n          ]),\n        ),\n        JetPasswordField(name: 'password'),\n      ],\n    );\n  }\n}\n```\n\n**🚀 Advanced Forms** (for complex requirements) - Use `JetFormNotifier` for enterprise features:\n\n```dart\n@riverpod\nclass LoginForm extends _$LoginForm with JetFormMixin\u003cLoginRequest, LoginResponse\u003e {\n  @override\n  AsyncFormValue\u003cLoginRequest, LoginResponse\u003e build() {\n    return const AsyncFormIdle();\n  }\n\n  @override\n  LoginRequest decoder(Map\u003cString, dynamic\u003e json) =\u003e LoginRequest.fromJson(json);\n\n  @override\n  Future\u003cLoginResponse\u003e action(LoginRequest data) =\u003e apiService.login(data);\n  \n  // Add custom validation, lifecycle hooks, etc.\n}\n```\n\n**When to use each:**\n- **Simple Forms**: Login, registration, settings, contact forms (80% of cases)\n- **Advanced Forms**: Multi-step wizards, conditional fields, complex validation (20% of cases)\n\n**Key Features:**\n- 🔒 Type-safe with `Request`/`Response` generics\n- ✅ 70+ built-in validators (email, phone, password, credit card, etc.)\n- 🎯 15+ form fields: text, password, dropdown, date/time, chips, sliders, OTP/PIN\n- 🌍 Auto-localized error messages (English, Arabic, French)\n- ⚡ Performance optimized (70-90% fewer rebuilds)\n- 🔄 Form change detection and reactive state\n- 📝 Password confirmation helpers\n\n📖 **[Getting Started](docs/FORMS.md)** | **[Simple Forms Guide](docs/FORMS_SIMPLE.md)** | **[Advanced Forms Guide](docs/FORMS_ADVANCED.md)** | **[Form Fields Reference](docs/FORM_FIELDS.md)**\n\n---\n\n### 🧩 Components\n\nPre-built UI components with consistent styling and automatic loading states. Built on Flutter's Material/Cupertino widgets with **[smooth_page_indicator](https://pub.dev/packages/smooth_page_indicator)** for beautiful carousel indicators.\n\n#### JetButton\n\n```dart\nJetButton.filled(\n  text: 'Submit',\n  onTap: () async {\n    await submitData();\n  },\n)\n```\n\n#### JetTab\n\n```dart\nJetTab.simple(\n  keepAlive: true,\n  lazyLoad: true,\n  tabs: ['Home', 'Profile', 'Settings'],\n  children: [HomeView(), ProfileView(), SettingsView()],\n)\n```\n\n#### JetCarousel\n\n```dart\nJetCarousel\u003cProduct\u003e(\n  items: products,\n  autoPlay: true,\n  builder: (context, index, product) =\u003e ProductCard(product: product),\n)\n```\n\n📖 **[View Complete Documentation](docs/COMPONENTS.md)**\n\n---\n\n### 💬 Dialogs \u0026 Sheets\n\nBeautiful, adaptive dialogs and bottom sheets with built-in confirmation workflows.\n\n```dart\n// Adaptive confirmation dialog\nawait showAdaptiveConfirmationDialog(\n  context: context,\n  title: 'Delete Account',\n  message: 'Are you sure?',\n  onConfirm: () async {\n    await deleteAccount();\n  },\n);\n\n// Confirmation bottom sheet\nshowConfirmationSheet(\n  context: context,\n  title: 'Save Changes',\n  message: 'Do you want to save your changes?',\n  type: ConfirmationSheetType.success,\n  onConfirm: () async {\n    await saveChanges();\n  },\n);\n```\n\n📖 **[View Complete Documentation](docs/DIALOGS_AND_SHEETS.md)**\n\n---\n\n### 🎯 Extensions\n\nPowerful Dart extension methods for BuildContext, Text, DateTime, and Number classes. Uses **[intl](https://pub.dev/packages/intl)** for date formatting with no performance overhead (compile-time extensions).\n\n```dart\n// Context extensions\ncontext.showToast('Success!');\nif (context.isAndroid) { /* ... */ }\n\n// Text extensions\nText('Title').titleLarge(context).bold().color(Colors.blue)\n\n// DateTime extensions\nfinal formatted = now.formattedDate(format: 'MMM dd, yyyy');\n\n// Number extensions\nfinal orderId = 123.toOrderId(); // \"00123\"\n```\n\n📖 **[View Complete Documentation](docs/EXTENSIONS.md)**\n\n---\n\n### 🔐 Security\n\nApp locking with biometric authentication using **[Guardo](https://pub.dev/packages/guardo)** . Supports fingerprint, face ID, iris scan with PIN/pattern fallback and secure storage via **[flutter_secure_storage](https://pub.dev/packages/flutter_secure_storage)**.\n\n```dart\n// Enable app lock\nSwitchListTile(\n  title: Text('App Lock'),\n  value: ref.watch(appLockProvider),\n  onChanged: (enabled) {\n    ref.read(appLockProvider.notifier).toggle(context);\n  },\n)\n```\n\n📖 **[View Complete Documentation](docs/SECURITY.md)**\n\n---\n\n### 🔐 Sessions\n\nBuilt-in session management for user authentication with encrypted storage via **[flutter_secure_storage](https://pub.dev/packages/flutter_secure_storage)** and reactive state through **[Riverpod](https://pub.dev/packages/riverpod)**. Automatic session persistence across app restarts.\n\n```dart\n// Login user\nawait SessionManager.authenticateAsUser(session: session);\n\n// Check session\nfinal session = await SessionManager.session();\n\n// Logout\nawait SessionManager.clear();\n```\n\n📖 **[View Complete Documentation](docs/SESSIONS.md)**\n\n---\n\n### 🔄 State Management\n\nPowerful state management built on **[Riverpod 3](https://pub.dev/packages/riverpod)** with **[riverpod_annotation](https://pub.dev/packages/riverpod_annotation)** code generation and enhanced widgets. JetPaginator uses **[infinite_scroll_pagination](https://pub.dev/packages/infinite_scroll_pagination)** for infinite scroll with any API format.\n\n#### JetBuilder\n\n```dart\n// Simple list with pull-to-refresh\nJetBuilder.list\u003cPost\u003e(\n  provider: postsProvider,\n  itemBuilder: (post, index) =\u003e PostCard(post: post),\n)\n```\n\n#### JetPaginator\n\n```dart\n// Infinite scroll with any API format\nJetPaginator.list\u003cProduct, Map\u003cString, dynamic\u003e\u003e(\n  fetchPage: (pageKey) =\u003e api.getProducts(skip: pageKey, limit: 20),\n  parseResponse: (response, pageKey) =\u003e PageInfo(\n    items: (response['products'] as List)\n        .map((json) =\u003e Product.fromJson(json))\n        .toList(),\n    nextPageKey: response['skip'] + response['limit'] \u003c response['total']\n        ? response['skip'] + response['limit']\n        : null,\n  ),\n  itemBuilder: (product, index) =\u003e ProductCard(product: product),\n)\n```\n\n📖 **[View Complete Documentation](docs/STATE_MANAGEMENT.md)**\n\n---\n\n### 🔔 Notifications\n\nComprehensive local notification system built on **[flutter_local_notifications](https://pub.dev/packages/flutter_local_notifications)** with **[timezone](https://pub.dev/packages/timezone)** support for scheduling. Event-driven architecture with type-safe handlers, action buttons, and custom notification channels.\n\n```dart\n// Send notification\nawait JetNotifications.sendNotification(\n  title: \"Hello from Jet!\",\n  body: \"This is a notification\",\n  payload: \"notification_id\",\n);\n\n// Schedule notification\nawait JetNotifications.sendNotification(\n  title: \"Reminder\",\n  body: \"Don't forget!\",\n  at: DateTime.now().add(Duration(hours: 1)),\n);\n\n// Event-driven notifications\nclass OrderNotificationEvent extends JetNotificationEvent {\n  @override\n  Future\u003cvoid\u003e onTap(NotificationResponse response) async {\n    final orderId = int.parse(response.payload ?? '0');\n    router.push(OrderDetailsRoute(orderId: orderId));\n  }\n}\n```\n\n📖 **[View Complete Documentation](docs/NOTIFICATIONS.md)**\n\n---\n\n### 🐛 Debugging\n\nComprehensive logging utilities with colored console output, clickable file paths, and environment-aware logging for enhanced debugging experience.\n\n```dart\n// Enhanced logging\ndump('Debug message', tag: 'DEBUG');\nJetLogger.json(responseData);\n```\n\n📖 **[View Complete Documentation](docs/DEBUGGING.md)**\n\n---\n\n### 🛠 Helpers\n\nDevelopment utilities for debugging and productivity.\n\n```dart\n// Monitor Riverpod state changes with LoggerObserver\nProviderScope(\n  observers: [LoggerObserver()],\n  child: MyApp(),\n)\n\n// Logs provider updates, additions, and disposals\n// [Provider Added] myCounterProvider = 0\n// [Provider Updated] myCounterProvider from 0 to 1\n```\n\n📖 **[View Complete Documentation](docs/HELPERS.md)**\n\n---\n\n## 🎯 Key Features Summary\n\n- **🚀 Rapid Development** - Get started in minutes\n- **📱 Modern Architecture** - Built on Riverpod 3\n- **🔧 Type Safety** - Full type safety across the framework\n- **🌐 Internationalization** - Built-in localization with RTL\n- **🎨 Theming** - Complete theme management\n- **🔐 Security** - App locking and secure storage\n- **📝 Forms** - Advanced form management\n- **🌐 Networking** - Type-safe HTTP client\n- **🔄 State Management** - Enhanced Riverpod widgets\n- **🔔 Notifications** - Event-driven notifications\n- **🧩 Components** - Pre-built UI components\n\n## 📖 Documentation\n\n### Core Features\n- [Configuration](docs/CONFIGURATION.md) - App configuration\n- [Routing](docs/ROUTING.md) - Navigation and routing\n- [Adapters](docs/ADAPTERS.md) - Framework extensions\n- [Storage](docs/STORAGE.md) - Local storage\n- [Theming](docs/THEMING.md) - Theme management\n- [Localization](docs/LOCALIZATION.md) - Internationalization\n\n### Advanced Features\n- [Networking](docs/NETWORKING.md) - HTTP client\n- [Error Handling](docs/ERROR_HANDLING.md) - Error management\n- [Forms](docs/FORMS.md) - Form management, validation, and fields\n- [Components](docs/COMPONENTS.md) - UI components\n- [Dialogs \u0026 Sheets](docs/DIALOGS_AND_SHEETS.md) - Confirmation workflows\n\n### Utilities\n- [Environment](docs/ENVIRONMENT.md) - Environment configuration (.env files)\n- [Extensions](docs/EXTENSIONS.md) - Utility extensions\n- [Security](docs/SECURITY.md) - App security\n- [Sessions](docs/SESSIONS.md) - Session management\n- [State Management](docs/STATE_MANAGEMENT.md) - Riverpod integration\n- [Notifications](docs/NOTIFICATIONS.md) - Local notifications\n- [Debugging](docs/DEBUGGING.md) - Debugging tools\n- [Helpers](docs/HELPERS.md) - Utility helpers\n\n## 📚 Additional Resources\n\n### Official Documentation\n- [Riverpod Documentation](https://riverpod.dev/)\n- [AutoRoute Documentation](https://auto-route.vercel.app/)\n- [Dio Documentation](https://pub.dev/packages/dio)\n\n### Learning Resources\n- [Flutter Official Docs](https://flutter.dev/docs)\n- [Dart Language Tour](https://dart.dev/guides/language/language-tour)\n- [Material Design 3](https://m3.material.io/)\n\n## 🤝 Contributing\n\nWe welcome contributions! Please see our contributing guidelines for details.\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffathialamre%2Fjet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffathialamre%2Fjet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffathialamre%2Fjet/lists"}