L is Bエンジニアブログ

ビジネス用メッセンジャーdirectのエンジニアによるブログ

LisBエンジニアブログ

ビジネスチャットdirectのエンジニアブログ

try! Swift Tokyo 2018に参加しました #tryswiftconf

directのiOSアプリを開発している吉岡(@rikusouda)です

2018/3/1から2018/3/3にかけて開催された try! Swift Tokyo 2018 というカンファレンスに参加してきました。このカンファレンスについては多くのブログで紹介されているのでここでは詳しい説明を省きますが、海外のエンジニアを含めて今回は800名が参加したと言われておりiOSに関連するカンファレンスとしては大規模です。

www.tryswift.co


始めに

try! Swiftへの参加は去年に引き続きで2回目です。iOSアプリエンジニア界隈ではいろいろな勉強会が毎月のように開催され、秋にはiOSDCという大きなカンファレンスが開催されています。その中でもtry! Swiftは海外のエンジニアが多数参加・登壇しているというのが特色ではないかと思います。去年のtry! Swiftでもたくさんの刺激と知見をいただき、日々の開発に役立てています。先日のRxSwift導入記事の参考リンクにも、try! Swiftのセッションを入れていますが、これは去年のtry! Swiftに参加したおかげでこのセッションを振り返ることができ課題の解決へとつながりました。 これからも社内の開発を改善していくために、今年も業務として参加してきました。

f:id:rikusouda:20180306200322j:plain:w300

特に印象に残ったセッション

UIImageView vs Metal

https://www.tryswift.co/events/2018/tokyo/jp/#uiimageview-metal

アニメーションなどの描画性能はアプリを作る上で決して無視することができない課題です。このセッションではUIKitの内部処理を理解した上でパフォーマンスチューニングを行うことの大切さを知るための体験談を共有してくれました。directのiOSアプリは短い時間で正確な情報をユーザーに伝えるという大切な使命があります。よりユーザーにとってわかりやすくストレスがないアプリにしていくためにMetalまで意識したパフォーマンスチューニングは大切だと強く意識するきっかけとなりました。UIKitはiOSのバージョンアップによって内部の実装が変わることもあるため、そのバージョンに応じて適切な実装を心がけます。

Swift5のOwnershipに備える

https://www.tryswift.co/events/2018/tokyo/jp/#swift5

Swiftではインスタンスの管理を自動的にやってくれて便利ですが、C++のようにプログラマがインスタンスの使い方を選択できる言語と比べて不必要なオーバーヘッドがあると感じたり、処理の意図が伝わりにくいと感じる場面もありました。このトークを聞いて、Swift5ではコードの書き方がある程度変わりそうな兆しを感じました。「場面に応じて参照の種類を使い分ける」ことで、いままでよりパフォーマンスを重視したり、意味の伝わりやすいコードが書けるようになるとイメージができました。いままでは「Swiftにオーナーシップが導入される」と聞いてもイメージがあまりできなかったのですが、このトークを聞いたことでイメージが明確になりました。

Swiftのパフォーマンスに関してはWWDC 2016の下記セッションも言及しており、併せて参考にすることでより実行効率のよいSwiftが書けるようになると考えています。

developer.apple.com

超解像+CoreML+Swiftを使ってアプリの画像データ転送量削減に挑戦する

https://www.tryswift.co/events/2018/tokyo/jp/#coreml

CoreMLと聞くと普段の業務ではあまり使わないような、高度な飛び道具のようなことをするイメージを持っていました。このトークではそういう利用例ではなく、通信容量を減らすという堅実な分野での活用事例を実プロダクトで示してくれたので、directでもCoreMLを導入することでユーザー体験を向上させることができるのでは、と考えるきっかけとなりました。

CoreMLについてはiOS 11 Programmingという本で詳しく解説されているので、そちらも参照して、directでの活用を模索していきたいと考えました。

感想

try! Swift Tokyo自体は3回目の開催で、僕は今回で2回目の参加です。去年のtry! Swiftでは様々なエンジニアと知り合うことができ、様々な知見交換のきっかけとなりました。今年のtry! Swiftでも普段お話しできないようなエンジニアと意見交換をすることができました。このように社外の多くのエンジニアと交流をする機会としてもカンファレンスはとてもよい機会でないかと思います。

いくつもの有用な話を聞くことができ、これからの業務にも役立てることができそうです。(冒頭でも紹介しましたが、すぐに役立てることが難しい内容であっても、しばらく後で役立つ場面もありました)

終わりに

前回も今回もtry! Swiftには業務として参加して参加費も会社に出してもらいました。弊社ではこのようなカンファレンス参加を支援するような仕組みがまだ制度化されてはいないのですが、こういった活動には理解があり前回と今回はCTOの裁量でサポートいただきました。特にtry! Swiftのように平日開催のカンファレンスに参加する場合はこのように理解のある環境がありがたく思います。

弊社では新しいことを習得するのが好きで日々の業務を改善していけるエンジニアを絶賛募集しています。 求人要項もありますが、まずはお話を聞きに来ていただくだけでもOKですのでTwitterなどで@rikusoudaに気軽にお声かけください。