こんにちは。ソリューション開発部の湯川です。
最近は Swift ばかり書いています。楽しいですね、Swift。
先日開催された try! Swift Tokyo 2019 の参加してきました。 ちょっと出遅れた感がありますが、この記事はその参加レポートです。
はじめに
try! Swift 初参加でした。
2018 年の iOSDC 参加時に try! Swift というとてもよいカンファレンスがあるということを聞いて、じゃあ行こうかなとなりました。
とはいえ、徳島からの参加なので旅費にチケットにお金が・・・という感じだったのですが、会社に相談するとなんと費用を出してやるから行ってこいと。
あざーす!!
ということで、参加させてもらいました。
参加するにあたって
参加することが決まり、楽しみという感情がほとんどなのですが、少し不安もありました。具体的には以下の点です。
英語が得意じゃなくても大丈夫?
スピーカーの方を見ると結構外国の方がいて、そんな英語が得意じゃない僕は大丈夫かなとビビってました。 セッションに関しては同時通訳をしてくれるので全く問題なかったです。
セッションに知識が追いつかないかも?
知識がおいつかず、置いてけぼり状態のセッションもありました。
でもその時ついていけなくても、調べたりするきっかけになるので全く知らない新しい何かをインプットする機会はとても重要だなと思いました。
気になったセッション
SwiftCheckで始めるProperty-based Testing
t.co https://www.tryswift.co/events/2019/tokyo/jp/#property-based
@tobi462 さんのセッション
普段は入力値を決めて、期待するアウトプットを検証するテスト Example based testing を書いてます。この手法で怖いのはテストケースの考慮漏れなどがあった場合、結果的にバグを見逃してしまうということです。
入力値から得られる出力値に注目するのではなく、関数の性質そのものに注目したテストとして Property based testing というテスト手法があります。このテスト手法を使って、Swift で Property based testing を導入する際の知見を共有いただきました。
具体的に、例えば配列の順序を逆転させる reverse
という関数があって、二回 reverse
を実行すると元の並びに戻るという性質があると思います。これに注目してランダムな値を与えていって全てが同様の結果になるよう性質をチェックするというものになります。 Property based testing が Example based testing を置き換えるものではなく、どちらも組み合わせてテストを作成するのがよいとのことです。 テストケースの考慮漏れを少なくできそうな手法だと思うので、紹介されていた SwiftCheck を使って積極的に取り入れていきたいと思います。
All about linking libraries
t.co https://www.tryswift.co/events/2019/tokyo/jp/#library
@k_katsumi さんのセッション
フレームワークやライブラリを使おうと思ってリンカーエラーが出たという経験は誰もがあると思います。これには様々な要因があると思います。
このセッションでは外部ライブラリをリンクしてアプリで使用する際に具体的にどのように解決するかということをお話いただきました。 セッションの中でライブラリとフレームワークの違いや、リンクエラーが発生する理由などを共有いただき、なんだかよくわかっていなかった部分があったところが、すっきりしました。
Keypath入門 – Introduction to Swift Keypaths
speakerdeck.com https://www.tryswift.co/events/2019/tokyo/jp/#keypath
@terhechte さんのセッション
そもそも Keypath についてちゃんと理解できていませんでした。
このセッションは全くタイプの違う struct
を Keypath を使って抽象的に扱おうという目的を通して、Keypath についての知見を共有いただきました。
Keypath を使うことで動的にプロパティにアクセスすることができます。プロパティアクセスの表現の幅が広がるので、使い方によって冗長なアクセス箇所を簡潔に書くこともできるなと思いました。
音の波形の生成
t.co https://www.tryswift.co/events/2019/tokyo/jp/#sounds
@b3ll さんのセッション
波形を出力するのに Core Audio ではセットアップがとても煩雑ですが、AudioKit というフレームワークを使うととても簡単に行えます。
このフレームワークを使うことで単に波形を生成するだけに止まらず、エンベロープの設定(ADSR)、フィルター(LFOなど)をかけるのもすごく簡単にできるということを共有いただきました。 音に関するプログラミングは興味があるので興奮気味にフンフン鼻息を鳴らしながら聞いてました。 AudioKit は僕個人も大好きなフレームワークで、サンプルも豊富です。 興味のある方はぜひ触ってみてください。
関連リンク
try! Swift Tokyo 2019 資料まとめ – Qiita
おわりに
参加前、不安に思っていたことは参加してみれば全く気にすることなく 100% 楽しむことができました。 知識が足りず当日は話についていけないこともありましたが、共有されているスライドなど見て復習しようと思います。
try! Swift tokyo 2019 では交流の場もたくさんありました。知り合いが新しい繋がりを作ってくれたり、全く繋がりのない人と話したり。
参加者も外国の方が沢山いて、僕も拙い英語でコミュニケーションをとったり、普段できないこと・しないことに try できました(伝わっているとは言っていない)。
勉強・交流の機会を与えてくれた try!Swift の運営の方々、スピーカーの方々、参加費出してくれた弊社、感謝です!
新しい目標を立てる機会にもなり、参加して本当によかったです。
また来年もおねだり try! してみようかなと思います。
L is B では新たに開発チームに加わってくれるエンジニアを募集しています。
ご興味のあるかたは 採用情報 | 株式会社L is B(エルイズビー) からご応募いただければと思います。 オフィス見学も大歓迎です。