「自分のアート作品を見せるアプリを自分で作る」というアイデアは、アーティストなら誰でも一度は思い浮かべるものではないでしょうか。
Antigravityを使って実際にやってみました。iOS・Android同時リリースまでの全プロセスを、技術的な内容だけでなくコンセプト段階から正直に記録します。
コンセプト設計——「ギャラリーアプリ」ではなく「作品の延長」として考える
最初に決めたのは、このアプリを「ポートフォリオ表示ツール」ではなく「作品そのもの」として設計するということです。
一般的なポートフォリオアプリは機能が主役です。「写真を見る、タップすると拡大、スワイプで次へ」——これは機能は正しいですが、美術展示の体験とは異なります。私が目指したのは、アプリを開いた瞬間から「この人の世界観だ」と感じてもらえる体験でした。
具体的には次のことを設計段階で決めました。
インタラクションを最小化する: ナビゲーションボタン、ハンバーガーメニュー、タブバーはすべて排除。作品に集中できる余白を最優先にします。
色を作品に合わせる: UI要素の色は作品に合わせて動的に変わる(Dynamic Color)。背景色が作品のトーンに寄り添う。
テキストは最低限: 作品タイトルと制作年のみ。長い説明文は不要。
この方向性をAntigravityのAGENTS.mdに書き込んでから開発を始めたことで、後のやりとりがスムーズになりました。
技術スタックの選択——React NativeとExpoを選んだ理由
iOS/Android同時リリースを前提にしているため、ネイティブで2つ作るのではなくReact Native(Expo)を選びました。
AntigravityはReact NativeとExpoのコード生成が安定しており、「画像ギャラリー+全画面表示+スワイプナビゲーション」の基本構造は最初のプロンプトで80%完成しました。
AGENTS.mdの内容(抜粋):
- アーキテクチャ: React Native + Expo SDK 52
- 画像表示: expo-image(パフォーマンス優先)
- 状態管理: Zustand(シンプルなグローバル状態のみ)
- アニメーション: react-native-reanimated v3
- デザイン原則: 最小限のUI要素、作品が主役
Dynamic Colorの実装(画像の支配色を取得してUIに反映する処理)はAntigravityだけでは難しく、expo-imageのcolor取得機能とreact-native-reanimatedを組み合わせる部分は、自分でコードを読んで理解しながら調整する必要がありました。
ただ、Antigravityに「expo-imageから支配色を取得してアニメーション付きで背景色を変えたい」と伝えたところ、正確ではないもののベースになるコードを出してくれたので、そこから修正する形で進めることができました。
Apple / Google審査で詰まった2つのポイント
Apple: Privacy Manifestが必要だと分からなかった
初回申請がリジェクトされた理由の一つが、Privacy Manifestファイルの不備でした。サードパーティライブラリ(expo-imageなど)を使っている場合、そのライブラリのプライバシー利用を宣言するPrivacy Manifest(PrivacyInfo.xcprivacy)が必要です。
Antigravityに「このエラーを解決したい」とリジェクト文を渡したところ、必要なファイルの内容と配置場所を教えてくれました。ただし、Privacy Manifestの内容が正確かどうかは自分で確認する必要がありました。Apple公式ドキュメントと照らし合わせながら修正して再申請し、通過しました。
Google Play: ターゲットAPI要件の変更
Google Playは定期的にターゲットAPIレベルの要件が変わります。申請時点でAPI level 34以上が必要でしたが、Expoのデフォルト設定がそれを満たしていなかったためリジェクトされました。
app.json(またはapp.config.js)のtargetSdkVersionを更新してビルドし直すだけで解決しました。Antigravityに直接「このリジェクト理由への対処を教えて」と聞いても回答は出てきましたが、Expo固有の設定ファイルとAndroid Studioの設定の違いに混乱したため、Expoの公式ドキュメントを参照しながら自分で修正しました。
リリース後に分かったこと
アートアプリで特徴的なのは、ダウンロード数より滞在時間が重要な指標になるということです。
Analytics(Firebase)で確認すると、1画面の平均表示時間が通常のアプリ(数秒程度)より長く、1枚の作品に数十秒留まってくれるユーザーが多かったです。これは「見せ方」への投資が機能している証拠だと感じました。
App StoreのレビューにはSNSではつながっていない人からのコメントが届くことがあり、アプリという形でアートを届けることの特殊な価値を実感しました。
これから同じことをやりたい人へ
Antigravityでアートアプリを作るとき、一番重要なのは「コンセプトを先に言語化すること」です。
技術的な構造よりも「このアプリを開いた人にどんな体験をしてほしいか」を文章にして、AGENTS.mdに書いておく。そうするとAntigravityの提案が、機能的に正しいだけでなく「この世界観に合っている」ものになってきます。
アートとコードの両方が好きな人には、Antigravityでの個人アプリ開発は特別な体験になると思います。自分の作品を、自分で作ったプラットフォームで届けることの面白さを、ぜひ体験してみてください。