Android用 壁紙自動切り替えアプリを開発しました

Blog

さて。

唐突ですが、皆さんのスマホの壁紙、何にしていますか?

管理人は最近、そこにちょっとしたこだわりが生まれまして。
わが子の写真を、毎日くるくる変えながら楽しんでいます。

・・・というのも、自分でアプリを作ったんですよね。

今回はその話です。楽しんでいってください!!


iPhoneから乗り換えて気づいた「絶望」

管理人、数年前まではiPhoneユーザーでした。

iPhoneには、OSレベルで「特定の人物の写真を自動で壁紙にしてくれる」機能があるんです。
iCloudで顔認識させたら、あとは勝手にくるくる。スマホを開くたびにその人の写真がランダムで表示される。

管理人の場合は、わが子の写真を設定していました。

・・・これが、超よかった。

ちなみに、管理人の妻の話をさせてください。

第二子の妊娠中、つわりがひどくてしんどい時期がありまして。
その時に妻がぽつりと言ったんですよね。「息子(第一子)の写真を無心でくるくる回してた。思い出の壁紙が次々流れてくるのを見ているだけで救われた。」と。

たかが壁紙の話じゃないですよね、これ。

大切な写真が、ふとした瞬間に目に入る。それだけで人って、ほんとうに癒やされるんだなと。

で。管理人、Androidに乗り換えたわけです。

お目当ての機能を探しました。

・・・ない。

ない。

ない。

絶望しました。

そして考えました。ないなら作るしかない

まず試みたのが、Google Photoとの連携。でも、行く手を阻む壁がありまして——APIの利用制限が厳しく、自動で写真を引っ張ってくる仕組みが作れなかったんです。

次に辿り着いたのがGoogle PhotoPicker。APIを使わずに端末の写真を選べる仕組みです。

ただ、シンプルゆえに使いづらい・・・

写真を手動で選ばないといけないし、端末にソースをすべて持っていないとけない。

「クラウドから自動で拾ってきて自動で更新」ができないんです。

そこで管理人は、ふと思い出します。

「そういえば、自宅のNASにImmichを構築してたな・・・」と。


ImmichとImmiChangeで壁紙の自動切り替えを実現

まず「Immich(イミッチ)」をご存知でない方のために、一言で。

「説明しよう!」

ImmichとはGoogleフォトと同じことが自前のサーバーでできる、自己ホスト型の写真管理サービスである!

管理人、ヤッ〇ーマンをキッズ〇テーションで見てた世代です。

え?なんやそれ?しらんがな?やかましいわ?

ゴメンナサイ…

閑話休題、管理人はもともとGoogleフォトをメインで使っていたのですが、プライバシーとストレージ容量の兼ね合いから自宅のNASにImmichを構築して乗り換えました。

ぶっちゃけ、Googleフォトと遜色ないくらい便利で、アルバム管理も顔認識も全部自前でできます。

そしてImmichには大きな強みがあります。自己ホストゆえにAPIが非常に開放的で、自由度が高い。

「これなら実現できる!!」というわけで生まれたのが、管理人作のアプリ「ImmiChange」です。

超ざっくり言うと——Immichのアルバムから写真を端末にキャッシュして、壁紙としてくるくるローテーションするアプリです。

外出中でもオフラインでも途切れずに動き続けるので、心配無用です。

また、管理人のドケチ精神から生まれた機能もついています。

SSID制限といいまして、自宅のWi-Fiに接続しているときだけ写真を補充する設定ができます。
外出先でモバイルデータを使って勝手に大量ダウンロード——なんてことがありません。

また、Immichから無制限にダウンロードしてくるわけではなく、自分で自由に設定した一定の容量を上限に、ランダムで画像をダウンロードしてくれます。

管理人の場合、30MB上限に設定して、約110枚くらい端末にストックしてくれています。

このストックを使って壁紙を自動更新していくわけですが、すべて使い切ったときの挙動も管理人の肝いりで、

・Wi-fi接続時:新たにランダムで30MB分ダウンロードして、使用済みのキャッシュを削除(プールの入れ替え)

・モバイルデータ時:Wi-fi接続までプールの入れ替えはせず、キャッシュの画像を再利用して2週目に突入

これこそが、ドケチの神髄です。
モバイルデータも端末容量も、無駄づかいさせません

