2020年個人プロダクト開発(とか)の振り返り

今年は子供が生まれた(めちゃくちゃ可愛い、最高)ので、あまり個人のプロダクト開発には時間を取れないかなと思ってた。けど奥さんの理解と協力があり、結構開発できたと思う。めっちゃ感謝。というわけで簡単に振り返っておこう。

Jasper v1.0のリリース

https://jasperapp.io/

Jasperを開発しはじめて5年目、ついにv1.0をリリースできたぞ!!v1.0の開発は6月末からはじめて、10月に完成という感じだった。v1.0ではコンセプト自体はそのままで、内部のアーキテクチャと実装を刷新(+2万L/-1.5万L)。TypeScriptのおかげでこういう大規模な改修もあまり怖くなくできて最高だったな。

この刷新によってパフォーマンスが体感できるぐらいよくなったし、拡張性もだいぶよくなったと思う。他にもデザインのモダン化、GitHub API v4(GraphQL)に対応、GitHub Projectに対応、ドキュメントの刷新などなど。だいぶ頑張った。ユーザの反応もかなり良くて嬉しかったな。

手前味噌だけどJasperないと仕事にならないぐらいめっちゃ使ってるので、今後も開発頑張っていくぞ。

食卓ラボリリース

https://dininglab.app/

我が家は奥さんも僕も料理が好きだし、食べるのも好き。なので食卓楽しくするためのプロダクトとして食卓ラボを作った。構想は去年からしてて、実際の開発は2月ぐらいから初めて6月末にリリース

これでReact Nativeでアプリを作るのは3つめだし、だいぶこなれた感じで作れたな。React Native自体も安定してきて、特にネイティブモジュールを追加するのが格段に楽になって最高。React Navigation(画面遷移のライブラリ)もv5からReact Componentベースになってすごく使いやすくなって最高。

バックエンドはGCP(GAE + Node.js + Express)で素朴に作ってある。あまり大したことはしてない。ただのCRUDアプリ。でも結構費用かかってるのでなんとかしたい・・・。なんでかっていうと投稿された画像のリサイズ処理をアプリサーバでやってる関係でGAE Flexibleインスタンスでメモリを増やしたりしてるから。あとCloud SQLも結構いい値段する。まあ面倒なことはすべて見てくれてるからありがたいんだけどね。とはいえ高い。

あとアプリのアイコンはなんかもっといい感じにしたかったが、素人には限界だった・・・。やっぱりちゃんとプロにお金払って作ってもらうのがいいよなぁ。

今は数名がヘビーに使ってくれている段階なので、来年は積極的に宣伝してフィットするユーザに届けたい & 増やしたい。

Trickle改善

https://trickleapp.me/

TrickleはReact Native/GCPで初めて作ったアプリで2018年にリリースした。なのでコードは微妙なところが結構ある。というわけで、以降に開発したアプリの良いところを取り入れたり、ライブラリのメジャーバージョンアップなどをしはじめた。

React Nativeのアップグレードには専用のツールなども用意されてるけど、うまくいったためしがない。なので新規プロジェクトを作って、パッケージ入れたりアプリの設定して、ソースコードを移植するという方法をとってる。大変だけどこれが一番問題なくアップグレードできる。あとReact Navigationもv4だったのでv5にアップグレード。API体系がガラッと変わったので大変だったが、食卓ラボで使っていたので移行パスは見えてた。物量は大変だったけど。

年明けからはサーバ側のコードをリファクタしていく。今のコードはだいぶひどいので、食卓ラボの設計に合わせる感じ。十分な時間があればPrismaとかGraphQLとかCloud Runとかもやってみたいが、来年使える時間は少なくなるので無理そう。とりあえず1〜2月でリファクタと機能追加頑張る。

Supporter Subscription

https://h13i32maru.jp/supporter/

プロダクトのサーバ代やドメイン代などをサポートしてもらえると嬉しいなと思って$1〜$5/monthでサブスクを始めてみた。まだサブスクしてくれた人はごく僅か。というかパブリックな場では発言してなかったかも。今の所特典はほぼないけど、サブスクしてくれてる人だけが使えるJasperやTrickleの機能とか考えてる。来年作れたらいいな。

CodeLunch.fm

https://codelunch.fm/

今年復活させた!来年は継続的に録っていくぞ!ただanchor.fmの収録アプリは音ズレがひどくてだめだった。なにか違うのを試さないと。https://zencastr.com/ がいいと聞いたので試してみる。

あと、CodeLunch.fmのサイトをNext.jsに入門がてらSSGで作り直してみるかーと一瞬思ったが、やっぱりやめてTS(ts-node)で雑にHTML生成した。テンプレートリテラルを使えばHTML部分をReactぽい雰囲気でかけるし、WebStormならこれをHTMLと認識してコード補完とかも効くので雑にやるには十分。依存パッケージもTypeScriptだけなのでお手軽。動的なペライチHTMLを作るときはこれぐらいでいいや。 f:id:h13i32maru:20201231120059p:plain

Twitter広告

作ったプロダクトをどうやって宣伝すればいいのかわからず、これまで大したことはやってこなかった。Product Huntにのせたり、宣伝用のブログを書いたり、Twitterでエゴサーチしてユーザとコミュニケーションとってみたりぐらい。けど、ちょっと試しにTwitter広告つかってみたら、これがすごい簡単でよかった。今の所効果はあるのかないのか正直わからんけど、来年はもうちょっと真面目に使ってみようと思う。ただ、お金がめっちゃとけるのでそこは気をつけないといかんな。

ESDoc

https://esdoc.org/

今年も全く触れなかったなぁ、、、issueやPR来てるのは認識してるんだけど、今の僕はESDocを使うようなプロダクト(JSのライブラリやフレームワーク)を作ってないので、開発の優先度があがらない。まあ真に必要でやる気のある人がいればforkするなり、新しく作り直すなりするだろう(僕がJSDocをみてESDocを作ったように)。ただツールとしてはすごい面白い題材だから、やりたい気持ちは結構ある。今ならTSのためのドキュメンテーションツールとしてTSで書きたいな。


プロダクト開発以外だとコロナとかリモートワークとかエンジニア復帰とか色々あったなー。 来年はさらに色々ありそうなので、頑張って生存していかねば。