CA MOBILE TECH BLOG

株式会社シーエー・モバイルのエンジニア・デザイナーの活動を綴るブログです

株式会社シーエー・モバイルの技術広報による、
技術に特化したブログです。
エンジニアとデザイナーの活動や思想を綴ってゆきます。

iOS開発歴5ヶ月のエンジニアがtry! Swiftに行ってみた話。

f:id:cam-engineer:20180313122506p:plain

はじめまして、シーエー・モバイル2017年新卒の坂上と申します。iOSエンジニアを(5ヶ月)しています。

先日、 try! Swift というSwift言語のカンファレンスが催されました!国内のSwiftカンファレンスとしては最大級のものです。 まだまだ経験の浅い私ですが、 try! Swift に行ってきましたので、レポートしていきます!

ただ、感想をスラスラ述べるだけでは他の感想記事とそう変わらないため、いま私が参加しているプロジェクトの技術や私の個人的な見解を混ぜつつ紹介していきます!よろしくお願いします!

f:id:cam-engineer:20180313122530p:plain



外国の人ばかりだ!

開催当日、会場内に入ったとき最初に思ったのは、外国の人が多いなでした。割合として大体50%くらいだったでしょうか。

日本人ばかりだろうな、と盲信していた私は面食らいましたが、前日から賑わっていた try! Swift のslackも外国の方が多く発言していたし、登壇する人も半分外国人だったため、海外から見ても try! Swift は来日してでも来る価値のあるものだなと認識しました。

f:id:cam-engineer:20180313122601p:plain f:id:cam-engineer:20180313122605p:plain

後から知ったのですが、 try! Swift はNYやインドでも開催されており、かなり大きいらしいです。ビッグ。



セッション

セッション全てに見解を述べていると体力が持たないので、私が気になった数点を紹介します。


関心の分離と単純化のためのSwiftコードの最適化

github.com

このセッションでは、Swiftにおける疎結合なプログラムを作成するためのテクニックをサンプルを見比べながら解説していました。

この中にでてくる、enumでviewを管理しやすくするテクニックは今やってるプロジェクトでも行なっていたため、当日ニヤニヤしていたのを思い出します。気持ち悪いですね。

ただ、ほかのテクニックはやったことないものがあったので、積極的に採用しようと思いました。


SIL入門

www.slideshare.net

Swiftがコンパイルされる際に生成される中間言語、SILの解説を行っていました。 今回のカンファレンスでは、2つか3つのセッションはSILについてのものでしたが、今回のカンファレンスが行われる前まではSILという単語すら知りませんでした。

中身の動作すら知らずコードを打っていた私はなんちゃってSwifterだったんだな、と凹みましたが、今回を機にSwiftの動作フローや内部でどう変数やメソッドを扱われているのかなど、内部を知る機会を持てたことに感謝しています。


Swift によるアルゴリズムの可視化

speakerdeck.com

このセッションは、ベジェ曲線をplaygroundを実装し、そのロジックを見るというものでした。

1番参考になったことは、playgroundでviewのプレビューができ、操作できるということです。 私の参加しているプロジェクトでは、コンパイル時間の関係上、デザインされたViewは別プロジェクトで分けられており、実装できたら本家プロジェクトに移すことをしていました。

わざわざプロジェクトを作る必要もなく、playgroundでViewの管理できると知ることができ良かったのですが、storyboardを扱えないため精査する必要があります。単純なViewを作ってみるなら、Playgroundで作成するのもありだなと感じました。


開発者ツールと経験への時間投資

niwatako.hatenablog.jp

try! Swift 最後のセッションでは、自分の経験を元に、開発者がより開発しやすいよう時間を短縮できるようにするにはどうすればよいかを話していました。

彼は開発者の経験をより豊かにするためにはどうすればよいかを、自分自身やプロジェクトで感じていた問題を解決するフレームワークやライブラリを作成するという手を使っていました。

これは私の会社でも同様で、Technology Initiative Centerという部署が、会社全般の技術を推進・サポートすることをしており、彼の説明していることに類似する点が多々ありました。

私はこのセッションで彼が言った、Developer Experienceという言葉を忘れません。



感想

全セッションを通してみて、Swifttという言語の奥深くを使いこなしていこうぜ!、という印象がありました。 どういうことかと言うと、実務で使えるようなテクニックの発表は少なく、単純にSwiftを使って色んなこと出来るよ!や、Swiftの深淵を覗いてみよう、な感じです。

そのため実際に明日から使えるノウハウなどはあまり吸収出来なかったですが、Swiftはアプリケーションに限らず、サーバーサイドやラズパイの制御にも活躍できるぞ!ということを学びました。

坂上でした。

f:id:cam-engineer:20180313122700p:plain f:id:cam-engineer:20180313122704p:plain f:id:cam-engineer:20180313122708p:plain f:id:cam-engineer:20180313122712p:plain