Inkdrop のロードマップ vol.4

Share
Inkdrop のロードマップ vol.4

Inkdrop のロードマップ vol.4

エクスポート機能の強化、ノートブックのプロジェクトライクな動作、モバイル版のプラグイン対応など

更新: 新しいロードマップはこちら

English version is available here.

どうもTAKUYAです。

Inkdropはクロスプラットフォームで同期するMarkdown専用ノートアプリです。つい先日までvol.3のロードマップに取り組んでいましたが、ついに完走しました🎉 今僕らは、より永く続く開発に向けてモダンなライブラリを使ってイチから作り直したv4を手にしました。 (v4の新しい点についてもしまだご存じない方は、こちらを参照ください) この取り組みが本プロジェクトの継続性を高める大事なステップになると僕は信じています。このv4のローンチに併せてウェブサイトをリデザインしたのですが、この作業はアプリのコンセプトについて見つめ直すいい機会になりました。ですので、ロードマップの話に入る前に、まずは本アプリのコンセプトについて改めてお話したいと思います。どうぞお付き合いください。

Inkdropの課金ユーザが1,000人を突破しました!

この話を最初にさせてください。自分がこのプロジェクトを始めた当初、1,000人の顧客を集めることをゴールに掲げました。そして現在は1,200人に到達しました。本当にありがとうございます!この目標を達成した事により、新規顧客の獲得を焦るあまり大事な既存顧客から注意を背けてしまわないで済みます。そしてもっと広い視野をもって長期的な戦略を立てて行動できるようになりました。僕は1人でやっていますので、ユニコーン・スタートアップのように指数関数的成長は要りません。僕はこのサービスを「より大きく」ではなく「より良く」していきたいと考えています。ぜひ一緒にInkdropを育てて行きましょう!

“Organizing Markdown notes made simple”

Markdownノートの整理をシンプルに。

これがウェブサイトで掲げているスローガンです。つまりInkdropはあなたのMarkdownノートの整理をお手伝いすることで、日々のハッキング作業においてメモを快適に取れるようにし、生産性を高めます。これがInkdropのコア・コンセプトです。

僕がこのアプリを作った最も大きな理由は、自分自身が複数のデバイス・コンピュータ間でノートを整理するのに困っていたからでした。最初のベータ版をリリースした時、沢山の人が僕と同じ悩みを抱えている事を発見しました。そこで、安全でシームレスなデータ同期機能と、Markdownノートの整理を支援する機能に集中して取り組む事に決めました。そして今、Inkdropは僕のほとんどのかゆい所に手が届くようになりました。これからも同じ方向性で進んでいきます。つまり、チーム向けの機能やWYSIWYGエディタなどは今後も対応しませんし、このアプリは引き続きデベロッパ向けであり、マス市場は狙いません。

では、Inkdropがここから更にどのようにMarkdownノートの整理を支援していくのか、お話しましょう。

エクスポート機能の強化

Markdownは規格化されたプレーンテキストのフォーマットです。企業独自のシステムはもとより、World-Wide-Webにすら依存しません。その読みやすく書きやすいシンタックスによって、今日ではMarkdownは様々な目的で利用されています。ドキュメント作成、ブログ執筆、そしてもちろん、ノートテイキングなど。例えば、Gatsbyのような静的サイトジェネレータを使えば、Markdownファイルからウェブサイトを構築できます。Markdownが .md のファイル形式としてある時、Markdownのポータビリティを最大限に活用することが出来るのです。

InkdropのMarkdownはプラグインでシンタックスを独自に拡張したりしない限り、CommonMarkの規格に互換性があります。それによって、あなたのノートは様々なツールや場所で再利用できます。しかしInkdropのエクスポート機能はそれをするためにはまだ不十分です。現状では、単一のノートを各フォーマットで出力するか、すべてのノートを一括で .md 形式で出力する事しか出来ません。つまり、具体的には以下に挙げる機能が足りていません:

  • ノートブックごとに出力
  • 柔軟なディレクトリ構造とファイル名パターン
  • YAML frontmatterの対応

