2 ポイント 投稿者 GN⁺ 2024-01-06 | 1件のコメント | WhatsAppで共有
  • BoopSnoopは、ある4人家族が使うために作られた超シンプルなメッセージングアプリで、2020年1月第1週の公開後、3つのタイムゾーンにいる4人がダウンロードし、その後もデイリーアクティブユーザー4人、離脱率0を維持している
  • Tapstack終了後、InstagramやWhatsAppグループの代わりに家族だけのアプリを作り、写真・動画メッセージが全画面で表示された後に消える仕組みを引き継いだ
  • カメラ画面、待機メッセージのバッジ、AWS S3、AWS Lambda、TestFlight配布だけで構成され、ログインや連絡先管理が不要なsituated softwareであるため、さらにシンプルになった
  • 制作には約1週間かかり、そのうち半分ほどはXcodeのコード署名とプロビジョニングの問題に費やされたが、オープンソースコンポーネントとサンプルコードが実装を可能にした
  • プロフェッショナルでスケーラブルなソフトウェアでなくても、身近な人のために作ったアプリは、突然の再設計・広告・ピボットなしに、ユーザーが変えたいときだけ変わる家のようなソフトウェアになり得る

Tapstackが残した家族チャンネル

  • Tapstackは、スマートフォンのカメラのリアルタイム画面の下に、個人やグループの顔のグリッドを表示するアプリだった
    • タップすると写真を撮り、長押しすると動画を録画する
    • 指を離した瞬間にメッセージが送信され、編集や確認のステップはなかった
    • 受信したメッセージは「stack」に積まれ、ユーザーがめくって見ると消えた
  • 家族のTapstackグリッドは、母、父、妹、3人をまとめたグループの4枠で構成されていた
  • このアプリの良さは、実用的な連絡や予定調整よりもambient presenceにあった
    • スレッドや履歴がないため、返信を期待されているという負担が少なかった
    • コーヒーと一緒に撮ったセルフィー、凍った池の写真、甥や姪たちのおどけた動画は、どれも「あなたのことを考えている」という気持ちを伝える方法だった
  • Tapstackは大きなユーザー数を獲得していたようには見えず、広告もなく、ユーザーに課金を求めることもなかった
  • 2019年にアップデートが止まった後、秋に終了を発表し、ユーザーにデータのエクスポート方法を提供してからサービスを閉じた

家族向け代替アプリ BoopSnoop

  • Tapstack終了後、家族には代替手段が必要だったが、InstagramやWhatsAppグループでは、温かい家族チャンネルを他の要素が取り囲んでいるように感じられた
  • BoopSnoopは、家族だけのために作られた魔法の窓のようなアプリである
    • 写真と動画をキャプチャして家族に届ける
    • メッセージはキューに入り、閲覧されると消える
    • 閲覧画面は常に全画面で、コメントや共有を促す要素はない
  • インターフェースはほとんどない
    • カメラボタンがある
    • 隅の落ち着いた緑色のバッジが、待機中のメッセージ数を示す
  • 2020年1月第1週に公開され、3つのタイムゾーンにいる4人がダウンロードした
  • その後、デイリーアクティブユーザー4人、離脱率0を維持し、制作者の期待をすべて超える成功となった

シンプルさを可能にした実装

  • BoopSnoopはTapstackよりさらにシンプルに設計された
    • ログインシステムが不要
    • 連絡先の作成・管理インターフェースが不要
    • 誰が使うのかを最初から正確に分かっている
  • Clay Shirkyのsituated softwareという概念のように、パーソナライズが必要なソフトウェアではなく、最初からパーソナルなソフトウェアに近い
  • 核となるのは、写真・動画入力のためのカメラ画面である
    • タップで写真を撮り、長押しで動画を録画する、なじみのある操作方式を使う
    • この部分にはオープンソースコンポーネントSwiftyCamを使用している
    • このコンポーネントがなければ、プロジェクトは難しかった
  • バックエンドは最小構成である
    • AWS S3バケットが写真と動画を保存する
    • いくつかのAWS Lambda関数が、新しいメッセージのアップロード時に必要な処理を行う
  • 家族への配布はTestFlightで行われ、アプリはずっと「居心地のよい永遠のベータ」のままである

