どうやって個人開発を3年間続けたか

Imported-from-Medium

どうやって個人開発を3年間続けたか

どうやって個人開発を3年間続けたか 自分の情熱、作ったモノの魅力、不安や恐れに対して「なぜ」を突き詰める こんにちは、TAKUYAです。 僕はInkdropというMarkdownノートアプリを1人で開発しています。みなさんの応援のおかげで、このプロジェクトも3年目を迎えられました。現在はベータテスト中の新バージョンのリリースに向けて準備中です(お楽しみに!)。さて、3年というのは改めて考えるとなかなか長い旅です。これまでブログでも述べてきた通り、それは短期的な成果よりも中長期的な継続性に注力する戦略を取ってきた結果でしょう。例えば、サブスクリプションモデルの価格、多機能化よりもコア機能を改善するロードマップや、素早く丁寧なユーザサポートなどです。すべて1人でやってきました。この戦略を実行するために、朝起きて机に向かい、vimを立ち上げて、新しい問い合わせをチェックして、あれをやってこれもやって……というのをほぼ毎日続けました。その日々はこれからも続きます。 もちろん、投げ出したくなったり、何もしたくない日だって沢山ありました。たとえいくら好きな事であっても、プロジェクトを何年も

By Takuya Matsuyama
最近のプログラマー系YouTuberの分析と差別化メモ

Imported-from-Medium

最近のプログラマー系YouTuberの分析と差別化メモ

最近のプログラマー系YouTuberの分析と差別化戦略メモ This note is my analysis on YouTube channels which are especially in a programming topic in Japan towards considering a strategy for making my YouTube channel. どうもTAKUYAです。拙作アプリのマーケティングの一環として、1年ぐらい前から自分もYouTubeで情報発信を始めた。ありがたいことに購読者数が1,400人を超えた。普通は「毎日沢山投稿しろ」と言われるが、動画はクオリティ重視で日本語と英語合わせて10本しかアップしていない。手応えありと言える。 さて、今後も続けていくにあたって既存の日本のプログラマー系YouTuberの分析をする。戦わないために。今後YouTubeチャンネルを作ろうと考えている人にも参考になれば幸いである。 職業プログラマ(志望)を対象とするものがほとんど 世の中のプログラマーは大きく分けて2種類いる: 1. (手段タイプ)

By Takuya Matsuyama
モバイル版InkdropがMarkdownの拡張に対応しました

Imported-from-Medium

モバイル版InkdropがMarkdownの拡張に対応しました

モバイル版InkdropがMarkdownの拡張に対応しました Inkdrop mobile v3.5.0のリリースノート こんにちは、個人アプリ作家のTAUKYAです。この記事は、一人で開発しているInkdropというMarkdownノートアプリの大きなアップデートに関する話です。以下が概要です: 1. Appleのガイドライン遵守に向けた技術的な挑戦 2. Markdown拡張レンダラオプションを有効化する手順 3. この3ヶ月間でのモバイル版の改善点 4. 2月はマーケティングに集中したい

By Takuya Matsuyama
2019年の活動成果まとめ・来年やりたいこと #DevAsLife

Imported-from-Medium

2019年の活動成果まとめ・来年やりたいこと #DevAsLife

2019年の活動成果まとめ・来年やりたいこと #DevAsLife どうもTAKUYAです。今年も個人開発の活動でいろいろ成果が上がったので、ざっくり振り返りつつ来年の展望を語りたいと思います。去年の成果まとめはこちら。 開発:ユーザサポート:マーケティング = 4:2:4 僕の活動の中心はInkdropというMarkdownノートアプリの開発で、その売上で生活しています。その活動はプログラミングだけではなく、ユーザサポートはもちろん、ブログを始めとした様々なマーケティングを行っています。その時間の比率はだいたい「開発:ユーザサポート:マーケティング = 4:2:4」です。ずっと開発していたい欲求をぐっとこらえながら、他の作業もこなします。時間単位で区切っている訳ではなく、作業の区切りがいい所で切り替えます。ちなみにこの比率は、Inkdropリリース当初からずっと一定で変わっていません。という訳で、個人開発の成果にはアプリの売上やユーザ数だけでなく、SNSのフォロワー数の伸びなども含めます。 活動指針「Dev as Life」 さて、成果を振り返るにあたり念頭に置きたい点がひ

By Takuya Matsuyama
自分らしいアプリを開発する方法

Imported-from-Medium

自分らしいアプリを開発する方法

自分らしいアプリを開発する方法 こんにちは、TAKUYAです。YouTubeに新しい動画を投稿しました。今回は、自分らしいアプリを開発する方法についてです。 人が買いたいと思うような収益を生むプロダクトを作るのは大変です。本ブログでもそのコツは、自分自身が買いたいと思うものを作ることだと述べました。ではそんなアイデアをどうやったら見つけられるのでしょうか?また、どうやったらそのアイデアを具現化できるようになれるのでしょうか?今回のビデオでは、僕がどのようにして来たか、先人の言葉を交えながらご説明します。この動画があなたのアプリ開発の参考になれば幸いです :)

By Takuya Matsuyama
Stripeベースの自作サービスでカードの不正利用があった場合の対処法

Imported-from-Medium

Stripeベースの自作サービスでカードの不正利用があった場合の対処法