これらの機能は、ノートをただInkdropのデータベースに格納しておくのではなく、様々な用途で活用できるようにするでしょう。考えただけで楽しいですね!

よりプロジェクトっぽい挙動をノートブックに加える

Inkdropの開発を続けるに従って、一部の人たちがノートブックに対してプロジェクトのような振る舞いを求めている事に気が付きました。具体的には以下の機能要望を受けました:

これらの要望は別々に見えますが、共通点があります: 彼らはワークスペースを求めています。正直なところ、僕は当時これらの機能に必要性を感じなかったのでお断りしました(それはアプリを安定かつシンプルに保つためには重要な事です)。しかし僕自身がInkdropをより多くの目的に使うようになるにつれて、それらの必要性を理解するようになりました。それらは複数のプロジェクトにおいてノートの整理を手助けしますし、上記で述べたアプリのコンセプトにも合致します。Inkdropは何年間も使えるものであるべきです。あなたは年月を経て多くのプロジェクトを手掛けるでしょう。これらの機能に対応すれば、Inkdropはより長期の利用に耐えうるようになります。

実装面では、データベースの仕様に大きな変更を必要とするので、少し時間がかかりそうです。しばらく調査した結果、Androidの対応が一番大変そうです (いつも通り😂)。なぜならFTS5がAndroidビルトインのSQLite3で有効化されていないからです。最近、React Native 0.60がAndroidXベースに移行しましたが、これは朗報です。おそらく、FTS5が有効化されているsqlite-androidをアプリに組み込めるようになったはずです。もしそうでなければ、別の方法をどうにかして見つけなければなりません。

モバイル版でのプラグイン対応

☑️ 完了!(1月24日)

去年、モバイル版でプラグイン機構を実現するためのアイデア(英語)をシェアしました。これは実現可能であることを、ノート共有機能にて検証しました。僕はmathシンタックスを共有ノートでも使えるようにしました。これは実際にブラウザでmathプラグインが動作しています。モバイル版のエディタ実装は埋め込みWebViewで動作していて、デスクトップ版と似たコンポーネント構成です。ですから、まず最初のステップとして同様にmathプラグインの対応をモバイル版に追加してみたいと思います。なぜなら、mathプラグインはInkdropにおいて最も使われているプラグインの一つだからです。次のステップで他のプラグインの対応も進めていきます。

Android版のGboard対応

☑️ 完了!

GboardはCodeMirrorと相性が悪く、上手く動きません(カーソルがワープしたりする)。CodeMirrorはInkdrop内部で使っているエディタコンポーネントです。この問題を回避するためにGboardを強制的にデフォルトで無効化するようにしているのですが、これが別の問題を引き起こす結果となっています — — それは日本語が入力できなくなる事と、英語のオートコレクトが機能しなくなる問題です。とても辛いですね。CodeMirrorは目下、次のバージョン6を開発していて、それはモバイルでの動作も主眼に入れているので期待できますが、まだまだ時間がかかりそうで待っていられません。そのため、自分でどうにか解決しようとこれまでずいぶん多くの時間をこの問題に費やしてきました。そして最近ついに解決方法を発見しました。実は既に一ヶ月ほどベータ版で配信してテストしていたのですが、今のところテストに参加してくださっているユーザさんのデバイスで上手く動いている様子です。しばらくしたら公開したいと思います。

Read more

ハッカーと写真家

ハッカーと写真家

どうも、Takuyaです。 エージェント型コーディングは、今やすっかり欠かせないワークフローになりました。 自分のような個人開発者にとっても、ソフトウェア開発の景色と考え方を一変させました。 同時に、この劇的な経済的変化に不安を感じている人も多いと思います。 ほとんどの人にとって、これはプログラマーとして経験してきた中で最大のパラダイムシフトです。 自分もなかなか受け入れられず、悲嘆の五段階の取引(Bargaining)と抑うつ(Depression)の段階を抜けるまでに結構時間がかかりました。 でも Opus 5.5 を見てから、AI は自分でほぼコードを書くのをやめてもいいくらい賢くなったと感じました。今は主に、生成されたコードを Neovim でレビューしています。 AI はこれからも進化し続けるし、自分がコードに触れる機会は着実に減っていくでしょう。 その中で、今後自分たちが何を学ぶべきか、プログラミングに対するメンタルモデルをどう変えていくべきかについて議論したいと思います。それと、この特別な瞬間の自分の考えや気持ちを書き残しておきたいと思ったので、本稿は自分のための「

