ソフトウェア開発者のための OSS、まとめてみました!

ソフトウェア開発を行なっている自分が、個人的に面白いと思ったプログラムの最新技術や、オープンソースソフトウェア(OSS)をまとめています!

MENU

見た目・操作性・機能性を追求したポケモン図鑑 Android アプリ!「Pokedex」

概要

ポケモンは今や 1000 体を超える勢いで増え続けています。

私自身もポケモン初代から遊んでいますが 2024 年もまだまだその勢いが衰えず新作が出るたびに大ヒットとなっています。

そんなポケモンですが、今回 Android 用アプリとしてポケモン図鑑をとても見やすく操作性も良いアプリが OSS として出ていたので、今回はこちらについてご紹介したいと思います。

今回ご紹介する OSS は、Hilt、Coroutines、Flow、Jetpack (Room、ViewModel)、および MVVM アーキテクチャに基づいて開発され、見た目・操作性・機能性を追求した Android 向けポケモン図鑑Pokedex」になります。

それでは早速詳細についてみていきましょう。

目次

特徴

Pokedex」の特徴としては以下の点が挙げられていました。

  • Kotlin ベース、コルーチン+非同期フローでの動作
  • ジェットパックとして以下を採用
    • Android のライフサイクルを観察し、ライフサイクルの変更時に UI の状態を処理
    • UI 関連のデータホルダーとライフサイクルを管理し、画面の開店などの構成変更後もデータを維持できるよう対応
    • プログラムではなく宣言形式を使用して、レイアウト内の UI コンポーネントをアプリ内のデータソースにバインド
    • SQLite 上に抽象化レイヤーを提供してデータベースを構築、スムーズなでーたべすアクセスを可能
  • アーキテクチャーとして以下を採用
  • Retrofit2 & OkHttp3 を使用した REST API とページングネットワークデータを構築
  • Sandwich という、Android のネットワークペイロードを処理する軽量で最新の応答インターフェースを構築
  • Moshi という、Kotlin および Java 用の最新の JSON ライブラリを採用
  • Whatlf という、null 許容オブジェクトとからのコレクションをよりスムーズにチェックできるモジュールを採用
  • Bundler という、Android インテントおよびバンドル拡張機能を使用し、値をエレガントに挿入及び取得
  • ksp という、Kotlin シンボル処理 API を採用
  • Tunbine という、kotlinx.coroutines フロー用の小さなテスト ライブラリを使用
  • アニメーションと CardView を構築するためのマテリアルデザインコンポーネントを使用
  • Glide、GlidePalette を使用してネットワークから画像を読み込む
  • TransformationLayout を採用し、変形モーションアニメーションを実装
  • カスタムビューとして以下を採用
    • Rainbow という、Android でグラデーションと色合いを適用する手法を採用
    • AndroidRibbon という、Android できらめく美しいリボンを実装する方法を採用
    • ProgressView という、洗練された柔軟な ProgressView を採用し、アニメーションを構築
  • Timber という、小規模で拡張可能な API を備えたロガーを使用

その他、Android アプリ開発にこだわっていてアーキテクチャーの紹介などもされていますので、気になる方はこちらも確認してみるとよいでしょう。

アーキテクチャ

アーキテクチャー概要

UI レイヤー

データレイヤー

github.com

利用手順

Pokedex」の利用方法としては、GitHub のリリースページから apk ファイルを Android 端末にインストールすることで利用可能ということでした。

github.com

使用感

筆者は Android 端末を保持していないため、今回は実際に使用することはできなかったのですが、GitHub ページにデモ動画がったのでこちらを確認してみまました。

実際のアプリの挙動を見てみると、アニメーションがぬるぬる動いていることがわかり、画面サイズに応じたサイズで指定した画像がぴったり収まるような挙動だったり、アニメーションがいい感じに動いているのがわかりますね!

Androidアーキテクチャーにこだわって作成されていることがわかります。

また、マテリアルデザインで構築されているということだけあって、UI としてもとてもきれいでまとまっており、非常に見やすく操作性もよさそうです。

まとめ

今回は、Hilt、Coroutines、Flow、Jetpack (Room、ViewModel)、および MVVM アーキテクチャに基づいて開発され、見た目・操作性・機能性を追求した Android 向けポケモン図鑑Pokedex」についてご紹介いたしました。

Android 端末を所持している方はぜひ一度こちらの OSS をインストールしてみて、動作を見てみてはいかがでしょうか。

ライセンス

Apache License 2.0

リンク

github.com

github.com