Inkdrop Mobile v2 プライベートβ 公開のお知らせ

Share
Inkdrop Mobile v2 プライベートβ 公開のお知らせ

Inkdrop Mobile v2 プライベートβ 公開のお知らせ

こちらは本家記事の日本語訳です。

こんにちは、InkdropソロデベロッパーのTAKUYAです。

長らくお待たせしていた新モバイル版Inkdropがようやくプライベートβでの公開に漕ぎ着けました。最後にロードマップを公表してから早6ヶ月です。あっという間でした。ずっと水面下で開発していたので一部の方にはこのプロジェクトの勢いが以前よりも衰えたと感じていたかもしれません。ご安心ください、そんなことは全くありません。英語アカウントの方のTwitterで頻繁に開発の進捗を報告していたので、ご存知の方もいるかと思います。長い間お待ちいただき本当にありがとうございます。

本稿ではこの6ヶ月間の取り組みや、新しいインターフェイスと多くの改善が加えられたアプリについて少しご紹介します。

6ヶ月も要した主な理由はこれです。以前、こちらの記事にも書きましたが、Inkdropには根本的な再デザインが必要でした。今後も安全性や安定性、シンプルさ、簡潔さを保ちつつ開発を長期的に継続していくためです。そのために新しいコアモジュール群はJavaScript + Flowで書き直されテストが加えられました。これらは次のロードマップで、デスクトップ版の実装にも置き換えられます。そうすれば、このアプリは5プラットフォームに対応しながらも1つの共通化されたコードベースによって構成されるようになって、たった一人でも十分可能なメンテ性が実現されます。これは自分だけでなく皆さんにとっても、プロジェクトの継続性を確かなものにする重要なステップです。その難しい作業を6ヶ月でほぼ終えることができて僕はとても嬉しいです。

では、今回のアップデートについてもう少し詳しく見ていきましょう。

以前のバージョンでは大きな問題を抱えていました — すごく動作が遅かった点です。Google Pixel 1のようなハイエンド製品であっても苦しい動作ラグがありました。なぜこんなに重かったのかというと、アプリはReact Native製で、JavaScriptで組まれていたからです。JavaScriptはマルチスレッドに対応していません。なのでデータアクセス処理をバックグラウンドスレッドで実行させるために悪戦苦闘していました。そこにはUIに影響を与える3つのボトルネックがありました:

  1. SQLite の I/O
  2. 全文検索に向けた日本語のトークナイズ
  3. 大量の単語データの保存

1については、拙作のsqlite3モジュールを改良してすべての処理をバックグラウンドスレッドで行うようにしました。2に対しては、専用の分かち書きネイティブモジュールを開発しました。3はPouchDB依存の問題なのですが、内部処置を小分けして実行するように改造しました。これらの対処が功を奏して、僕らが渇望していたスムーズなスクロールやもっさり感が解決できました。

そしてエディタです。これもノートの読み込みがすごく重かったのですが、改善しました。重かった理由は、コンポーネントがWebベースで作られていたことと、非効率なビュー構造です。アプリはWebViewを毎回ノートを開くたびに読み込まなくてはいけませんでした。それが受け入れがたい読み込み時間を引き起こしていました。React Nativeはプログラミングパラダイムとして宣言的なビューの記述をしなくてはなりません。そのため、エディタを閉じてノート一覧画面に戻ると常にWebViewもアンロードされてしまっていました。この問題を解決するために畳み込み構造を持つコンポーネントを設計しました。エディタは常にノート一覧画面の裏にいるので、アンロードされません。このコンポーネントのお陰で無駄な読み込み時間を短縮することが出来ました。

これらの改善によって、手元のMoto G5 (Google Pixel 1よりも二倍遅い)でも充分なパフォーマンスで動作するようになりました。

僕はiOSユーザなので、アプリのUIがiOSっぽくなってしまうのは避けがたい問題でした。でも NativeBase というReact Native向けのクロスプラットフォームなコンポーネントライブラリのお陰で、簡単にマテリアルデザインに沿ったUIを構築できました。Androidユーザの皆さんが違和感なく使えるものになったことを願います :)

Android版のMarkdownエディタは完成度が低くてお粗末なものでした。それはエディタと呼ぶには相応しくないほどに機能が大きく欠けていました。そこには技術的なハードルがあったからです — Google Play Storeでもごく僅かなアプリしか高機能なエディタを備えていないように。しかしInkdropはそれを乗り越えました。デスクトップ版と同じ実装、つまりAndroid上でCodeMirrorをうまく動かすことに成功しました。ツールバーはもちろん、リスト補完、コードブロックの構文ハイライト、オートインデント、日本語入力対応などがAndroidでも実現しました。この実装アプローチには多くの可能性があります。例えば、vimキーバインドの対応も将来的には不可能ではないでしょう。

僕らはプログラミングをするのにまだまだPCが不可欠ですが、アプリがユビキタスに様々なデバイスで動作することを望んでいます。いつでもどこでも働けるように。だからタブレット対応によってアプリがより便利でパワフルになることは間違いありません。僕もそれを望んでいた一人です。自分のiPad Proでも使えるようになってすごく嬉しいです。

タブレット上では、アプリはデスクトップ版と同じく3カラムのレイアウトです。サイドバーとノート一覧は非表示に出来るので、読み書きに集中できます。大きなタッチスクリーンでのノートテイキングを是非お楽しみください。

なぜ僕らプログラマーは暗黒のUIをこぞって好むのでしょうか。僕にはわかりません。しかし、かっこいいのは事実です。本ベータ版ではデフォルトのUIがダークテーマに設定されています。反転した色の美しき世界へようこそ。

みなさんのサポートがなければここまでたどり着けませんでした。感謝の意を込めて、正規ユーザの皆様に限定してベータ版のアクセスをいち早くご提供します。

プライベートβテストに参加するには以下の手順を踏んでください:

  1. フォーラム
  2. 専用トピック
  3. コメントで参加の旨を表明する(例: “I’d like to test android version.”など。出来れば英語でお願いします) — あなたのプラットフォーム(Android/iOS)を教えてください。Androidの場合はPlay Storeの登録アドレスをDM経由で教えてください。
  4. こちらのトピック

ご協力ありがとうございます!

Read more

信念を貫け!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
個人開発で日本から海外へ、10年間の歴史 — ひろしさんとの対談(前編)

個人開発で日本から海外へ、10年間の歴史 — ひろしさんとの対談(前編)

数週間前、ひろしさんのポッドキャストにゲストで出演しました。お互いの長い個人開発の経験について語り合いました。英語版を作成する過程で、日本語でも綺麗に整形した書き起こしが出来たので、こちらに掲載します。お楽しみください。 ※ギアアイコンをクリックして、音声と字幕を日本語に変更できます。 00:00 イントロ:TAKUYAさんようこそ 01:32 TAKUYAさんの自己紹介:WalknoteからInkdropまで 04:54 独立への踏み切り方:慎重派と勢い派 06:51 個人開発がフリーランス案件につながった 09:17 Inkdropで食えるようになるまで 12:15 なぜ最初から海外市場を狙ったのか 14:54 AI登場前、英語コピーに苦戦した話 16:18 AIバイブコーディング時代をどう見ているか 17:24 全てのコードを一行ずつレビューする使い方 21:06 AIは新幹線:速さの先にあるもの 25:53 AI時代に「感性」が大事になる 27:

By Takuya Matsuyama