2021年の活動成果まとめ・来年の挑戦

2021年の活動成果まとめ・来年の挑戦

2021年の活動成果まとめ・来年の挑戦

娘の誕生、ネイティブMarkdownエディタの実装、YouTubeチャンネルの人気獲得

こんにちは、TAKUYAです。本記事は “What I accomplished in 2021 & my challenge for 2022” の日本語訳です。2021年は、去年の自分が見たら結構驚くぐらいなかなかの飛躍の年でした。あなたはいかがでしたか?本稿では今年の活動成果を総括したいと思います。僕はInkdropというMarkdownノートアプリの作者です。企画・デザイン・ユーザサポート・集客・開発をすべて独りでやっています。現在は主に英語で活動しているため、今年は日本語では低浮上でした。最初は辛くて仕方がなかった英語での活動がすっかりコンフォートゾーンになり、楽しく情報発信しています。フリーランスの仕事はしませんでした。Inkdropの売上で充分家族の生活費も賄えています。来年もこの調子で健康的なペースでやっていきます。

TL;DR

  • 娘が産まれて、現在7ヶ月になった
  • ロードマップが40%完了した — モバイル向けMarkdownエディタの実装の進捗がいい感じ
  • YouTubeチャンネルの購読者数が5.6万人に達した
  • 年末休みを12月22日から1月6日までいただきます

娘が生まれた

今年の最も大きなライフイベントは娘の誕生です。彼女もすくすく育って7ヶ月になりました。産まれた時に3週間の育休を取りました。それは正しい選択でした。産後の妻はやはり何をするのもしんどい状態だったので、いろいろと助けてあげられました。また、本などを読みながら赤ちゃんの世話の仕方を学べました。

子育てしながらも以前と同じように作業できるかとても不安だったんですが、妻の理解と協力のお陰で大きな支障もなく仕事できています(感謝)。娘と早くいろんな所に出かけたい。

ロードマップ(vol.5) 40%完了

Inkdropのロードマップ vol.5
個人開発者として成功し続けるための戦略

Inkdropに光り輝く新機能を追加しまくるより、それが「ただ問題なく動く(just work)」という状態を保ちたいと思っています。そのために沢山の改善を施しました。主な変更点は:

  • ネイティブ化による大幅な読み込み速度の改善 (Mobile v4.1.0)
  • ノートのコンフリクトを簡単に解決するためのUI (Desktop v5.3.0, Mobile v4.2.0)
  • Apple Silicon対応 (v5.3.1)
  • デフォルトの白いタイトルバーの除去 on Windows and Linux (v5.4.0)
  • Vibrant dark UI 対応 on Windows (v5.4.0)
The vibrant dark UI theme on Windows

iOSとAndroid向けのネイティブMarkdownエディタの実装がいい感じ

上記の改善点と平行して、モバイル向けのMarkdownエディタの改善に取り組んでいました。現在はウェブベースでの実装になっているのですが、それだと解決できない多くの問題点があります。その奇妙な挙動の上にエディタを組むのは諦めて、CodeMirror v6をバックエンドとしてReact Native内で動かし、そしてネイティブのUIコンポーネントをiOSとAndroidのそれぞれで実装する事にしました。つまりアイデアはシンプルです:

State and updates of the editor

WebView内でDOMでビューをレンダするのではなく、直接UITextView(iOS)とEditText(Android)を拡張してエディタを実現するという事です。これは自分にとって大きなチャレンジで、なぜならCodeMirrorの内部仕様を深く理解しながら、かつiOSとAndroidのAPIも使いこなしてネイティブコードを書かなければならないからです。何度も挫折しそうになりましたが、とても良い進捗を得たことを報告します:

物理キーボードでもこのように快適に入力できます:

次のステップは、アプリ独自の機能に対応させるためにCodeMirrorを拡張する事です。詳しい進捗やタスクは以下のフォーラムをご参照ください(課金ユーザのみ):

来年にはリリースできるように頑張ります。

YouTubeチャンネルの購読者数が5万人を超えた

My channel growth

Inkdropの集客の一環として2019年頃からYouTubeで動画投稿をはじめました。しかしそのグロースはゆっくりしたもので、なかなか費用対効果は得られずにいました。しかし今年に入って、視聴者を惹きつけるような動画スタイルを編み出す事に成功しました。それは「何も喋らない&何も説明しない」という定説とは真逆を行く引き算の形式で、「侘び寂びスタイル」と呼んでいます。それを見つけるまでの紆余曲折は英語で書きました:

How I’ve hit 10k subs on my tech YouTube channel
From zero video skill / Endure the 2-year dark period / Make entertainment factors / The journey to find the Wabi-sabi…

今年最も反響が大きかったのは次の動画で、現時点で40万回再生されています。

訳注:すみません、動画へのリンクは切っています。内容が英語のためです。YouTubeのアルゴリズムは厳しく、動画を開いてすぐに閉じられてしまうと、チャンネルの評価が下がってしまいます。もし興味のある方は、 “Dev as Life” でご検索ください。

このように、解説は一切なく、映像美にひたすら重点を置き、それでいて有益な情報が得られる構成にしています。自分が学んだことをシェアするという趣旨上、初心者には難しい内容になってしまいます。しかし、見せ方を工夫することで「何をやってるか分からないけど観てるだけで楽しい」というエンタメ性を実現しました。そのお陰でYouTubeのおすすめに上がるようになり、多くの購読者が得られました。このクオリティで作り続けるのは正直めっちゃ大変です。準備に一週間、撮影と編集で更に一週間かけています。もはやプロダクトをローンチしている感覚です。しかしこの動画スタイルは多くの可能性を秘めています — — 動画は英語です。日本に憧れを抱く外国人に対して、日本の風景を見せながらプログラミングのチュートリアルを提供できるのです。そんな事をしている人は誰もいません。