実際の開発でぶつかったこと

  • もっと良い世界なら、iOS向けの現代的で柔軟なHyperCardのようなツールで、1日で作れたはずのアプリである
  • 実際には約1週間かかり、そのうち半分ほどはコード署名とIDプロビジョニングの問題への対応に費やされた
  • それでもオープンソースコンポーネントとサンプルコードがプロジェクトを可能にし、現在の世界が完全に壊れているわけではなかった
  • 21世紀のプログラミングは、最新技術の境界内で作業するとき、Legoのように組み立てる感覚を与えてくれることがある
  • コードを公開すれば他の人のガイドになるかもしれないが、アプリのコードにはアプリ専用の値や認証キーが多く混ざっている
    • このアプリはフレームワークやテンプレートではなく、それ自体がアプリである
    • そうした性格は、このアプリが作られた精神と切り離せない

「家庭料理」のようなプログラミング

  • 制作者は自分を、プロのソフトウェアエンジニアというより家庭料理人に相当するプログラマーだと見ている
  • 「コーディングを学べ」という言葉は、市場価値、経済的レバレッジ、職業転換、履歴書と結び付けられることが多い
  • 「料理を学べ」という言葉は、シェフになるためだけに存在するわけではない
    • より良く食べるために学ぶことができる
    • より安く食べるために学ぶことができる
    • 伝統を受け継ぐために学ぶことができる
    • 退屈だから、あるいは教えてくれる人と時間を過ごしたいから学ぶこともできる
  • 料理は売買の領域を越えて、家庭、好奇心、歴史、文化、ケア、愛とつながっている
  • 21世紀には、愛する多くの人々が、いつも身近に置くポケットコンピューターの中で待っているため、コーディングもそのような形でつながり得る
  • プログラミングが専門性とスケーラビリティの要求から離れると、別の活動になる
    • 家で料理することが商業キッチンで料理することと違うように、家族のためにアプリを作ることも別種の報酬を与えてくれる
    • BoopSnoopは家族が望まない限り変わらない
    • 突然の再設計、広告の氾濫、理解できないユーザーベースを追いかけるピボットはない
    • いつか消えるとしても、それは家族の決定である

数年後も使われ続けたアプリ

  • 2022年2月の更新時点で、家族は2年後もBoopSnoopを毎日使っており、母の要望で機能が1つ追加された
  • 2023年2月にも毎日使用中だった
  • 2024年2月にも使い続けており、TestFlightビルドは26だった
  • 2025年2月にはアプリを文字どおり何も変えておらず、TestFlightビルドは30だった