Stripeベースの自作サービスでカードの不正利用があった場合の対処法 English version is available. どうもTAKUYAです。 30日間のお休みから戻ってきて、自分のSaaSプロジェクト「Inkdrop」の作業を再開しました。これは現在約1,400人の課金ユーザがいるノートアプリです。他のアプリと比べてその規模がとても小さいにも関わらず、今回初めて自サービスにてカードの不正利用が起きてしまいました。 (お休み中にその報告を受けて、休み気分が吹き飛んだのはここだけの秘密です😇) 本稿ではカードの不正利用について調査して学んだこと、そして実際にどのように対処したかシェアしたいと思います。 疑惑のある支払いは全てすぐに返金する 自分たちのサービスの信用を保つためにも、カード支払いに関する紛争(Dispute / 異議申し立て)は可能な限り避けなくてはなりません。StripeはおそらくDisputeの数を監視していて、万が一サービスが有害と判断された場合はStripeアカウントをクローズする権限を持っています。心当たりのない支払いの連絡を受けた時は

By Takuya Matsuyama
30日間、開発をお休みします

Imported-from-Medium

30日間、開発をお休みします

30日間、開発をお休みします Inkdroppersの皆さん、こんにちは。TAKUYAです。 去年の6月頃に30日間開発をお休みしましたが、これがエネルギーをチャージするのにとても良かったです。なので次の大きな機能改修に集中する前に、今年もお休みを取りたいと思います。最近結婚しまして、この休み中に新婚旅行でフランスとドイツに行く予定です。たくさん休んで、健康に気を使いつつ、本を読んだり新しいことを学びたいと思います。ご理解とサポートいつもありがとうございます。I love you guys!

By Takuya Matsuyama
アプリの売上目標を立てるのをやめました

Imported-from-Medium

アプリの売上目標を立てるのをやめました

アプリの売上目標を立てるのをやめました お金は短期的なモチベにしかならない / 「より大きく」ではなく「より良く」を目指す / 足るを知る / 人生は一度きりだから開き直る English version is available here. どうもTAKUYAです。InkdropというMarkdownノートアプリを作って、今は運良くそれで生活が出来ています。1,300人の課金ユーザがおり、コンスタントに成長しています。つまり、僕は拙作アプリで食うという念願の目標を達成しました。総売上は1,000万円を既に超えました。1,000人の顧客を抱えていれば、生活費を賄うための心配をしなくて済みます。さらに、旅行に行ったり自己投資する余裕すらあります。とても幸せです。 しかしながら、それは僕がもう開発を頑張らなくていいという意味ではありません。アプリは引き続きメンテしていく必要があるからです。解決すべき問題や、改良すべき機能は常に山積みです。サーバが落ちていてはユーザは速やかに使うのをやめてしまうでしょう。ロードマップを公開して、僕が今後どんな改善に取り組むのかを宣言しました。顧客

By Takuya Matsuyama
Stripeで増税対応する方法

Imported-from-Medium

Stripeで増税対応する方法

Stripeで増税対応する方法 どうもTAKUYAです。2019年10月1日から日本の消費税が8%から10%に変更された。一般的なウェブサービスの利用料は軽減税率の適応外のため、消費税は10%となる。拙作アプリInkdropでは課金にStripeを使用している。このStripeではこの対応をどうやって行うのか、備忘録も兼ねて書いておく。 Tax Ratesオブジェクトの管理 Stripeでは最近tax ratesという項目が追加された。これまで tax_rates というフィールドを個別の請求やサブスクに指定していたが、今後はあらかじめ作成したTax RatesのIDを指定する。以下が移行に関するドキュメント。中の人のSamantha氏がわざわざメールで教えてくれた。 Migrating to TaxRate and TaxID | Stripe BillingMoving from tax_percent to Tax Rates, and tax_info, tax_info_verification, and business_vat_id to Customer Ta

By Takuya Matsuyama
外付けSSDを使ったらVMWareの動作速度が飛躍した

Imported-from-Medium

外付けSSDを使ったらVMWareの動作速度が飛躍した

外付けSSDを使ったらVMWareの動作速度が飛躍した Fusion DriveはVMを動かすのに向いていない。SSDを買おう。 どうもTAKUYAです。拙作のInkdropというノートアプリでは、Windows版・Linux版をビルドするためにmacOS上でVMWareを使用しています。しかし、特にWindowsのバーチャルマシンが死ぬほど重いという問題がありました。何かするたびにマウスポインタが砂時計になり、ほとんど使い物になりませんでした。 なのでこれまではAWSのEC2でWindowsインスタンス(m5.large)を利用してビルドしていました。でもこの方法だとビルドの際に毎回インスタンスを起動・終了する必要がありますし、たまに終了し忘れたりしました。EC2のコストは時間単位でかかる($0.124/h)ので、落ち着いて使用できないという問題もあり、とてもストレスフルでした。 VMWareのパフォーマンスを解決するために、ネットで見つかる様々な方法を試しましたが、微妙か全然効果が無いものばかりでした。設定をいじくるだけでは解決できないと諦めました。原因はI/Oの遅さという

By Takuya Matsuyama
よいDXに向けてRecomposeのHOCをReact Hooksに置き換える

Imported-from-Medium

よいDXに向けてRecomposeのHOCをReact Hooksに置き換える

よいDXに向けてRecomposeのHOCをReact Hooksに置き換える English version is here. どうもTAKUYAです。InkdropというMarkdownノートアプリを1人で作っています。そのモバイル版はReact Nativeで組まれています。最近コードベースをリファクタリングして、RecomposeからReact Hooksに乗り換えました。本稿ではその作業の際に発見したコツなどをシェアしたいと思います。 HOC多用はメンテナンス性が低くなる RecomposeとはHOC(Higher-order components)で効率よくStateless functional componentsベースのReactアプリを組むための便利関数ライブラリです。作者はAndrew Clarkです。例えるなら、React版Lodashみたいな感じです。このライブラリの開発は2018年12月4日を最後に止まっています。なぜなら彼がReactのチームに参加したからです。そしてReact HooksがReact v16.8にて導入されました。 彼らが言う

By Takuya Matsuyama