android mobile-app

Catatan Sync — Klien Mobile Obsidian

Klien Android dan web untuk membaca serta menyunting catatan Obsidian dari mana saja. Tidak menyimpan data apa pun di perangkat — seluruh isinya datang dari API catatan-sync.

android kode sumber saja · expo· obsidian· productivity· react-native
Expo Obsidian Productivity React Native TypeScript

Klien Android untuk layanan api-catatan — aplikasi Expo / React Native untuk membaca, mencari, dan (bagi pemilik) menulis vault Obsidian. Aplikasi ini tidak menyimpan apa pun di perangkat: tidak ada basis data lokal, tidak ada koneksi langsung ke MongoDB, semuanya lewat REST API yang sudah ada.

📱 Aplikasi Android Tersedia

Versi build Android terbaru dapat langsung dipasang melalui Expo:

👉 Unduh & Pasang Aplikasi Catatan di Expo

Sorotan

  • Klien yang sengaja tanpa status lokal — tidak ada penyimpanan di perangkat yang bisa melenceng dari server, dan tidak ada kredensial yang bisa bocor, karena setiap baca dan tulis adalah panggilan API. Konsekuensinya jujur: tanpa jaringan, tidak ada yang bisa ditampilkan.
  • Satu layar, dua identitas — masuk sebagai pemilik tidak membuka area admin terpisah; ia mengubah apa yang dirender layar yang sama. Catatan pribadi jadi terbaca dan folder terkunci muncul beserta jumlahnya. Tombol tulis digantungkan pada penanda pemilik di respons server, dan server menegakkannya sendiri lewat verifyAdmin, sehingga menyembunyikan tombol adalah urusan tampilan, bukan keamanan.
  • Catatan bersama tanpa akun — dibuka lewat kode atau tautan, kata sandi ditukar dengan token 12 jam, lalu isi dan daftar kehadiran menyegar sendiri lewat long-polling.
  • Bentrok ditawarkan, tidak pernah ditimpa diam-diam — penyuntingan bersama berjalan di balik penjaga revisi, sehingga dua orang yang menyunting catatan sama mendapat pilihan alih-alih salah satu kehilangan tulisannya.
  • Tiga lapis, satu arah — layar → hook (TanStack Query) → api (axios). Layar tidak pernah memanggil axios, lapisan api tidak pernah mengimpor React, dan src/types/api.ts menjadi sumber kebenaran tunggal untuk bentuk data di kedua sisi.
  • Expo Go tidak bisa menjalankannya, dan itu disebutkan sejak awal — Expo Go di Play Store adalah SDK 54 sementara project ini SDK 57, sehingga pengujian di perangkat berarti APK hasil EAS. Build rilis hanya menyasar arm64-v8a, dengan minifikasi dan penyusutan resource diaktifkan.

Fitur Utama

  1. Penjelajah folder — navigasi remah roti yang berubah menjadi hasil pencarian begitu mulai diketik, dengan saran autocomplete dan penyaringan ekstensi.
  2. Pembaca — markdown dengan wikilink Obsidian yang bisa diketuk, .txt sebagai teks polos, penyorotan kata kunci, serta salin dan bagikan.
  3. Penyuntingan oleh pemilik — membuat, menyunting, dan menghapus catatan; pengelolaan folder lengkap termasuk membuat, mengganti nama, mengunci dan membuka, mengurutkan, serta menghapus.
  4. Deep link — tautan aplikasi HTTPS terverifikasi yang menunjuk ke host api-catatan, sehingga URL catatan yang dibagikan terbuka di aplikasi, bukan di browser.
  5. Pembaruan over-the-airexpo-updates mengirim perbaikan tanpa build toko yang baru.
  6. Penyimpanan sesi di SecureStore — sesi pemilik disimpan di penyimpanan perangkat terenkripsi, bukan di preferensi biasa.

Tech Stack

  • Expo SDK 57 + React Native, Expo Router
  • TypeScript, dengan tsc --noEmit sebagai gerbang tipe
  • TanStack Query (state server) + axios (transport)
  • react-hook-form + zod (validasi formulir)
  • expo-secure-store (sesi), expo-updates (OTA)
  • @shopify/flash-list, react-native-reanimated, react-native-marked
  • Jest (18 berkas test)
  • EAS Build (APK Android, arm64-v8a)

Status & Kematangan

Aktif. Pengembangan sehari-hari berjalan di --web, tempat pencarian, folder, pembaca, dan permukaan admin semuanya berfungsi; hanya Share, Alert, dan pemilih dokumen yang benar-benar butuh APK asli untuk diverifikasi. Satu perintah npm run dev:full menyalakan backend api-catatan sungguhan, mendeteksi IP LAN mesin ini, lalu mengarahkan aplikasi ke sana — detail yang penting karena ponsel tidak bisa menjangkau localhost milik komputer pengembang. Impor berkas sengaja tidak ada di sini dan tetap berada di panel web.

Metrik Terukur

Commit 18
Rentang Tanggal 10 Agu 2026 – 13 Agu 2026
Baris kode 26.521
Test 18 berkas test Jest
dimulai 10 Aug 2026 · diperbarui 29 Aug 2026