u 3.1.0 copy "u: ^3.1.0" to clipboard
u: ^3.1.0 copied to clipboard

The only package you need, a complete set of packages and utilities you need in every single project.

3.1.0 #

  • Drawing on PDFs, EPUBs and videos. New UDocShapeLayer / UDocDrawToolbar / UDocDrawController: pen, highlighter pen, area highlight (manual highlighting anywhere), line, arrow, double arrow, rectangle, rounded rectangle, ellipse/circle — each with no fill, light fill, solid fill or white "cover" fill — text boxes typed directly on the page, and sticky notes. Colour, thickness, opacity, dashes, bold and font size; Shift / "Keep proportions" for squares, circles and 45° lines. Select to move, drag the corner to resize, recolour, fill or delete; eraser; undo/redo (a drag is one undo step); Delete, Esc and Ctrl/Cmd+D shortcuts.

  • Drawings are saved in the same annotation string as highlights and bookmarks (UDocAnnotationController.export() → "shapes", UMediaNotesController.export() → "shapes"), so storing that one string (e.g. in SharedPreferences via ULocalStorage) and passing it back restores everything. Geometry is normalised, so drawings stay in place at any zoom or window size.

  • UPdfViewer: ✎ button in the toolbar (enableDrawing, drawController; pass a controller with an active tool to open in drawing mode). While drawing, one-finger drags draw and the wheel, trackpad and scroll thumb still scroll. The file-writing editor tools (enableAnnotations: true, UPdfEditorPage) are unchanged.

  • UEpubReader: the same tools per paragraph (anchored to the paragraph, width-normalised, and kept in place when a paragraph is split across pages); drawing never starts a text selection.

  • UVideo / UVideoWithNotes: ✎ in the player pauses and draws on the frame (letterboxing excluded). Each drawing shows for a chosen time (2 s, 5 s, 10 s, 30 s or until the end) and appears on the seek bar.

  • Viewer hotkeys (space, arrows…) no longer fire while typing in a text box.

  • Document annotations (PDF & EPUB). New shared UDocAnnotationController with highlight, underline, strike-through, squiggly, border and note markups, page/position bookmarks, undo/redo, local persistence, export()/import() (base64 JSON for server sync, newest-wins merge) and import of the legacy SinApp {"markers":…,"pageMarks":…} format. Reusable UDocAnnotationsPanel, UDocBookmarksPanel, UDocSelectionMenu, UDocMarkupMenu, UDocNoteEditor, UDocWatermark, USecureArea.

  • Fix: Persian/Arabic PDF highlighting. Text runs are rebuilt with per-character rectangles and proper visual→logical bidi reordering (numbers, Latin inside RTL, ZWNJ, diacritics), /ActualText is honoured, and runs whose glyph metrics look wrong fall back to whole-line boxes (pdfrx approach). UDocTextGeometry.auto | precise | box is selectable in the viewer settings.

  • UPdfViewer: sidebar (thumbnails, outline, notes, bookmarks, search with snippets), selection with mouse/touch/keyboard (double/triple click), two-page & cover spreads, smooth pinch/trackpad/ ctrl-scroll zoom, scroll thumb, page indicator, allowCopy, secure, watermark, pageOverlayBuilder, keyboard shortcuts, legacy-annotation placement.

  • UEpubReader: the same markup tools on reflowable text (anchored to block + offsets, survive re-flow and paged mode), grouped multi-paragraph selections, position bookmarks, block-level search, exact jump to TOC/footnote anchors, span-preserving pagination, full typography settings, image zoom, time-left estimate. Fixes: tap-to-toggle never fired under SelectionArea, dark-theme text.

  • Video: UMediaNotesController + UMediaNotesPanel (timestamp notes, seek-bar markers, overlays, SRT/Markdown export, legacy import), UVideoWithNotes, resume position, ±seek buttons, quick speed menu and fine speed slider, desktop hover/volume slider/scroll-wheel volume, mouse double-click fullscreen, UMovingWatermark, secure, Android auto picture-in-picture + PiP state events, iOS PiP that waits until possible, hls.js on web browsers without native HLS.

  • Graceful errors when a platform has no media backend; replay after completion.

  • Fixes after QA: PDF selection/markup boxes floated above the text (Chrome/Skia writes a positive font Descent — metrics are now sanitised; older saved markups are re-placed automatically, guarded by a pixel-coverage test); EPUB crash "SelectionListenerNotifier is already registered" when a paragraph got its first markup; EPUB markups drawn at the wrong x on short/list paragraphs and spilling into margins (painter now uses the paragraph's real width and one trimmed box per line); EPUB menu buttons lost the selection on web/desktop; debug assertions from ListTiles on coloured sidebars; page counters in RTL; mouse drag selection starting late; search snippet highlight offset.

  • Audio player: ±seek buttons, timestamp notes with seek-bar markers, resume position, fine speed.

3.0.0 #

  • new dart run u:app CLI to change the host app's native settings on Android, iOS, macOS, Linux, Windows and web from one command: name, id (moves MainActivity to the new package), min-sdk, target-sdk, compile-sdk, ndk, java, version, bump, description, permission add/remove/list (32 friendly names such as camera / location / internet, mapped to manifest entries, Info.plist usage strings, background modes and macOS entitlements), orientation, deep-link, team, binary, company, copyright, web-color, Android release signing, plus info and doctor. Supports --platforms and --dry-run, keeps file formatting, and is idempotent.

  • Fix: signing out no longer deletes the user's files on desktop. UFileStorage used getApplicationDocumentsDirectory(), which is the user's own ~/Documents on Windows, Linux and unsandboxed macOS, and clear() (called by UAuth.signOut) deleted every .txt file there. Storage now lives in the app's private support/cache directories; existing data is migrated once.

  • new UDownloadManager replacing UDownload and the media-only download manager: silent fetches, a persistent queue, segmented multi-connection downloads with dynamic re-splitting, safe resume (If-Range), pause/resume across restarts, priorities, per-host limits, speed limits, wifi-only, scheduling, mirrors, checksums, sourceId downloads whose URL is never stored, and hand-off to the OS (Android DownloadManager, Apple background URLSession, Windows BITS).

  • destinations: memory, private storage, cache, the encrypted vault (encrypted while downloading), the user's Downloads (MediaStore on Android, Files app on iOS, the browser on web), a path, or "save as".

  • UFileStorage rewritten: support / cache (LRU, size cap) / vault (streaming ChaCha20-Poly1305 or WebCrypto AES-GCM with per-file keys) / temp buckets, hashed file names, atomic writes, expiry, MIME types, checksums, ranged streaming reads, and IndexedDB on the web.

  • new native u/files channel on all platforms: free space, save-as dialogs, open / reveal, keep-awake (Android dataSync foreground service with progress), key-store secrets.

  • new widgets: UDownloadManagerPage, UDownloadTile, USegmentProgressBar, UDownloadButton, UAddDownloadSheet, UDownloadSettingsSheet.

  • new UHasher (streaming MD5 / SHA-1 / SHA-256) and UChaCha20Poly1305.

  • breaking: UFileStorage.getBytesSync, getDatKeys and getDatPaths were removed; the other 2.x names remain as deprecated aliases. UDownload is a deprecated wrapper over UDownloadManager.

2.0.4 #

  • added AR and 3D with no pub packages: ARCore + a built-in OpenGL ES 3 glTF renderer (Android), ARKit + RealityKit (iOS), WebXR + a built-in WebGL2 renderer (web).
  • UArController / UArView: surfaces (floor, table, wall, ceiling), hit testing, anchors, nodes (glTF / USDZ models, primitives, images, videos, Flutter widgets), animations, depth and people occlusion, light estimation, image / object / face / body tracking, Geospatial and GPS + compass anchors, Cloud Anchors, world maps, collaboration, snapshots, recording, OCR and code detection.
  • ready-made widgets: UArScene, U3DViewer, UArGeoView, UArMeasure, UArFaceTryOn, UArImageTrigger, UArCodeView, UArOverlayLayer, UArGate and UArExperiences.
  • UAr.scanRoom (RoomPlan), UAr.captureObject (Object Capture), UAr.openNativeViewer (Scene Viewer / AR Quick Look).

2.0.3 #

  • added UJalaliDatePicker with three flavours: classic (the original JalaliDatePickerDialog), material (a Jalali clone of Flutter's own Material date picker, with month paging, year grid and keyboard entry) and spinner (an iOS style three wheel picker as a bottom sheet or dialog).
  • UTextFieldDatePicker gained jalaliType, spinnerAsDialog and helpText; jalali: true now opens the material flavour by default.
  • JalaliFormatter now exposes its month and weekday name tables, plus Latin variants.

2.0.2 #

  • added example project

2.0.1 #

  • converted the package to Plugin to be able to provide native codes

0.1.0 #

  • First release as the u plugin (successor to the Utilities-flutter package), adding native platform code alongside the Dart toolkit.
  • ScreenGuard: native screenshot / screen-recording prevention on Android, iOS, macOS and Windows (safe no-op on Linux and web), with onScreenshot / onScreenRecording callbacks.
  • Established the lib/plugins/<feature>/ + per-platform handler convention for native features.
  • Full multi-page example gallery and a complete README covering every capability area.
9
likes
140
points
126
downloads

Documentation

API reference

Publisher

verified publishersinamn75.com

Weekly Downloads

The only package you need, a complete set of packages and utilities you need in every single project.

Homepage
Repository (GitHub)
View/report issues

License

BSL-1.0 (license)

Dependencies

async, file_picker, flutter, flutter_localizations, flutter_map, flutter_svg, flutter_web_plugins, http, intl, latlong2, lottie, path, path_provider, web, webview_all

More

Packages that depend on u

Packages that implement u