Anx Reader

Trình đọc sách điện tử đa nền tảng nguồn mở tích hợp AI và đồng bộ WebDAV.

Giới thiệu

Anx Reader là một ứng dụng đọc sách điện tử (e-book reader) mã nguồn mở được phát triển bằng Flutter. Dự án này giải quyết vấn đề phân mảnh trong trải nghiệm đọc sách kỹ thuật số bằng cách cung cấp một giao diện thống nhất, hiện đại trên mọi nền tảng (Android, iOS, Windows, macOS, Linux). Điểm khác biệt lớn nhất của Anx Reader so với các ứng dụng truyền thống là khả năng tích hợp trí tuệ nhân tạo (AI) để hỗ trợ người đọc tóm tắt nội dung, dịch thuật và tra cứu ngữ nghĩa ngay trong lúc đọc, đồng thời hỗ trợ đồng bộ dữ liệu đám mây qua giao thức WebDAV giúp bạn đọc tiếp mạch lạc khi chuyển đổi giữa điện thoại và máy tính.

Tính năng chính

  • Hỗ trợ đa định dạng: Đọc mượt mà các định dạng phổ biến như EPUB, MOBI, AZW3, FB2, PDF và TXT.
  • Tích hợp AI mạnh mẽ: Sử dụng các mô hình ngôn ngữ lớn (OpenAI, Gemini, Claude, DeepSeek) để tóm tắt sách, giải thích từ vựng, dịch thuật đoạn văn và tạo bản đồ tư duy (mind map).
  • Đồng bộ đa nền tảng: Tự động đồng bộ sách, tiến độ đọc, ghi chú (notes) và highlights giữa các thiết bị thông qua WebDAV (Nextcloud, Google Drive, v.v.).
  • Thống kê đọc sách: Cung cấp biểu đồ nhiệt (heatmap) và báo cáo chi tiết về thời gian đọc theo ngày, tuần, tháng, năm.
  • Tùy biến cao: Điều chỉnh font chữ, khoảng cách dòng, lề, theme (Sáng/Tối/Sepia), và hỗ trợ Text-to-Speech (chuyển văn bản thành giọng nói).

Hướng dẫn cài đặt Local (macOS)

Bạn có thể tải file .dmg trực tiếp từ mục Releases trên GitHub. Nếu muốn tự build từ source để phát triển, hãy làm theo các bước sau:

  1. Cài đặt Flutter SDK: Đảm bảo bạn đã cài đặt Flutter và CocoaPods. Nếu chưa, dùng Homebrew:
    brew install --cask flutter
    brew install cocoapods
    
  2. Clone repository:
    git clone https://github.com/Anxcye/anx-reader.git
    cd anx-reader
    
  3. Cài đặt dependencies:
    flutter pub get
    
  4. Generate code (Quan trọng): Dự án sử dụng code generation cho đa ngôn ngữ và Riverpod state management:
    flutter gen-l10n
    dart run build_runner build --delete-conflicting-outputs
    
  5. Chạy ứng dụng:
    flutter run -d macos
    

Hướng dẫn Docker

Vì Anx Reader là ứng dụng Client (Mobile/Desktop), Docker thường không được dùng để chạy ứng dụng trực tiếp cho người dùng cuối. Tuy nhiên, bạn có thể sử dụng Docker để build phiên bản Web của ứng dụng. Dưới đây là một Dockerfile mẫu để build Anx Reader cho Web:

# Stage 1: Build Flutter Web
FROM ghcr.io/cirruslabs/flutter:stable AS build

WORKDIR /app
COPY . .

# Cài đặt dependencies và generate code
RUN flutter pub get
RUN flutter gen-l10n
RUN dart run build_runner build --delete-conflicting-outputs

# Build web release
RUN flutter build web --release

# Stage 2: Serve với Nginx
FROM nginx:alpine
COPY --from=build /app/build/web /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Cách chạy:

docker build -t anx-reader-web .
docker run -p 8080:80 anx-reader-web

Truy cập http://localhost:8080 để trải nghiệm (lưu ý: tính năng có thể hạn chế so với bản native).

Ví dụ Code (Example Code)

Dưới đây là ví dụ minh họa cách cấu hình WebDAV trong ứng dụng (thường nhập qua giao diện UI, nhưng đây là cấu trúc dữ liệu JSON mô phỏng cấu hình bạn cần chuẩn bị):

{
  "webdav_config": {
    "url": "https://webdav.your-cloud-provider.com/remote.php/webdav/",
    "username": "your_username",
    "password": "your_app_password",
    "sync_folder": "/AnxReader/Data",
    "sync_interval_minutes": 15,
    "sync_items": [
      "reading_progress",
      "highlights",
      "notes",
      "book_files"
    ]
  },
  "ai_config": {
    "provider": "openai",
    "api_key": "sk-proj-xxxxxxxx...",
    "model": "gpt-4o-mini",
    "prompt_template": "Summarize the following text in Vietnamese:"
  }
}

Lưu ý: Trong ứng dụng thực tế, bạn sẽ nhập các thông số này vào mục Settings > SyncSettings > AI.

Sources

Github Page

https://github.com/Anxcye/anx-reader

Tags: github
Share: X (Twitter) Facebook LinkedIn