こんにちは、しらかわるーむの秋です。
前回のまとめ(くまモビ v0.37 まで)を書いてから数日。その間に、くまモビ・ニコ生ビューア(ちえちゃんと秋ちゃん)・まる見えくん・閲覧くんと、複数のアプリをまさに行ったり来たりしながらいじってました。「今日はこれ!」と1本に集中できないのが個人開発のリアルなところで、朝はくまモビの地図、昼はニコ生の読み上げ、夜はまる見えくんや閲覧くんの審査対応……みたいな数日でした。
「1つのアプリの完成した話」ではなく、「数日ぶんの全アプリの動き」をまるっと1本にまとめたのがこの記事です。個人開発って実際こんな感じで進んでるんだ、という空気ごと持って帰ってもらえたら嬉しいです。それでは、順番に、というより実際やった流れのまま、ごちゃっとまとめていきます。
この記事のポイント
- くまモビをほぼ全機能無料化、スタンプラリー以外は解放。クラファンも
- ニコ生ビューアに読み上げ声の選択を追加、横画面対応と不具合修正も進行中
- まる見えくんと閲覧くんが揃ってGoogle Play製品版リリースを達成
① くまモビが「ほぼ全部無料」になりました
一番大きな方針転換がこれ。くまモビは観光スポット情報やルート検索を売りにしてるんですが、そこを見るのにお金を取るのは違うなと。ということで、スタンプラリー(チケット制)だけを有料にして、それ以外はほぼ全部無料開放しました。
- 観光スポットの詳細も無料で見られるように
- ロックがかかるのは「スタンプを押す」ボタンだけ
- 交通・ルート系はもともと全部無料のまま
「まず使ってもらって、旅の記念にスタンプを集めたい人だけチケットを買う」という形に落ち着きました。バージョンでいうと v0.39.0 での変更です。
② そのくまモビ、クラウドファンディングがもうすぐ公開です
しれっと大ニュースの予告なんですが、CAMPFIRE でクラウドファンディングを準備中です。しかもSocial Good(社会貢献)カテゴリで承認をいただけて、事務手数料ゼロという形で走れることになりました。ページ自体も審査対応がかなり進んでいて、あとちょっとで公開できるところまで来ています。
くまモビはもともと、僕が熊本で2回の地震を経験したことがきっかけで作り始めたアプリ。その背景を汲んでもらえたのは、正直かなり嬉しかったです。9月末〜10月の一般公開に向けて、今は Google Play のクローズドテスト中。クラファンが公開できたら、あらためてこのブログと配信でお知らせします。応援いただけたら泣いて喜びます。
③ サムネイル祭り(ワンピース像ぜんぶ&人吉・八代方面)
観光スポットの一覧、写真が入ると一気に“それっぽく”なるんですよね。この数日でかなりの数のサムネイルを追加・差し替えしました。
- ワンピース像:フランキー/ジンベエ/ゾロ/ロビン/ウソップ像
- 五木バンジー、彦嶽宮(山鹿)
- SL人吉(人吉鉄道ミュージアム)、くまモンポート八代
- ついでに熊本県運転免許センターも新スポットとして追加
写真は自分で撮ったものと、BlueskyやThreadsで許可をいただいて提供してもらったものが混在していて、それぞれ出典と許諾状況をコードのコメントとデータに全部残すようにしています。ここはIPも絡むので、地味だけど一番きっちりやってる部分です。ワンピース像は熊本県からの包括許可(クレジット表記なし)、それ以外は個別に許諾フィールドで管理、という二本立て。
④ スタンプ帳から地図へ“ジャンプ”できるように
これは自分でも気に入ってる新機能。スタンプ帳の丸いスタンプ枠をタップすると、そのスポットの地図までひとっ飛びして、オレンジのピンと詳細カードが出るようにしました。カードを閉じると、ちゃんと元のスタンプ帳のページに戻ってきます(最初、なぜかホームタブに戻る挙動になってて直しました)。
地味に苦戦したのが「地図がその場所にちゃんと寄ってくれない」問題。カメラの初期位置を目的地に合わせつつ、少し遅れて flyTo でもう一度寄せ直す、という二段構えでようやく安定しました。ログを見て真因を確定してから直す、いつものやつです。
⑤ ルート検索に「歩き出しの線」
ルート検索の結果で、出発地から最初のバス停までの徒歩ルートを、白い出発ドット付きの点線で描くようにしました。「まずどこまで歩くの?」が一目で分かる、細かいけど効くやつです。
ちなみにこの徒歩ラインは、あえてまっすぐな点線で引いています。というのも、実際の道なりにリアルタイムでルートを計算して描く方法(OSRM の公開サーバーを叩くやり方)は利用規約の面で本番アプリに常用できないんですよね。無料の公開デモサーバーは常時アクセス前提のサービスでは使えない、という壁があって。なので徒歩ルートは、事前に公式の shapes.txt から生成しておいたものを使い、その手前の「出発地→乗車バス停」だけは規約に触れない直線点線で表現する、という割り切りにしました。見た目はシンプルですが、ここは規約をちゃんと守った上での設計判断です。
このあたりの前段として、少し前には
- クーポンを9カテゴリに拡張
- 高速なんぷう号の運賃データ整備
- 徒歩ルートがぐるっと余計にループする不具合の除去
- 効果音がたまに鳴らない問題(使い捨てプレイヤーを毎回作り直す方式で解消)
なんかも片付けてました。くまモビだけでこの数日、v0.38 台から v0.39.3 まで進んだ計算です。
⑥ ニコ生ビューア:声を選べるようになりました
ここからは「ちえちゃんと秋ちゃん」(ニコ生のコメント読み上げアプリ)。
大きいのは読み上げの声を選べる機能。iOS版を参照しつつ、Android側はネイティブ(Kotlin)でがっつり実装しました。ハマったのは「声を変えると読み上げ速度が勝手にリセットされる」バグで、必ず“声→速度”の順で適用するというルールを徹底して解決。こういうの、原因が分かるまでは本当にモヤモヤします。
あわせて、
- コメントをダブルタップするとその人の過去コメント履歴が半透明で出るオーバーレイ
- ダークモードを各画面に拡張
も入れました。
⑦ ニコ生ビューア:横画面対応に着手
そして今まさに進行中なのが横画面(ランドスケープ)対応。iOS版で先にちえさんが実装してくれていたので、それを“正”として合わせにいってます。犯人はだいたい maxWidth: 440 系の横幅制約で、横向きにすると左に寄って黒帯が出ちゃうやつ。ここを画面の向きに応じて外す方針で進めています。Android版は現在 v2.9.1 まで来ていて、横画面はこの続きで仕上げていく予定です。
あわせて、音量ダイヤルの外側をタップしても閉じなくなってた不具合も修正済み。ダイヤルの本当の中心が画面の中心とズレていて、外側判定の距離が短く見積もられていた……というのが真因でした。ログ([VOL-DIAL])を採ってから直したので、一発で決まりました。憶測でコードは触らない、を今回もキープ。
⑧ まる見えくん:ついに製品版リリース承認!
最後に「フォロー外しまる見えくん」。Google Play の製品版アクセスがついに承認されました! 一度リジェクトされてから2週間、地道に直しての再提出だったので、これは素直に嬉しい。
正直に言うと、クローズドテストはテスターさん頼みというより自分がメインのデバッガーとして潰した形。目立ったところだと、
- 履歴取得後にフォロー状態を誤判定する問題
- ニコ生の視聴人数が公式とズレる問題
- Xログイン時に差し込まれる電話番号認証ステップの検出と案内
あたりを直しました。リリース後の“命綱”として、Firebase に登録している SHA指紋(Play アプリ署名鍵)が一致しているかの確認だけは絶対に外せないので、そこも念入りにチェック。
⑨ 閲覧くん:こっちも製品版リリースしました!
そしてもうひとつ、「閲覧くん − かわいいファイルマネージャー」も製品版をリリースしました! こちらも約2週間・12名のクローズドテストを経ての本番公開です。
閲覧くんは、スマホの中の写真・動画・音楽・書類をサムネイル(縮小画像)で目で探せるファイルマネージャー。広告なしで、3日間の無料お試し+買い切り100円というシンプルな形です。テスト期間中に自分で見つけて直したのは、
- APKのインストール画面が出ない問題(
ACTION_INSTALL_PACKAGEまわりの対応で解決) - 他アプリから切り替えたとき音が止まらない問題(オーディオフォーカスの処理で解決)
- スワイプの感度がシビアすぎた問題(発火条件をゆるめて解消)
- 「買ったのに反映されない」を防ぐ購入処理の安全化
このあたり。ついでに、長押しメニューからファイル共有もできるように(ShareProxyActivity 経由)しておきました。「タップで開く・長押しでファイル操作」というAndroidらしい操作感に寄せています。
まる見えくんと閲覧くん、同時期に2本とも製品版まで持っていけたのは地味に達成感があります。
まとめ:数日でこれだけ、が個人開発
こうして並べてみると、たった数日でも「無料化」「クラファン公開間近」「新機能」「本番リリース」と、けっこう濃い数日でした。1本のアプリに集中できたら楽なんでしょうけど、あっちを直してこっちを触って……を繰り返すのが、僕の開発スタイルであり、たぶん楽しいところでもあります。
くまモビは秋の一般公開に向けてラストスパート、ニコ生ビューアは横画面対応の仕上げ、まる見えくんと閲覧くんは本番運用の見守り。引き続き配信でもやっていくので、よかったらのぞきにきてください。
それでは、また次の進捗で!
コメント