LoginSignup
3
1

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-03-07

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日目のレポートは以上です。

3
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
3
1