京都の鴨川の河川敷で作業している様子

これは旅行とプログラミングのマリアージュと言えるでしょう。自分はもともとアートが好きで、学生の頃は音楽を奏でたりイラストを描くのに熱中していました。その経験がこんな所で活かされるなんて、本当に人生は分からないものです。その上、動画を通してOSSコミュニティーに「お返し」出来るのも楽しい点です:

NativeBaseの開発者さんが喜ぶ様子

ライブラリの作者さんが自分の動画内で使われているのを知って喜び、それを見てさらに僕も嬉しくなる。素敵なwin-win-win(僕、視聴者、OSS開発者)です。次は購読者10万人を目指して、銀の再生ボタンをゲットしたいです。

正月休みを頂きます(12/22 ~ 1/6)

以上が2021年の成果のまとめです。いつも応援ありがとうございます!正月休みを22日から取りたいと思います。家族とゆっくり過ごし、新しいことを学び、来年の計画を練ります。あなたにも素敵な2022年が訪れることを祈っています。Cheers!

Follow me online

Read more

なぜ体を壊してまで個人開発を頑張るのか?自尊心の欠如や過集中癖と向き合う

なぜ体を壊してまで個人開発を頑張るのか?自尊心の欠如や過集中癖と向き合う

どうもTAKUYAです。最近、個人開発を頑張りすぎて体調を崩してしまいました。アトピーが猛烈に悪化して、QoLが著しく下がってしまいました。まだ療養中ですが、毎日1万歩以上歩いて、徐々に回復しつつあります。 この過ちを繰り返さないためにも、自分は一体何が原因で頑張りすぎてしまうのか?という事について深堀りして考えてみたいと思います。また、個人開発におけるメンタルヘルスはあまり語られていないトピックだと思います。本記事が、同じように仕事を頑張りすぎてしまう人の助けになれば幸いです。 TL;DR * なんとなく続けていたソフト開発が自分を救った * 原体験が歪んだモチベーションを生んでしまった * 親が引くほどの過集中癖がある * 生得的な直せないバグと考えることにする * アプリの成功に関係なく、自分をあるがままに受け入れる * 挫折しないのは、なんだかんだで前向きだから * ユーザさんから「休め!」と叱咤された * 人生は長い。個人開発なんかで死ぬな 自己の原体験について振り返ってみる 個人開発だけで生活するようになって、かれこれ8年ぐらいが経ちます。こう

By Takuya Matsuyama
ユーザサポートの問い合わせを装った攻撃が怖すぎた

ユーザサポートの問い合わせを装った攻撃が怖すぎた

どうもTAKUYAです。個人開発をしていてアプリの知名度が上がってくると、作者個人(あるいはサイト管理人)を狙った攻撃というのをたまに受けます。つい先日も、怖すぎるメールを受け取ったのでシェアします。 件名: Cookie consent prevents platform access Hello, I cannot access use the store. The cookie consent notice keeps appearing and nothing happens once I approve or try to close it, so I’m unable to interact with the website. Please provide guidance on

By Takuya Matsuyama
万年ペーパーの自分が車の運転を楽しめるようになった理由

万年ペーパーの自分が車の運転を楽しめるようになった理由

どうもTAKUYAです。大学の入学前に免許を取って以来ずっとペーパードライバーで、都市生活では出来る限り運転は避ける生活を送っていた。事故を起こせば人を◯してしまう可能性もある代物を日常的に運転するなんて考えられなかった。 そんな自分に転機が訪れたのは、結婚して大阪に戻った事と、子供ができた事、そしてアウトドアに興味を持った事だ。大阪近辺だと箕面とか野勢、神戸、丹波篠山などが日帰りでドライブしやすい距離だ。それで、恐る恐るタイムズのカーシェアで時々ではあるが運転するようになった。 他の車も生きた人間が運転しているという驚き まず運転していて気づいたのは、他の車にも生きた人間が運転していると言う点だ。そんなのは当たり前だろと思うかもしれないが、結構新鮮な発見だった。Grand Theft Autoなどの現代をモチーフにしたゲームをプレイすれば分かるが、NPCの車の動きは鈍臭いのでガンガンぶつかる。プレイヤーの進行を予測した動きなどしないからだ。 しかし現実では相手も事故りたくないので、お互いに動きを読み合い、譲り合って運転する。ルードな運転手もたまにいるものの、どちらかがよっぽ

By Takuya Matsuyama
禅的思考: なぜInkdropはMarkdown独自拡張をしないのか

禅的思考: なぜInkdropはMarkdown独自拡張をしないのか

InkdropはMarkdownのノートアプリですが、Markdownの独自拡張は「絶対にやらない」と決めていて、それがアプリの哲学になっています。 Markdown(厳密にはGitHub-flavored Markdown)の強みは、ソフトウェア業界標準で広く使われてい緩い文書フォーマットという所です。 アプリの独自記法を加えてしまったら、あなたの書いたノートはたちまちそれらと互換性がなくなります。 「独自記法を加えた方が便利な機能が付けられるだろう」と思うかもしれません。もちろん実際Markdownは完璧な書式ではないため、必要な場面はいくつかあります。例えば画像のサイズ指定方法が定まっていない、など。それでも自分は、ノートの可搬性を第一にしてきました。その裏には禅にまつわる哲学があります。 日本の文化は周りの環境と対立するのではなく、溶け込もう、馴染ませよう、共生しようとする傾向があります。窓の借景、枯山水、建築の非対称性、茶室のシンプルさ、侘び寂びなどあらゆるところで見られます。 絵画における「減筆」の手法を例にとって説明します。 これは、描線を最小限に抑えながら絹や紙の

By Takuya Matsuyama