同時並行で複数案件を進めているので、ここ1年くらいは結構幅広い技術を使ったと思う。思い出せるものを雑多に列挙すると以下の通り。
- モバイルアプリ
- Flutter
- React Native, Expo
- フロント
- Next.js (TypeScript)
- Astro
- Tailwind CSS
- バックエンド
- Go (echo)
- Python (FastAPI)
- Ruby (Rails)
- 組み込み
- Platformio (C++)
- ESP32
- クラウドサービス
- AWS (ECS, IoT Core)
- GCP (Cloud Run)
- Firebase (Auth/Firestore)
- Planetscale (MySQL)
- Cloudflare
- その他
- GraphDB (Neo4j)
- gRPC (Go, Flutter)
- MQTT (ESP32)
- Terraform
- Chrome Extension
- Figma (webデザイン)
ここ数年はモバイルアプリ関連が多めだったけど、最近はバックエンドの案件も多かった。
振り返ってみると、この中だと特に難しいのがC++のファームウェア開発だった(今もやってるけど)。デバッグが大変で、エラーの原因調査にも時間がかかるし、メモリも使いすぎないように注意しないといけないし、ライブラリに頼れず自分で実装しなければいけない部分も多かったりで、だいたい思ったよりも時間がかかる。もうちょっと修行が必要。
モバイルアプリはこれまでReact Nativeを使ってきたけど、去年からFlutterもがっつり使い始めた。クロスプラットフォームアプリを作る場合どちらが好みかは今は何とも言えないけど、Flutterは安定感があって結構いい感じ。
バックエンドに関しては、選択肢が多くて困ってしまうのだけど、特に理由がないときは、迷うところが少なくて、いろんな意味で速いGoが好みかもしれない。数日前にも個人用途でちょっとしたAPIを作ったのだけど、結局Goにした。
あと、開発環境としては、IntelliJかCLion (C++) を使って開発している。もう周りの人はみんなVSCodeを使っているのだけど、やっぱ個人的にはJetBrainsの方が使いやすい。