
Imported-from-Medium
Inkdropプラグイン開発者ライセンスのご案内
Inkdropプラグイン開発者ライセンスのご案内 プラグインを開発するとInkdropを永久無料で使えるようになります English version is available here. 詳しくは上記英語の記事をご参照ください。
Imported-from-Medium
Inkdropプラグイン開発者ライセンスのご案内 プラグインを開発するとInkdropを永久無料で使えるようになります English version is available here. 詳しくは上記英語の記事をご参照ください。
Imported-from-Medium
最近のプログラマー系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. (手段タイプ)
Imported-from-Medium
モバイル版InkdropがMarkdownの拡張に対応しました Inkdrop mobile v3.5.0のリリースノート こんにちは、個人アプリ作家のTAUKYAです。この記事は、一人で開発しているInkdropというMarkdownノートアプリの大きなアップデートに関する話です。以下が概要です: 1. Appleのガイドライン遵守に向けた技術的な挑戦 2. Markdown拡張レンダラオプションを有効化する手順 3. この3ヶ月間でのモバイル版の改善点 4. 2月はマーケティングに集中したい
Imported-from-Medium
2019年の活動成果まとめ・来年やりたいこと #DevAsLife どうもTAKUYAです。今年も個人開発の活動でいろいろ成果が上がったので、ざっくり振り返りつつ来年の展望を語りたいと思います。去年の成果まとめはこちら。 開発:ユーザサポート:マーケティング = 4:2:4 僕の活動の中心はInkdropというMarkdownノートアプリの開発で、その売上で生活しています。その活動はプログラミングだけではなく、ユーザサポートはもちろん、ブログを始めとした様々なマーケティングを行っています。その時間の比率はだいたい「開発:ユーザサポート:マーケティング = 4:2:4」です。ずっと開発していたい欲求をぐっとこらえながら、他の作業もこなします。時間単位で区切っている訳ではなく、作業の区切りがいい所で切り替えます。ちなみにこの比率は、Inkdropリリース当初からずっと一定で変わっていません。という訳で、個人開発の成果にはアプリの売上やユーザ数だけでなく、SNSのフォロワー数の伸びなども含めます。 活動指針「Dev as Life」 さて、成果を振り返るにあたり念頭に置きたい点がひ
Imported-from-Medium
Stripeベースの自作サービスでカードの不正利用があった場合の対処法 English version is available. どうもTAKUYAです。 30日間のお休みから戻ってきて、自分のSaaSプロジェクト「Inkdrop」の作業を再開しました。これは現在約1,400人の課金ユーザがいるノートアプリです。他のアプリと比べてその規模がとても小さいにも関わらず、今回初めて自サービスにてカードの不正利用が起きてしまいました。 (お休み中にその報告を受けて、休み気分が吹き飛んだのはここだけの秘密です😇) 本稿ではカードの不正利用について調査して学んだこと、そして実際にどのように対処したかシェアしたいと思います。 疑惑のある支払いは全てすぐに返金する 自分たちのサービスの信用を保つためにも、カード支払いに関する紛争(Dispute / 異議申し立て)は可能な限り避けなくてはなりません。StripeはおそらくDisputeの数を監視していて、万が一サービスが有害と判断された場合はStripeアカウントをクローズする権限を持っています。心当たりのない支払いの連絡を受けた時は
Imported-from-Medium
30日間、開発をお休みします Inkdroppersの皆さん、こんにちは。TAKUYAです。 去年の6月頃に30日間開発をお休みしましたが、これがエネルギーをチャージするのにとても良かったです。なので次の大きな機能改修に集中する前に、今年もお休みを取りたいと思います。最近結婚しまして、この休み中に新婚旅行でフランスとドイツに行く予定です。たくさん休んで、健康に気を使いつつ、本を読んだり新しいことを学びたいと思います。ご理解とサポートいつもありがとうございます。I love you guys!
Imported-from-Medium
アプリの売上目標を立てるのをやめました お金は短期的なモチベにしかならない / 「より大きく」ではなく「より良く」を目指す / 足るを知る / 人生は一度きりだから開き直る English version is available here. どうもTAKUYAです。InkdropというMarkdownノートアプリを作って、今は運良くそれで生活が出来ています。1,300人の課金ユーザがおり、コンスタントに成長しています。つまり、僕は拙作アプリで食うという念願の目標を達成しました。総売上は1,000万円を既に超えました。1,000人の顧客を抱えていれば、生活費を賄うための心配をしなくて済みます。さらに、旅行に行ったり自己投資する余裕すらあります。とても幸せです。 しかしながら、それは僕がもう開発を頑張らなくていいという意味ではありません。アプリは引き続きメンテしていく必要があるからです。解決すべき問題や、改良すべき機能は常に山積みです。サーバが落ちていてはユーザは速やかに使うのをやめてしまうでしょう。ロードマップを公開して、僕が今後どんな改善に取り組むのかを宣言しました。顧客
Imported-from-Medium
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
Imported-from-Medium
外付け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の遅さという
Imported-from-Medium
よい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にて導入されました。 彼らが言う
Imported-from-Medium
Inkdrop のロードマップ vol.4 エクスポート機能の強化、ノートブックのプロジェクトライクな動作、モバイル版のプラグイン対応など 更新: 新しいロードマップはこちら English version is available here. どうもTAKUYAです。 Inkdropはクロスプラットフォームで同期するMarkdown専用ノートアプリです。つい先日までvol.3のロードマップに取り組んでいましたが、ついに完走しました🎉 今僕らは、より永く続く開発に向けてモダンなライブラリを使ってイチから作り直したv4を手にしました。 (v4の新しい点についてもしまだご存じない方は、こちらを参照ください) この取り組みが本プロジェクトの継続性を高める大事なステップになると僕は信じています。このv4のローンチに併せてウェブサイトをリデザインしたのですが、この作業はアプリのコンセプトについて見つめ直すいい機会になりました。ですので、ロードマップの話に入る前に、まずは本アプリのコンセプトについて改めてお話したいと思います。どうぞお付き合いください。 Inkdropの課金ユーザが
Imported-from-Medium
1人でデスクトップとモバイル両対応でデータ同期するアプリをどうやって作ったか 5プラットフォームで動くSaaSを個人で開発するためにやったこと こんにちは、個人アプリ作家のTAKUYAです。InkdropというクロスプラットフォームなMarkdownノートアプリを1人で開発しています。このアプリはmacOS、Linux、Windows、Android、iOSで動作します。ご存知かもしれませんが、この5プラットフォームにアプリを対応させるのは簡単ではありません。しかしながらパワフルなフレームワークを活用すれば、それも不可能ではありません。それらに頼るだけでなく、プロジェクトを持続可能に保つための開発戦略も必要となります。本記事では、僕がこれまでどのようにして開発して来たのかシェアしたいと思います。 あなたは1人で開発しているのではない クロスプラットフォームなアプリの開発は、往々にして多くの予測不能かつ再現不能な問題を伴います。自分の環境では正しく動いていた機能が、他の環境では思うように動かない。例えば、最近僕もそういう問題を経験しましたが、それは起動直後にアプリの画面が空白に