yuriacats

yuriacats

[SwiftUI] @EnvironmentObjectでちょこっとつまづいた話

このテキストは3分で読めます。

やりたかったこと

SwiftUI流の書き方はSwift5系ですとSenseDelegate.Swiftが初期生成されず、 この関数に書くと言う指示のあるWindow.rootViewControllerに加えるようなプロパティを書く場所がどこにあるのーと言うことで少し調べるのに戸惑ったので 今回はその時の調べ方を書いていきます。

参考資料

SwiftUIで行こう!Timer!
【SwiftUI】@EnvironmentObjectの使い方

最初に調べたところ

SceneDelegate.swiftがないことを確認してまず調べたのが「SwiftUI SceneDelegate.swift」という検索ワードです。
この検索ワードを調べた理由は、SwiftUIにおける上記のSwiftファイルの役割や初期生成されない理由互換になるものはどれかと言う部分です。
自分の中ではこの時点では同様効果のあるファイルを何かのミスで消してしまったのではないかと言う思いが半分と全く見当違いのことを調べてるのではないかと言うことが半分といったところでした。\

調べるべきはファイル名ではなくコード

この時点で調べても解決策のコードが出てこないな。というのも、SceneDelegate.swiftは役割が多く、求めていた結果をすぐに見つけにくい部分がありました。
そのため次に目につけたのがその中で書かれていたコードの一部である「.environmentObject」というワードでした。 これをSwiftUIとのAND検索を行ったところ、すぐに二つ目の資料に辿り着くことができました。 ここにはSwiftUIモードとSceneDelegate.swiftが出力されるモード両面での書き方が書かれており、自分の求めていた答えがそこにありました。
そこを参考にすることで、結果的に自分のやりたい実装を行うことができました。

まとめ

今回Swiftのつまづいたところで感じたことは

  • 各言語に日本語リファレンスになりそうな個人ブログ(EX: カピ通信(Swift), note.nkmk.me (python) )が存在すること
  • 躓いたら、基本的には「(エラー)コード+言語名・ライブラリー名」で検索するのが目的の解決にたどり着きやすい点
  • 全体の理解をしたほうが良いので、その点では固定出力のファイル名の役割は知っておくべき

特に、個人ブログがどの言語でもあるところが興味深い部分ではあります。特にカピ通信さんはTwitterによると備忘録がてらアウトプットをされているようなので自分も見習って良質なアウトプットをしていきたいなと言う感じでした。