try! Swift Tokyo 2017 ざっくりレポート (day2)

  • 3
    Like
  • 0
    Comment

try! Swift Tokyo 2017 ざっくりレポート (day1)
の続き、try!Swift Tokyo 2017 二日目のレポートです。
ランチタイムまでの半日分となります。

2017-03-02 (day 2)

では2日目のレポートです。

テスト可能なコードを書くということの2つの側面

Brandon Williams さん
Kickstarter のエンジニアさんだそうです。

コードをよりテスト可能なものにしていくことが重要である。
経験が必要で、方法を知る必要もある。

テストすると潜在的なバグを見つけ、クラッシュを防げる。
テストできるコードを書くようにする。
テストをドキュメント化しているそうです。

Testing Output

  • テストは簡単
  • Side Effects(副作用)
  • 実行後の外部の影響(副作用)を知る必要がある
  • 副作用をコードの境界付近に近づける必要がある

Testing Input

  • テストが難しい、新しい分野である
  • Co-Effects (きょう作用?)
  • DI を使う
  • 一つのグローバル構造体に全て(シングルトン)持たせている
  • 例として Environment構造体に APIサーバー、Cookie、ユーザー、Date(プロトコル)、言語、ハンドル、reachability、scheduler(Reactive)、Userdefaults などをもたせている。
  • プロトコルを入れてテスト可能なコードにRefactorする

その他

  • テスト駆動で開発している
  • propertyベースのテストは行っていない

誰もが知りたいSequenceとCollectionのすべて

Soroush Khanlou さん

Collectionを使う場合ほとんどはArrayを使用している、という前置きの後は、各種Collectionの具体的な実装についての解説でした。

  • Sequence(一回しかイテレートできない、LinkedList)
  • EachPair(グループ化する)
  • Collection(なんどでもイテレートできる)
  • BidirectionalCollection(逆戻りができる)
  • RandomAccessCollection(素早くアクセスできる)
  • RangeReplaceableCollection(塊を取れる)

様々な場面でSwiftを使う

Yusuke Ito さん

Serverside Swift についてのお話でした。日本語のセッションでした。

Swift について

  • Package Manager も公開されたのが良い
  • Linux/ARM でも利用可能
  • Raspberry Pi でも動く

なぜServerside?

  • Node.js や Python で実装しているものを 安全な Swift に置き換える。

実績1:Pythonで作られた Web Crawler をSwift に置き換えた

  • Swift は LLVM ベース、Cライブラリをリンクできる
  • gRPC : grpc/grpc-swift 最近出た

実績2:Swift for ARM and Raspberry Pi

使いたいライブラリがない場合

  1. 自分で実装する
  2. C言語のライブラリをWrapする
  3. 移植する

VRの革新と新たなユーザー体験

Artis Birzins さん
VR HUB TOKYO

事例
- Retail : VR SHOPPING (Alibaba)
- 不動産(Real Estate) : 360度の写真を撮って公開 → iOSアプリで閲覧
- Carディーラー : ジャガー、ボルボ、アウディ、Honda, VW
- Sports : スケボ

iOSにおけるDocument IndexingとApp Search

Kateryna Gridina さん

AppSearch

  • Spotlight or Safari から検索
  • 6万アプリしか対応していない
  • 3つのAPI

CoreSpotlight API

  1. カタログのアイテムをindex化
  2. アイテムのArrayを作る
  3. spotlight で検索できる

有効期限の設定が可能(expoiratonDate)
複数のアイテムをグループ化してindex化できる

バックグランドで処理されるためクラッシュしても大丈夫

Search Continuation

iOS10から Search Continuation 追加
1画面あたり10アイテム → アプリ内でさらに検索できる

バックグランド(beginBatch) に関するドキュメントがない
Batchを閉じてから次のbatchを始める(クラッシュする)
スレッド処理化も自分で適切に実装する
Real Device でテストしよう

NSUserActivity

publicにすると
→ アプリがインストールされていなくても検索できる
private
→ ユーザーに見えない

スタートアップのSwift

Mo Kudeki

iOSアプリ Hey! VINA
女性の友情を育むためのアプリ

ローンチ直後

  • 2weeks / 10万
  • Parse を使っていたが 有料プランの最大 Notifications数/min を超えてしまった。

アーリーアダプタじゃない人が使い始めた

  • 「アプリが動かないだけど…」「クラッシュするんだけど…」 などのレポート
  • slack + TestFlight でフィードバックを得る活動

その他

  • 最初に書いたコードの品質を高めるのは無駄 → 廃棄する時期がくる
  • Parse がshutdown した...

2日目のレポートは以上です。