Inkdrop

アプリのダウンロードを高速にしたらユーザさんが大喜びしてくれた

Imported-from-Medium

アプリのダウンロードを高速にしたらユーザさんが大喜びしてくれた

アプリのダウンロードを高速にしたらユーザさんが大喜びしてくれた MarkdownエディタのInkdropを一人で開発して脱受託を目指しているフリーランスです。 デスクトップ版はなんだかんだでファイルサイズが100MBを超えているため、ダウンロードに数分以上の時間が掛かるという問題がありました。地域によっては10分を超えることも。これを数秒でダウンロード出来るようにしたところ、ユーザさんが大喜びしてくれました。本稿ではこの体験からの学びをシェアしたいと思います。 かかっていたダウンロード時間は数分から十分程度です。しかしこの数分が苦痛なんですね。待っていられない。ダウンロードしている間にアプリを使いたいというモーメンタムはどんどん萎えていき、遂にはキャンセルボタンを押した人がきっと何人もいたに違いありません。 ユーザ登録という高いハードルをわざわざ越えて来たのに、そこから更に数分待たせるというのは接客としてどうなんでしょうか。フリーウェアならまだ許せるかもですが、有料アプリでその体験をさせられると「これ、サービスを使わせる気あるのか?」と思ってしまいます。 実は、これまでにユー

By Takuya Matsuyama
vimキーバインドに対応しました — Inkdrop

Imported-from-Medium

vimキーバインドに対応しました — Inkdrop

vimキーバインドに対応しました — Inkdrop 原文: https://blog.inkdrop.info/enabling-vim-keybindings-547f148b73b1 Markdownエディタ Inkdrop は v3.11.0 からプラグイン拡張によるvimのキーバインドに対応しました。機能は以下の通りです(直訳ですみません): * テキストオブジェクトを含む全ての共通のモーションとオペレータ * 直交的なオペレータモーション * ビジュアルモード — characterwise, linewise, blockwise * インクリメンタルにハイライトする検索 (/, ?, #, *, g#, g*) * 確認付き検索・置換 (:substitute, :%s) * 検索ヒストリ * ソート (:sort) * マーク (,) * :global * クロスバッファ yank/paste * クリップボードとの連動 vimプラグインをインストールするには ipm コマンドを使います。これはプラグインを管理するためのCLIツールです

By Takuya Matsuyama
シドニーの会社から仕事の相談が来た

Imported-from-Medium

シドニーの会社から仕事の相談が来た

シドニーの会社から仕事の相談が来た フリーランスとして海外の仕事をゲットするまでの奮闘記 自分はフリーランスをしつつ脱受託を目指してMarkdownエディタアプリを作ったりしている。兼ねてから海外の仕事が欲しくて、ロンドンに旅行した際に現地のミートアップでライトニングトークをしたりと地道に活動をしている。アプリのマーケティングも兼ねて書いている英語ブログは、先日書いた記事がバズって1700ものclapsを獲得した。そんな折に、オーストラリアの会社からお声がかかった。その経緯と自分の取っている戦略について書きたい。 * 海外の仕事は自己投資・さらなる刺激・報酬アップが狙い * 相談主は自分のアプリのユーザさんだった * ブログは効果的な営業活動 * 人の紹介はリスク回避の効果がある * 求人サイトは基本的に不利 * プラットフォームに自分を埋もれさせないための戦略 まず、海外の仕事を取りたい理由は主に以下の3つ: 1. 英語レベルを上げたい 2. 面白い事がしたい 3. 報酬を上げたい 海外の仕事を取るために英語を勉強するのではいつまで経っても上達しない。そ

By Takuya Matsuyama
Inkdropに日本語でやりとりできるフォーラムを開設しました

Imported-from-Medium

Inkdropに日本語でやりとりできるフォーラムを開設しました

Inkdropに日本語でやりとりできるフォーラムを開設しました Inkdropは本日、新しいユーザフォーラムを開設しました。これまでのGitHubを使ったフォーラム運営は、投票機能が無かったりユーザさん同士で助け合うといった事がしづらいなど、機能上の問題がありました。また、やりとりが基本的に英語なので、やはり日本語でやりとり出来る場所があったほうが日本のユーザの皆さんをよりサポートできると考えました。例えばバグを見つけたけど英語だから報告しにくい、といった問題がしばしば起こっていたように思います。これらの問題を一挙に解決すべく、フォーラムを移行することに決めました。 英語での詳細は以下のエントリをご覧ください: フォーラムはInkdropのアカウントを使って以下からログインできます。 * https://forum.inkdrop.info/ ログインすると、機能要望やサポートのカテゴリなどが表示されます。しかし、日本語用のカテゴリは標準では表示されません。以下の “japanese” グループに参加してください: * https://forum.inkdrop.inf

