この1年で触った技術

3 min read読了の目安(約2800字

この1年間でいろんなものを作って、いろんなことを経験してきたのでまとめてみようかと思います(おおむね2020年にやったことです)。

ざっくり数えてみたところ、僕が1から開発に携わり50〜100%開発してリリースしたサービスが4つ、開発したけどいろいろな事情により世の中に公開しなかったり内部用にリリースしたサービスが2つでした。これらのうち、ネイティブアプリが4つ、ブラウザサービスが2つです。さらに、1つは事業譲渡ということになり初めて自分が開発したサービスを完全に他人の手に渡すという経験もしました。

触った技術一覧

では本題の技術についてです。

  • Flutter/Dart
    • 今年はずっとこれは継続的に触ってた。とっても楽しい。
    • 個人アプリをリリースしたことを皮切りに、仕事でも使うようになり、Flutterの顧問の仕事もやったりした
    • UIを非常に楽に作れるので細かいところまで気を利かせて作れて良い
    • Dartは正直好きじゃないが仕方ない
    • RiverpodとFreezedが非常に便利で最高で愛用している
    • 2021年もFlutterを使っていきたい(顧問的な仕事はいつでもやりたいので待ってます、CI/CDの構築とかもできます)
  • Swift/UIKit
    • もともと(?)iOSアプリ開発をメインでやっていたのでこれは2020年前半から半年くらいやった
    • 後半半年は個人開発で出してるアプリのメンテくらいでしか触らなくなった
    • Swiftは好きだがUIKitでの開発はしんどいと感じるので2021年はほとんど触ることはなさそう
  • SwiftUI
    • リリースできなかったアプリの管理用アプリをSwiftUIで実装した
    • SwiftUIだとできないことも多くかなり苦労した
    • Combineが難しい。RxSwift未履修の僕にはコストが高かった。もうほとんど覚えてない
    • SwiftUIの仕事は受けないと思う(能力なくて受けられないとも言う)
  • Android/Kotlin
    • ずっと受け続けてる仕事が少しだけあるのでたまに書いてた
    • ほとんど印象にない
  • Next.js/React/TypeScript
    • 2020年から触り始めた
    • (逆だけど)ReactはFlutterに似ていて開発しやすい
    • 仕事で作るブラウザサービスはNext.jsを必ず使っている
    • Firebase Hosting + (SSR必要なときは) Cloud Runという構成
    • cssがstyled-componentを使っているのでここは今の流れに合わせたアプデが必要かな
    • ISRはまだ試したことがない
    • 2021年もよろしく

ネイティブアプリを作るときはまずFlutterで作ることを考えて、難しそうであればネイティブでやると思います。Flutterはまだ微妙に画面遷移が気持ちよくなかったりするのですが、そのあたりを除けば開発体験が非常によいので気に入っています。

ブラウザサービスを作るときはNext.jsで作ります。Nuxt.jsじゃダメなんですかと言われると別にダメじゃないけどReactのほうが好きというだけです。そんなに理由はありません。

さて次はプラットフォームやSaaSなどについて触れます。

  • Firebase/GCP
    • 非常にお世話になった。自分が開発をリードしたサービスはすべてFirebase/GCPで組んだ。
    • Firestore, Storage, Auth, Messaging, Hosting, Functionsを中心にFirebaseを活用
    • GCPはCloud Run, Logging, Big Queryを中心に活用
    • 2021年はもうすこしGCPのサービスを活用して効率的に開発できるようになりたい
  • AWS/Amplify
    • 素振りしただけ(スクラップ)
    • GraphQLのAPIが生成されるのは非常に良い
    • インフラをコードで管理できるのもよい。開発環境などを簡単に作れるのも良い。
    • TypeScriptのSDKがまだ未成熟感がすごい。めちゃくちゃanyばっかり。
    • やらなきゃいけないときが来たらまたやる
  • Stripe
    • 少し複雑な月額課金サービスに使った
    • checkoutを使ったサービス開発の顧問もした
    • SDKもよくできているしConsoleでいろいろできるしcheckout使えばかんたんに決済導入できるし本当に便利
  • Algolia
    • 検索入れたいときの第1候補。バックエンドいらないし楽ちん。
    • AWSで組むときはElastic Search使いそうな気もする、いやわからん
    • 中の人に誘ってもらってAdvent Calendarも書いた
  • Cloudflare
    • Edge Workerを試してみたくて触った(そのときの記事
    • Edge Workerめちゃくちゃ夢あるしGCPにも来てくれないかなぁ〜
  • Wowza Streaming Cloud
    • 某アプリにライブ配信機能を追加するときにフル活用した
    • フルマネージドでライブ配信提供できるのは良かった
    • クライアントSDKがSunsettingだったりSDKのエラーがしょっちゅうunknownで飛んできて配信落ちたりもして苦労もした
  • RevenueCat
    • Flutterアプリにサブスク入れるのに使った
    • めちゃくちゃ便利
    • 本も書いたので気になる方はぜひ。結構買ってもらえてて嬉しい。

こうやって並べてみると色々触った感じありますね。便利なSaaSがたくさん出てきていてサービス立ち上げのスピードを加速させてくれるのでありがたいです。ただ、使えるようになっているだけで技術の根本を理解していないみたいなことが簡単に起こり得るのでそこは気をつけたいと常々思っています、仕組みを理解していないとできることやできないこと、困ったときの判断ができなくなります。本当に気をつけたい(自戒)。