Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

Moe Memos

justforfunnoreally.dev badge

Moe Memos

Moe Memos is an app to help you capture thoughts and ideas.

Use Moe Memos with either a self-hosted ✍️memos server or local on-device storage (no server required).

Note: Current Moe Memos version supports Memos 0.21.0 and Memos 0.27.0 to 0.31.0. Memos updates may introduce breaking API changes. If you are using a version higher than 0.31.0, it is recommended to use Mortis to convert the newer Memos API to the Memos 0.21.0 API and re-login in Moe Memos.

Installation

Download Moe Memos on the App Store Join Moe Memos on TestFlight

Moe Memos is available on App Store for free. You can also build this app with Xcode and run on your devices. iOS 18 or higher is required.

Features

Screenshot

  • Write memos like tweeting to yourself
  • Use local on-device storage or sync with your own ✍️memos server
  • Fully functional offline and automatically pushes data when back online
  • Extended Markdown support
  • Upload images, videos, and other file types
  • Attach places with Apple Maps, place search, or your current location
  • Organize and find memos with tags, pinning, and search
  • View your memo activity with a progress graph
  • Liquid Glass, Dark Mode, and Dynamic Type support
  • Available on iPhone and iPad with multitasking support
  • Full privacy protection, no data collection

Moe Memos is a third-party client for ✍️memos and both projects aren't affiliated with each other.

Development

Moe Memos tends to keep minimal and optimized for best native experience. It uses modern Swift and Apple platform features such as SwiftUI, async await and it keeps dependencies as few as possible.

Any contributions are greatly appreciated.

Package organization

PackageResponsibility
ModelsShared types, SwiftData model definitions, stable memo identifiers, and service contracts
ServicesRemote Memos API clients
MemoDataStore setup, local services, sync, attachment files, export, credentials, and account sessions
AccountAccount screens and their presentation state
MemoKitMemo editor, drafts, and reusable attachment UI
MemoSystemApp Entities, Siri actions, Spotlight indexing, and onscreen entity annotations
DesignSystem / EnvShared UI components / navigation state

Account, MemoKit, and MemoSystem depend on MemoData, which depends on Models and Services. The data layer has no dependency on UI, navigation, App Intents, or Spotlight. SwiftData model types remain in Models so moving implementation code doesn't change the persisted schema.

After a successful save, MemoData publishes affected memo identities through MemoChanges. Hosts that need indexing register MemoSpotlightIndex as its observer before writing data. The main app and share extension register at their entry points; background memo intents register before performing mutations. Widgets can read data without activating indexing. Hosts can await MemoChanges.flush() before ending a short-lived operation.

The app registers a MemoNavigator dependency to handle opening memos. MemoSystem doesn't know about the app's routes or account screens. Intent/entity identifiers and existing widget identifiers must remain stable when reorganizing modules.

License

The iOS version of Moe Memos is under MPLv2.

While the open source license doesn't prevent anyone rename and repackage this app to distribute, it violates App Store Review Guidelines 4.1 to do so. It's welcome to build apps based off of the code in this repository and make it meaningfully different.

关于 About

An app to help you capture thoughts and ideas
appstoreiosmemonote-takingself-hostedswiftswiftui

语言 Languages

Swift100.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
120
Total Commits
峰值: 56次/周
Less
More

核心贡献者 Contributors