個人開発で本気でお金を稼いでみたいと思い、技術選定の時に考えたこと (地図を使ったアプリ)
実際にやったこと(この記事のセクションや目次)
- 個人開発の目的
- 自分ができること
- 技術選ぶ時に考えたこと
- 技術候補
- 技術の確定
個人開発の目的
- 自分がバイクに乗っていて欲しいと思えるバイクアプリを思いついた
- 業務で触ったことない技術の取得
- 技術の向上(市場価値を上げる)
自分ができること・業務でしっかり触ったことあるもの
フロントエンド
FW : React/Next Vue/Nuxt
CSS ライブラリ: Sass tailwind styled-components
バックエンド
firebase
デザイン
figma
技術選ぶ時に考えたこと
基本技術選定をする時はそのアプリや会社のフェーズによると思いますが
個人開発なので自分の感情や懐事情も考えながら下記を重点的に考えていこうと思いました
- 考えた仕様の要件がしっかり満たせるか
- 予算があまりかからない
- 自分のできることとやったことない勉強したいことのバランスをとって工数のかかりすぎやモチベーションを維持できるように
- 一般公開してユーザーが少し増えても技術の変更が多くないもの
- 自分のキャリアや市場価値を上げることを考えた時に使っていたら良い技術
技術候補
考えた仕様の要件がしっかり満たせるか
予算があまりかからない
上記に対して考えたのが考えたアプリがマップを主体で使うので
候補としては下記になります
- googlemap
- mapbox
仕様として
ツーリングの企画を気軽に作れる必要性があったため
googlemapであるauto complete機能を使いたかったのですがそれを使うのにgooglemapAPIでは結構お高いということで他に使える地図のライブラリを探していて、mapboxは仕事で使ったことが多少あったのでmapboxにauto completeの似たような機能プラス料金的に安ければ使いたいと思い調べたみました
auto complete機能
結果
googleのautocomplete機能のほうが機能がいいですがmapboxのGeocodingという機能を使って実装することにしました
予算があまりかからない
これに関しては主にデプロイする環境やサーバーサイドの言語を選ぶのに考えました
決定したもの
サーバー側で使うもの firebase
ホスティング (nextでフロント側はやるのでISRなどを使いたかった) veacel
メンバーあたり $20/月(14日間の無料トライアルあり) proプラン
理由
実際に今やっている案件でどれくらいかかるかを理解していたためです
自分のできることとやったことない勉強したいことのバランスをとって工数のかかりすぎやモチベーションを維持できるように
これも非常に迷いましたが特にサーバー側の言語を触ってみたいということもあり、firebaseを使ってサーバーレスにするのはいかがなものかと思いましたがとりあえずは作ってみる、個人開発のスルスル詐欺を自分の中でなくすために使ったことあるものを採用しました
候補に出ていた技術
graphQL
自分のキャリアや市場価値を上げることを考えた時に使っていたら良い技術
他の人はどんなことを考えながら技術選定をしているのだろうと色々読んでいたのですが
下記の記事のここの文章にとても考えさせられるものがありました。
僕個人がそこまでエンジニアで居続けることへの執着がない、
というより積極的に距離を置こうと考えている事情があり、
歳を重ねるごとに技術に対する時間の投資対効果を自問するようになりました。
まだエンジニアとしてやっていきたいと思っているものの
技術に対する興味が深いというよりは技術を使ってその課題をを解決するにはどうしたらいいだろうと考えたり、する方が好きなので今後はコードの書く時間を少しずつサービスの価値を最大化させるのはどうしたらいいだろうなどの方に時間や自分のリソースを使えるようになりたいと思ってます。しかし、今仕事しているスタートアップもそうですが開発者が多くないチームはどうしてもあるのでエンジニアがサービスの価値を考えないといけないみたいなのは全然あると思います、それを考えた時に早くリリースをしてサービスの価値があるのかの検証ができる方が良いので早く開発できて、仮説検証。サービス価値を考えるにリソースを避けるようにするために、将来的なメンテナンスコストを考慮して早く開発ができるというのに重きをおいた開発スタイルができるのがいいのでは思いそこら辺も考えました
まとめ
人によって個人開発する目的は違うにしても
色々調べてみて自分と同じ理由の人は多い気がしました
Discussion