2020年の振り返り
はじめに
自身の2020年の活動を振り返って、その活動履歴等を記録するための備忘録に近い何かです。誰かの興味や刺激になれば良いかと思い、記事としてまとめて公開します。
自己紹介
- 仕事は Java/Kotlin でのサーバーサイドエンジニア
- 趣味はサービス開発大好きマン
- SocialMedia (SNS) 大好きマン
SocialHub
今年一番の個人的な出来事といえば、2月に iOS アプリ SocialHub をリリースしたことです。 このアプリは、Twitter, Mastodon をはじめとした複数の SocialMedia をアカウントのタイムラインを、くっつけて同時に見ることが出来るのが最大の特徴です。また、各 SocialMedia 固有の機能もサポートしており機能面でも充実しています。前身となる TheWorld から UI/UX を受け継いでおり、見た目のスッキリさや、操作性もかなり工夫しています。
上記の記事は、このアプリをつくりはじめた 2018年初頭に書いた、SocialHub で用いられている技術である J2ObjC について書いた記事です。この時から SocialHub はずっと仕事の傍ら開発を進めていたアプリで、iOS アプリを作り始めたのは 2019年に入ってからで、それまでは J2ObjC を用いた iOS/Android マルチプラットフォームライブラリの作成に勤しんでました。そこが軌道にのるまでえらい時間がかかりました。
iOSDC 2020 登壇
自身はかなり臆病な性格をしているため、あまり対外的に発表等はしないのですが、今回は長期に渡って作業をしていたアプリがリリースできたこともあり、思い切ってプロポーザルを出したところ通ったので勇気を出して登壇しました。今年の iOSDC 2020 はコロナの影響でオンライン開催になっており、事前に Zoom を通して録画した映像が放映されたあとに、Discord での質疑応答になったのですが、ニッチな話題 (J2ObjC) に関わらず多くの方が視聴し、質問をいただけてとても嬉しかったです。
DDD
仕事ではもっぱら Java を触っているのですが、Java で書かれた既存システムのメンテナンスの一貫として、DDD を取り入れてこれからの機能拡張に耐えられるものにしようというお題目にチームで取り組んでいました。ユビキタス言語を決める取り組みから、Java のパッケージ構成の見直し、ドメインモデルの導入など、かなり大幅なリファクタリングを実施しています。正直、まだ見直したばかりでこれからどういった効果が得られるかは今後次第なのですが、継続的に取り組んでいこうと思っています。
JVM のトレンド
個人的に技術的な興味としてそそられる内容として、GraalVM からの Quarkus の NativeImage ビルドがあります。 年末にかけてかなり調べて、実際にコマンドラインツール (参考) を作成したりもしました。JVM アプリの欠点としてよく上げられるのが起動の遅さです。FaaS であったり、コマンドラインツールだったりで、その起動の遅さがネックになるケースがあり、JVM のアプリではどうしてもここを劇的に改善することが出来ません。そこで、バイナリにしてしまおうという GraalVM のアプローチがとても刺さります。Quarkus はそれら技術を使いやすくしたフレームワークで、Spring に似た立ち位置のものです。個人的にはかなり気になる技術なので、今後を追っていきたいです。
2021年の目標
SocialHub の発展
SocialHub はまだ発展途上でやりたいことが全然できていない状態です。それを頑張ってアップデートしていったり、Web に SocialMedia アカウントの解析、管理機能とかを実装してみたいと思ってます。SocialHub が目指すのは、SocialMedia を個人でマネジメントできる世界なので、それを目指して色々機能実装していきます。
フロントエンド
個人的に来年はフロントエンドの知識をがっつりと学びたいと思っています。 理由としては以下のような感じ。
- フロントエンドの技術が成熟してきたこと
- 作りたいサービスが、Web で作ることに適性が高いこと
- Web サービスを作るのが思った以上に楽しかったこと
API サーバーを作る側の視点においても、フロントエンド技術というのは非常に大事です。例えば、GraphQL を使った API サーバーを組みたくなっても、フロントエンドがこなれていないと、サーバーの独りよがりになってしまいます。まあ、そもそも最近はフロントエンドの技術で、サーバーからフロントまで全部やってしまおうみたいな流れが来ているようなので、それもちゃんと学んで既存の別言語のフレームワークと差分を取りたいです。
おわりに
技術書、Zenn や Qiita の記事、Twitter のフォロワー、様々なものに支えられて今年もなんとかエンジニアとして活動できました。来年からは億劫にならず支えられてきたお礼に、発信を意識して活動していこうと思います。みなさん改めてよろしくおねがいします。
Discussion
SocialHub、会社員やりながら作ったとは思えないクオリティの高さですね(しかも仕事で使っているのはJavaなのですね)。刺激になりました。僕も気合いを入れてがんばろうと思います!