Skip to content

An advanced Markdown note-taking app for Android featuring Mind Map visualization, GitHub Gist sync, and optimized dual-pane support for foldable devices.

Notifications You must be signed in to change notification settings

gadgeski/BugCodex

Repository files navigation

🧊 BugCodex: Iceberg Tech Edition

"Inject Knowledge into the Core."

深海とテクノロジーをモチーフにした 「Iceberg Tech (Cyber-Glass Brutalism)」 デザインの、エンジニア向けバグトラッキング & ナレッジベースアプリ。

🚀 概要 (Overview)

BugCodex は、モバイル開発中に遭遇するバグや技術的な知見を、「最速で記録し、構造化して整理する」 ためのツールです。

v2.0 の大規模リファクタリングにより、モダン Android 開発のベストプラクティス(Hilt, Edge-to-Edge, Version Catalog)を完全導入し、「使っていて心地よい、没入感のある開発者体験」 を提供します。

✨ 主な機能 (Features)

アプリ画面(新)

ホーム&編集画面
ホーム&編集画面
ダッシュボード
ダッシュボード
検索
検索
ディレクトリ
ディレクトリ

🧠 Thinking & Organizing

Mind Map Visualizer

思考を整理するためのマインドマップ機能。

  • 永続化対応: Room Database により、アプリを閉じてもデータは保持されます
  • Deep Link: ノードからワンタップで「詳細ノート」を新規作成・リンク可能
  • 回路図デザイン: サイバーパンクな配線デザインを採用

High-Speed Search (FTS4)

SQLite の全文検索エンジン(FTS4)を採用し、大量のログからも瞬時にキーワード検索が可能。

Folder Management

プロジェクトやトピックごとのフォルダ分けと絞り込み表示。

📝 Editing & Logging

Markdown Editor

  • シンタックスハイライト: **Bold**Link などの Markdown 記法をリアルタイムで装飾表示
  • Iceberg UI: ガラスのような半透明入力パネルと、ネオンカラーのアクセント

Quick Capture (Injector 連携)

別途開発のサテライトアプリ「Infuser」や、Android の共有メニューからテキストを受け取り、自動でタイトルを生成して保存。

☁️ Connectivity

GitHub Gist Sync

Personal Access Token を設定することで、ノートを GitHub Gist に Markdown としてバックアップ可能。チームへの共有や PC での閲覧がシームレスに。

Foldable & Dual-Screen Support

HingeSensor を活用し、2 画面端末(Surface Duo など)や折りたたみ端末の大画面を活かした TwoPaneNoteEditor インターフェースを提供。

🛠️ 技術スタック (Tech Stack)

Architecture

MVVM + Clean Architecture (Pragmatic)

UI → ViewModel → Repository → DataSource (Dao/API) の単方向データフロー。

Dependency Injection

Hiltを全面採用し、手動 Factory を廃止。AppModuleによる依存関係の一元管理。

Single Source of Truth

画面状態はStateFlowで管理し、Room データベースを信頼できる唯一の情報源とする。

Libraries & Tools

  • Language: Kotlin 2.0
  • UI: Jetpack Compose (Material 3)
    • Edge-to-Edge: ステータスバー透明化による完全没入 UI
    • Animation: animateColorAsState等によるマイクロインタラクション
  • Database: Room (KSP, FTS4, Migration 1→3)
  • Build: Gradle Kotlin DSL + Version Catalog (libs.versions.toml)
  • Quality: Spotless (Ktlint), GitHub Actions (CI)

Database Schema

erDiagram
    NOTE ||--o{ NOTE_FTS : "indexed by"
    NOTE {
        long id PK
        string title
        string content
        long folder_id FK
        long created_at
        long updated_at
        boolean is_starred
    }
    FOLDER ||--|{ NOTE : "contains"
    FOLDER {
        long id PK
        string name
    }
    MIND_MAP_NODE {
        long id PK
        string title
        long parent_id
        long note_id FK "Links to Note"
    }
Loading

💻 セットアップ & 開発ガイド

前提条件

  • JDK 17
  • Android Studio Ladybug 以降推奨

ビルドコマンド

# 依存解決・同期
./gradlew help

# デバッグビルド
./gradlew assembleDebug

# コード整形(Spotless)
./gradlew spotlessApply

# テスト実行
./gradlew test

CI (GitHub Actions)

Pull Request 作成時に、以下のワークフローが自動実行されます:

  1. Lint & Format: Spotless によるコードスタイルチェック
  2. Unit Test: JUnit4 によるロジック検証
  3. Build: assembleDebugによるビルド検証

📂 プロジェクト構成

  • ui/: 画面 (Screen) と ViewModel。Iceberg テーマ定義 (theme/)
  • data/: Repository 実装、Room Entity/Dao、DataStore
  • domain/: (Future) 純粋なビジネスロジック
  • di/: Hilt Modules (AppModule)

BugCodex - Inject Knowledge into the Core.

About

An advanced Markdown note-taking app for Android featuring Mind Map visualization, GitHub Gist sync, and optimized dual-pane support for foldable devices.

Topics

Resources

Stars

Watchers

Forks

Languages