try! Swift 2017 Tokyo 参加レポート

### try! Swift 2017 Tokyo 参加レポート

### 感想

* 新しいアプリだけでなく大きめの会社の規模の大きいアプリでもObjective-CからSwiftへの移行が進んでいるので、まだSwiftに移行していないアプリは移行し始めた方が良い。

* テスト自動化については地道にユニットテスト書いて理想的なテストピラミッドの状態にプロダクトを持っていくことが望ましい。

* Cross Platformは難しい。Swift, Kotlinで別々に書いた方がCross Platform で書くより結局のところ簡単そうな印象をうけました。Cross Plarformしたい場合はreact-nativeがアプリによっては良さそう。

* ML 機械学習はアプリ開発者が利用してアプリ作りに活かしていく段階に入ってきたように感じました。MLを利用するのか、サーバから取得するのが最適な設計なのか考えながらアプリを作って行かないといけないのかなと思いました。

* サーバサイドにSwiftを採用するというのは、挑戦してみても良いかなと思いました。

### 概要

* [try! swift 2017 Tokyo](https://www.tryswift.co/tokyo/jp)
* [スケジュール](https://www.tryswift.co/tokyo/jp#schedule)
* SlackとTwitterでコミュニケーションをとる
* https://www.eventbrite.com/ を使ってチケット認証する
* https://twitter.com/hashtag/tryswiftconf
* 朝食はクッキーと餡子のパイとバームクーヘン
* コーヒー飲み放題
* Tシャツとシールは色々もらえる
* 日英同時通訳
* 昼ごはんの弁当あり
* カンファレンスの会場に個人PC用の電源はないので電池で頑張る
* モバイル用のバッテリーは貸してくれる
* 懇親会が豪華
* ハッカソンは別会場

### 3/2


#### 10:00 - Swift開発者が知りたかったけど聞きにくい機械学習のすべて

* [Swift開発者が知りたかったけど聞きにくい機械学習のすべて 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/02/102254)

MLはアプリ開発者が利用できるまでになってきた。
MLを使うのは難しくない。
MLをうまく使って作れたなど評価するのは難しい、なぜならUI designを作るのに似ているから

#### 10:20 - Swift on Android

* [Swift on Android 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/02/111030)

* [Blurrr SDK](http://blurrrsdk.com/)

```
iOS : NavigationController & ViewController
Android : Activity
```

Swift on Androidという名前に惹かれて、このセッションを楽しみにしていましたが、SwiftでAndroidアプリを作ろうなどと思わない方が良いということを思い知りました。

#### 11:40 - SwiftのPointy Bits

* [SwiftのPointy Bits 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/02/120811)

Swiftのポインタについて
何が安全で、何が安全ではないか
0で割るとクラッシュする

#### 12:05 - アプリを新次元に導く3D Touch

* [アプリを新次元に導く3D Touch 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/02/123249)

#### 12:30 - Pixcels、プロセスと情熱

* [Pixcels、プロセスと情熱 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/02/125244)

アプリを使って何かできないか？
テクノロジーが大変なんじゃなくて、人々が大変なことが多い。
ものづくりの一番大変なのは、自分自身のモチベーションを維持することです。
ネットワーキングしましょう。
人の力を借りましょう。
居心地の良い場所から出て刺激を受けましょう。

#### 14:30 - 毎日リアクティブ

* [毎日リアクティブ 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/02/145507)

#### 14:55 - ⚡️🎤 Unsafe Swiftの安全性

* [Unsafe Swiftの安全性 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/02/150204)

* [Unsafe Swiftの安全性 スライド](https://speakerdeck.com/rayfix/unsafe-swift)

#### 15:05 - クックパッドアプリのテストを味わう

* [クックパッドアプリのテストを味わう 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/02/152644)

テストエンジニア
理想のテストピラミッド

Test Pyramidで画像検索するとすごく良い

https://www.google.co.jp/search?q=Test+Pyramid&rlz=1C5CHFA_enJP729JP729&espv=2&biw=1403&bih=798&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjI5dz3o8TSAhVKf7wKHV4WDkIQ_AUIBigB&dpr=1#imgrc=_

https://www.sealights.io/wp-content/uploads/2017/01/automatedtestingpyramid.png

手動の目視テストが大半をしめてたりするのだけれど、理想に近くためには、１行ユニットテストを書き始めることが大切なんだと思いました。

#### 15:25 - ⚡️🎤 データレイヤを分離する

* [データレイヤを分離する 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/02/154103)

#### 15:35 - UIをSwiftyに書く

* [UIをSwiftyに書く](http://niwatako.hatenablog.jp/entry/2017/03/02/160620)

https://github.com/robb/Cartography

viewの記述が楽になりそう

#### 16:30 - SwiftのWeb APIとアプリをともに構築する

* [SwiftのWeb APIとアプリをともに構築する 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/02/165521)

* [Frank](https://github.com/kylef/Frank)
* [IBM-Swift/Kitura](https://github.com/IBM-Swift/Kitura)
* [Vapor](https://github.com/vapor/vapor)

* [Dredd — HTTP API Testing Framework](https://github.com/apiaryio/dredd)

* [api blueprint](https://apiblueprint.org/)
* [swagger](http://swagger.io/)

#### 16:50 - ⚡️🎤 楽しく便利なSwiftチャットボット

* [楽しく便利なSwiftチャットボット 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/02/170846)

#### 17:05 - Realmを使ってコラボレーションアプリを作る

* [Realmを使ってコラボレーションアプリを作る](http://niwatako.hatenablog.jp/entry/2017/03/02/173418)

* [Realm Swift
2.4.3](https://realm.io/docs/swift/latest/)

* [realm チュートリアル](https://realm.io/docs/get-started/installation/mac/index.html)

#### 17:30 - 独自のツールを構築する

* [独自のツールを構築する 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/02/180735)

* [react-native](https://facebook.github.io/react-native/)

Cross Platform

#### 18:00 - ⚡️🎤 リアルタイム物体検出アプリでよりよいフィードバックを提供する

* [リアルタイム物体検出アプリでよりよいフィードバックを提供する 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/02/181437)


#### 18:10 - ⚡️🎤 UXエンジニアという働き方

* [UXエンジニアという働き方 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/02/182154)

### 3/3

#### 10:00 - テスト可能なコードを書くということの２つの側面

* [テスト可能なコードを書くということの２つの側面 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/03/103125)


#### 10:20 - 誰もが知りたいSequenceとCollectionのすべて

* [誰もが知りたいSequenceとCollectionのすべて 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/03/105846)

```
Sequence
IteratorProtcol
LinkedList
let = ["A", "B", "C"]

Each Pair

"A" "B" "C" "D"
("A", "B") ("C", "D")
シーケンスのコピーをして参照わたしをする
sequence.eachPair

Collection
Inherits from Sequence
Always infinite

protocol Collection {
  var startIndex: Index
  var endIndex: Index
  subscript(position: Index)
}

func forEach(_ block: (Element))

struct APiErrorCollection {
  fileprivate
}
```

#### 11:30 - 様々な場面でSwiftを使う

* [様々な場面でSwiftを使う 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/03/120359)

#### 11:50 - ⚡️🎤 VRの革新と新たなユーザー体験

* [VRの革新と新たなユーザー体験 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/03/121034)

#### 12:05 - iOSにおけるDocument IndexingとApp Search

* [iOSにおけるDocument IndexingとApp Search 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/03/124041)

#### 12:30 - スタートアップのSwift

* [スタートアップのSwift　書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/03/124124)

#### 14:30 - きちんと型付けされたメッセージ

* [きちんと型付けされたメッセージ　書き起こし](http://akatsuki174.hatenablog.com/entry/20170305/1488720292)

#### 14:50 - ⚡️🎤 忙しい人のためのApp Transport Security

* [忙しい人のためのApp Transport Security　書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/03/162543)

#### 15:05 - Swiftで堅牢なカラーシステムを構築する

* [Swiftで堅牢なカラーシステムを構築する　書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/03/163012)

#### 15:25 - ⚡️🎤 サーバサイドSwiftの実例

* [サーバサイドSwiftの実例　書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/03/154147)

#### 15:35 - モックオブジェクトをより便利にする

* [モックオブジェクトをより便利にする 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/03/160701)

#### 16:30 - チームの生産性を改善するために決断疲れを最小化する

* [チームの生産性を改善するために決断疲れを最小化する　書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/03/171619)

#### 16:50 - ⚡️🎤 Client-Side Deep Learning

* [Client-Side Deep Learning 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/03/175246)

#### 17:30 - オープンソースコミュニティをスケールさせる

* [オープンソースコミュニティをスケールさせる 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/03/175203)

#### 17:05 - Swiftでのエラーハンドリングとエラー耐性についての教訓

* [Swiftでのエラーハンドリングとエラー耐性についての教訓 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/03/181909)

#### 18:00 - ⚡️🎤 👾 & ⌚️

* [apple watch でマリオ　書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/03/184319)

https://speakerdeck.com/giginet/and

#### 18:10 - ⚡️🎤 なぜ登るのか

* [なぜ登るのか 書き起こし](http://niwatako.hatenablog.jp/entry/2017/03/03/183815)

### 速報レポート １日目

http://dev.classmethod.jp/smartphone/try-swift-tokyo-2017-1st-day-am1/

http://dev.classmethod.jp/smartphone/try-swift-tokyo-2017-1st-day-am2/?utm_source=dlvr.it&utm_medium=twitter

http://dev.classmethod.jp/smartphone/try-swift-tokyo-2017-1st-day-pm1/?utm_source=dlvr.it&utm_medium=twitter

http://dev.classmethod.jp/smartphone/try-swift-tokyo-2017-1st-day-pm2/?utm_source=dlvr.it&utm_medium=twitter

### 速報レポート　２日目

http://dev.classmethod.jp/smartphone/try-swift-tokyo-2017-2nd-day-am1/?utm_source=dlvr.it&utm_medium=twitter



http://dev.classmethod.jp/smartphone/try-swift-tokyo-2017-2nd-day-pm2/?utm_source=dlvr.it&utm_medium=twitter


### その他の参加者のレポート

* http://qiita.com/yoneDev01/items/000a4b4d57cd5fd396c9
* http://qiita.com/roothybrid7/items/267ad11df4f87765588c