Try Swift Tokyo 2017 第一天筆記 Part 2

使用 Swift 開發 Web API

使用 Swift 開發 Web API SwiftのWeb APIとアプリをともに構築する
Kyle Fuller

好的 API 應該要:隱藏實作細節,同時在不影響既有行為的前提下繼續進化

個案:我們要對某個 API 實作分頁功能

  • 第一版:設計成 /posts?page=$page_number,但是因為資料內容可能會變動,所以,在實際呼叫到下一頁的時候,不見得有辦法對應到正確的資料
  • 第二版以 offset 的方式設計分頁,像是 /posts?before=$post_id
  • 有些人會將 API 加上版號,像是 /v1/posts?page=$page_number/v2/posts?before=$post_id, 但這樣暴露了太多實作細節,不要加上版號,而是兩者都相容比較好,這樣才是 hypermedia 的精神,但是這樣要避免讓程式複雜。
  • 可以在 API 回應中,加上相關連結的資料,如 relation:next、relation:self…等,以及可以執行哪些操作的 action 連結

目前可以使用 Frank、Kitura、Vader 等 framework 搭配 Swift 開發 Web API

可以搭配 Stencil 撰寫模版,使用 Radis、PostgresSQL 等系統儲存資料

可以使用 XCTest、Dredd 進行測試

目前可以將 Swift 寫出的 Web 服務 deeply 到 Heroku 上

IBM 的 BlueMix 也值得一試

相關筆記: SwiftのWeb APIとアプリをともに構築する | try! Swift Tokyo 2017 #tryswiftconf Day1–11 — niwatakoのはてなブログ

使用 Realm Mobile Database 開發多人協做 App

Realmを使ってコラボレーションアプリを作る 
Marius Rackwitz

Realm 並不是一套關聯式資料庫

Realm 是一套以行動裝置為優先打造的資料儲存方式

雖然是 NoSQL,但也不代表可以完全不管資料的 scheme

在 Realm 裡頭,基本上都在操作物件

開發者也可以將資料佈署在 Realm 的雲端上

Use case 包括:

  • 備份裝置裡頭的資料
  • 同步裝置之間的資料
  • 即時共同編輯

使用 Realm 時,直接操作物件即可,避免了在 client/server 之間傳遞 JSON 的各種麻煩

內建了多種 Observer,可以觀察某個物件的屬性、單一物件,甚至觀察 collection 型態物件的變化,接著可以透過通知機制同步

有幾種特別的 Realm

  • /_admin.realm: 管理權限使用的憑證
  • //managemen.realm 變更權限用
  • //permission.realm 查看權限用

相關筆記: Realmを使ってコラボレーションアプリを作る | try! Swift Tokyo 2017 #tryswiftconf Day1–13 — niwatakoのはてなブログ

使用 Swift 開發聊天機器人

楽しく便利なSwiftチャットボット
Ray Tsaihong

我自己沒怎麼筆記,大概就是可以用 Swift 加上一套 Web Framework,就可以實作 LINE、Facebook、Telegram 的聊天機器人。

相關筆記: 楽しく便利なSwiftチャットボット | try! Swift Tokyo 2017 #tryswiftconf Day1–12 — niwatakoのはてなブログ

挑選打造 App 的工具

独自のツールを構築する 
Orta Therox

Artsy 這家公司逐漸從 Web 走向 Mobile

在強調可以重用程式碼的前提下,看了許多種元件

  • 自己打造 Swift 元件
  • 看了像是 Spotify 的 HUB 這些 JSON based framework
  • Reactive Swift/Katana
  • POD View Controller
  • Reactive Native

使用 Swift:

  • 優點:API 一致,蘋果還在繼續開發,而且至少有蘋果在繼續使用,所有還不知道的地方其實都有人知道了
  • 缺點:編譯速度慢,遠不如 web 開發時重新載入網頁的速度,而且不是原本 Artsy 在使用的技術

使用 Reactive Native

  • 優點:對於 API driven App 來說,可以維持更高的抽象性,而且還是盡可能的達到 native,layout 系統相對簡單,而且有比較開放的社群,學了一次之後,到處都可以使用
  • 缺點:太多相依性,而且 Facebook 也還在一直修改 API,開發社群也相對分散

相關筆記:独自のツールを構築する | try! Swift Tokyo 2017 #tryswiftconf Day1–14 — niwatakoのはてなブログ

物件偵測技術的經驗談

リアルタイム物体検出アプリでよりよいフィードバックを提供する Shinichi Goto

如果製作了一套在錄影時追蹤物件位置的 App,在追蹤物件的時候,可以加上 tracking ID,可以有比較好的體驗。

相關筆記: リアルタイム物体検出アプリでよりよいフィードバックを提供する | try! Swift Tokyo 2017 #tryswiftconf Day1–15 — niwatakoのはてなブログ

UX 對工程師的意義

UXエンジニアという働き方 akatsuki174

講者須藤槙(Sudo Maki)在 iOS Start-up 中擔任設計師。

她認為 —

  • 工程師也需要了解 UX,除了技術問題外,還要了解螢幕後到底是怎樣的人在使用 App
  • 工程師要有 UX 的思考
  • 首先要做使用者測試,像是成立使用者行為的學習小組,產生與用戶之間的同理心(共感)
  • UX 思考就是這樣的同理心
Show your support

Clapping shows how much you appreciated zonble’s story.