#2 並行処理ができる男におれはなる

#2・
215

subscribers

24

issues

Subscribe to our newsletter

By subscribing, you agree with Revue’s Terms of Service and Privacy Policy and understand that Dateの隠居生活 will receive your email address.

d_date
d_date
こんにちは。iPhone 13は見送る意思決定をしたd_dateです。やはりiPhoneは2年周期の買い替えがちょうどいい気がします。一方Apple Watch Series 6はバッテリーの消耗が激しく、お風呂に入っている間に充電では1日持たなくなってしまいました。Ouraringと合わせて睡眠をトラッキングしている勢としては致命的です。画面大きく色もよさそうなので買っていきたいと思います。
なんと購読者が増えたのではやくも第2回の配信です(みなさん物好きですね)。今回はXcode 13に合わせて技術的なトピックに寄せました。

Swift Concurrencyの勘所
Xcode 13 (Swift 5.5)の目玉機能といえばSwift Concurrencyでしょう。
async / await, Actor, Structured Concurrencyなど、他の言語の並行処理の良いところを取り入れながら、ergonomicなAPIに仕上がっていると思います。
iOS 15以降で利用可能とのこともあり、キャッチアップは2年後でいいやとあぐらをかいていたみなさんには悲報ですが、Swift ConcurrencyはbackportされてiOS 13以降で利用可能となります。つまり、deployment targetを引き上げることなくSwift Concurrencyが使えるようになりました。
なおこれはデフォルトで有効です
Enable concurrency back-deployment in the compiler by default. by DougGregor
この短い紙面の中ですべてをとりあげることは不可能ですが、これだけ知っておけば明日から使えるエッセンスを3つ紹介します。
  1. async let でChild Taskを作る
  2. Actorにprotocolを準拠し、computed propertyやメソッドを実装するときはnonisolatedをつける
  3. completion handlerをwrapするときは、withChecked(Throwing)Continuationを使う
です。このニュースレターはトピックを取り上げるだけで、あとはググレカス方式を採用しているので、勉強するのに参考になりそうなリンクをあげておきます。
まずはWWDCのセッションを見るべし
Meet Swift Concurrency - Discover - Apple Developer
Swift Concurrency まとめ
iOSDCにもトークがあります(わたしのトークの裏番組なんだけど…)
AsyncStreamはCombineのリプレイスになるものだと思っているので探してみると、MarinさんがCombineとAsyncStreamのブリッジを試みてます。
Bridge from Combine to AsyncSequence - the plan (p. 1)
AsyncStreamってなんなのはこちら
swift-evolution/0314-async-stream.md at main · apple/swift-evolution · GitHub
Xcode 13 RCがリリース
昨晩のApple Event終了後にXcode 13 RCがリリース。iPhoneの発表よりもこちらを楽しみに夜はぐっすり寝ました。
Xcodeをダウンロードしながらリリースノートを読みます。
個人的に便利なのはAutomatic Code Signingを有効にしたときにつかえるCloud Signingで、ローカルにDistribution Certificateがなくても署名ができるというもの。誰か個人のCertificateSigningRequestで作った証明書から.p12をエクスポートしてうんぬんかんぬん…がおそらく必要なくていいですね。
ところでfastlane matchを利用しているとAutomatic Code Signingが有効にできずに歯痒いのはわたしだけでしょうか。fastlane matchの利用を前提にしているCIサービスがあってしんどいので、Bitriseの利用をおすすめしたいところです。
Bitrise - Mobile Continuous Integration and Delivery
あとはasyncに書き換えていくときに、Xcode 13がcompletion handlerをasyncにconvertするのをサポートしているので試してみたいと思っています。
気になった記事・ツイートのコーナー
Apple Eventのまとめといえばhuinさん。
iPad miniの出来はすばらしいですね。iPad Proで十分なので買わないのだけど…
Appleスペシャルイベント「California Streaming」発表内容まとめ
並行プログラミング入門
最近読み進めている本がこちら。界隈で話題になっていたので読んでいます。
とりあえずActorモデルの話を読もうとかいつまんで読んでいたのですが、Rustわからんから最初から読み直すをやっています。
コンピューターサイエンスの素養がもともとあるわけではないので、並行性 (Concurrency) と並列性(Parallelizm)がどう違うのかも知らなかったのですが、読んでいてしっくりきました。Rust, C, アセンブラの章に差し掛かりましたが、Rustは読みやすく、Cはなつかしく、アセンブラ初めましてという気持ちで読んでいます。
O'Reilly Japan - 並行プログラミング入門
ケイスケホンダ、Flutterやるってよ。
ちなみにわたしは最近Flutterを剥がしてSwiftにリプレイスするお仕事をしました。Flutterがどうかは面倒なので触れませんが、そのプロジェクトにはFlutterは不適だと判断したのでした。結果40MBほどバイナリサイズも小さくなってよかったです。
FirebaseにせよFlutterにせよヒートアップしている技術からは一歩引いて全体を見て、流行や好き嫌いだけで技術選定しないように気をつけたいものです。
このペースで配信すると飽きてしまうので、次回こそは2週間開けていきたい気持ちです。それでは。
Did you enjoy this issue? Yes No
d_date
d_date @d_date

最近の開発事情をiOSを中心に私見を交えながら解説します。

In order to unsubscribe, click here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Created with Revue by Twitter.