Pakete, Repositories und App-Kategorien suchen

Paketdetailsv0.2.2

whiteboardkit

Eine tolle Flutter-Whiteboard-Implementierung mit Zeichenwerkzeugkasten.

30-Tage-Downloads
29
Likes
50
Pub-Punkte
35

Paket installieren

flutter pub add whiteboardkit

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

WhiteboardKit ist ein Flutter-Paket, das eine voll funktionsfähige Whiteboard-Implementierung mit einer intuitiven Zeichenwerkzeugkiste bietet. Es ermöglicht Benutzern, auf einer Leinwand zu zeichnen, zu löschen und zu kommentieren, wobei benutzerdefinierte Werkzeuge wie Stifte, Marker und Radierer zur Verfügung stehen. Durch seine Einfachheit und Leistungsfähigkeit unterstützt es Touch-Eingaben und lässt sich nahtlos in Anwendungen integrieren, die Echtzeit-Skizzierung oder kooperative Annotation erfordern. Ideal für Bildungs-, Design- oder Notizanwendungen bietet es eine reibungslose und responsive Zeichen-Erfahrung über Geräte hinweg.

Anwendungsfälle

  • Digitales Skizzieren
  • Kooperatives Whiteboarding
  • Lernhilfsmittel
  • Interaktives Notizschreiben
  • Designprototypen

Hauptmerkmale

  • Zeichenwerkzeugkasten mit mehreren Werkzeugen
  • Echtzeit-Touch-Eingabehilfe
  • Anpassbare Strichstile
  • Einfache Integration mit Flutter
  • reaktive Canvas-Rendern

Geeignet für

  • Educators
  • Designers
  • App-Entwickler
  • Students
  • Remote-Kollaborationswerkzeuge

Hinweise

  • Eingeschränkte plattformspezifische Optimierungen
  • Keine integrierte Cloud-Synchronisierung
  • Benötigt manuelle Zustandsverwaltung
  • Nicht für große Leinwände optimiert
  • Standardmäßig kein Rückgängig-/Wiederholungsverlauf

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

whiteboardkit

A Flutter whiteboard widget with so much extendability and flexibility to be used with no need to rewrite your own whiteboard. Enjoy !

Package demo

live demo: https://abdulaziz-mohammed.github.io/whiteboardkit

Usage

import whiteboardkit.dart

import 'package:whiteboardkit/whiteboardkit.dart';

     

Drawing:

Define DrawingController and listen to change event:

  DrawingController controller;

  @override
  void initState() {
    controller = new DrawingController();
    controller.onChange().listen((draw){
      //do something with it
    });
    super.initState();
  }

Place your Whiteboard inside a constrained widget ie. Container,Expanded etc

@override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Expanded(
              child: Whiteboard(
                controller: controller,
              ),
            ),
          ],
        ),
      ),
    );
  }

     

Playback:

Define PlaybackController and supply it with a WhiteboardDraw object:

  PlaybackController controller;

  @override
  void initState() {
    var draw = WhiteboardDraw.fromWhiteboardSVG("<svg...");
    controller = new PlaybackController(draw);
    super.initState();
  }

Place your Whiteboard inside a constrained widget ie. Container,Expanded etc

@override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Expanded(
              child: Whiteboard(
                controller: controller,
              ),
            ),
          ],
        ),
      ),
    );
  }

     

Stream (e.g. online whiteboard):

Define SketchStreamController:

  PlayerController controller;

  @override
  void initState() {
    controller = new SketchStreamController();
    super.initState();
  }

Place your Whiteboard inside a constrained widget ie. Container,Expanded etc

@override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Expanded(
              child: Whiteboard(
                controller: controller,
              ),
            ),
          ],
        ),
      ),
    );
  }

Later, supply it with DrawChunk when recived from DrawingController:

  controller.addChunk(chunk);

You'l need to enable chunks producing in DrawingController then start listening to new chunks:

    controller = new DrawingController(enableChunk: true);
    _chunkSubscription = controller.onChunk().listen((chunk) {
    }

DrawChunk supports:

  • chunk.toJson()
  • DrawChunk.fromJson("...")
    which together can help in transfering chunks through network or any other medium

     

WhiteboardDraw class:

  • Map<String, dynamic> toJson()
  • WhiteboardDraw.fromJson(Map<String, dynamic> json)
  • string getSVG():
    Export to SVG Image format string

Kategorien

Abhängigkeiten

Abhängigkeiten 5 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.