try! Swift 最速レポート 1日目午前 #tryswiftconf
弊社のレポートは以下になります
- try! Swift 最速レポート 1日目午後
- try! Swift 最速レポート 2日目午前
- try! Swift 最速レポート 2日目午後
- try! Swift 最速レポート 3日目午前
- try! Swift 最速レポート 3日目午後
try! Swift 最速レポート 1日目午前
こんにちは!加藤 潤です。 今日はSwift開発者たちの大規模なカンファレンスであるtry! Swiftにやって来ました!!このイベントは世界中のSwiftデベロッパーが一堂に会し、知識や技術を互いに共有し高め合うことを目的としています。今日から3日間の開催となりますが、Developers.IOではこの模様を随時お届けしていきます! では、さっそくいってみましょう!
目次
朝食
おしゃれなクッキーいただきました!
開会の挨拶
- 最初に会場を提供してくださったサイバーエージェントの方から会場や同時通訳の説明がありました。
- Realmの岸川 克己さんよりこのカンファレンスやセッション中の注意事項などの説明がありました。
- 3日間で33セッション、海外からのスピーカーが26人
- 日本語と英語双方向の同時通訳サービス
Swiftのエコシステムに飛び込む
発表者:Syo Ikeda さん
発表資料
レポート
- Swiftがオープンソース化されてから3ヶ月がたち、1500のプルリクエストがある
- Swift関連のサービス
- IBM Swift Sandbox
- paiza.IO
- Heroku with Buildpacks
- Swift@IBM
- OpenWhisk
- SwiftDoc.org
- CocoaDocs
- CIについて
- Code Coverage
- Codecov
- HoundCI
- Swift関連の開発者向けツール
- Carthage
- CocoaPods
- Swift Package Manager
- SourceKitten
- SwiftLInt
- jazzy
- SourceKittenDaemon
- Buildasaur
- XcodeServerSDK
- SwiftGen
- R.swift
- Quick
- Spectre
- サービスやツールに貢献していくこと
- 気になるものがあれば使ってみてください
- 使ってみて気に入ったらGitHubでスターをつけてください(開発者が喜びます)
- バグ報告をする場合は再現手順やログデータなどをつけてレポートするのが望ましい
- サービスやツールを使っていくうちに他の人の質問に答えらえるようになるかも
- ぜひプルリクエストを送ってみましょう
- タイポの修正や翻訳などでも良い
質疑応答
- 新たにコントリビュートしてみたいライブラリはありますか?
- まだ出来ていないが、AppleのSwiftやファウンデーションにも貢献していきたい
- SourceKittenDaemonはすでにパッケージ化されているか?
- リポジトリ上ではSourceKittenDaemonを使ってコードを補完するサンプルが公開されている
- パッケージマネージャーはどれが生き残るか?
- 最終的にはSwift Package Managerがスタンダードになっていくのではないか
実践的クロスプラットフォームSwift
発表者:JP Simard さん
発表資料
レポート
- Swiftの開発環境
- XCODE
- XCODE + TOOLCHAIN
- DOCKER + CLI + EDITOR
- Swift Package Manager
- クロスプラットフォーム開発をするときにはオススメ
- 一見するとPureなSwiftに見えるが、Linuxで動作させる場合にはキャストなどでエラーになる場合がある
- Objective-Cのランタイムを使用していないかチェックする必要がある
- テストについて
- SPM TESTING
- CI
- TRAVIS CI(Linux上でのCIの設定)
質疑応答
- Resultライブラリのキャストのどの部分がObjective-Cランタイムに依存しているか
- わからない(笑)今デバッグに苦労している
コードリーディングについて
発表者:Laura Savino さん
レポート
- 新しいプログラミング言語を学ぶことは新しい言葉を学ぶこと
- 第2言語を学ぶと第3言語も学びやすい
- リーダブルなコードとは何か
- 誰が読み手なのかを考える必要がある
- 重要なコードであればあるほどすぐに内容を理解できなければいけない
- 「コードがわからない」と認めるのは「仕事ができない」と認めるようなもの
- ワーキングメモリーについて
- chunkingについて
- 解読するにはエネルギーが必要
- どういうコードを書けばよいか
- スラングを使わない
- 必要な情報を短縮しない
- 変数名などにはパターンを使う
- 解読させることなく読めるコードを書いて欲しい
?(Apple TV)
発表者:Boris Bügling さん
レポート
- tvOSについて
- テレビの未来はアプリ(同時にiOS)
- iOSとtvOSの違い
- WEBKIT
- tvOSではOAuthが使えない
- tvOSではストレージに制限がある
- 既存アプリのポーティング
- Cocoapodsは0.39.0でtvOSに対応している
- iOSのNibはtvでは全く使えない
- フォーカスが更新された時のプロトコルについて
- フォーカスされない時のデバッグ方法
- HANDOFF はサポートされていない
- ゲームコントローラーとしてのSiri Remote
- TVMLについて
- カタログのようなアプリではTVMLが使われている
- tvOSはUIKitを知っていれば良い開発のスタートがきれる
平常心で型を消し去る
発表者:Gwendolyn Weston さん
レポート
- 「型」とは何か
- 型とは分類であり、値の集合とその値に対する有効な演算を定義するもの
- Concrete types と Abstract types
- プロトコルの関連型が抽象的であるために発生するコンパイルエラーを回避するためにラッパークラスを作成する
- サンプルコードはこちら(例えがポケモン!! どうやらポケモンに出てくる技、
スピードスター
の英語名がSwift
のようです) - 副作用として型情報(サンプルコード中の
Pikachu
やRaichu
)が消去される
- サンプルコードはこちら(例えがポケモン!! どうやらポケモンに出てくる技、
- 型消去はデザインパターンである
- コードの共変性をSwiftはサポートしていない
ランチ
ランチはお弁当を選べる形になっており私はハンバーグの入ったお弁当を美味しくいただきました!
午後の部は田宮がレポートします。お楽しみに!!