By Takuya Matsuyama
Inkdropでノートをウェブに公開できるようになりました

Imported-from-Medium

Inkdropでノートをウェブに公開できるようになりました

Inkdropでノートをウェブに公開できるようになりました ちょっとしたバージョンアップ情報です。開発は様々な改善を重ねながらロードマップを順調に進んできています。日々いただくユーザさんからのバグ報告と機能要望にとても感謝しています。 さて、昨日8月19日にリリースしたv3.8.0では、ノートのウェブ公開機能をサポートしました。個別のノートをウェブ上に公開して、同僚や友人に見せることができる機能です。今のところデスクトップ版でのみ使用できますが、順次モバイル版も対応していきます。例としてv3.8.0のChange Logを公開しましたので、どんな感じか見てみてください。 まず公開したいノートを開いて、画面右上の “Share Note”をクリックします。 すると、確認ダイアログが表示されますので、続ける場合は“Share”ボタンを押下します。 公開リンク(Public Link)が発行されます。画面に表示されたURLをクリックすると、ブラウザで表示できます。 公開を停止したいときは、 “Stop Sharing Public Link” をクリックします。 公開リンクを作

By Takuya Matsuyama
英語が出来なくても海外向けサービスは作れる

Imported-from-Medium

英語が出来なくても海外向けサービスは作れる

英語が出来なくても海外向けサービスは作れる 個人開発では小さなニッチの領域を攻めるので、サービスが地域依存でもない限りターゲットは日本に絞らず海外も入れたい。自分はInkdropという英語のサービスを一人で作っている。ありがたいことに狙い通り海外ユーザが集まってくれている。すごく楽しい。でも別にTOEICが900点台だとか東大卒で英語が得意という訳でもなく、むしろコンプレックスなぐらい英語が出来ない。ウェブページのサービス紹介文はいろんな所から使えそうな文言を切り貼りして作ったし。 この経験を通して一つ言えることがある。海外向けのサービスを作るためにまず英語を学ぶのではなく、海外向けサービスを作って英語を学ぶのが最短のアプローチだということ。心配しなくていい、海外の人はBroken Englishに慣れている。GitHubでもたまに見かけるでしょ。 実際サービスを公開してみて自分の英語を笑うような人は全然いなかったし、ちゃんと中身で判断してくれていると感じた。だから自分の英語に自信が無くてもまずは作ってしまえばいい。実力は後から付いてくるから。 そもそも日本人は英語コンプレック

By Takuya Matsuyama
ロンドンのミートアップで自作アプリについて喋ってみた

Imported-from-Medium

ロンドンのミートアップで自作アプリについて喋ってみた

ロンドンのミートアップで自作アプリについて喋ってみた 兼ねてから計画していた2週間のロンドン旅行で、せっかくだし現地のデベロッパーコミュニティと交流したいなぁと思っていた。フリーランスとして仕事に繋がったら面白いし。で、聴衆としてただ参加したのでは誰からも相手にされず透明人間になってしまうので、発表できる場を探して2つ参加してみた: 1. Mobile App Lightning Talks 2. React Native London Meetup July 2017 どちらも参加者数は80人ぐらい。React Native Londonの方は偶然誘われて参加した。オーガナイザーの人が1つめの方で書いた自分のコメントを見つけてくれたのがきっかけ。二つ返事で参加の意を伝えた。発表した資料はこちら: 内容は、MarkdownノートアプリInkdropのモバイル版をReact Nativeで作った話。滞在先のホテルとか大英図書館で資料を作った。なんとなくセリフを決めてあとはぶっつけで喋った。さほど緊張しなかった。2回とも同じ内容で喋ったんだけど、1回目のMobile App L

By Takuya Matsuyama
「実装しない」機能の決め方

Imported-from-Medium

「実装しない」機能の決め方

「実装しない」機能の決め方 個人開発のアプリはシンプルさが肝要。AdobeやMicrosoftのような巨大企業でない限り、機能で勝負しても負けるのは火を見るより明らか。難しいことは他に任せて、自分が解決したい問題にだけ集中する。作りたいアプリ像がはっきりしていれば、機能の取捨選択は簡単にできる。 拙作のInkdropというMarkdownノートアプリも、無駄な機能を付けないように努めている。そのためならユーザの要望も遠慮無く断る。今このアプリにお金を払ってくれている人は、そのシンプルさを買ってくれていると断言できる。ユーザさんにヒヤリングした時、以下のようなメッセージを貰った: My suggestion would be to try to keep the app clean and simple, focus on supporting developers primarily and not to over-complicate things (like basically all the other note-taking systems out there). — I

By Takuya Matsuyama
MarkdownノートアプリInkdropで家賃の半分が賄えるようになりました

Imported-from-Medium

MarkdownノートアプリInkdropで家賃の半分が賄えるようになりました