ちなみに、Immichをお持ちでない方も大丈夫です。端末内の写真をそのまま使う「ローカルモード」も搭載しています。

まあ、GooglePhotoPickerを使った、扱いづらいものなんですがね…
一応こちらも端末の容量に配慮して、ローカルにキャッシュする画像の解像度を自由に調整できるようなシークバーを搭載しています。

端末容量に余裕がある方は高解像度で贅沢に。

カツカツなかたは、低解像度で倹約にご利用いただけます。


「写真の端まで全部見せる」ライブ壁紙エンジン(有料機能)

さて、ここからが管理人が一番こだわった機能の話です。

スマホの壁紙って、写真の中央部分を切り取って表示する仕様なんですよね。

そこ切り抜くの!? ——管理人の場合、わが子の写真を壁紙にしたら、肝心の子どもが見切れるという悲劇が頻発しまして。

「写真の端から端まで全部ちゃんと見せろ!!」というわけで作ったのが、ライブ壁紙エンジンです。

ホーム画面のページを横にスワイプするとき、それに合わせて壁紙が水平にスクロールする——AndroidのWallpaperService機能を活用して、写真の端から端まで楽しめる仕組みを作りました。

さらに、「ストローク強度」スライダーもつけました。

たとえばこういうことです。

  • 強度 1.0 → 写真の左端から右端まで全部スクロール
  • 強度 0.8 → 両端10%を切り捨てた80%の範囲をスクロール
  • 強度 0.5 → 中央50%の範囲だけをゆっくりスクロール

要するに、どこまでスクロールさせるかを自分好みに設定できるというわけです。

管理人的にはこれが超お気に入りでして、この機能のためにアプリを作ったと言っても過言ではありません。

本機能はPro版の有料機能です。ただ、特定の1枚に限り制限なしで試せるTrialモードがあります。
まずはそちらでぜひ体験してみてください。

撮影日の表示機能 — 「これいつだっけ?」にこたえます

実は自分でアプリを使っていて、「これいつ撮った写真だっけ?」と気になることが多くて。

なのでもうひとつ、管理人のお気に入り機能を紹介します。

壁紙の上に撮影日を表示できる機能です。表示位置もフォントスタイルも自由に変えられます。

さらに、背景の明るさを自動で検知して、明るい壁紙なら黒文字、暗い壁紙なら白文字に自動で切り替えてくれます。
どんな写真でも読みやすい状態をキープできる、地味に凄い機能です。

こちらもPro版の機能です。


開発よりアプリ公開のほうが100倍しんどかった件

ぶっちゃけ、開発自体はそんなにしんどくなかったんです。

自分が欲しいものを作っているわけですから、楽しくて仕方ない。

しんどかったのは、アプリを「世に出す」ところでした。

個人アカウントでGoogle Playに公開しようとすると、自宅の住所や電話番号が公開されてしまう問題がありまして。

それは絶対に嫌だということで、まず開業して、バーチャルオフィスを借りて、そのあとGoogleの審査手続きがまあ大変で・・・。

この話だけで記事1本書けます。個人開発でアプリを公開したい方に向けて、近日記事にする予定です。


ImmiChangeで、思い出ライフをはじめよう

そういうわけで、ImmiChangeが生まれました。

大切な人の写真が、スマホを開くたびにふと目に入る。
それだけで、ちょっと元気が出たり、ちょっと優しい気持ちになれたりする。

Androidでもその体験をしたくて、管理人はこのアプリを作りました。

Immichをまだご存知でない方は、これをきっかけにぜひ調べてみてください。Googleフォトに匹敵する使い心地で、自分のデータを自分で管理できます。

ImmiChangeは下のリンクから無料でダウンロードできます。
管理人と一緒に、素敵な思い出ライフを送りましょう!!

※2026/5/31まで期間限定

こんなちっぽけなブログをご視聴いただいている大切な読者様へ、ささやかなプレゼントです。

Pro機能のプロモーションコードを20個用意しました。

先着順ですが、どうぞご査収ください!!

個人開発なもので、Pixel9とPixel7環境でしか実機テストできていません。

皆さんの端末でうまく動いたか、ここでエラーが出たよっていう話であったり、フィードバックをいただけるととてもうれしいです。

プロモーションコードはこちら

コメント

タイトルとURLをコピーしました