try! Swift Tokyo WWDC Recap 2024 参加レポート
はじめに
モバイルエンジニアをしているt-osawaです。 今回はtry! Swift Tokyo WWDC Recap 2024 参加にしましたので その様子をまとめたいと思います。 lu.ma
発表内容
Core MLのアップデート
- さまざまなモデルが公開されていて、いろいろと活用できること知りました。
- 圧縮の技法の話はすごく勉強になりました。
- iOS18でパフォーマンスが改善が行われ、活用できそうなモデルが増えそうな印象でした。
今から理解するApp Intentエコシステム
Lightning Talks by Swift Student Challenge winners
- Swift Student Challengeに参加し、受賞された方の話でした。
- アプリのアイディアも面白く、自分は学生時代にこういうことを全くやってなかったのですごいなと思いました。 developer.apple.com
パネルディスカッション Panel
- WWDC現地参加した方の話を聞く時間でした。
- 現地でないと味わえない話が聞けました。
try! swift 2025の発表
- 来年のtry! swiftの開催の日程の発表がありました。
- ここ数年参加できてなかったので来年は参加したいです。 tryswift.jp
全体の感想
- WWDC Recapに参加して思ったのはApp Intentに関する関心はすごく高い印象でした。日本語の対応は先になると思いますが継続的にキャッチアップしていきたいと思いました。
Xcodeのarchiveが長時間かかるようになった時にやったこと
環境
Xcode 13.0 Build version 13A233 swift-driver version: 1.26.9 Apple Swift version 5.5 (swiftlang-1300.0.31.1 clang-1300.0.29.1) Target: arm64-apple-macosx11.0
発生した現象
解決策
- 最初にarchiveのlogを確認して、archiveに時間がかかっている箇所を発見する。

- Swift Compiler > Code Generation > Optimization Levelを
-Ononeに変更 - 自分の環境では、自作のライブラリ側で時間がかかっていた。
- あくまで暫定措置であるので改善された場合は戻す予定
iOSDC 2021に参加した感想
はじめに
今年も2021.9.17 ~ 9.19に開催されたiOSDCに参加しました。
オンラインでの開催であったので並行して、多くのセッションを見ることができました。
その中で特に印象に残ったセッションを3つ取り上げたいと思います。
宣言的UIの状態管理とアーキテクチャ - SwiftUIとGraphQLによる実践
- 状態管理しやすい設計の歴史や特徴を網羅的にまとめた発表でした。
- GraphQLを使う設計は考えたことなかったのですごく新鮮でした。
- サーバ側にUIの状態を持たせるのは面白いと思いました
StoreKit のこれまでとこれから
- StoreKitとStoreKit2の比較をしながら、変更点がまとめられた発表でした。
- iOS開発者が感じていた、不満がStoreKit2の変更によって、解消される部分はよくキャッチアップしたいと思いました。
Hello, Swift Concurrency world.
- 新しく導入されるasync/awaitの仕組みを中心にまとめられた発表でした。
- Actorなどの新しい概念も出てきたので実装前によく調べた方がいいと感じました。
まとめ
- 今年もiOSDCに参加し、多くのセッションを見ることができました。
- 今回は新機能であるasync/awaitやSwiftUIなどのセッションがとても興味深い内容のものが多くありました。
- 来年もぜひ参加したいです
[Swift, iOS]アプリが起動時にクラッシュするがcrash logがない状態を解消した
現象
- リリースしたiOSアプリで起動時にクラッシュする現象が発生した。特定のバージョンでのみ発生している。 Firebase Crashlyticsを導入しているが起動時にクラッシュしたcrash logがないという状態になった。
原因
- AdServices.frameworkやAppTrackingTransparency.frameworkはバージョンによって、サポートされていない。
StatusをRequiredにすると起動時にフレームワークの読み込みに失敗して起動できない。
対象のフレームワークをOptionalに設定することで起動できるようになる。
まとめ
- 古いバージョンのテストはしっかりしようと思いました。
ゲーミングモニターを1か月使ってみた感想
1ヶ月ほど前にゲーミングモニターを買って見ました。使って見てとても良かったので感想をまとめたいと思います。
買ったのはこちらのモニターです
良かったところ
タイピングが気持ちいい
寿司打をやって見るといつもより高速で打てている感じがします。プログラミングでも同様に入力が高速に感じます。
画面の切り替わりにストレスがない
Webページの切り替わりも体感で早く感じ、
ストレスがないです。
マイナス要素
60hzの普通のモニターで遅延を感じるようになりました。
良いものを知ってしまったことによって、普通のものでは満足しなくなってしまいました。
価格はやはり高いです。簡単に買えるものではないので吟味して、買うかどうか決断が必要です
まとめ
結論として、満足のいく買い物でした!
Swift Package ManagerでBundle.moduleがビルドエラーになる
現象
Swift Package Managerでlocalのファイルを読み込む処理を追加した。(JSONファイル) ビルドするとType 'Bundle' has no member “module”のエラーが出てしまう
解決策
Package.swiftのtargetsで指定したディレクトのpathと実際のディレクトがずれていて、test.jsonを読み込めていなかった。
実際のディレクトをPackage.swiftに合わせるとエラーは解消した。
今後、注意していきたい!
// swift-tools-version:5.4 import PackageDescription let package = Package( name: "Hoge", platforms: [ .iOS(.v13) ], products: [ .library( name: "Hoge", targets: ["Hoge"]), ], dependencies: [], targets: [ .target( name: "Hoge", dependencies: [], path: "Hoge", resources: [.process("Resources/test.json")]) ] )
iPhone simulatorでmacのファイルを読み込めるようにしたらデバッグが快適になった
はじめに
その中でAPIのリスポンスをもとに期待した動作を確認することが必要になってくる。
その確認を楽にするための方法を考えました
こちらのライブラリを参考に実装した
krzysztofzablocki/KZFileWatchers
環境
Xcode 12.5 Build version 12E262 Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) Target: arm64-apple-darwin20.5.0
やりたいこと
iOS側でAPIのレスポンスを受け取る部分を差し替えて、Macのjsonファイルを読み込むようにして、期待するレスポンスを返せるようにする。
実装
class func simulatorOwnerUsername() -> String { let usernameConmponets =NSHomeDirectory().components(separatedBy: "/") guard usernameComponents.count > 2 else { fatalError() } return usernameComponents[2] }
次にDeskTopのpathを作成して、Data型をして呼び出す
func loadfile(filename: String = "test.json") -> Data? { #if targetEnvironment(simulator) let path = "/Users/\(Self.simulatorOwnerUsername())/Desktop/\(filename)" if !FileManager.default.fileExists(atPath: path) { return nil } let url = URL(fileURLWithPath: path) guard let content = try? Data(contentsOf: url, options: .uncached) else { return nil } return content #else return nil #endif }
Data型にすることでCodableなどで簡単に扱うことができる さらにMacでファイルを更新すれば、レスポンスの値を動的に変更できるのでデバッグが更に楽になります