はじめまして、株式会社ジャンボの湊です!
弊社では毎週水曜日にSwiftUIのTipsや課題等を共有し合う、iOSエンジニアを対象に勉強会を開催しています!強制ではないものの毎回全iOSエンジニアが参加してくれている状況です!
勉強会の内容としてはSwiftUIの事例を中心に、MVVMアーキテクチャの使用法やCombineフレームワークを使用したデータ駆動型の開発手法、各チームの実装方法についてなど様々です!
序盤はSwiftUIをメインにしていますが、回数を重ねてSwiftのフレームワークの共有やSwiftでのTips発表も行って行く予定です!
※水曜日(Wednesday)に実施している理由は、SwiftのwとWednesdayのWからきています。
勉強会の実施目的
- チームが流動的に変化しても技術的に各チームに馴染みやすくするため
- 積極的に技術をキャッチアップすることでモバイルエンジニア全体の技術を底上げするため
- 外部への発信を行い、情報に触れた方に弊社のエンジニアとして働くことに興味を持ってもらう
とりあえず自己紹介
<プロフィール>
- minato(2020年2月入社)
- 好きな食べ物:じゃがりこ!
- 趣味: サッカー!
<どんな業務してるか>
- iOSエンジニアとして入社しました!
- 一年間プロジェクトマネージャーとして働いてました!
- 現在はUnityをライブラリとして扱うUaalを用いてアバター通話アプリを作成しています!
なぜSwiftUIなのか
UIの作成がUIKitと比べ短時間でできること、及びデータバインディングができる点からSwiftUIを用いるという技術選定をしました。
何を発表したのか
- プロパティーラッパーとはなにか?
プロパティーラッパーとはプロパティーに対して特定の振る舞いや機能を提供してくれるものです!
SwiftUIのプロパティーラッパーは主にプロパティーの状態管理を行います!
要するにプロパティーラッパーが使えるというのはデータバインディングができるということ! - データバインディングができると何がいいのか?
既存アプリ内ではクロージャーやasync/awaitを用いてデータ渡しを行っています。
クロージャーでのデータ渡しは時としてネストが深くなり可読性を下げることがありました。
そんなときにデータバインディング(プロパティーラッパー)を使用すると可読性が担保されるます! - 各種プロパティーラッパーについて説明とプロパティーラッパーの使用方法
大きく分けて、値型に使用するものとデータオブジェクトに使用するものがあり、値型に使用するプロパティーラッパーとしては@Stateや@Bindingがあります!データオブジェクトに使用するプロパティーラッパーで代表的なのは@StateObjectやObservableObjectプロトコルなどです!
実際にはサンプルコードを見ながら解説しました!
実際に登壇してみて
めっちゃ緊張しました。笑
ただ、多くの人に理解してもらえるように話ことで個人としてもアウトプットとして実りあるものになりましたし、参加していただいたメンバーもSwiftUIに少しでも興味を持っていただけたら幸いです!
最後に
今回発表したスライドは公開しています!
少しでも弊社を気になって頂けた方は、下の「話を聞きに行きたい」からカジュアル面談にお越し下さい♫
お待ちしております✨