こんにちは、Tamappeです。
ここ数ヶ月、Swiftを書いた覚えがありません。
アプリエンジニアとしてもう引退ですね。
その代わりにFlutterでDartばかり書いています。
Flutter・・・というかDartには標準でasync/awaitが使えるため、ここしばらくAPI通信周りの処理はawaitばかり書いてます。
Swiftでアプリ開発を書いていた頃はクロージャー(Closure)ばかりお世話になっていました。むしろ、クロージャーなしでどうやって通信周りの処理を書けばいいんだというぐらいクロージャーばかりを書いてたんですが、Dartを使い始めた途端に「クロージャー?なにそれおいしいの?」状態になります。また、クロージャーとセットでweakSelfも「self?、なにそれ美味しいの?」状態に陥ります。
アプリエンジニアとしては煙に包まれた気持ちになってしまいます。
同じiOSアプリを開発しているのに使用する言語が違うだけでこれだけDX(開発体験)が違うのかと感じてしまいます。
DXは重要だということが改めて感じました。
また、クロージャーは使わなくなりましたが、その代わりとしてtry-catchを書きまくるようになりました。
Swiftを書いていると、try-catchなしでも頑張ればアプリ1つ分を書けてしまうぐらいtry-catchは使いません。それが、try-catchの使い方に慣れていないとDartでコードを書く際に爆死します(しました)。
(ちなみにDartでもawaitの代わりに「then」でメソッドチェーンするとコールバックを書くことができます。Swiftでのクロージャーで失敗した時の例外をキャッチしたい時はさらに「catchError」でメソッドチェーンするとエラーハンドリングできます。)
とりあえず、async/await最高です。
現場からは以上です。