タグ

ブックマーク / blog.craftz.dog (9)

  • 個人開発を7年以上続けて分かった技術選択のコツ

    技術革新に適応しようとするイヌさんInkdropというMarkdownノートアプリを作り続けて7年になる。 お陰さまでその売上でずっと生活できている。 これまで個人開発でどう継続していくかについて「ユーザの退会理由をあれこれ考えない」とか「アプリの売上目標を立てるのをやめました」とか、ビジネス面あるいはメンタル面からいろいろ書いてきた。 今回は、技術面にフォーカスして、どう継続して開発していくかについてシェアしたい。 TL;DR最初はとにかく最速でリリースする事を最優先する迷ったら「ときめく方」を選べ程よいところで切り上げて開発を進める使っているモジュールがdeprecatedされるなんてザラだと覚悟する古いから悪いとは限らないシンプルにしていく老舗から継続の秘訣を学ぶ運ゲー要素は排除しきれない最初はとにかく最速でリリースする事を目標に技術選定する開発計画とビジネス計画は切っても切り離せな

    個人開発を7年以上続けて分かった技術選択のコツ
  • Electron製アプリの起動速度を1,000ミリ秒速くする方法

    めっちゃダッシュするイヌさん英語で先に書いてから日語訳しています ⇒ English version is available here. こんにちは、TAKUYAと申します。InkdropというMarkdownノートアプリを開発しています。このアプリはElectronで作っています。Electronは、NodeJSとChromium(ブラウザ)ベースでクロスプラットフォームなデスクトップアプリが開発できるフレームワークです。このフレームワークは基的に素晴らしいです。なぜならあなたはネイティブ用のフレームワークを学ぶ必要がなく、JavaScriptHTMLCSSでアプリが作れるからです。もしあなたがウェブデベロッパーだったら、手軽にアプリが作れるでしょう。一方で、多くの人がElectronの弱い点についても言及しています。それはアプリの起動速度が遅い傾向にある、という点です。僕のア

    Electron製アプリの起動速度を1,000ミリ秒速くする方法
    clavier
    clavier 2020/08/13
  • どうやって個人開発を3年間続けたか

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

    どうやって個人開発を3年間続けたか
  • 自作サービスがDDoS攻撃された話 - 週休7日で働きたい

    攻撃に立ち向かうイヌさんThe English version is available here. タイトル訂正: 「自作サービス『に』→『が』DDoS攻撃された話」「それはDDoSではない」という指摘に関して末尾に追記 (6/18)SaaSを開発していると当にいろんな事が起こります。それらは時に開発者に喜びや悲しみ、怒り、感謝、落胆や興奮をくれます。思い返してみれば結局はみんないい思い出になるものです。先週末に、拙作の小さなウェブサービスがDDoS攻撃を受けました。言わずもがな、悪い出来事です。稿ではこの事故がどんなものだったのか、どうやって対処したのかについてお話します。 どうもTAKUYAです。僕はInkdropというクロスプラットフォームなMarkdownノートアプリを独りで3年以上開発・運用しています。ユーザ数2万人以下のとてもニッチなSaaSで、僕はこのサービスで生計を立

    自作サービスがDDoS攻撃された話 - 週休7日で働きたい
    clavier
    clavier 2020/06/16
  • 1人でデスクトップとモバイル両方で動いて同期するアプリをどうやって作ったか

    こんにちは、個人アプリ作家のTAKUYAです。InkdropというクロスプラットフォームなMarkdownノートアプリを1人で開発しています。このアプリはmacOSLinuxWindowsAndroid、iOSで動作します。ご存知かもしれませんが、この5プラットフォームにアプリを対応させるのは簡単ではありません。しかしながらパワフルなフレームワークを活用すれば、それも不可能ではありません。それらに頼るだけでなく、プロジェクトを持続可能に保つための開発戦略も必要となります。記事では、僕がこれまでどのようにして開発して来たのかシェアしたいと思います。 あなたは1人で開発しているのではないクロスプラットフォームなアプリの開発は、往々にして多くの予測不能かつ再現不能な問題を伴います。自分の環境では正しく動いていた機能が、他の環境では思うように動かない。例えば、最近僕もそういう問題を経験しま

    1人でデスクトップとモバイル両方で動いて同期するアプリをどうやって作ったか
  • 月5ドルの自作サービスで最初の500人を集めるまでにやったこと

    顧客はいったん継続課金を開始すると、特に大きな問題に遭遇しない限り概ね何ヶ月も継続して利用する傾向があります。最近のチャーンレート(解約率)は2~3%で、驚くほど低いものでした。ターゲット層である開発者はこだわりが強いため、彼らは熱心に他のMarkdownエディタを何年もかけていろいろ試しています。そして僕のアプリを最終的に選択しました。だからそう簡単に他に移ったり辞めないのでしょう。ちょうど彼のように: Your application is a life changer. I’ve tried numerous markdown based applications over the years and I’m so pleased to finally find a keeper! Awesome work! — James Lilliott しかし彼らは常によりよいツールを探し求め

    月5ドルの自作サービスで最初の500人を集めるまでにやったこと
  • React Native製アプリのクオリティを上げるために工夫した事

    Illustration by unDrawInkdropというMarkdownノートアプリを一人で作っているTAKUYAです。最近、React Nativeを使って、iOS版とAndroid版の新しいバージョンをリリースしました。React Nativeは、JavaScriptReactを使ってクロスプラットフォームなモバイルアプリが開発できるフレームワークです。 どうすればReact Nativeでハイクオリティなアプリが作れるのか、今回の開発を通して多くのことを学びました。稿では、よりよいアプリを作るために自分が工夫したことをシェアします。既にReact Nativeでアプリを作っている方も、これから作ろうと思っている方も参考になるかと思います。 概要OSSライブラリは慎重に選ぶネイティブ拡張モジュールは出来るだけ使わないUIテーマの対応タブレットの対応動作を軽く保つ違和感のない

    React Native製アプリのクオリティを上げるために工夫した事
  • スピードを捨てる: 成長期の個人開発アプリを頓挫させないための戦略

    MarkdownノートアプリのInkdropを一人で作っています。去年の頑張りのお陰で幸いにも月間20万を超える収益化に成功しました。アイデア出しから収益化までの道のりはこちらに書いた通りです。 さて、今後このサービスを継続して成長させていくためには、立ち上げ期とは少し異なる戦略が必要です。それは、課金してくださっている顧客を守る事です。なぜなら、ノートアプリの質は知見の管理だからです。長く使うほどその価値が発揮されます。なので、当初から事業の継続性は最重要視していますが、運用・保守面においてもより一層気を配らせていく必要があります。 稿では、個人開発における事業立ち上げ後の成熟化に向けた心構えや戦略について考えたことを書きたいと思います。 勢いに任せるのは限界がある立ち上げ当初はとにかく勢いを大事にしました。頻繁に新バージョンをリリースして、ブログを書いて、盛り上がりを演出しました。

    スピードを捨てる: 成長期の個人開発アプリを頓挫させないための戦略
  • Inkdropサーバレス化計画

    サーバレスアーキテクチャが自分の中で急に熱い。運用もうやりとうない。業界での知見もぼちぼち出揃ってる感じがあるので自分でも挑戦してみたい。MarkdownノートアプリのInkdropを題材にしてやってみる。 サーバレスアーキテクチャはサーバの運用から解放してくれるサーバレスアーキテクチャとは、その名の通りサーバが無いアーキテクチャのこと。ここでのサーバとは、apacheやnginxなどのサーバプロセスから、LinuxマシンなどのVMを含めたコンピュータを指す。これらを自分で運用する必要がない。まじかよ。 じゃあどうやって提供するのかというと、サーバの代わりにHTTP(S)に応答したりイベントに反応するサービスを使う。処理を行うプログラムは、APIや機能単位で別々にデプロイしたものを使う。これらのプログラムが予め設定した条件で駆動する。つまり、今まで自分でサーバにやらせていたことを、サービス

    Inkdropサーバレス化計画
    clavier
    clavier 2017/06/06
  • 1