さて。
唐突ですが、皆さんのスマホの壁紙、何にしていますか?
管理人は最近、そこにちょっとしたこだわりが生まれまして。
わが子の写真を、毎日くるくる変えながら楽しんでいます。
・・・というのも、自分でアプリを作ったんですよね。
今回はその話です。楽しんでいってください!!
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環境でしか実機テストできていません。
皆さんの端末でうまく動いたか、ここでエラーが出たよっていう話であったり、フィードバックをいただけるととてもうれしいです。


コメント