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

A comprehensive Flutter development kit with base classes, utilities, and common patterns for faster app development.

Flutter Base Kit #

A comprehensive Flutter development kit with base classes, utilities, and common patterns for faster app development.

Features #

  • Base Classes: Pre-built Cubit, State, and Exception classes
  • Utilities: Logger, validators, and helper functions
  • Extensions: Useful extensions for String, Color, and other types
  • Error Handling: Built-in error handling patterns
  • Type Safety: Full type safety with Equatable integration

Installation #

Add this to your package's pubspec.yaml file:

dependencies:
  flutter_base_kit: ^0.0.1

Usage #

Import the package #

import 'package:flutter_base_kit/flutter_base_kit.dart';

Base Cubit #

Create a Cubit with built-in error handling:

class UserCubit extends BaseCubit<UserState> {
  UserCubit() : super(const UserState());

  Future<void> loadUser() async {
    await safeAction(
      () async {
        // Your async operation here
        final user = await userRepository.getUser();
        emit(state.copyWith(user: user, status: StateStatus.loaded));
      },
      failureCall: (exception) {
        // Handle failure
        loggerApp.e('Failed to load user: ${exception.message}');
      },
    );
  }
}

Base State #

Create a state class:

class UserState extends BaseStateI {
  final User? user;

  const UserState({
    super.status,
    super.message,
    this.user,
  });

  UserState copyWith({
    StateStatus? status,
    String? message,
    User? user,
  }) {
    return UserState(
      status: status ?? this.status,
      message: message ?? this.message,
      user: user ?? this.user,
    );
  }

  @override
  List<Object?> get props => [status, message, user];
}

Logger #

Use the built-in logger:

loggerApp.i('Info message');
loggerApp.d('Debug message');
loggerApp.w('Warning message');
loggerApp.e('Error message', error: error, stackTrace: stackTrace);

Validators #

Use built-in validators:

// Email validation
final emailError = Validators.validateEmail(emailController.text);

// Password validation
final passwordError = Validators.validatePassword(passwordController.text);

// Required field validation
final nameError = Validators.validateRequired(nameController.text);

Extensions #

Use helpful extensions:

// String extensions
final color = '#FF5733'.toColor;
final capitalized = 'hello world'.capitalize; // "Hello world"
final titleCase = 'hello world'.toTitleCase; // "Hello World"
final isEmail = 'test@example.com'.isEmail; // true

// Color extensions
final hex = Colors.red.toHex; // "#FF0000"
final darker = Colors.red.darken(0.2);
final lighter = Colors.red.lighten(0.2);
final contrasting = Colors.red.contrastingColor; // White or black

License #

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

0
likes
150
points
513
downloads

Publisher

verified publisherokji.store

Weekly Downloads

A comprehensive Flutter development kit with base classes, utilities, and common patterns for faster app development.

Repository (GitHub)
View/report issues

Topics

#search

Documentation

API reference

License

MIT (license)

Dependencies

dio, equatable, flutter, flutter_bloc, freezed_annotation, json_annotation, logger, provider

More

Packages that depend on flutter_base_kit