Kotlin AGPL-3.0

native

Adaptive native Nextcloud client for mobile and desktop, with dynamic support for the wider Nextcloud app ecosystem.

O

Obiente

Dernière activité 28 sept. 2026
Obiente/native

674

étoiles

9

forks

184

issues ouvertes

androidcaldavcarddavcompose-multiplatformdesktop-appioskotlinkotlin-multiplatformlinuxmacosmobile-appnextcloudnextcloud-clientoffline-firstopen-sourceself-hostedwebdavwindows

Ce README est souvent en anglais.

nati.ve

nati.ve: one app for your Nextcloud account

Browse files and photos, read Talk conversations, and use your calendar on Android, Linux and Windows.

Website · Roadmap · Testing releases

Build and test License: AGPL-3.0-or-later

nati.ve is a free, open-source app for your phone or computer. It connects to an existing Nextcloud account.

Nextcloud is software that hosts files, photos, calendars and other services on a server that you or your provider runs. To use nati.ve you need that server's address and an account on it. nati.ve does not provide cloud storage and does not replace your server.

With nati.ve you can, for example, open a document from Nextcloud Files, browse a photo album, read a Talk conversation and check your calendar in one app. You do not need to switch between separate clients or browser tabs. nati.ve draws its own screens for these tasks and works with the same data on your server.

Alpha software. nati.ve is under active development. Testing builds are for trying the app and for contributors. Do not rely on it as your only client for important work or as the only copy of important data.

nati.ve is an independent Obiente project. It is not affiliated with, sponsored by, or endorsed by Nextcloud GmbH.

What works today

The alpha includes file browsing and previews, photo browsing, Talk history, Calendar and Notes. Other Nextcloud apps have varying levels of support. Installing an app on your server does not mean that all of its features work in nati.ve.

Before you rely on a workflow, check the compatibility details and the known limitations in the release notes. The longer list under Implemented alpha surfaces describes the source code in more detail. Planned work is listed separately.

Install

Start with a setup guide:

Quick downloads

Last reviewed: 2026-10-02. Release channels and published packages may have changed. The GitHub Releases page is the source of truth for published builds, checksums and known limitations.

At the review date, Nightly is the only update channel you can select in the app. These links always point to the newest Nightly build.

Platform Download
Android 8.0 or newer APK
Linux (Debian, Ubuntu) DEB
Linux (Fedora, RHEL) RPM
Windows x86-64 MSI
macOS Intel (packaging preview) DMG

Things to know before installing:

  • All builds are prereleases. Versions stay below 1.0.0 until the product, data-safety, security and platform gates pass. Read each release's known limitations before you install over an existing test build.
  • Android builds are signed with the project's protected release key.
  • Windows MSI packages are not Authenticode-signed. SmartScreen may warn before installation; after you confirm the file came from the project's GitHub release, choose More info > Run anyway. Each MSI has GitHub build provenance you can verify. See Windows MSI qualification.
  • macOS packages are an early packaging preview. Keychain storage is covered by source tests, but signing in has not been validated on a real Mac.

Product showcase

These pictures come from the real app, running with made-up test data. They show the interface and its responsive layout. They do not prove that every pictured workflow is complete on every platform or server version.

nati.ve desktop overview with files, activity, events, storage, photo backup, mail, and conversations nati.ve mobile overview with quick actions, recent files, and photo backup
Desktop workspace Mobile workspace
Desktop Files workspace with navigation, file list, filters, search, actions, and details inspector Native planning board with planned, in-progress, and completed card lanes
Files and details Semantic board surface

Why this project exists

Nextcloud has excellent server apps, but their mobile and desktop experiences vary. Some have their own client, some only work in the browser, and some expose only part of what the server can do. Each one looks and behaves differently.

nati.ve adds one shared native layer on top, without forcing every app into the same generic screen. A table should behave like a table, a deck like a board, a mailbox like mail, a recipe like something you can cook from, and an expense project like a budget. The shared layer handles sign-in, permissions, caching, actions, search, settings, navigation and platform behavior. Each kind of content gets a component built for its workflow.

How adaptive native apps work

nati.ve architecture from verified evidence through typed resources and semantic models to platform-adapted native UI

nati.ve learns what a server app offers from verified sources first, such as published API contracts. Only then does it use heuristics. It may guess field roles, relationships, labels and a good starting screen. It may never invent an endpoint, request body, permission, resource ID or retry guarantee.

Small, verified adapters for a specific app are welcome when they add useful behavior that cannot be inferred safely. An adapter extends the same shared runtime; it does not become a separate app inside the app.

