AppBrew tech blog

AppBrewのエンジニアチームの日々です

try! Swift 2018参加レポート

みなさんこんにちは。Androidアプリエンジニアの岡田です。 2018年3/1~3/3に行われたtry! Swiftに参加して来ました。try! Swiftは海外の方も多数登壇数する大きなカンファレンスで、東京で開催されるのは3回目です。 たくさんあったトークの中で気になったトークをいくつか紹介します。

Optimizing Swift code for separation of concerns and simplicity

Swiftのコードをより簡潔に書くためのテクニック、Tipsの紹介でした。 変数を関数に切り出す例やprotocol extensionを使用する例では実装の意図が伝わりやすくなるという意味で参考になりました。他の例ではUIStackViewなどのUIKitを使った物があるので、iOSアプリ開発で活かせる場面が多々あると思います。 個人的にはExample10の印象が強かったです。ローディング中、ローディング完了、ロード失敗の状態を管理する方法なのですが、enumのAssociated Valueを使って表示したいViewを保持しています。enumの特性が上手く活用されていて見習いたい実装例でした。 よりSwiftyなコードを書くために紹介されていた方法を取り入れていきたいです。

Kotlin for Swift Developers

Swiftとの比較をベースにKotlinの紹介をするというトークでした。 始めにKotlinとSwiftの似ている点についていくつか述べられていました。 次にSwiftのgurad letをkotlinに,kotlinのapplyをswitで使えるようになると便利なのではないかという提案があり、納得感のある提案だなと思いました。普段両言語を書いている方はそう思われる方が多いのではないでしょうか。 またkotlin nativeについての紹介もあり、現在はプロダクションで導入するのはリスクを取る必要があるとの事でした。 kotlinを学んでAndroidアプリ開発にもtryしていきたいですね。

Preparing for Swift 5 Ownership

Swift5で導入予定のOwnershipについてのトークでした。 新しく導入される要素にsharedキーワードがあり、これを関数の引数につける事でreadonlyの参照渡しになります。このようにコピーと参照を制御するキーワードを使用する事でメモリ管理をより詳細に行うことができます。他にmovedキーワードもあり、これらを上手く使いこなせばパフォーマンス向上だけでなく、実装の意図が分かりやすくなります。 こういった要素が増えると導入障壁が上がるのかと思いますがopt inなので機能を使用しないことも可能なようです。 Swif5リリースまでに導入される概念や機能について理解し、スムーズに以降したいです。

UIImageView vs Metal

GPUがどんな物なのかという導入からMetalを使った自作ライブラリのパフォーマンス測定、その過程で得られた知見についてのトークでした。 MetalとGPUについては知識は殆どなかったのですが、GPUとCPUでのコマンドがどのようにやり取りされているか紹介されていたので処理の概要について知ることができました。 自作ライブラリのパフォーマンス測定ではInstrumentsを使用したデバッグの過程が詳細に述べられており、非常に興味深い内容でした。個人的にはInstrumentsを上手く使いこなせていなかったので、その使用例としても面白い内容でした。 iOSアプリは画像描画の速度でユーザー体験が大きく変わるのでパフォーマンス改善をする際にはMetalの部分まで考慮して実装していきたいです。

会場の様子

IMG_3976 2.JPG

IMG_7156.JPG

感想

3回目の参加になるのですが今回もSwiftに関する様々な発表を聞く事ができ、非常に貴重な経験になりました。 懇親会も盛り上がっており、日本の方だけでなく海外の方ともSwiftについて話すことができました。 とても素晴らしいカンファレンスなので来年以降もぜひ参加したいです。