LoginSignup
3
3

More than 1 year has passed since last update.

サンプルアプリレベルのZoomSDKをSwiftUIで実装するときに詰まったポイントN個

Posted at

ひょんなことからZoomSDK使ったミーティングアプリをSwiftUIで実装するという素晴らしくチャレンジングな開発に関われたので忘備録も兼ねていろいろ書いていこうと思います。

今回はとりあえず動くものをと言うことで、Zoom client SDKのSwiftサンプルと同じレベルくらいに持っていきます。

つまりポイント①:ライブラリが一元管理できない

Zoomさんの公式ドキュメントでは、FrameworkをXcodeに直入れする方法を丁寧に教えてくれています。

CocoaPodsで入れさせてくれ。。
同じことを思った先人がいたのか、方法はありました。他人のリポジトリを晒していいのか不安なので、気になる人は「zoomSDK CocoaPos」あたりで検索かけてみてください。多分一番上にきます。

つまりポイント②: unrecognized selector sent to instance

まずは動作確認ということで、UIKitで組まれているclientSDKのサンプルにあるViewController.swiftを適当にリネーム&レイアウトをXibで書き換えてUIViewControllerRepresentableに噛ませて動かしてみました。結果はタイトル通りです。

どうやらデフォルトのZoomミーティング画面を表示するタイミングでエラーになっているらしい。
Life CycleにUIKit App Delegateを選んでいたので、SceneDelegateが悪そう?と当たりをつけていくと案の定消したら動作しました。こちらの記事が大変参考になりました。
https://qiita.com/koogawa/items/3472398afd4d809148b0

つまりポイント③:TextFieldを2つ含めたAlartがSwiftUIだけで組めない

clientSDKのサンプルとさよならするために上記のViewController.swiftに実装されていた内容をSwiftUIで実装し直します。しかしここでもまた問題が。

↓のようなミーティングIDとパスワードを入力させるAlartを出したかったのですが、そもそもTextField1つですら現時点で出すことができないという悲しみ。。

こちらの記事がTextField1つの時の実装方法を書かれていたので、参考にさせていただきました。
@Binding var text: String を配列にして、UIAlertControllerにforEachで配列分addTextFieldしてあげたりしたら複数並べられます。
https://www.yururiwork.net/%E3%80%90swiftui%E3%80%91textfield%E4%BB%98%E3%81%8Dalert%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B/

最後に

公式のリファレンスが難読性高かったり、実装例が全然見つからない難しさはありますが、走りきったらいい感じにハイになれそうです。次回はZoom色を削るためにUIのカスタマイズを行いたいと思います。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3