[イベントレポート] try! Swift Tokyo 2017 Aftershow に参加&登壇しました! #tryswift_as

logo_swift_400x400

はじめに

おばんです、最近は暖かい日も増えてきましたね。近所で咲いていた桜が見頃な感じで嬉しくなった田中です。

IMG_6659

今回の記事はtry! SwiftのAfter Party的な勉強会、try! Swift Tokyo 2017 Aftershowのレポートになります!

try! Swift Tokyo 2017 Aftershow とは

try! Swift についてはコチラ

try! SwiftのAftershow Partyな勉強会です。try! Swiftに参加した人も参加していない人も、発表した人も発表していない人も、 iOSエンジニア同士ワイワイ楽しみましょう! 懇親会も用意しております。

開催日:2017年3月7日(火)19:00受付開始 19:30スタート 場所:株式会社サイバーエージェント 渋谷プライムプラザ4F クリエイティブラウンジ 参加費:無料

Connpassより引用

発表

「untry! Swift: 最強Objective-Cツールチェイン」 @laisoさん

Objective-Cで最近開発されたライブラリを紹介!

  • PINCache
    • 内部用のライブラリだったけれど、問題が発生して?ライブラリ化したという経緯がある
  • Spotify
  • IGListKit
    • Spotifyから出ているライブラリ
    • AFNetworkingと同じくらいの中規模のライブラリ
    • C++にて実装されている模様
    • 「読んでみたところ、チューニングして高速化していたらなんとなくそうなったっぽい経緯が見受けられた」とのこと
  • Facebook
    • AsyncDisplayKit
      • IGListKitなどと組み合わせて使うサンプルがリポジトリにある
      • 「Facebookはこんな風に使っている」というイメージができる
      • 大規模なので簡単に導入はできない
    • ComponentKit
    • React Native
  • Transpiler
    • Transpiler = 既存のソースファイルをObjective-Cに変換してしまおうというもの
    • Dropboxではdjinniなどを使っている模様

Objective-Cのライブラリは枯れた実装をそのままライブラリ化したものが多い模様。たとえばPinterestのライブラリは他のキャッシュライブラリと比較した時に、より高速だったという報告もある、など。Objective-CはSwiftとC++をつなげる存在になっていくだろう。

現実のアプリケーション問題を解決してきたコードを読んでみると色々と面白いことがあります。

「SwiftでElmを作る」 @inamiyさん

Elmとは、Webアプリ用の関数型プログラミング言語。Haskell風の構文からHTML/CSS/Javascriptを生成するトランパイラ。純粋関数型、静的型付け言語。 Elmの場合はVirtual DOMを使ってサクっと動かすことができるが、Swiftの場合AppDelegateを書いたりしなければいけない。SwiftでElmと同じようにやるために、VTreeというライブラリを開発しました。

また、VTreeにReactive + AutomatonしたSwiftElmというものも作ったので、今日はその紹介など。そしてその他のライブラリの紹介など。

「コードとIBをつなぐオレオレカラーシステム」 @yukiasai417さん

try! Swiftの「Swiftで堅牢なカラーシステムを構築する」というセッションにインスパイアされての話。色以外にもフォントなどスタイル全般の話も含まれます。スタイルを定義するときはIBとコードをそれぞれ混ぜて使ったり使っているとのこと。スタイルはコードで、レイアウトはIBで。


Pros

  • スタイルを定義するとデザインの一貫性を保ちやすくなる。プログラマは気にしなかったりするが、デザイナとしては気にしたいところ。歩み寄っていきたい。
  • デザイン変更に柔軟に対応できるようにしたい。
  • 変更箇所がわかりやすい。Storyboardのdiffがとても読んでいられるものではない。

Noriというライブラリを作りました。これはStoryboardの変更をコードで行うもの!

「Sketch Pluginを使ってワークフロー改善!」 @nerd0geek1さん

チームメイトとのコミュニケーションは適切なのだろうか?コミュニケーションが適切に行われていない場合、各所で意図の違いが発生してしまう。これをどのように改善するかというお話。

使っているツール群

InVision CraftはSketchの変更を専用アプリに適応して、変更をアプリからプロトタイプですぐに見ることができるプラグイン(とツール)。FluidはSketchからAutoLayoutを作成するプラグイン。これらを用いることで、デザイナーとの意思疎通の制度を上げることが可能だとのことです。

「描画とビジネスをクリーンに分ける if minimumViableArchitecture == MVP」 @ktanaka117

iOSアプリ設計における悩み中の一つにViewControllerが責務過多になってしまうという問題があります。その問題に対して、MVCパターンではなくPresenterという役割を使ってMVPパターンをMVA(Minimum Viable Architecture)として考えるのはどうかという話をしました。Presenterを用いることでFatViewControllerがどのように変化するのか、ソースコードで追いながら紹介しました。

懇親会

IMG_8702 2

IMG_2000 2

IMG_2573 2

まとめ

try! Swiftではリジェクトされてしまった方も多かった中で、できるだけ多くの方に話をしていただきたいという思いから開催された今イベント。その志に正しく沿う形の、素晴らしいクオリティの発表の数々でした!自分もまた振り返りながら学ぼうと思います!