try! Swift 最速レポート 1日目午前 #tryswiftconf

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

弊社のレポートは以下になります

try! Swift 最速レポート 1日目午前

こんにちは!加藤 潤です。 今日はSwift開発者たちの大規模なカンファレンスであるtry! Swiftにやって来ました!!このイベントは世界中のSwiftデベロッパーが一堂に会し、知識や技術を互いに共有し高め合うことを目的としています。今日から3日間の開催となりますが、Developers.IOではこの模様を随時お届けしていきます! では、さっそくいってみましょう!

目次

朝食

おしゃれなクッキーいただきました!

try_swift_breakfast

開会の挨拶

  • 最初に会場を提供してくださったサイバーエージェントの方から会場や同時通訳の説明がありました。
  • Realmの岸川 克己さんよりこのカンファレンスやセッション中の注意事項などの説明がありました。
    • 3日間で33セッション、海外からのスピーカーが26人
    • 日本語と英語双方向の同時通訳サービス

    try_swift_kishikawa_katsumi

Swiftのエコシステムに飛び込む

発表者:Syo Ikeda さん

try_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 さん

try_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 さん

try_swift_laura_savino

レポート

  • 新しいプログラミング言語を学ぶことは新しい言葉を学ぶこと
  • 第2言語を学ぶと第3言語も学びやすい
  • リーダブルなコードとは何か
    • 誰が読み手なのかを考える必要がある
  • 重要なコードであればあるほどすぐに内容を理解できなければいけない
  • 「コードがわからない」と認めるのは「仕事ができない」と認めるようなもの
  • ワーキングメモリーについて
  • chunkingについて
  • 解読するにはエネルギーが必要
  • どういうコードを書けばよいか
    • スラングを使わない
    • 必要な情報を短縮しない
    • 変数名などにはパターンを使う
  • 解読させることなく読めるコードを書いて欲しい

?(Apple TV)

発表者:Boris Bügling さん

try_swift_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 さん

try_swift_gwendolyn_weston

レポート

  • 「型」とは何か
    • 型とは分類であり、値の集合とその値に対する有効な演算を定義するもの
  • Concrete types と Abstract types
  • プロトコルの関連型が抽象的であるために発生するコンパイルエラーを回避するためにラッパークラスを作成する
    • サンプルコードはこちら(例えがポケモン!! どうやらポケモンに出てくる技、スピードスターの英語名がSwiftのようです)
    • 副作用として型情報(サンプルコード中のPikachuRaichu)が消去される
  • 型消去はデザインパターンである
  • コードの共変性をSwiftはサポートしていない

ランチ

ランチはお弁当を選べる形になっており私はハンバーグの入ったお弁当を美味しくいただきました! try_swift_lunch

午後の部は田宮がレポートします。お楽しみに!!