MarkdownノートアプリInkdropで家賃の半分が賄えるようになりました 4月にInkdropの総売上が10万円を超えた報告をしてから、久々の売上報告です。Inkdropはクローズドソースですが、プロジェクトで得た知見は惜しみなくオープンにしていくつもりです。どんどんやり方パクってください。もし質問などあればコメント欄やTwitterにて受け付けます。 * 驚きの解約率の低さ * 注文の多い少数派を相手にしすぎない * ブログを始めたら日本のユーザが増えた * 1000人のユーザが1人を食わせるモデルを確立したい 既にInkdropについてご存知の方は読み飛ばして下さい。 Inkdropはマルチプラットフォームで動作するノートアプリです。今のところmacOS、Windows、Ubuntu、iPhone、Androidに対応しています。 日々の作業記録や議事録、コードスニペットからブログの下書きまで、技術的な事柄を構文ハイライト対応のMarkdownで快適に書けるようにデザインされたアプリです。美しいUIテーマ、素早いデータ同期、拡張可能なプラグイン機構を備えてい

By Takuya Matsuyama
個人でプロダクトを作りながらフリーランスする生活って実際どうなの

Imported-from-Medium

個人でプロダクトを作りながらフリーランスする生活って実際どうなの

個人でプロダクトを作りながらフリーランスする生活って実際どうなの 自分のライフスタイルは、最終的に自分のプロダクトだけで生計が立てられるようになる事を目指している。でもまだ売上が足りないのでたまにフリーランスとして受託をしているという感じ。さて、この生活を6年間続けてるわけだけど、実際どうなのか書いてみたい。 まずプロダクト作りとフリーランシングは協調関係にある。片方が上手く行けば、もう片方も良くなる。なぜならプロダクトを自分で作ることは以下の恩恵が得られるから: 1. 新しい事に挑戦して能力が上がる 2. プロダクトが実績になる 個人開発では誰も怒る人がいない。なので思う存分挑戦できる。それに対して受託開発では新しいことに挑戦しにくい。失敗したら最悪報酬がもらえなくなってしまうから。受託では挑戦しない代わりに、現時点で知りうる最短距離で最高品質なモノを提供する。 また、個人で作ったプロダクトが何らかの成果を上げれば、全て自分の実績になる。「これ俺がやった」とバイネームで語れる実績というのは貴重。実績が出来るとより条件のいい仕事が貰いやすくなる。 一方、受託の仕事がうま

By Takuya Matsuyama
サーバレスでベンダーロックインを避ける方法

Imported-from-Medium

サーバレスでベンダーロックインを避ける方法

サーバレスでベンダーロックインを避ける方法 ここ数日、ノートアプリInkdropを題材にしてAWS Lambdaを触っていた。まずはherokuで運用してるAPIをLambdaで動かすことに成功した。良かった点は、koa.js製のコードベースをほぼ変更する必要が無かった事。小さなfunctionに小分けする必要すら無かった。思ってたよりすんなり行って拍子抜けしてる。 見方を変えると、このAPIがHerokuとLambdaの両方で動くようになったと評価できる。これは嬉しい誤算。帰り道が残されたのは安心感がある。サーバレスには興味あるけど、移行コストがかかりそうとかロックインされるんじゃないかと思っている人が多いと思う。でも工夫すれば案外手軽にできることが分かったので、参考にしてもらいたい。 アーキテクチャについては先日こちらに書いたとおり、AWS Lambda + API Gatewayという構成。APIを動かすにあたって以下の記事を参考にした。 * Going Serverless: Migrating an Express Application to Amazon API

By Takuya Matsuyama
Inkdropサーバレス化計画

Imported-from-Medium

Inkdropサーバレス化計画

Inkdropサーバレス化計画 サーバレスアーキテクチャが自分の中で急に熱い。運用もうやりとうない。業界での知見もぼちぼち出揃ってる感じがあるので自分でも挑戦してみたい。MarkdownノートアプリのInkdropを題材にしてやってみる。 サーバレスアーキテクチャとは、その名の通りサーバが無いアーキテクチャのこと。ここでのサーバとは、apacheやnginxなどのサーバプロセスから、LinuxマシンなどのVMを含めたコンピュータを指す。これらを自分で運用する必要がない。まじかよ。 じゃあどうやって提供するのかというと、サーバの代わりにHTTP(S)に応答したりイベントに反応するサービスを使う。処理を行うプログラムは、APIや機能単位で別々にデプロイしたものを使う。これらのプログラムが予め設定した条件で駆動する。つまり、今まで自分でサーバにやらせていたことを、サービス側でやってもらうということ。 メリットは主に3つある。まずスケールの心配が要らない。サービスが勝手に負荷に合わせてリソースを調整してくれるから。次に、コストを最小限に抑えられる。使われていないサーバの稼働時間にお金を

By Takuya Matsuyama