- SharesController's fetchShares() built NextcloudShare objects through its own thin inline parser instead of _shareFromJson, so url/token/ permissions/expireDate were always null - a public link share could never show "Copy link" in the Shares tab. Reuses _shareFromJson. - Upload/Move/Copy's destination picker hid External storage in its filter sheet (showStorageScope: false) unlike Files' own controls row, despite the design doc already calling for full parity. - Files' and Photos' type filter (All/Files/Folders, All/Photos/Videos) now render as one consistent style in both filter sheets: every icon always shown, label only on the selected segment (NooSegmentedControl's new labelOnlySelected), replacing Files' old checkmark list and Photos' own always-labelled track. - Fixes Photos' type filter only visually updating after closing and reopening the filter sheet - it lived on PhotosView's own State, so Listenable.merge([photos, files]) never rebuilt the sheet when it changed; a StatefulBuilder now gives it that trigger. - Replaces Settings' trailing section jump rail with per-section collapsible cards (NooGroupedList's new collapsible param, expanded by default) - one less parallel way to navigate a long screen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Noo
A fast, native Nextcloud client built with Flutter and Material You.
Noo gives you a clean, modern way to browse and manage the files on your own Nextcloud server — files, photos, shares, activity, and trash, all in one app, themed to match your device.
Features
- Files — browse, upload, move, rename, delete, and favorite files and folders; sort and filter per folder
- Photos — a dedicated media gallery with a full-screen viewer for images and video
- Activity — a feed of what's changed on your server
- Shares — see and manage what you've shared and what's shared with you
- Trash — restore or permanently delete recently removed items
- Material You theming — dynamic color on supported devices, five built-in accent colors, light/dark/AMOLED
- Secure sign-in — authenticates via Nextcloud's Login Flow v2: you sign in through your browser, and Noo never sees or stores your password, only a scoped app token
Screenshots
Coming soon.
Getting started
Prerequisites:
- Flutter (SDK
^3.12.2) - A Nextcloud server with Login Flow v2 enabled (on by default since Nextcloud 15)
flutter pub get
flutter run
On first launch, enter your server's address — Noo opens your browser to finish signing in.
Supported platforms
Android, iOS, and Windows.
Building
flutter build apk # Android
flutter build ios # iOS
flutter build windows # Windows
Tech stack
Flutter with Material 3, provider for
state management, and http/dio talking directly to Nextcloud's WebDAV
and OCS APIs — no bundled Nextcloud SDK.
Contributing
Project context for contributors (human or AI) lives in
CLAUDE.md and .claude/context/ — architecture, the server
integration, styling conventions, and code standards.
flutter test # run tests
flutter analyze # static analysis / lints
License
Not yet licensed for redistribution — license TBD.