しおメモスマートフォン用の表示で見るしおメモ雑多な技術系ブログです。既存のコードにfinalをつけるのがめんどくさかったので、シェルスクリプトで一括finalをつけてみました。Swift5SwiftPMも本格的に使えそうなので、SourceKit-LSPを試してみました。Protocolです。RxSwiftSwiftに`async/await`がなかなかこないので書いてみました。コールバック地獄が嫌いな人向けの記事です。SwiftNimbleでテストを書いていた際に、共通部分を`Predicate`として自作してまとめたいことがあったので、実装の方法と簡単なサンプルを記しておきます。SwiftUIView.animateは引数が多く、animationとcompletionで2つクロージャーを引数に取り、ネストも深くなりやすいため、メソッドチェーンで書けるように改良してみました。SwiftSwiftには、assertと似た役割を持つメソッドとして、preconditionやfatalErrorがあります。これらのメソッドの使い方について考えてみます。SwiftUIPageViewControllerが登場したのが古いこともあり、公式ドキュメントや、ネットに出ているの情報だと、いまいち各メソッドの挙動までは掴みづらかったので、改めてまとめてみました。ただのaliasですが、少しでも楽しようとextensionにしてみる。UITableViewやUICollectionViewのDataSourceの追加、削除などの変更を検知して、RxSwiftに橋渡ししてくれます。メモ普通のアプリの場合は、NSLocalizedStringにキーを渡すだけで大丈夫なのですが、frameworkを公開する場合、デフォルトだとアプリ側のBundleを参照してしまうので、そちらも正しく指定しなくてはいけません。iOS正確には、RangeExpressionのような、containsで要素を含むかどうかを判定できる適当なクラスに落とし込みます。今回はRange(0.0...1.0みたいなやつ)だけではなく、RangeExpressionに適合するのすべてのクラスに対応したいと思います。Swift4他言語から入ると、一見取っつきづらいDispatchQueueですが、だいぶ浸透してきた気がします。Swift4Swiftのバージョンが上がる前に、クロージャーに対して各種方法で変数をキャプチャした際の挙動を整理します。ちなみに、新卒アドベントカレンダーではないです。Swift用のデバッグロガー"Linna"の紹介です。日本語ドキュメントはこちらです。RustのResult型を参考にした、エラーハンドルを取り入れてみました。swiftのcatchで拾えないものもこちらでハンドルできる。AppDelegate等に入れておく。SonarCloudを導入します。fastlane導入までは、前回の記事をご参照ください。CI/CDiOS開発(Swift)でCIまでを動かす際の手順です。ControllerのUIテストはともかく、ユニットテストはどうするのかわからなかったので調べました。はてなブログProiOSエンジニアです。