yk_tools 0.0.8 copy "yk_tools: ^0.0.8" to clipboard
yk_tools: ^0.0.8 copied to clipboard

YKTools

yk_tools #

A versatile Flutter package providing essential utilities for common mobile development tasks, including IM management, RTC (Real-Time Communication), storage, audio handling, and more.

Features #

  • IM Management: Handle instant messaging with connection state tracking, message handling, and group operations.
  • RTC Utilities: Manage real-time communication including room management, audio/video controls.
  • Disk Management: Register and manage disk modules for various storage operations.
  • Media Handling: Record audio, play audio files with progress tracking.
  • Media Picking: Select images from gallery and capture photos using device camera.
  • Socket Communication: WebSocket implementation with auto-reconnect functionality.
  • Task Scheduling: Execute tasks in sequence with rollback capabilities.
  • Storage Utilities: Manage persistent storage with support for one-time and cached data.
  • In-app Push: Handle in-app push notifications with queuing mechanism.

Getting started #

Prerequisites #

  • Flutter SDK (>=1.17.0)
  • Dart SDK (^3.5.4)

Installation #

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

dependencies:
  yk_tools:
    git:
      url: https://github.com/yykedward/yk_tools.git
      ref: main

Then run:

flutter pub get

Usage #

IM Manager Example #

import 'package:yk_tools/yk_im_manager.dart';

// Implement the delegate
class MyImDelegate with YkImManagerDelegate {
  // Implement all required methods
  @override
  Future<void> init(
    MessageCallback onMessageReceived,
    KickedOfflineCallback onKickedOffline,
    dynamic params,
  ) async {
    // Initialize your IM service
  }

  // Other method implementations...
}

// Initialize IM Manager
void setupIm() async {
  await YkImManager.instance.config(delegate: MyImDelegate());
  await YkImManager.instance.init(
    params: {'apiKey': 'your_api_key'},
    onKickedOffline: () {
      // Handle kicked offline
    },
  );
  
  // Listen to messages
  YkImManager.instance.messageStream.listen((message) {
    // Handle incoming messages
  });
}

Storage Example #

import 'package:yk_tools/yk_storage.dart';

// Implement storage delegate
class MyStorageDelegate with YkStorageDelegate {
  // Implement required methods
  @override
  Future<void> init() async {
    // Initialize storage
  }

  @override
  Future<void> save({required String key, required dynamic data}) async {
    // Save implementation
  }

  @override
  Future<dynamic> get({required String key}) async {
    // Get implementation
    return null;
  }
}

// Use storage
void setupStorage() async {
  await YkStorage.init(delegate: MyStorageDelegate());
  
  // Save data
  await YkStorage.save(key: 'user_name', data: 'John Doe', isOnce: false);
  
  // Retrieve data
  final userName = await YkStorage.get<String>(key: 'user_name');
}

Additional information #

Contributing #

  • Fork the repository
  • Create your feature branch (git checkout -b feature/amazing-feature)
  • Commit your changes (git commit -m 'Add some amazing feature')
  • Push to the branch (git push origin feature/amazing-feature)
  • Open a Pull Request

Issues #

Please file issues here to report bugs or request features.

License #

This package is released under the MIT License. See LICENSE for details.

0
likes
130
points
24
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

YKTools

Homepage
Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter

More

Packages that depend on yk_tools