4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

try! Swift Tokyo 2018 (Day 2) 参加メモ

Last updated at Posted at 2018-03-02

try! Swift Tokyo 2018 (Day 2)の参加メモ。(Day 1はこちら)

try! Swift Tokyo 2018

セッション

Expression Problem を解決する

  • 同じUIでもプラットフォームが異なるとコードが再利用できない
  • View Protocolを使うと、macOS/iOSで再利用可能なUIコードを書くことができる
  • Final Tagless Approachで検索すると詳細情報を確認することができる

Swift もくもく会 in Barcelona

  • バルセロナでのもくもく会の紹介

Swift によるアルゴリズムの可視化

  • Playgroundを使ったベジエ曲線の描画デモを紹介

Kitura で Codable ルーティング

  • Swift 4で追加されたCodableを使うとJSONのEncode/Decodeが型安全かつ簡単にできる
  • アプリにKituraKit、サーバーにKituraのCodable Routingを使うとJSON変換処理をKituraに隠蔽でき、また型定義もアプリ=サーバー間で共有できるようになる

超解像+CoreML+Swiftを使ってアプリの画像データ転送量削減に挑戦する

  • 漫画の画像をwaifu2xで高解像度化してみたが、思ったより綺麗にならなかった
  • DeNAで独自開発したSRCNNKitとCoreMLを使うと綺麗に高解像度化できるようになった
  • SRCNNKitと機械学習トレーニング用のスクリプトはオープンソースとして公開済み(ただし、DeNAが作ったトレーニング結果(モデルファイル)は大人の事情で非公開)

iOSでCharlesを導入する

  • ネットワーク通信のデバッグに困っていたため、18年前にCharlesを開発した
  • Charlesを使うとネットワークのどの部分で問題が発生したか簡単にデバッグできる
  • iOS上で動作するCharles for iOSを開発した
  • HTTPS通信のデバッグも簡単に実行でき、ログをMacと共有することもできる
  • ただし、Charles for iOSはApple審査中でまだリリースできていない

業務メモ

  • Charles for iOSに感動した、是非導入したい

拡張現実における体験設計

  • ARの概要と導入事例を紹介
  • ARを使ったアプリを開発するためのテクニックを紹介

Swift エンジニアのための Kotlin 入門

  • 同じ処理をSwiftとKotlinで書いた場合の違いを紹介
  • KotlinはSwiftに似ている
    • map、filter、reduceは両方の言語に存在するが、reduceは若干挙動が異なる
  • SwiftにあってKotlinに無いもの、またKotlinにあってSwiftに無いものがある
    • guardはSwiftのみ存在する
    • applyはKotlinのみ存在する、Kotlinから盗むべきもの
  • ネイティブコードにコンパイルできるKotlin Nativeというコンパイラもあるが、まだαレベル
  • Kotlinを学びたい場合は、EDU Toolsを使ってみると良い

Swift5のOwnershipに備える

  • Swift 5で追加予定のOwnershipを使うと、Swiftで高度なメモリ管理ができるようになる
  • Ownershipはパフォーマンスチューニングが必要な部分で威力を発揮する
  • 学習コストは高いが、オプトイン機能であるため使わないという選択もできる

デジタル信号処理 in Swift

  • Accelerate Frameworkを使ったビジュアライザーのデモを紹介

Codableが導く型安全な世界

  • CodableはJSON変換以外にも使える
  • ProtocolとCodableを組み合わせるとデータ変換が型安全かつ簡単にできる
  • ただし、Encoder/Decoderのコード量は多い

iOS / Swift における対話型インターフェースの作成

  • 音声認識を使うことで、ユーザーの負担を減らすことができる
  • 音声認識のサービスはいろいろあるが、まだ勝者はいない
  • iOSのSpeech Recognition APIは1時間1000リクエストの上限があるが無料で使える
  • AmazonのLexは無料では1ヶ月5000リクエストの上限があるがクロスプラットフォームで使える

UIImageView vs Metal

  • UIImageViewに画像を設定して表示する処理をMetalを使って書き、GPUの挙動を見るデモの紹介
  • 既にUIKitはMetal上に実装されている

Swiftが動くDockerコンテナの各OSの性能比較

  • Ubuntu 16.04と14.04でパフォーマンスはほぼ同じ
  • Docker ImageのサイズはUbuntu 16.04の方が小さい

型とパフォーマンスで見るType-erasureの利点

  • Type-erasureを使った型消去とパフォーマンスチューニングの紹介

Make faces big by Vision and CoreGraphics

  • Visionを使った顔認識とCore Graphicsによる顔のみの画像拡大のデモを紹介

開発者ツールと経験への時間投資

  • 開発効率を上げるためのツールを紹介
  • Swift/Objective-Cの両方で使えるKZPlaygroundの紹介
  • ファイル変更を監視して再読込を行うKZFileWatchersの紹介
  • ボイラープレートやFakeオブジェクトのコード自動生成を行うSourceryの紹介

業務メモ

  • KZFileWatchers、Sourceryは現行プロジェクトに使えそう
4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?