『最強のTODOアプリ作ってみた』 〜リポジトリをPublicにしてみたら何が起こるのか〜

2024/03/30に公開

この記事は最近開発しているTodoアプリのGitHubリポジトリをPublicにしてみた記事です。
アプリの名前はTokeruです。

https://github.com/imajoriri/tokeru

はじめに

TokeruはFlutter作られているMacOSアプリです。

アプリを一言で説明すると「1日の作業パフォーマンスを最大化するアプリ」を目指しているアプリです。
⇧ ⌘ ,キーでSpotlightやAlfredのようなTodoウィンドウが開きます。
ショートカットにも対応しており、作成、チェック、ウィンドウを閉じる操作はキーボードのみで行えます。

今はTodo機能しかありませんが、今後は時間をうまく使うための機能や思考の整理のための機能をリリース予定です。
今はFlutterのマテリアルデザインをそのまま使っていますが、UIや触り心地にもこだわっていきます。(今はまだそのフェーズではないだけ)

Tokeruは絶賛Beta版です!
誰でも触ることができるので、ぜひTestFlightからインストールしてみてください。

https://testflight.apple.com/join/LaDGDUKa

なぜリポジトリをPublicにしてみたのか

なぜリポジトリをPublicにしてみたのかと言うと、8割くらいは単純な興味本位とプロダクトを知って欲しいという気持ちです。
ただ、それ以外にもメリット・デメリットはいろいろある気がしたので紹介したいと思います。

https://github.com/imajoriri/tokeru

Publicにするメリット

まずはメリットからです。

GitHub Actionsを制限がなく使える

GitHub Actionsはプランによって使えるStorageと分(月当たり)が決まっています。
個人開発だとGitHub Freeに該当することが多いのではないでしょうか。

しかし、Publicリポジトリの場合その制限はなくなり、使いたい放題になります!!
TokeruはMacOSアプリなのでビルドするためにmacos-latestを選択する必要がありますが、ubuntuの10倍も消費するためずっと無料なのは大変ありがたいです。

GitHub Actions の使用は、パブリック リポジトリの標準の GitHub ホステッド ランナーとセルフホステッド ランナーの場合は無料です。

参考: https://docs.github.com/ja/billing/managing-billing-for-github-actions/about-billing-for-github-actions

Codecovを無料で使える

テストカバレッジを計測してくれるツールのCodecovも制限なく使えます。
(実はまだテストは書けてないのですが...)、個人開発とはいえテストはしっかり書ける人間に成長したいのでCodecovを導入してモチベーションを上げていきましょう。

https://about.codecov.io/codecov-free-trial/

その他諸々GitHubの機能が使える

GitHub Actions以外にもFreeプランでもpublicだと使える機能があります。

  • Pull requestのDraft
  • ブランチプロテクト

スターがつくとモチベーションがでる

個人開発は苦しい道のりです。
勉強のため、自分が使うため...と表向きには言いつつも内心は誰かに使って褒めてもらいたい気持ちでいっぱいです。
正直になりましょう。

とは言っても一般の人に使ってもらい褒めてもらう機会なんてそうそうありません。
同じエンジニア同士、スターを送り合ってモチベーションを保ち合いましょう!!

共感してくれたら是非、Tokeruにもスターをお願いします!!

https://github.com/imajoriri/tokeru

人に見られている気がしてしっかりとしたコードが書ける

仕事で書くコードと、プライベートで書くコードに違いが生まれるのは必然です。
だって誰も見ていないのだから。
誰も見ていないコードだと適当に書いたりコメントをおろそかにしがちです...
人に見られているかも...😞と言う状況を作って丁寧なコードを心がけましょう。

Publicにするデメリット

恥ずかしい

自分のエンジニアリング力に相当な自信がない限り恥ずかしいと言う気持ちはついてきます。
特に個人開発は誰かに見てもらう前提ではないので、適当に書いたりコメントをおろそかにしがちです...

publicにすることで仕事の時と同じくらいしっかりと書くことができるかもしれません。

key・セキュリティ周りが不安

公開してはいけないものを含めていないか不安になります。
普段からcommitに含めないようにはしていますが、Publicにしてしまうとより一層気をつけなければいけません。

ちなみにFirebaseのkey周りは含めていますが、これは問題ない認識です。
Firestoreはセキュリティルールでアクセス制限しをしています。

https://firebase.google.com/support/guides/security-checklist?hl=ja#understand_api_keys

無料で使われ続ける懸念がある

もしTokeruが成長して有料プロダクトにした時に、エンジニアであればcloneして無料で使い続けることができてしまいます。
同じ開発者としてそんなことにはならないだろうと信じたいですが、その懸念は0ではありません。

Publicにするために準備したこと

READMEを書こう

リポジトリに訪れた人が一番最初に閲覧するREADMEをしっかり書きましょう。
環境構築について書くのはもちろんですが、プロダクトに興味を持ってもらえるために機能の紹介なども書く方が良いと思います。

https://github.com/imajoriri/tokeru/blob/main/README.md

CONTRIBUTE.md

貢献してくれる人のためにCONTRIBUTE.mdを書きましょう。
書き方についてはこちらの記事が参考になりそうです。

https://zenn.dev/hirotomoyamada/articles/711e4727d7a56e#【第4話】-contributing.mdをみる!

Issueを用意する

もしコントリビューターになりたい!と思ってもらった時のためにIssueを用意しておきましょう。
また、Issueを見れば今後どんな機能が作られるのかもわかるので、ユーザーをワクワクさせることができるかもしれません。

https://github.com/imajoriri/tokeru/issues

ブランチプロテクト

pushしまくりにならないようにmainブランチは守っておきましょう。

セキュリティ周り

GitHubがやってくれるセキュリティ周りの設定は行っておきます。

https://docs.github.com/ja/code-security/getting-started/github-security-features

最後に

最後まで読んでいただきありがとうございます。
アップデートがあったらX(Twitter)でも投稿するので、ぜひフォローしておいてください!!
https://twitter.com/imasirooo

Discussion