1. ninjinkunの声日記
  2. LISTENアプリ開発振り返り: 企..
2025-12-25 25:02

LISTENアプリ開発振り返り: 企画からリリースまで編

1 Mention

開発開始時の様子

技術に着目した振り返り

サマリー

リスナーアプリの開発過程を振り返り、プロダクトマネジメントや技術選定の経緯を紹介しています。開発は12月から始まり、最初のリリースに至るまでのタイムラインや機能の実装について詳しく語っています。リッスンアプリの開発を振り返る中で、審査プロセスやアプリ名の選定、開発期間の苦労と機能追加の進捗について触れています。特に審査の厳しさやアプリ名の変更がリリースに与えた影響が強調されています。

00:00
こんにちは、ninjinkunです。メリークリスマスですね。 このエピソードは、TechVoiceAdventカレンダーの最終日、12月25日のエピソードです。
TechVoiceAdventカレンダーの皆様、ご参加ありがとうございました。 純木さんが自分が立ち上げたカレンダーで、ほとんど全部純木さんがやってくれたんですけど、
とても多くの人に参加してもらえて、最初は結構公開がギリギリだったんで埋まるかなと思ったんですけど、
自分と秋子さんが2回入れたりしてますが、それでも多くの人に入れてもらえて、結局全部埋まったんで、とても良かったなと思います。
ヤンチャさんだけ上がってないですね。これはどういうことか、ちょっとまたSNSで聞いてみようと思います。
あとはヘンテコさんっていう、この方、昔からの知り合いなんですけど、久しぶりにヘンテコさんを見たし、ポートキャスターやってるんだというのが知れて良かったですね。
Gitの劣質についてお話しされていました。 これは結構引き応えあるんでお勧めですね。
12月22日の回かな。
昨日はケチインさんが今年使い始めて、今も使用しているサービスを紹介ということで、最初にリスナーを挙げてくださってありがとうございます。
いろいろね、結構私と使っているサービスもかぶってるんで、自分でブログをホストしてるから、いろいろそこで使っているサービスがあるってことですね。
Obsidianとか私も使ってますね。クロードコードは最近使わなくなって、今はアンチグラビティを使ってます。
なんとなくあって、でもなかなか楽しいアドベントカレンダーになったんじゃないかなと思います。 皆さんありがとうございました。
リスナーアプリの開発開始
今日はですね、リスナーアプリ開発の振り返りというのをタイトルに入れてるんですけど、
すでに今までにFlutter編とGraphQL編というのをエピソードしてあげてますので、この回では全体の総括みたいなことをしようかなと思うんで、
どちらかというとですね、プロダクトマネジメントという製品企画みたいな方向の話になるかなと思います。
あんまり開発の細かいところも多分話すと思うんですけど、全体のタイムラインをおさらいするみたいな感じで話そうかなと思います。
まずリスナーアプリの開発が始まったのが、2024年の12月、ちょうど今ぐらいですね。
福良として始めまして、これはですね、私から近藤さんに持ち込み企画なんですよね。
リッスン達がですね、去年ハマってこの日記を取り始めたんですけど、
やっぱね、ポッドキャストサービスでアプリがないのって辛いよなぁとずっと思ってて、
近藤さんも要望としてはいっぱい来るけど、何分ね、近藤さん一人でいろいろなサービスを複数やってますんで、
なかなかアプリまではさすがにちょっと手が回らないということで、何回か検討されたっぽいんですけど、
調べては撤退するというようなことがあったらしく、そこに自分がですね、
どうやらこの界隈でアプリを作るのは俺だけっぽいから、これは俺がやらねばならんという謎の気持ちになりですね、
そういうわけでアプリ開発10年選手の私がやってきましたよという感じで、
近藤さんに話を持ちかけて、じゃあお願いしますというふうに言ってもらえたんで、そこから開発がスタートしました。
そんな感じで始まったんですけど、最初にアプリ開発の合宿をやったんですよね。
私が京都のアンノウン京都に泊まりに行って、そこで数日近藤さんと開発を行って、最初の初期設計から認証とかですね、
とかAPIとかそのあたりのサーバーサイドとクライアントのその通信とかそのあたりを決めて、それで終わったんじゃないかな、確か。
多分そのあたりは去年のリストニュースとかに回が残っていると思います。
そこから開発始めたんですけど、まずFlutterとReact Nativeの比較とかから始まって、どういうスタックを使うかを決め、
1月にはアプリを書き始めたような気がします。
1月に多分その技術選定があったんじゃないかな。
なので12月の合宿ではどういう風に進めていくかという段取りを決めて、あとは近藤さんとの分業の方式を決めて、
とかベーシックなUIですね、だけ決めて終わって、実際の技術選定が1月にあって、その後で実際の行動を書き始めたという感じだったと思いますね。
機能の実装と初期リリース
確か2月ぐらいには、2月か3月かな?2月だと思いますね。
もう最初にタイムラインを読み込んでエピソードが再生できるところまでは動いたんですよね。
それでもう再生できました!とか言ってめっちゃ喜んでた記憶があります。
でも2月に最初のプロットが動いてからですね、実際のリリースは9月なんですけど、その後7ヶ月間何があったのかというのが時代になるところなんですけど、
ここはですね、前にリッスンニュースでも一回振り返ったんですけど、ちょっと機能を盛り込みすぎましたね。
やっぱりリッスンのアプリだったらこれぐらいのことはできないといけないっていうハードルを上げすぎたなと思っていて、そこで機能を盛り込みすぎた。
この一つの要因には、AIによってコードがすごく早く書けるようになったんで、これぐらいならできるだろうというので、
すごく非常に気が大きくなって機能をいっぱい追加すぎたというのも一因としてあります。
あとは、リッスンというものが実はめちゃくちゃ複雑なサービスになっていて、それをアプリに実装し直すだけでもかなりの作業になるというのもあってですね、
いろいろ結果的に見ると、ちょっと初期リリースにはボリュームがでかすぎたなというのがありますね。
初期リリースの段階では、タイムラインとかフォローチューとかプレイリストのタイムラインが見れて、
自分のポッドキャストが開けて、さらに再生すると下にピュッてプレイヤーが出て、プレイヤーを開くと概要が見れて、文字起こしが見えて、
文字起こしは自動でスクロールしてとか、コメントができて起こしがつけるというような機能が入っていたんですけど、
まず、何でこういう初期実装にしたかというと、今回の企画自体も自分がやってるんで、基本的にはニンジンくん企画で作られたアプリだと言っていいと思うので、
どういうふうに意思決定したかを話そうと思うんですけど、リストの中でいろんなCGMとかUGC、そういうユーザーがコンテンツを生成する系のサービスで、
自分が大事だと思っているのがフィードバックなんですよね。
コンテンツを作る人がいて、それを読む人や聞く人がいて、それに対するフィードバックがあるっていうのが大事だと思っているので、
リストで言うとそれは推しとコメントになるというので、最初にアプリを企画するときに、まず聞く機能がないと話にならんだろうと思いました。
ポッドキャストアプリなんでね。聞く機能は絶対いる、それに対して何かリアクションができないとこのアプリを使う意味はないと思ったので、
欲しいは絶対いる、そうなるとコメントもあった方がいいぐらいな感じで企画しましたね。
聞く機能とそれに対するフィードバックが一番最初のコアとして定義して作ったので、
今から思うとですね、文字起こしとか、あとはお知らせとかはもしかして削れたかもなとは思います。
それを削ってもコアは成立するんで、リストアプリを使う動機には十分持ってきたかなと思うんで、
そのあたりを削ってもう少しリリースを早めるという意思決定は今から思うと終わりだったかもなと思いますね。
それでも短縮できたのは数週間かなとは、1ヶ月まで短縮できないと思いますけど、
そういう感じで最初のアルファを決めたので、そのあたりの機能が最初に入りました。
やっぱり文字起こしにスクロールが追従するとかこの辺の作り込みは結構面倒くさかったですね。
これ削れたらデカかったかもなとは言ってもね、文字起こしっていうのはリッスンの結構売りの機能の一つでもあるので、
これを削るとただのPodcastクライアント起こしが連打できる番じゃんという感じもするんですよね。悩ましいとこですけど。
文字起こしは結構裏側はですね、
そういう文字起こしのためのトランスクリプトのためのファイルフォーマットがあって、
それをクライアントで解釈してこういうふうに和写とそのスクリプトっていうのをUIを生成して、
さらに再生に合わせてそれをスクロールさせるっていう実装も入ってるんで結構コードロー的には多いですね。
そんな感じで聞く機能とフィードバック中心で作りました。
最初はダウンロード機能とかそういうのがなかったので、これを最初から作れなかったのは完全に正解でしたね。
めちゃくちゃ作るのが重かったので、これを外して正解でした。
ベータ版の公開と調整
あとはリリース前に大変だったのはですね、
まずはベータ版を7月ぐらいに公開したんじゃないかな。
ListenのDiscordでベータ版をやりますというのをやってですね、
やっぱりアプリはいろんな端末で使われるので、こっちだけではわからないことが多いので、
いろんな人に使ってもらってリリース前にバグを潰そうというのをやりました。
アプリは公開するとストアのレビューがつきますんで、あんまり低い品質で公開するといろんなバグがありますとかそういうレビューで埋まっちゃって、
後から来る人にとってこれは良くないアプリなんだなという判断をされてしまうんで、できるだけ品質を高めてから出すというのが必要で、なのでベータ版をやりました。
ここでかなりAndroidの不具合というのがいっぱい出てきて、ひどいのは最初はバックグラウンド再生がちゃんとできてなかったとか、
そういう検証不足というのがだいぶあらわになって、この辺りは私がプライマリーがiOSの端末を使っているので、
Androidの検証がまだ不足していたというのが、途中でじゅんぼくさんからピクセルをもらってきて、それで検証はしていたんですけど、
不足していたというのもあるし、あとはAndroidの一部の端末で挙動がちょっと違っているというのがあって、これはAndroidあるあるなんですけど、
なかなかそれの全容を使うのが難しくて、今でも不具合がちょっとあるというふうに聞いてますけど、
少なくとも基本機能が使えるレベルまで持っていくのに、ここは結構時間がかかりましたね。
なんでかというと、この音声再生の辺りは、フラッターのレイヤーではなくてOSのコアのライブラリを叩いているので、
この辺りの挙動はOSごとにも違いがあるし、そのOSのさらに下のハードウェアのレイヤーとの連携がOSレイヤーにあるんですけど、
Androidはこの辺りで結構端末メーカーの癖みたいなのがあったりするので、どうしてもなかなか全部不具合を潰すのは難しいというのがあります。
ベータ版は、結局7月中ぐらいである程度バグを潰したので、8月には出せそうかなと思ってたんですけど、
アップストアの対応がだいぶ長引いたというのがありまして、リストアプリはAndroid版の方が先に出てるんですよね。
コードとしては、iOSとAndroidは同じフラッターのコードですので、同時にリリースするつもりだったんですけど、
このアプリには審査というのがあって、AndroidだとGoogle Play、AppleだとiOSだとApp Storeというやつがそれぞれ、このアプリはある程度不具合がないかなとか、いろんなレギュレーションに沿ってるかなという審査があります。
アプリ名の選定と審査の厳しさ
Google Playさんは審査がめちゃくちゃゆるくて、結構すぐ通るんですけど、Appleさんは非常にこの審査が厳しいことで有名。
昔はすごい時間もかかったんですけど、最近は審査は2,3日で終わるように高速化されてるんですけど、それでも結構かかりました。
今お知らせを見てると、Google PlayでのリリースとApp Storeでのリリースは2週間ぐらいずれてるんですけど、これは裏話としてはアプリの名前をListenというアプリにして出したら兼ねられたっていうのがあって、
これはListenというのは非常に一般的な名前なんで、ジェネリックな名前は商標とかを取ってない限りは取れませんということを言われて、Listenは商標とかも取ってないんですね。
なので兼ねられたと。
いろいろListen、Podcastとか名前を変えてみたんですけど、ことごとく兼ねられまして、このまたリジェクトされましたってやつをだいぶ5,6回ぐらいやったと思います。
というので、アプリ名で実はつまづいてましたっていうのがありますね。
最終的にはこれ見てもらうと分かるんですけど、Listen.styleっていう名前で申請してるんですね。
なので、これはListenはすでにドメインは保有してるので、ウェブサイトに行くとListen.styleでサイトが表示されますけど、
これは明確にListenが保有している名前なので、これは認めざるを得ないだろうというので、最終的にはListen.styleにしたと。
ただドメイン名に見えてもあれなんで、一応Listenだけ大文字にしてますっていう感じなんで、
この.styleって何だろうって思ってる人いるかもしれないんですけど、実はApp Storeで審査に通すためです。
これは結構音団場になるまで自分も気づいてなかったっていうか、今まで作ってきたアプリ名は多分それなりにユニークなアプリ名だったんで、
引っかかったことなかったんですけど、こういうジェネリックなアプリ名で引っかかるっていうのが初めてだったんで、
うわ、マジかというので、なかなか苦労しました。
リリースまでの開発期間
ストアの対応のために利用規約を用意したりとか、そういう細かい会社の方に法人番号を取ってもらったりとか、
いろいろすでに知っていることは先回りして準備できたんですけど、
これでちょっとリリースが2週間くらい遅れたのは自分的には痛かったなと思いますね。
そんなこんなで、一番覚えている苦労はアプリ名ですね。
多分これはリストニュースでも喋ってないので、初めて公開する裏話です。
そんなこんなでリリースしまして、
だから仕掛け、開発期間としては、実質的にはコードを書き始めたの2月から6月くらいまでが割と書いてたかな。
で、7月で不具合対応だから、6ヶ月くらいだったかな。
5ヶ月、6ヶ月くらいですかね。
なかなかこの時は不具合だったんで、週末にちまちま書くみたいな感じで時間をかけれなかったのがありますけど、
にしても半年はちょっとかかりすぎたかなと反省しております。
そんな感じでリリースできて、そこからいろいろ機能を追加して、大きなダウンロード機能ですね。
最初は手動ダウンロード機能をつけて、その後で自動ダウンロード機能をつけたと。
これを段階的にしたのは完全に良かったなと思ってまして、これはマネジメントがうまくいった例かなと思います。
手動ダウンロードっていうのは、このアプリの中に状態を持つので非常にデバッグが大変になるし、
もし何か不具合があった時にアプリが使えなくなっちゃったりする可能性があるんで、結構慎重に作らなくてはいけないんですけど、
それぐらい実装内でデバッグの難易度が高い機能になるんで、結構時間がかかるんですけど、
先にポチポチしてダウンロードする機能を作って、これでとりあえずはダウンロードできますっていう風にして出して、
この手動ダウンロードをベースにしてこれを自動化する部分を付け加えるというのは、なかなかうまく拡張できたんじゃないかなと思いますし、
早いタイミングでダウンロードを提供できたのも良かったかなと思いますね。
9月に初頭にアプリを出して、10月の末ぐらいで手動ダウンロード機能をリリース。
それを自動ダウンロードはさらにその翌年11月真ん中。
というわけで結構自分的には良いペースでその後は拡張できてるんじゃないかなと思いますね。
フィードバックをいろいろいただいているのもありがたいですし。
で、あと何かあるかな?
そうそう、今はついにエピソード投稿機能を作っていて、
これを収録している段階でとりあえず機能が動き始めています。
なのでこのエピソードも、もしかしたらその投稿機能を使って投稿してみるかもしれません。
聴いている人は全然違いが分からないと思う。
違いが分かったらそれは不具合なんですけど。
一応動き始めていますね。
ここからさらにUIのブラッシュアップとかをして出すと、
リリースは来年になるんですけど、ここからいろいろ付け加えたり削ったりする。
自分はこういうのは木の中から木を切り出すような作業だなと思っているんですけど、
そういう風に磨いていく作業がここからかなって感じですね。
でも最初に去年の段階では、まずはキクアプリとして出して、
その後段階的に機能を追加して、そしてエピソード公開までいきたいという風に考えていたので、
今のところはその考えているロードマップに沿って動いているかなと思います。
今後の機能追加と展望
というのが大まかな今年1年、本当に丸々1年ですね、リッスンを開発してきた振り返りになります。
来年はエピソード投稿機能を出して、その後は多分ポッドキャストを作るという機能を作らないといけないんじゃないかなと思ってますね。
リッスンというのがポッドキャストできるらしいとか、こういう日記を始めてみたいと思った人が、
今だとですね、ウェブに行かないと新しくポッドキャストを開設できないので、
これをアプリに組み込むということが必要になるかなと思いますね。
ただ番組の開始も実は結構いろんな機能があって、
外部の番組をインポートしてリッスンに認証済番組として配信するという方法もあるし、
リッスンのホスティングで始めるという方法もあるし、
これを全部実装するのは結構大変なんでどうしようかなとか。
なので、今のエピソード投稿機能は完全にリッスンで既に番組をやっている人向けの機能なんですけど、
今後は新しく始める人向けの機能を追加しないとなというフェーズに入っていくかなと思いますね。
そういうのができて初めて、もっとリッチな編集とか、音声の編集とか、
あと最近Anchor.fmっていう、今はSpotify for Creatorsになっている、
そのポートキャストを簡単に始められるアプリの機能とかを、
自分は使ったことがなかったんで、
昔のいろんな人のスクリーンショットとかを見て、こんな風だったんだっていうのを勉強しているところなんですけど、
できればああいうちょっとリッチにいろんな編集機能を持ったようなアプリにできるといいなという希望はありつつ、
結構作るの大変そうなんで、将来への課題として持っておこうかなという感じです。
というわけで、長々とお話してきましたけど、
去年から開発を始めたリッチなアプリ、今年ようやく出せました。
それは良かったけど、ちょっと時間かかりすぎたかなというのがあります。
でもその後の機能追加は結構順調にやってこれてるんじゃないかなと思いますし、
来年にはいよいよエピソード投稿も出せるかなという風に感じで動いてますんで、
今後も頑張っていきたいなと思います。
というわけで、TechVoice Advent Calendar、12月25日、
にんじんくんのリッスンアプリ開発の振り返りでした。
ありがとうございました。
25:02

このエピソードに言及しているエピソード

コメント

スクロール