0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MVVM + Repositoryで自作アプリ開発と初クローズドテストの話

Last updated at Posted at 2024-11-15

はじめに

遂に約3年前から作りたかったアプリを作成できたので、使ったアーキテクチャとクローズドテストの話をしていきます。
まだまだ勉強不足でツッコミどころが多いかもしれません。

アプリ紹介

日々のメンタルを記録し、可視化して自己管理していこうぜって感じのアプリです。
メンタルと日付と時間帯とメモを記録、振り返ることができます。
肝心の削除機能は次のアプデで...

6819.jpg

アーキテクチャ

今回はMVVM + Repositoryを採用しました。
理由は3つあって↓

  • 業務で使っているけどイマイチ理解が進んでいない
  • Activityに処理書きすぎてエグい
  • Roomを使ってデータを操作をしていて、この処理もRepositoryとして組み込んだら綺麗に描けるのでは

以上の3つです。

①から⑥の処理の流れになっています。

スクリーンショット 2024-11-15 20.25.19.png

View

ActivityやFragmentがViewの役割を担っています。ユーザーに見える部分です。
ほぼViewControllerみたいな役割もしています。これいいのか...

ViewModel

ここからが内部的な部分。画面回転が入っても情報を保持してくれているので助かる。
LiveDataを作って値を監視できる。変更通知をActivityで書いたobserve受け取ることもできる。
特にDBからの応答をView層に通知することができるので良き。
コルーチンを使って非同期処理でデータのやり取りができるので、UIスレッドをブロックせずに済む。
正直やっと理解が進んで感動した。

Repository

DB関連の役割。
ここではRoomを使ってSQLite(ローカルDB)を操作している。
ここにinsertなどの処理をまとめておけば、毎回実装するなんてことが起きないので絶対あった方がスッキリする。
Model(Data Class)ともやりとりをしている。

Model

データクラスの役割。
感情や日付などの、Roomで使うデータをここで書いている。
DBにどんな情報があるか、必要かすぐに分かるのでこれもあった方がいい。

クローズドテスト

アプリを作り終えたからストアにアップしたい。
が、ここからが鬼門。
20人テスターを集めて2週間テストをすることが必須条件とのこと。Googleさんマジスカ。
筆者は、アプリやクローズドテストのコミュニティを使ってやり遂げました。
正直、最初は鬼だと思ってたけど様々な人にテストしてもらって見えたものがある。
特にコミュニティに参加して良かった。レビューなどもいただけてアプリがいい方向に動いた。
なんやかんや、クローズドテストして良かった。
筆者が大変お世話になったコミュニティとアプリのリンクを貼らせていただきます。本当にありがとうございました。

まとめ

約3年前の自分。エンジニアは楽しいぞ。
めげるな、じゃなくてMVVMで考えて役割を持たせる大切さと、テストの大切さを学習できました。

筆者が作ったアプリ

アプデちゃんとするので良かったらDLお願いします!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?