1件のコメント

 
GN⁺ 2024-01-06
Hacker Newsの意見
  • これは詩のようだ。この10年、個人プロジェクトを作り続けてきて、以前使っていたメールやカレンダーなど、毎日使うアプリを全部置き換えた。
    誰かが使っているのを見るたびに「わあ、すごいね。どうやってダウンロードするの?」と聞かれるが、答えはいつも同じ。できない。
    自分自身だけを対象に何かを設計することには美しさがあり、このプロジェクト1つが自分の精神的な安定を守ってくれていると100%確信している。
    どんな会社や年収も与えてくれない、未来への希望と幸福の源であり、世界に立ち向かう自分だけのジョーカーカードだ。

    • 私も似たように、自分専用にもう1つメモアプリを作っている。
      自作ツールは、初日からそのツールの世界最高の専門家になれるという点が、思った以上に大きい。すべての機能、ショートカット、内部動作を100%知っていると言えるソフトウェアが、どれほどあるだろうか。
      仕事や生産性ツールなら、この「完全な習熟」のおかげで非常に効率的になれるし、毎日使いながら小さな修正や最適化をフィードバックすれば、ツールが自分と一緒に成長していく。
      私のメモアプリは今では個人の知識基盤、プロジェクト管理、ToDoリスト、日次計画、日記まで担っていて、必要な機能だけなので軽くて速い。
      結論として、私たちはみな自分のツール作りをもっと試してみるべきだと思う。
    • こういうものを、もっと多くの人がオープンソースで公開しつつ、プルリクエストとIssueはオフにしておくといい。
      他の人が使ったり、学んだり、土台にして作ったりはできるが、フィードバックや貢献は求めていない、という期待値を明確にするやり方だ。
    • どう動くのか説明したり、使っている様子を動画に残してくれたりできるのか気になる。
      ただ、「自分だけのジョーカーカード」という最後の文とは矛盾するかもしれない。
      メッセージからイベントを作成し、メールをSignalの連絡先に転送する、といった形でアプリ同士を統合しているのかなと思った。
      私は反復作業をすばやくスクリプトで自動化はするが、すべてのスクリプトを1つに統合してはいない。分けておけば保守の負担が減るので、あえてその道に進むかは分からない。
    • 主に自分のためにプログラムを書くが、たいていは他の人にも役立つなら使ったり、直したり、コードの一部を使ったり、批判したり、バックアップしたりできるよう公開している。
      誰かがそれについて鬱陶しい文章を書いても、ただ無視すればいいし、自分が直接使う方法には影響しない。
      批判・パッチ・バグレポートを受け取りたくないなら、GitHubのような場所でIssueやプルリクエスト、議論の場を設けず、ファイルだけ公開することもできる。
    • 私もはるかに少ない労力でneomuttを設定し、最も美しく速いメールクライアントUXを作って、仕事用にも個人用にも使っている。
      見た人たちは感嘆し、何人かは設定を欲しがったが、実際に慣れた人はいなかったようだ。
  • いい記事だ。数年前に妻のために作ったmacOSアプリを思い出した。
    妻が好きな店の営業時間を追跡し、メニューバーのアイコンを押すと、今日それぞれの店が閉店するまでどれくらい残っているかを表示する。
    混雑する時間帯かどうかも知らせてくれるので、あまり混んでいないときに行きたいという好みに合わせた。
    データ保存にはテキストファイルを使うシンプルなQtアプリで、名前を何にするか聞いたら「花の名前みたいにGladiolus」と言ったので、そう名付けた。
    プログラマーとして、Gladiolusのたった1人のユーザーほど感謝してくれる顧客を持ったことはない。

    • 店の営業時間が変わったらどうするの?
  • Xcodeのコード署名とIDプロビジョニングに取り組んで悪戦苦闘した末、香を焚いて石を投げたらXcodeの神々が通過を許してくれた、というくだりに大いに共感した。
    現代のソフトウェア開発で、自分の不便を自分で解決しようとすると生じる大きな摩擦だ。
    コンピューティングの原理を理解し、構成要素を合理的に組み合わせて新しいものを作る工学的思考ではなく、Googleで見つけた呪文を延々唱えながら頭をぶつけていたら、ある瞬間うまくいく、という感じだ。

    • 私がプラットフォームに求める最優先事項は、望むプログラムを開発してインストールするのに他人の許可が要らないことだ。
      その基準なら、AppleとMicrosoftは実質的に除外される。
    • 何かをさらにひどく壊さないことを願いながら、Googleで見つけた呪文を繰り返すことになる。
      AppleがXcodeでプロファイルやキー署名などを「はい、簡単にしてください」ボタンで管理できるようにしたのは改善点だが、設定をランダムに忘れたり壊れたりすることがあり、また問題を追跡しなければならない。
    • Appleの署名・証明書・プロファイルの開発者体験は、驚くほどひどい。
    • こういう状況では、Raspberry PiのWebサーバーとCloudflare Tunnelの組み合わせが本当に輝く。
      そのサービスを動かすのに誰の許可も要らない。ルーターを露出させずにPiでカスタムのToDoアプリを動かしているが、ものすごく自由だ。
  • この記事が以前HNに初めて上がったとき大きな影響を受け、すでに無意識にやっていたことを言葉で整理する助けになった。
    数年前、多くの人と同じようにホームラボを始め、それが次第に家族や親しい友人5〜15人のためのアプリを作って自分でホスティングする趣味へと変わっていった。
    映画の夜の日程調整のような小さなアプリやグループチャット連携をたくさん作り、そのおかげでみんながずっと頻繁に話し、集まるようになった。
    互いに知らなかった遠い友人グループ同士も、今では私抜きで直接会ってベビーシャワーや結婚式に行くようになった。
    こういう友人の集まりがあるなら、彼らのために何か作ってみるといい。

    • 小さなツールを作るのは好きだが、自分自身よりも他の人のために作ることが多い。
      彼女とその妹が互いの精算帳簿をずっと管理していたが、誰がいつ何を借りているのかを合わせるのにいつも苦労していた。
      そこでGoogle Docsで共有する賢いスプレッドシート形式の「アプリ」を作り、毎月情報を入れると誰がいくら払うべきか計算するようにした。
      1年以上忘れていて、まだ使っているかと聞いたら「いつも使ってる、本当に命の恩人だよ」と言われた。
      実質的には普通のスプレッドシートの使い方にすぎないのに、高収入で有能な人たちが単純な精算にも苦労していたわけだ。
      毎月の新しいタブごとに、2人で飼っている犬の写真を読み込むようにしたら特に喜ばれた。15分で作ったささいなツールが、何年も愛されている。
      小さな範囲の人たちのために小さなツールを作るといい。
    • 皮肉なことに、こういうやり方は実際のプロダクトを作る良い道でもある。大きくなることを受け入れられるなら、という意味だ。
      3年前、家族や友人がレシピを共有するシンプルなアプリを作り、頼まれた機能を追加し続けていたら、2年ほど経って口コミが広がり始めた。
      10月にはサーバー費用を賄うために新規ユーザーに料金を請求しなければならないほど大きくなり、今ではフルタイムで取り組む未来を考えている。
  • 同時に、こうしたアプリとプロ向けアプリの間の隔たりは広がっているように感じる
    アプリを使うのは簡単になったが、大衆向けの「本物」のアプリを作るのはより難しくなった
    3年以上 https://opinionatedlaunch.com という本を書いているが、「モバイル」の章を更新し続けなければならない。すばらしい新フレームワークのためではなく、Apple と Google が 要件を追加し続けるからだ
    GPS アクセスのより厳しい制限のようなものは良いことかもしれないが、追随しなければ、いつかプラットフォームからアプリが削除される。この意味では「完了」はない
    1990年に Pascal で書いた小さなプログラムはまだ配布できるかもしれないが、モバイルアプリでそれに相当する方法は分からない。実行ではなく配布の話だ

    • 解決策を2つ考えてみた: TestFlight で配布して実際にはリリースしないこと、またはモバイルでうまく動作し、オフラインキャッシュが可能な HTML アプリを作ること
      だんだん HTML のほうを好むようになっている
    • 私も経験した。ずっと前に自分の必要のために Android アプリを作り、1〜2か月後に完成した
      変えるところはなく、まさに望んだ通りに動いていたが、ある時点で Google が最新基準を満たしていないとして、ストアから削除すべきだと判断した
      文句を言っているわけではなく、adb ではまだインストールできるが、他の人はもう入手できない。今でもバイナリをビルドできるかは、おそらく難しいと思う
    • こうした悩みから Nim に目を向けるようになった
      まだ動くようにはできていないが、UI を十分に単純に制限すれば、同じコードを iStuff 向けの Objective C、Android とデスクトップ向けの C++、Web 向けの Javascript にコンパイルできる、という構想だ
      各アプリはプラットフォームに依存しない方法で任意の nimscript を評価できる
      作りたかったアプリが何だったかはとっくに忘れてしまったが、また思い出したら、どこでも実行することを誰にも妨げられないでほしい
    • Android と Apple が、変わり続けるルールの クローズドなエコシステムであることには全面的に同意する
      ただ、ほとんどのソフトウェアも本当に「完了」するのは難しいのではないかと思う
      大衆文化から完全に切り離されたカテゴリでない限り、機能として完成しているとは呼びにくい。GNU units や grep くらいなら「完了」と言えるかもしれないが、ほとんどのアプリは周囲の世界の変化に合わせて変わらなければならない
    • 対象ユーザーが誰かによる
      私の分野の最先端ツールはすべて、スクリプトや対話型の コマンドラインで使われている
      そうしたインターフェースを対象に作れば、現代的なライブラリを使って GUI を作るよりはるかに速く簡単で、ユーザーも十分に確保できる。conda ユーザーだけでも約4,000万人いる
  • この記事を見て、iPhone の サイドローディングに対する考えが変わった
    以前は「おばあちゃんがハッキングされないようにロックしておくべきだ」という側だったが、今ではこうした家庭料理のようなアプリを人々が作れないように妨げているのだと思う
    さらに、コンピュータは魔法であり、プログラミングは魔法使いだけがすべきものだという認識を広めている。私が会ったソフトウェア開発者の誰もそう感じていなかったし、私もそう感じていない

    • デフォルトは依然としておばあちゃんモードであるべきだが、一度だけ通ればよい難解な開始儀式を経てサイドローディングを有効にできるとよい
      その過程には「ここから先には竜がいる」のような警告が満載であるべきだ。基本的には Mac や一般的な Chromebook に近づけるということだ
      Pixel フォンはまだ root 化を許可していないのだろうか?
    • ロックする唯一の理由は App Store の 30% 手数料
      おばあちゃんは携帯電話よりも、固定電話の昔ながらのソーシャルエンジニアリング詐欺で貯金を失う可能性のほうが高い
      Apple が App Store や修理の状況で稼ぐこと以上に、セキュリティとスパムを本気で気にしているなら、せめて iMessage スパムに手を付けていただろう
    • TestFlight の「外部ベータ」は本当に賢いルートだと思う
      友人や家族向けに、自分が企業のように扱われる道があったなら何年も前に使っていただろうが、TestFlight は非常に簡単で対象規模も大きいので、今では障壁がない
      Mac を買わなければならないという費用の壁はあるが、すでに Mac を持たなければならない税金まで考えれば、それほど高くはないと思う
      コンピュータが魔法のように見なされているのは確かだが、配布が原因ではない。人々がコンピュータでもっと多くのことをしたがらないのが残念だ
      昔は両親が 386 でごく基本的なデータベースアプリのようなものを使っていたが、ある時点で機械はより大きく怖いものになり、人々は好奇心を失っていった
      年齢のせいかもしれないが、私たちが新しいコードを受け入れるのにあまり親切でない機械を作ったせいかもしれない
    • むしろおばあちゃんが詐欺に遭わないようにするには、サイドローディングを許可すべきだと思う
      誰が詐欺を働くかの問題にすぎない。犯罪者は一度に大きく奪えるが、携帯電話メーカーははるかに広い前線で動き、コストも大きい
  • 文章の説明、アプリのアイデア、実行方法が新鮮だ
    1桁の 総アドレス可能市場(TAM) のために作るという発想は、ほとんどのものと良い対比をなしている
    こうしたアプリは学習プロジェクトより一段上にあり、1人または数人にとって非常に大きな効用がある。しかもその数人が人生で最も重要な人たちなので、はるかに満足感が大きい
    家族のために家で食事を作ることに例えたのは完璧だ

    • TAM 中心開発はミニコンピュータ時代の精神に反する
      当時は、人々がまず自分自身のためにアプリケーションを作るのが当然だと考えられていた
  • 素晴らしいアイデアだと思う。最近「小規模なWeb」についてよく考えている。地球規模のWebにだんだん疲れてきたからだ。
    カナダの小さな町に住んでいて、自分の関心はうちの町だけにある。だから、うちの町に完璧に合った町規模の何かがあればいいなと思う。
    規模が小さいので、自宅のクローゼットにある機材で動かせるし、落ちても背後にいる巨大企業に腹を立てることもない。単に自分のものだし、ここではたいていの人が互いを知っているか、少なくとも聞いたことがある。
    停電でしばらく落ちたとしても、それすら地域的なものだろう。特に吹雪のときは停電がよく起きるし、ユーザーも同じ停電に遭っている可能性が高いからだ。
    理想論にすぎないし、実際には作らない可能性が高いが、結局ほとんどの人はFacebookグループのようなものを使い続けるのだろうとも思う。

    • 地球規模のWebが疲れるという点には深く共感するが、「何か作りたい。何を作れるだろう?」という罠にはまっているようにも見える。
      基本的にプロダクトはなく、市場だけがある状態なので、あなた以外にはあまり意味がないかもしれない。
      もちろん、自分のかゆいところに手が届くものを作ることや、ただ作るために作ることも完全に正当で、それもまた家庭料理のようなソフトウェアだ。
    • 知り合いをできるだけMeshtasticに乗せようとしている。
      25ドルのハードウェア、中央サーバーなし、アマチュア無線免許不要、スマホベースで制御できる点がいい。
      いつかは基本機能を超えて本当に面白いプロジェクトをやりたいが、まだ何をすべきかは分からない。
  • 「香を焚いて石を投げたら、Xcodeの神々が通過を許してくれた」という一文で声を出して笑った。
    自分もその神々と数多くの戦いを繰り広げてきたが、彼らは怪物だ。

    • 筆者のRobin Sloanは、何冊かの小説と多くの短編、そして月刊に近い素晴らしいニュースレターを書いている作家だ。
      その一文が気に入ったなら、最初の小説Mr Penumbra's 24 Hour Bookstoreを読むことを強く勧める。
    • いい文章だが、その部分は悲しく、腹立たしい。
      どうしてこんな状態が受け入れられるところまで来てしまったのか? MAGA(Microsoft Apple Google Amazon) は、いまやソフトウェアを共有する生活を息苦しくしている。
    • いくつもの面接で、Apple製品の署名について詳しいと言ってきたが、全部望んで身につけた知識ではない。
  • 会社内部向けの小さなアプリがある。独立したRailsアプリにすぎず、社内のビジネスシステムには触れていない。
    それでも小さなコードを置く場所が必要なときはそこに入れる。成長チャート、内部データ用の小さな検索エンジン、繰り返し作業の通知スクリプト、ブログ用のRSS→Emailスクリプトのような、雑多な統合ツールが入っている。
    誰もが顧客データから切り離された「ガラクタ」アプリを1つくらい持つといいと思う。
    面白いものを作るハードルが低いと気持ちが自由になるし、すべてのコードが高リスクな業務作業である必要はない。

    • RoRを学んでいるところなので、これをどうデプロイしたのか気になる。Webアプリなのか?