Swift

SwiftPM 6 は同時ビルド/テストを回避するために Package の .build ディレクトリをロックする

Swift version swift-driver version: 1.115 Apple Swift version 6.0 (swiftlang-6.0.0.9.10 clang-1600.0.26.2) Target: arm64-apple-macosx14.0 挙動について SwiftPM 6 (release/6.0 以降)は、同時ビルド/テストを回避するために Package の .build ディ…

Privacy report を生成できる Command Plugin を作った

その名の通り。All Swift, no dependencies. github.com Privacy report とは、アプリと利用するパッケージが収集しているプライバシー情報を要約した PDF ファイルです。 App Store の Privacy Nutrition Labels に対応しており、 このレポートを見ながらス…

【iOS】XcodeSelectiveTesting を使う際の Tips

XcodeSelectiveTesting という OSS のツールを活用して、変更箇所に依存するテストターゲットのみを実行することができます。 github.com このツールは Git の変更履歴から差分を分析してどのモジュールに対して変更があったのかを検知し、モジュール間の依…

while ループでフラグの更新を待つ時は Task.yield() が便利

Swift の Task.yield() は、非同期タスクから実行を一時停止して、他のタスクが実行されるようにするために利用するAPIです。よきタイミングでスレッドを譲ることで、CPU負荷の高い処理を効率的に実行することができたりします。 developer.apple.com この T…

コンフィグレーション生成のための静的型付き言語「Pkl」を試してみる

Vision Pro で盛り上がる最中、Apple からコンフィグレーションファイルを生成するための静的型付言語「Pkl」がオープンソースで公開されたので軽く触ってみました。 github.com 発音は "Pickle" (「ピックル?ピクルゥ?」 )だそうで、 Pickle と聞くと Py…

Swift の Optional パターンを駆使する

こんにちは。2023年7月からはてなのマンガアプリチームで働いています、id:fxwx23 です。 はてなに入社する前は React Native (TypeScript) や Go などを書くことが多かったため、 Swift を書くことは2021年の夏以来となります(!)。Swift を書くことを本…