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
- スケジュール
- SlackとTwitterでコミュニケーションをとる
- https://www.eventbrite.com/ を使ってチケット認証する
- https://twitter.com/hashtag/tryswiftconf
- 朝食はクッキーと餡子のパイとバームクーヘン
- コーヒー飲み放題
- Tシャツとシールは色々もらえる
- 日英同時通訳
- 昼ごはんの弁当あり
- カンファレンスの会場に個人PC用の電源はないので電池で頑張る
- モバイル用のバッテリーは貸してくれる
- 懇親会が豪華
- ハッカソンは別会場
3/2
10:00 - Swift開発者が知りたかったけど聞きにくい機械学習のすべて
MLはアプリ開発者が利用できるまでになってきた。
MLを使うのは難しくない。
MLをうまく使って作れたなど評価するのは難しい、なぜならUI designを作るのに似ているから
10:20 - Swift on Android
iOS : NavigationController & ViewController
Android : Activity
Swift on Androidという名前に惹かれて、このセッションを楽しみにしていましたが、SwiftでAndroidアプリを作ろうなどと思わない方が良いということを思い知りました。
11:40 - SwiftのPointy Bits
Swiftのポインタについて
何が安全で、何が安全ではないか
0で割るとクラッシュする
12:05 - アプリを新次元に導く3D Touch
12:30 - Pixcels、プロセスと情熱
アプリを使って何かできないか?
テクノロジーが大変なんじゃなくて、人々が大変なことが多い。
ものづくりの一番大変なのは、自分自身のモチベーションを維持することです。
ネットワーキングしましょう。
人の力を借りましょう。
居心地の良い場所から出て刺激を受けましょう。
14:30 - 毎日リアクティブ
14:55 - ⚡️🎤 Unsafe Swiftの安全性
15:05 - クックパッドアプリのテストを味わう
テストエンジニア
理想のテストピラミッド
Test Pyramidで画像検索するとすごく良い
手動の目視テストが大半をしめてたりするのだけれど、理想に近くためには、1行ユニットテストを書き始めることが大切なんだと思いました。
15:25 - ⚡️🎤 データレイヤを分離する
15:35 - UIをSwiftyに書く
viewの記述が楽になりそう
16:30 - SwiftのWeb APIとアプリをともに構築する
16:50 - ⚡️🎤 楽しく便利なSwiftチャットボット
17:05 - Realmを使ってコラボレーションアプリを作る
17:30 - 独自のツールを構築する
Cross Platform
18:00 - ⚡️🎤 リアルタイム物体検出アプリでよりよいフィードバックを提供する
18:10 - ⚡️🎤 UXエンジニアという働き方
3/3
10:00 - テスト可能なコードを書くということの2つの側面
10:20 - 誰もが知りたいSequenceとCollectionのすべて
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を使う
11:50 - ⚡️🎤 VRの革新と新たなユーザー体験
12:05 - iOSにおけるDocument IndexingとApp Search
12:30 - スタートアップのSwift
14:30 - きちんと型付けされたメッセージ
14:50 - ⚡️🎤 忙しい人のためのApp Transport Security
15:05 - Swiftで堅牢なカラーシステムを構築する
15:25 - ⚡️🎤 サーバサイドSwiftの実例
15:35 - モックオブジェクトをより便利にする
16:30 - チームの生産性を改善するために決断疲れを最小化する
16:50 - ⚡️🎤 Client-Side Deep Learning
17:30 - オープンソースコミュニティをスケールさせる
17:05 - Swiftでのエラーハンドリングとエラー耐性についての教訓
18:00 - ⚡️🎤 👾 & ⌚️
18:10 - ⚡️🎤 なぜ登るのか
速報レポート 1日目
速報レポート 2日目