1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

おすすめしない・追跡しないニュースアプリを作った話

1
Posted at

はじめに

ニュースアプリを見ていると、子育てのことばかり表示されたり、興味のない芸能ニュースが出てきたりするのにうんざりしていました。
いらないカテゴリを自分で除外できて、閲覧の傾向を収集しないニュースアプリが欲しいのだと気づきました。
探しても見つからなかったので自分で作ってリリースしました。
リリースから10日ほどでダウンロードは10件です。前回の園芸アプリのように意外と伸びる、ということはまだ起きていません。

作ったアプリについて

アプリ名

そのまま瓦版

どんなアプリ?

ユーザーの傾向で記事を選ばないニュースアプリです。
NHK・朝日新聞・毎日新聞・時事通信・東洋経済・ITmedia・GIGAZINE・ナタリーなど12媒体・21本の公開RSSから見出しと概要を集め、全ユーザーに同じ記事を時系列で並べます。

やらないことを決めるところから始めました。

  • おすすめしない。閲覧履歴で並び替えをしません
  • 追跡しない。何を読んだかは端末の外に出ません。分析SDKも入れていません
  • 広告を出さない。今後も出しません
  • 通知しない。読みたいときに開くだけです
  • サムネイルを出さない。見出しと媒体名だけの一覧です

ユーザーができるのは「見たくないものを除くこと」だけです。

  • カテゴリ除外(芸能・スポーツなどを消す)
  • キーワードミュート(特定の人名や話題を消す)
  • 媒体の非表示(見たくない媒体をまるごと消す)

記事本文はアプリで表示せず、タップすると各媒体のサイトをアプリ内ブラウザで開きます。
本文を取り込んで再配信しないことで、報道機関へのアクセスをそのまま返す形にしています。

タイムライン画面(ホーム画面)

全記事が新しい順に1本で並びます。タブもおすすめ枠もありません。既読は薄く表示されます。

タイムライン

カテゴリ除外画面

見たくないカテゴリをスイッチで消します。除外しても記事の取得と保存はしているので、解除すれば過去分も見えます。

カテゴリはアプリが記事の内容を解析して付けているのではなく、各媒体が配信しているカテゴリ別の RSS(NHK の政治・経済・スポーツなど)をそのまま使っています。
総合フィードしかない媒体だけは見出しのキーワードで簡易的に振り分けていますが、閲覧履歴は一切使いません。

カテゴリ除外

設定画面

「現在の除外で何件隠れているか」を数字で出しています。フィルタが効いていることを確かめられるようにしたかったからです。

設定

最近読んだ記事

読みかけで中断しても戻れるように、最近開いた記事の一覧を置いています。

最近読んだ記事

このアプリについて

「追跡していないもの」を明記した画面です。思想の説明をアプリの中に入れました。

このアプリについて

技術スタック

  • フロントエンド: Flutter(iOS 先行、Android はビルドが通る状態だけ維持)
  • 状態管理: Riverpod
  • ローカルDB: drift(SQLite)
  • 課金: in_app_purchase(StoreKit)
  • 記事表示: url_launcher の SFSafariViewController モード
  • フィードパーサ: 自作(RSS 2.0 / RSS 1.0(RDF) / Atom の3形式)
  • 開発: Claude Code

構成を選んだ理由

  • Flutter は前作の園芸アプリでも使っていたので引き続き利用
  • フィードパーサを自作したのは、RSS 2.0・RDF・Atom の3形式と、壊れた XML への耐性を自分で制御したかったから。実際のフィード21本を fixture として保存してテストしています
  • パーサ・分類エンジン・フィルタは Flutter に依存しない pure Dart のパッケージに分け、先にテストで固めてから UI を作りました
  • 通信はフィード取得だけです。それ以外の外部通信が発生しないことをテストで担保しています

開発期間

仕様書を先に書いてから Claude Code で実装し、着手から審査提出まで1週間ほどでした。
仕様書に「やらないこと」を最初に書き出しておいたのが効いていて、実装中に「便利そうだから入れよう」で迷うことがほとんどありませんでした。

一度リジェクトされています。スクリーンショットに「買い切り ¥600」「サブスクなし」と書いていたのが Guideline 2.3.7 に引っかかりました。価格の説明はアプリ説明欄にだけ書けばよく、画像に価格を載せてはいけないようです。メタデータの修正だけで再提出し、翌日通りました。

リリースして思ったこと

自分で毎日使っていて、一番効いているのはカテゴリ除外です。芸能とスポーツを消しただけで、タイムラインを眺めるストレスがかなり減りました。
(あとはキーワードミュートで、見たくない人物名も消しています。。。)

一方で「同じ記事を全員に見せる」は、そのままだと売り文句として弱いことも分かりました。
おすすめがないのは使ってみて初めて気持ちよさが分かるもので、ストアの説明文だけでは伝わりにくいです。
この記事を書いているのも、その部分を文章で伝えたかったからです。

マネタイズについて

広告は思想と矛盾するので使いません。
基本機能は無料で、買い切り「そのまま瓦版・極」(¥600)でカテゴリ除外が無制限になり、キーワードミュートと媒体の非表示が使えるようになります。
サブスクではありません。端末の中で完結する機能なので、継続課金する理由がないと考えました。

「芸能だけ消したい」という一番多そうな要望は無料でできるようにして、「特定の人名や媒体まで消したい」人だけが払う線引きです。
無料でできることを後から減らすことはしないと決めています。

アプリのダウンロードについて

iOS

紹介ページ: https://kankan.one/kawaraban/

おわりに

「やらないことを決める」だけで、機能は少ないのにアプリとしての形がはっきりしました。
個人開発だからこそ、大手がやらない引き算のアプリが作れるのだと思います。

同じように「おすすめに疲れた」人に届けば嬉しいです。

※本記事の構成・校正には Claude(Anthropic)を利用しています。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?