The trust and execution rules are in DYNAMIC_APP_DESCRIPTOR.md, NATIVE_SCHEMA.md and ADAPTER_ARCHITECTURE.md.

Implemented alpha surfaces

Last reviewed: 2026-09-01. The code may have changed since then. The default branch is the source of truth. A listed surface can still have platform, version, action or lifecycle limitations. Being listed here does not mean it is supported for normal use.

The repository contains runnable Android and desktop applications (Linux, Windows, and an early macOS package) with:

  • Nextcloud Login Flow v2, with credentials kept in Android Keystore, Linux Secret Service or Windows Credential Manager. macOS Keychain storage exists in source and is covered by deterministic tests;
  • Files: browsing, list and grid layouts, previews, sharing foundations, text editing and media viewing;
  • Photos and Memories: collections, albums, tags, people, favorites, RAW and JPEG grouping, full-quality originals loaded on zoom, and foundations for edits that keep the original;
  • Talk history, with message cards for text, files, recordings, calls, system events and shared objects;
  • Notes, with folders, ETag-aware saving and Markdown editing and preview;
  • Activity, global search, Dashboard, user status and app navigation;
  • native flows for Mail, Music, Cookbook, Calendar, Contacts, Tasks, Tables, Deck, Cospend, Budget and administration inventory, at different levels of completeness;
  • an Office document browser with editor choices based on server capabilities. Android embeds only the chosen document's editing session; desktop hands it to the system browser. This is web integration, not a native Office engine, and not verified against every Office suite;
  • contract acquisition from signed, exact-version Nextcloud App Store releases, plus a guarded fallback to the exact source release for apps that do not publish a contract;
  • reusable tables, boards, forms, settings, summaries, charts, collection browsers and detail inspectors for apps nati.ve has not seen before;
  • dark, light and system appearance, with responsive shared Compose components;
  • deterministic mock services, isolated visible Android emulators, and screenshots generated from the real Compose UI with synthetic data.

This is a solid baseline, not a finished product. Some apps are still mostly read-only. Some actions need stronger binding to the item they act on. Contract discovery and persistent caching need more work, and native UX quality varies by workflow. The public Project tracks these gaps.

Planned work

The project is strengthening the foundations a dependable daily client needs.

Workstream What this phase delivers
Shared foundation Account-scoped typed transport, SQLite/SQLDelight metadata, stale-while-revalidate repositories, verified contract caching, durable errors, and one identity for the same object across apps
Files Complete browsing and actions, native previews/editors, shares, versions, trash, large folders, resumable transfers, conflicts, and multi-account isolation
Sync and offline Visible upload history, selective offline roots, crash-safe journals and tombstones, Android DocumentsProvider, desktop sync roots, and an Obsidian-grade two-way profile
Photos and media Truthful camera/media backup state, folder preview and destination picking, storage reclaim without hiding media unnecessarily, originals, RAW/video/Live Photos, people workflows, albums, and non-destructive editing
DAV and groupware CardDAV and CalDAV synchronization, native Contacts, Calendar, Tasks, recurrence, sync tokens, and optional operating-system account bridges
Talk Complete messages and attachments first, then push, notifications, system media integration, signaling, and separately gated WebRTC calling
Dynamic apps Faster persistent contract acquisition, relationship-aware navigation, context-bound forms/actions, semantic layouts, and small verified adapters where they genuinely improve the workflow
Desktop product Resizable multi-pane workspaces, keyboard and pointer UX, dense tables, persistent inspectors, desktop file integration, notifications, and update/packaging quality
Administration Native read-only inventory and diagnostics, safe preflight and lifecycle plans, settings generated from verified schemas, and explicit browser/authentication handoff for strict operations

ROADMAP.md has the dependency order and data-safety gates. The GitHub Project has live status, priorities and completed work.

Platform status

Last reviewed: 2026-09-01. Platform availability may have changed. The GitHub Releases page is the source of truth for published artifacts and limitations. This table is not a promise of stable support.

Platform State
Android Main mobile target. Signed APK and AAB prereleases. Hosted CI runs unit tests and packaging; connected-device tests run separately
Linux Main desktop development target. App image plus RPM and DEB prereleases
Windows x86-64 MSI with Credential Manager sign-in storage and Cloud Files sync, in prerelease qualification
macOS Early DMG packaging artifact. Keychain storage is source-tested, but authenticated use has not been live-validated
iOS / iPadOS Planned. No app is shipped yet

Android and desktop share domain models, semantic components and product rules, but not identical layouts. Mobile focuses on touch, lifecycle, background work and compact navigation. Desktop focuses on multi-pane workflows, keyboard and pointer control, dense layouts, resizing and operating-system file integration.

