Code Monkey home page Code Monkey logo

mybrary's Issues

DeepLink の対応

  • MyBookDetail(Public の場合のみ)
    • その人のメモ
    • MyBookDetail に🔗アイコンを設置
  • BookDetail
    • その本のメモ
  • メモの詳細画面?
  • ユーザープロフィール?

Mybrary DB を作る

Spring で API を作る
Firestore は NoSQL でキャッシュとして利用する Room と形式が異なるので、使用したくない
DB は MySQL を使用したい

ドメインオブジェクトの整理

MyBook と Book のままか、Book と ExternalBook か?

MyBook

@Serializable
data class MyBook(
  val id: MyBookId,
  val externalId: BookId,
  val title: String,
  val imageUrl: Url.Image,
  val isbn10: String,
  val isbn13: String,
  val pageCount: Int, // 必要?
  val authors: List<Author>, // 必要?
  val isPinned: Boolean,
  val isFavorite: Boolean,
  val isArchived: Boolean,
)

Book

@Serializable
data class Book(
  val id: BookId,
  val title: String,
  val imageUrl: Url.Image,
  val isbn10: String,
  val isbn13: String,
  val pageCount: Int, // 必要?
  val authors: List<Author>, // 必要?
)

Author

@Serializable
data class Author(
  val name: String,
)

Note

@Serializable
data class Note(
  val id: NoteId,
  val myBookId: MyBookId, // 必要?
  val content: String,
  val fromPage: Int?,
  val toPage: Int?,
  @Serializable(with = LocalDateTimeSerializer::class)
  val createdAt: LocalDateTime,
  @Serializable(with = LocalDateTimeSerializer::class)
  val editedAt: LocalDateTime?,
  @Serializable(with = LocalDateTimeSerializer::class)
  val postedAt: LocalDateTime?,
  val likeCount: Int?,
)

DraftNote

@Serializable
data class DraftNote(
  val myBookId: MyBookId, // 必要?
  val content: String,
  val fromPage: Int?,
  val toPage: Int?,
)

User

Repository をどの層に置くか調査し、修正する

現状

  • Repository を data パッケージに置いている
  • Impl が、 model で定義した変換メソッドを参照しているので、 data が domain に依存している
    • 具体が抽象に依存すれば良いので、これで問題なさそう?

理想

  • interfaces を domain に置き、 impl を data に置くべき?
  • data が model に依存しないようにしたい
  • domain で usecase を使用して、 usecase で変換すれば良い?

マルチモジュールにする

アプリの規模が小さいので、シンプルな構成に留めたい
現状の案としては、ui --> domain <-- data となる3モジュールでの構成

Now in Android のように、core, feature で構成

TODO

  • 各クラスを internal にする
  • 依存関係のバージョン管理

参考

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

  • chore(deps): update all dependencies (gradle, io.github.jan-tennert.supabase:postgrest-kt, io.github.jan-tennert.supabase:bom, org.jetbrains.kotlinx:kotlinx-serialization-json, com.google.devtools.ksp, org.jetbrains.kotlin.plugin.serialization, org.jetbrains.kotlin.plugin.parcelize, org.jetbrains.kotlin.android, org.jetbrains.kotlin.jvm, com.google.dagger.hilt.android, com.google.dagger:hilt-core, com.google.dagger:hilt-android-compiler, com.google.dagger:hilt-android, io.coil-kt:coil-compose, androidx.test.ext:junit-ktx, androidx.lifecycle:lifecycle-runtime-compose, androidx.test.espresso:espresso-core, com.android.library, com.android.application)

Detected dependencies

bundler
Gemfile
github-actions
.github/workflows/gpt-review.yml
  • actions/checkout v4
  • actions/setup-python v5
.github/workflows/review-assign.yml
  • hkusu/review-assign-action v1.4.0
.github/workflows/run-lint.yml
  • actions/checkout v4
  • ruby/setup-ruby v1
  • actions/setup-java v4
  • actions/cache v4
