kickin 0.0.1-dev.32
kickin: ^0.0.1-dev.32 copied to clipboard
A Flutter package that makes developments easier by providing commonly used utilities and widgets with just simple initialization.(In Progress)
🦵 Kickin (#experimental) #
Kickin is a modern modular toolkit designed to turbocharge your Flutter development and eliminate boilerplate. It provides curated utilities, elegant extensions, and standardized architectures for common tasks like networking, state management, and storage.
It also serves as the umbrella package that brings together the power of the Kickin ecosystem, including packages like kickin_network, kickin_storage, kickin_utilities, and the rest of the family.
Zero lock-in. While Kickin provides opinionated wrappers for popular tools, it is designed to be universally adoptable and highly extensible. You can use it piece-by-part (select the core extensions), use the network module independently, or fully embrace the architecture.
🎯 Modules at a Glance #
🌐 Network #
A unified layer for all remote communication, adaptable to different protocols.
Check kickin_network
💾 Storage #
A unified abstraction for local persistent storage, architected to support multiple drivers smoothly.
Check kickin_storage
🧠 State Management #
Streamlined, ergonomic, and boilerplate-free APIs to bind your favorite state management solutions to the UI.
- Riverpod
Effortless provider binding without needing a verbose
ConsumerWidgetwrapper.- Key Classes:
KAbsorber,KAbsorbRead,KAbsorbWatch,KWatchNotifier,KCachedNotifier - Usage:
Check kickin_utilities for moreKAbsorber.watch( userProvider, builder: (ref, user, child) { return Text(user.name); } ) final user = userProvider.read(ref);
- Key Classes:
⚙️ Utilities #
Essential and predictable helpers for async operations and heavy background tasks.
- Concurrency & Operations
Tools to perform safe operations and background work.
- Key Classes:
KResult(safe operations without try-catch),KIsolate(background work),KLogger - Usage:
final result = await KResult.tryRunAsync(() => fetchComplexData()); if (result.isSuccess) { print(result.data); } else { showError(result.message); }
- Key Classes:
🧩 Extensions & Mixins #
Banish verbose code with intuitive extensions on built-in types. Plus, reusable mixins to inject intelligence into Widgets and Notifiers.
- Core Extensions
- Key Classes: Context extensions,
Durationextensions,ProviderWarmupMixin,ScrollOffsetNotifierMixin - Usage:
// Elegant structural spacing 24.toVBox, // No more SizedBox(height: 24) 16.toHBox, // No more SizedBox(width: 16) // Quick context helpers final isDark = context.isDarkMode; final screenWidth = context.deviceWidth; final topPadding = context.topPadding;
- Key Classes: Context extensions,
🎨 Widgets & Motion #
A collection of smart, adaptable UI components and pre-defined motion tokens for fluid experiences.
- Layout & Components
- Key Classes:
KScaffold,KAnimatedSizing,KScaleGestureWrapper,KSmoothListView,KAdaptiveImage,KSpacing,KCurves - Usage:
KScaffold( title: 'Home', body: KSmoothListView( children: [ KTopPadding.sliver(), KAdaptiveImage(path: FilePath(path: localPath, url:"https://..."), preferLocal: true), KBottomPadding.sliver(), ], ), );
- Key Classes:
📦 Installation #
Add the package to your app dependencies:
dependencies:
kickin: 0.0.1-dev.32
Then import the package root API where needed:
import 'package:kickin/kickin.dart';
🚀 Vision #
Kickin is designed to act as parts of a broader whole. You can adopt the Network module and ignore the Storage module; use the Extensions but skip the Widgets. It's built for rapid prototyping while being sufficiently robust for large-scale production applications. Start coding faster, with absolute confidence.