By Takuya Matsuyama
信念を貫け!1年半の開発と3ヶ月の燃え尽きから学んだAIコーディングの教訓

信念を貫け!1年半の開発と3ヶ月の燃え尽きから学んだAIコーディングの教訓

お断り: 元の記事は英語で書き、壊れた文法はAIで直しました TL;DR * アプリの新バージョン開発に費やした1年半(3ヶ月の燃え尽き期間を含む)で学んだこと * AIは常に人生の二の次であるべき。過去には二度と戻れない * 5年後に振り返ったとき、Fableがどうだったとか完全にどうでもいい * シングルタスクをキープしろ。エージェントの数は関係ない * 頭の中のコンテキストスイッチが次のボトルネック * 理解があるからこそ、次のアイデアが生まれる * 自分を本当に幸せにするものを知れ – 僕は自分が欲しいものを作る * SaaSを10年以上運営するのは、同じ作品を何年も描き続ける漫画家のようだ * 自分の信念を築けるのは、自分だけ Inkdrop v6の開発に1年半費やした どうもTAKUYAです。英語圏でかれこれ10年個人開発をしています。先日投稿した通り、予てから作っていた新バージョンのMarkdownノートアプリをやっとリリースしました。繰り返しになるので、リンクだけ貼っておきます: Inkdrop is an AI-native Markd

By Takuya Matsuyama
Inkdrop v6リリースしました

Inkdrop v6リリースしました

どうもTAKUYAです。日本語でもお知らせします。 Inkdrop v6を正式リリースしました!1.5年がかりの大改修となり、大変お待たせしました。本バージョンでは、新しいMarkdownエディタや、最近のエージェント型コーディングワークフローに最適化された新しいAI連携機能など、根本から作り直した改善が盛りだくさんです。それでいて、気が散らないシンプルでクリーンなUXはそのまま維持しています。 まずはじめに、既存のユーザの皆様に大きな感謝を述べたいと思います。開発期間中に辛抱強く待って下さった事、そしてCanaryテストで多くのフィードバックをくれたことに心から感謝します。皆さんのサポートなしには実現できませんでした。 ウェブサイトもv6に合わせて完全に作り直しました。アプリのUIをそのまま使ってライブデモを構築したので、アプリをDLせずとも新しいエディタを試せるようにしました。ぜひ触ってみてください: Inkdrop is an AI-native Markdown note app for developers — smooth context flow between

By Takuya Matsuyama
個人開発と生活

個人開発と生活

朝、娘をバス停まで送り出す。前にちらっとみかけた田村淳の相槌術が面白そうだったので、ママ友との雑談で早速実践してみたら効果てきめんだった。その方法は単純に、職業病で癖になっている批判的思考を完全オフにし、相槌に全神経を注ぐ、というものだ。「へぇ」「うん」「うーん」「なるほど〜」と、相手の話にどんなバリエーションで返そうかという所に集中する。騙されたと思って試してみて欲しいんだが、このお陰で相手の話がよく理解できて、自然なフォローアップの質問やリアクションが浮かぶようになる。こちらから頑張って面白い話をひねり出す必要が無いので、気が楽になった。話の結論も何もいらなくて、「そうなんですね」「いいですね」「ほんじゃお疲れ様です〜」みたいな感じで締めくくる。反応に困ったらとりあえず「いいですね」まじで便利!男相手の会話でも有効。インタビューにも応用が利きそうだ。 天気が悪くてだるいので、やる気が出るまで部屋でレシートの撮影などの単純作業をして過ごした。レシートを撮ったら事務代行さんに投げる。そのうちAIに代替させたい。レシートは基本カフェばっかりである。 ユーザフォーラムをチェックしたら、

By Takuya Matsuyama