See PLATFORMS.md for what is shared and what is platform-specific, and COMPATIBILITY.md for verified server and app coverage.

Product and safety principles

  • Installed apps never fall back to an embedded web page automatically.
  • AI or UI inference never invents an endpoint, request body, permission or ID.
  • Being able to read something does not allow writing it. Every write needs a verified source, permissions, the exact target, validation, conflict handling, a retry policy, confirmation and a way to recover.
  • If the result of a non-repeatable action is unknown, nati.ve shows that and checks the server. It does not blindly retry.
  • "Cached," "viewed," "available offline," "uploaded" and "synchronized" are different states and are never used as synonyms.
  • Originals are kept by default. Edits create a new file unless you choose a guarded replacement.
  • A Login Flow app password is never treated as your main account password.
  • Credentials, share tokens, server URLs, account IDs, filenames, messages, contacts and other private data stay out of logs, fixtures, screenshots, issues and public artifacts.
  • Testing against a real account requires explicit permission and is enforced read-only. Write tests use disposable synthetic data on an isolated server.
  • Content you opened before appears from the cache right away and refreshes in place.
  • Unsupported behavior is explained honestly, not shown as a broken button.

Build from source

You need JDK 21, Rust stable, and, for Android, the Android SDK with Platform 36 and Build Tools 35.0.0. Point ANDROID_HOME or ANDROID_SDK_ROOT at your SDK. Never commit local.properties or a home-directory path.

git clone https://github.com/obiente/native.git
cd native

./gradlew :ui:run                      # start the desktop app from source
./gradlew :androidApp:assembleDev      # build an Android APK that installs beside release builds
./gradlew --no-daemon :ui:desktopTest  # run the shared and desktop tests
bash tools/check-repository.sh         # run repository checks

The Android dev build type installs as dev.obiente.nextcloudnative.dev with the label nati.ve Dev, so it never replaces the signed dev.obiente.nextcloudnative app.

CONTRIBUTING.md has the full quick start, the test matrix, isolated Android emulators, device deployment and troubleshooting.

Repository map

Path Purpose
ui/ Shared Compose Multiplatform UI and domain code (commonMain, jvmMain), Android library code and the desktop JVM app
androidApp/ Android application: launcher, build types and platform integrations
contractAcquisition/ Exact-version signed package and source contract acquisition (JVM)
src/ and tests/ Rust reference compiler and schema subset with contract tests; src/bin/ holds the Windows Explorer registration helper
integration/ Disposable Nextcloud compatibility instance with synthetic data
server-companion/ Optional server apps that add narrow capabilities
release/ Public release inputs: Android signing-certificate digest, Linux AppStream and packaging templates, and a prerelease update-contract fixture
changes/ Changelog fragments for unreleased and archived releases
design/ Brand and icon sources
website/ Project website, guides, news and synthetic real-UI screenshots
tools/ Repository checks, deployment, emulators, screenshots and release validation
docs/ Operational and release documentation; start at the documentation index

Architecture and protocol references:

Contributing

Contributions are welcome, especially:

  • reusable semantic components and relationship inference;
  • Files, DAV, sync, media, Talk and platform integration;
  • protocol research backed by official upstream sources;
  • versioned compatibility fixtures and mock-server tests;
  • accessibility, responsive desktop and mobile UX, and performance;
  • translations, documentation, packaging and deterministic visual QA.

Start with an issue or a focused item in the public Project. A small app-specific adapter is fine when it adds verified behavior that cannot be inferred safely; it should still reuse shared models, actions, state and components.

Read CONTRIBUTING.md and AGENTS.md before changing how the app behaves. AI-assisted contributions must stay human-led and accountable. Disclosure is appreciated but optional; see AI_POLICY.md.

Report security issues privately through GitHub private vulnerability reporting. See the security policy.

License and trademark

nati.ve is licensed under the GNU Affero General Public License, version 3 or later.

"Nextcloud" is a trademark of Nextcloud GmbH. This independent Obiente project is not affiliated with, sponsored by, or endorsed by Nextcloud GmbH.

Projets similaires

📱 Nextcloud Android app

Kotlinandroidhacktoberfestjava
Nnextcloud
5,6 k étoiles2 k

💻 Desktop sync client for Nextcloud

C++c-plus-pluscppdesktop
Nnextcloud
3,9 k étoiles1 k

The ownCloud Android App

Kotlinandroidkotlinmobile
Oowncloud
4,2 k étoiles3,1 k