.github/workflows/run-test.yml
  • actions/checkout v4
  • ruby/setup-ruby v1
  • actions/setup-java v4
  • actions/cache v4
gradle
gradle.properties
settings.gradle.kts
build.gradle.kts
app/build.gradle.kts
core/api/build.gradle.kts
core/common/build.gradle.kts
core/config/build.gradle.kts
core/data/build.gradle.kts
core/database/build.gradle.kts
core/design-system/build.gradle.kts
core/domain/build.gradle.kts
core/supabase/build.gradle.kts
core/ui/build.gradle.kts
feature/login/build.gradle.kts
feature/my-book-detail/build.gradle.kts
feature/my-book-list/build.gradle.kts
feature/search-books/build.gradle.kts
feature/verify-otp/build.gradle.kts
gradle/libs.versions.toml
  • androidx.compose:compose-bom 2024.06.00
  • androidx.hilt:hilt-navigation-compose 1.2.0
  • androidx.lifecycle:lifecycle-runtime-compose 2.8.2
  • androidx.navigation:navigation-compose 2.7.7
  • androidx.test.espresso:espresso-core 3.6.0
  • androidx.test.ext:junit-ktx 1.2.0
  • io.coil-kt:coil-compose 2.6.0
  • com.google.dagger:hilt-android 2.51.1
  • com.google.dagger:hilt-android-compiler 2.51.1
  • com.google.dagger:hilt-core 2.51.1
  • junit:junit 4.13.2
  • org.jetbrains.kotlinx:kotlinx-coroutines-core 1.8.1
  • io.ktor:ktor-client-android 2.3.12
  • com.google.android.material:material 1.12.0
  • com.squareup.okhttp3:okhttp 4.12.0
  • com.squareup.okhttp3:logging-interceptor 4.12.0
  • com.squareup.retrofit2:retrofit 2.11.0
  • com.squareup.retrofit2:converter-kotlinx-serialization 2.11.0
  • androidx.room:room-compiler 2.6.1
  • androidx.room:room-ktx 2.6.1
  • androidx.room:room-runtime 2.6.1
  • org.jetbrains.kotlinx:kotlinx-serialization-json 1.6.3
  • io.github.jan-tennert.supabase:bom 2.5.1
  • io.github.jan-tennert.supabase:postgrest-kt 2.5.1
  • com.android.application 8.5.0
  • com.android.library 8.5.0
  • com.google.dagger.hilt.android 2.51.1
  • org.jetbrains.kotlin.jvm 1.9.24
  • org.jetbrains.kotlin.android 1.9.24
  • com.google.devtools.ksp 1.9.24-1.0.20
  • org.jetbrains.kotlin.plugin.parcelize 1.9.24
  • org.jetbrains.kotlin.plugin.serialization 1.9.24
gradle-wrapper
gradle/wrapper/gradle-wrapper.properties
  • gradle 8.8

  • Check this box to trigger a request for Renovate to run again on this repository

設定画面の作成

  • 機能
    • アーカイブされた本の確認
    • みんなのメモ機能をオフにする
    • ログアウト
    • 本の表示サイズ(優先度低)
  • どのような導線にするか…
    • BottomNavigation?
      • Mybrary(Mybrary)
      • Notes, Shared, Shared Notes(みんなのメモ)
      • Profile(プロフィール)
    • TopAppBar?

README を編集する

ある程度リファクタが完了したら README をちゃんと書きたい

項目の案

  • Mybrary
    • アプリの概要
  • Features
    • 機能の説明
      • スクショ(表で表示)
      • 箇条書き(各スクショの説明)
    • Design / デザイン
      • Figma のリンク
  • Architecture / アーキテクチャ
    • アーキテクチャの説明
    • Package Configuration / パッケージ構成
  • Tech Stacks / 使用技術
    • 使用技術の説明
  • Project Rules / プロジェクトのルール
    • Branch Rules / ブランチ戦略
    • Commit Rulesコミット規則
    • Coding Conventions / コード規約

参考

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.