キュリオシティソフトウェア社の2021年振り返り

2021年も終わりそうなので、弊社業務の今年のまとめみたいなのを書いておきます。ちなみに決算は8月末決算なんで法人的な一年の締めくくりみたいなことでもなく、特にダラダラと書いてるだけです。

電子書籍リリース編

RxSwift研究読本5

2021年3月に『RxSwift研究読本5 スケジューラー編』をリリースしました。

https://swift.booth.pm/items/2771976

スケジューラーについての書籍ですが、DispatchQueue, OperationQueueの説明を書いています。Rxはそのプラットフォームの非同期処理の実装を引きずるため、iOSの既存の機構を知らない状態でスケジューラを学んでも意味がわからないのではないかとページを割いています。

Effective Swift(仮)

今年の暮れあたりから『Effective Swift(仮)』という電子書籍を作成しようと思っています。

RxSwift研究読本シリーズを5までのターゲットは「RxSwiftわかった気になってる人」や「今までのパラダイムとの違いを明確にしたい人」「しょうがなくその技術を使わないといけない人」などでどちらかというと中級から先に進んだ人をターゲットにしていました。

こちらが想定していたツイートは下記のような感じ。

上記のように、RxSwiftすでに使ってる人が読んで理解を深めてほしい。

だけど、その反面あまり初歩的なことを書いてなかったことで初歩的なことに対するカバーはしてなかった、という気持ちがありました。読んだ感想だったり買ったという方が「難しい」とツイートしてる傾向がわずかにあるかなってとこです。

なので、Effective Swift(仮)では初歩的なこともっと文章化しようと思っています。

というか、世の中のSwiftコードの書き方ってかなりベストプラクティスが固まっているように思えるんですが、たまにめちゃくちゃSwiftっぽくないコードを目にすることがあります。Swift API Guidelineとか読めばいいだけだと思うんですがなぜか読まない人たちもいる。

https://www.swift.org/documentation/api-design-guidelines/

これ似たような話でHuman Interface Guideline読むの当たり前なのに読まない、みたいな風潮はずっとあるんで、それと同じような何かなのか全然わからないんですがもしかしたら言語的な問題で日本語なら意味がまた違ってくるのかと思っています。

そしてEffective Swiftは単にSwiftの言語的な特徴をよりよく使う、間違った使い方をしない、というだけでなくてその背景に潜む理由も明示することを挑戦したい気持ちです。例えば省略できる時にselfを省略するということに関して感覚的にYESなんでいちいち言語化しようなんて思わない、でもこの感覚が無い人もいるというのが課題としてあります。

そういうのをうまく言語化する何かの参考になればと思います。

勉強会開催編

クライアントワーク編

覚えてるなかで2021年にやったクライアントワークは下記でしょうか。抜けもあるとは思いますが。

無人名刺受付システム「Smart 受付」はSwiftUIとTCAで作られててそのコードレビューだったんですが、TCAのコードは処理を追いやすいのを再確認しました。さらにReducerにテストコードが書かれてたのもとってもよかったです。

アプリのリリース後にSansan社のいけばたさんと雑談した内容を公開しています。

仕事を共にした人と雑談して公開するのは面白いなと今、思い出しました。もっとやればよかったな。

最近思うこととしては、もしかしたらリアクティブプログラミングを知ってるからTCAはわかるもので、これリアクティブプログラミング知らなかったらSwiftUIの挙動などその他色々が絡み合って難しいのかもしれないな、というのが感想です。そこら辺の話はまた今度書きます。

さいごに、2022年はまた久しぶりに新規アプリを作るっていうことがやりたいことの一つです。Xcode 13.2から世界が変わっていいですね。