try! Swift Tokyo 2017に参加しました
3月2日から4日にかけて開催された try! Swift Tokyo 2017 に参加しました!
昨年のtry! Swiftは、チケット買うか迷っていたらチケットが売り切れてしまい、行くことができなかったので、今回はチケットが発売されたらすぐに購入しました。
今回は一般参加者として参加しました。
ということで、印象に残ったトークを振り返ってみようと思います。
1日目
朝8時半から会場だったので、会場時間の少し前に着くように移動しました。
久しぶりの早起きと満員電車ですでに少し疲れていました。。。
I'm at ベルサール新宿セントラルパーク in 新宿区, 東京都 https://t.co/RFmSwyexUz
— りばーす@1日目東た-12b (@rb_de0) March 1, 2017
Swift on Android
とても気になっていたトークです。Swiftで書かれたアプリをどうやってAndroid上で動作させるかという内容でした。程レイヤーの知識がないので理解できないところ結構ありましたが、「Android NDK」はお粗末らしいということはわかりました。
ちょっとまだまだ難しそう? Googleさんといい感じに連携しないとダメそうですかね。
以前「RemObjects Silver」というSwiftもどきの言語でAndroidアプリを書いたことがありますが、あれみたいに完全に独自のコンパイラを作るしかないんですかね・・・。
でもAndroidはkotlinでアプリかけるしSwiftでかける必要はなさそう。
毎日リアクティブ
リアクティブプログラミングのお話です。
フレームワークいろいろありますが(RxSwift/ReactiveCocoa/ReactiveSwift/ReactiveKit/ReactKit)、どれも基本的な考え方は同じなので一つ覚えてしまえば、他のも簡単に使えるようになると。
iOSDCで石川さんも言っていましたが、Rxを使うと状態を減らせるという点について、この発表でも説明していました。
Rxは今のプロジェクトでも使用していますが、CleanArchitectureを採用しているので、Pub/Subを簡易化するためだけにしか使ってないです。あとはUIKitのextensionとかは便利なので使っています。凝った実装とか使い方をするのは趣味で留めておこうかな。。。
データレイヤを分離する
データレイヤーにおける設計の話です。
データレイヤーのオブジェクトや処理はフレームワークに依存することが多く、その情報を他のレイヤーで扱かわないように変換して使おうというお話をしていたような気がする。
私もよく、APIレスポンスとかRealmObjectとかはそのまま使わずUI層では同じ構造体 or クラスに変換して使っていますね。まぁ、めちゃくちゃシンプルなアプリの場合はそのまま使いますが・・・。
SwiftのWeb APIとアプリをともに構築する
swiftenvのお方です。めちゃくちゃお世話になっています。
APIサーバーのパスやパラメーター、レスポンスのベストプラクティスについて説明していました。
WebLinkingは初めて知ったので、時間あるときにRFC読んでおきます。。。
kyleは、SwiftのWebフレームワークとして自ら開発したっぽい Frank を使っているらしいです。
私は、Vaporが好きですが、軽量ではないのでAPIサーバーを構築する程度でしたら軽量なフレームワークの方が良さげですね。Vaporはフルスタックなので、Webサービスとかを開発する等の用途に向いていると思います。
楽しく便利なSwiftチャットボット
Swiftでチャットボット作ってみたお話です。
LINEのボットの開発のお話だと思います。おそらくMessaging APIを使っていると思われ。
私もVaporを使ってLINEのBot開発したことあります!
Rayさんは、Heroku + Vapor で構築したそうなのでほぼ同じだと思いますね。私のはさくらのVPS上で動かしていますが。Swiftのサーバー再度フレームワークを使えば、ボットも簡単に作れるので良いですよね!
2日目
オイシックスさんのジュースめちゃくちゃ美味しかったです。毎日飲みたいので、そのうち注文するかも??
オイシックスジュース、毎日飲みたい #tryswiftconf
— りばーす@1日目東た-12b (@rb_de0) March 3, 2017
誰もが知りたいSequenceとCollectionのすべて
Swiftの言語仕様のお話です。
Swiftは、ProtocolOrientedな言語なので、Arrayを紐解いていくだけでもたくさんのプロトコルが出てきて楽しいですね。SequenceとCollectionについては本で読んだときになんとなく理解していただけだったので大変勉強になりました!!
BidirectionatiCollectionに準拠させると一つ前のindexを取れる #tryswiftconf
— りばーす@1日目東た-12b (@rb_de0) March 3, 2017
トークで説明されていない、プロトコルについても調べて勉強しておきたいですね。
忙しい人のためのApp Transport Security
にわたこさんのやつです。図がとてもわかりやすかったので参考になりました!
結論としては不特定多数のWebサイトに接続するアプリは、「NSAllowsArbitraryLoads」をtrueにしてATSを無効にするしか(今の所は)無いらしいです。iOS9と10で挙動が異なるし、マイナーバージョン違うだけでも挙動が変わるのでアップルさん早くどうにかして欲しい感じ。
結論 NSAllowsArbitraryLoads を使おう #tryswiftconf
— りばーす@1日目東た-12b (@rb_de0) March 3, 2017
サーバサイドSwiftの実例
サーバーサイドSwiftについてのお話です。
ライブコーディングがスムーズで凄かったです。このお方はVapor使いだったので、若干の親近感が。
オープンソースコミュニティをスケールさせる
fastlane開発者のお方です。fastlane勉強会で作成したTシャツを着て登壇してくださりました!感激!
fastlaneのスター数をあまり確認してみたことがなかったのですが、14000以上もあったんですね。規模的にはかなり大きなOSSだと思うので、そのメンテナンスの方法とスケールアップの方法について発表してくださいました。
とりあえず自動化は正義。
懇親会
2日目はすべてのトークが終了した後に懇親会がありました。
所用で21時に帰ってしまいましたが、Twitterでつながっていてお会いしたことがなかった方に会うことができてよかったです!
私もたるのんさんとおもちめたるさんに会いたい
— りばーす@1日目東た-12b (@rb_de0) March 3, 2017
どこですか!高いところでマスク付けてます!
— uounɹɐʇ (@tarunon) March 3, 2017
ハッカソン
3日目はハッカソンです。
事前にやることを決めてグループを作っていた方達も結構いましたが、私はやることもグループも決めずに会場に向かいました。
賞品がNintendo Switchだったのでがんばるぞいという意気込み
Switchをゲットしにきた #tryswifthack
— りばーす@1日目東た-12b (@rb_de0) March 4, 2017
結果としては、賞は取れませんでしたが、他の会社の方と短時間でアプリを作るという貴重な体験ができたので良かったです。デザインや仕様の策定から当日に行っていたので慌ただしかったですが、エンジニアだけでサービス作るのもいいなぁと思わせる場でした!
他の会社の人と一緒にコード書くのめちゃくちゃ楽しかったです!今日はありがとうございました! #tryswifthack
— りばーす@1日目東た-12b (@rb_de0) March 4, 2017
お疲れ様でした & ありがとうございました!
3日間楽しすぎて仕事に戻るのが若干辛くなっていたりばーすさん。
3日間楽しすぎて現実に戻るのが少し辛い…
— りばーす@1日目東た-12b (@rb_de0) March 4, 2017
そう思わせるほど楽しかったです!!
主催者の方々、ボランティアスタッフの方々、登壇者の方々、スポンサーの方々、同時通訳してくださった方々、本当にありがとうございました!
決して安くないチケット代でしたが、チケット代以上の体験を得られたと思います!
来年も絶対参加します!!
それまでには、いろいろとスキルアップできてるといいなぁ。。。