lasciva blog

開発して得た知見やwebビジネスのストック

iOS オールスターズ2

iOS オールスターズ2」という勉強会に参加してきました。その発表内容を所感とともにかんたんにまとめました。

イベント詳細

発表内容

  1. RxSwift in Practice
  2. VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法
  3. Type-safe URL Routing in Swift
  4. Using PDF in iOS
  5. Xcode8で開発はどうかわったのか
  6. これから始めるProtocol Buffers導入
  7. DIを前提にしたiOSアプリの設計
  8. Swiftらしい表現を目指そう

1. RxSwift in Practice

成田 元輝 氏 メルカリアッテ

https://speakerdeck.com/mnat44/rxswift-in-practicespeakerdeck.com

メルカリアッテ

入門

  • Playgroundで基本的なオペレーターの学ぶ
  • Examaplesを見る
  • 実践的なコードを書いた方が良い
  • 経験は3ヶ月

RxSwiftの概要

例:カメラアプリ

ストリームで考える

  1. ボタンタップ
  2. ローディング表示
  3. キャプチャ、保存
  4. 保存後にフィルター

まとめ

良いところ

  • コードが読みやすい
  • 何の処理であっても、ストリームをどう扱うかという点に集中して実装ができるようになった
  • 非同期処理の実装は以前よりも楽になった気がする

悪いところ

  • 学習コストが高い
  • RxSwiftに依存してしまう

2. VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法

田中賢治

www.slideshare.net

クリーンアーキテクチャを導入してみた。 MVPのVP部分を中心に。

抱えている問題

  • 定義の曖昧なModel
  • View操作とロジックが絡まってる
  • ViewControllerの肥大化
    Fat VC = 肥満体質(行数の問題ではない)

クリーンアーキテクチャで解決

  • Modelの定義は、エンジニアの経験とかで変わる
  • ガイドを導入して層と役割を明確にして、人に依存しない
  • 肥大化の原因は役割が明確でないこと

まとめ

  • 設計の基準が明確になった
  • 理解するのが難しい
    →2,3週間で試行錯誤しながらちーむ
  • コード量、ファイル数が多くなる
    →半年から一年以上の開発で導入オススメ

関連URL

3. Type-safe URL Routing in Swift

稲見 泰宏 氏

speakerdeck.com

クライアントサイド

前回の発表の続編

FunRouter

4. Using PDF in iOS

吉川 和成 氏

speakerdeck.com

座標問題

  • CoreGraficsは左下に原点
  • UIViewは左上に原点

5. Xcode8で開発はどうかわったのか

森本 利博 氏

speakerdeck.com

Visual Debugging

  • View Debugging 実行速度が70%はやくなった クラス定義に飛べる AutoLauoutをその場で確認できる

  • FPS Perfomance Gauge ヌルヌルしなくなったところの原因調査できる

  • Memory Graph Debugging Memory leak発見に使える

WWDC16 Session 410

Xcode Extensionリスト

6. これから始めるProtocol Buffers導入

伊藤 恭平 氏

speakerdeck.com

github

AppleのトレンドでJSONを捨てる?

Protocolbufの仕組み

メリット

  • データ量
  • 高速
  • 安全
  • 共有

デメリット

JSONに対して例では半分のデータ量

Demo

7. DIを前提にしたiOSアプリの設計

米川 健一 氏

speakerdeck.com

Dependency Injection

主なDIライブラリ

Cleanse vs Swinject

(関連URL)https://developer.apple.com/videos/play/wwdc2016/213/

8. Swiftらしい表現を目指そう

熊谷 友宏 氏

www.slideshare.net

今回の目標

  1. Swift API Design Guideに注目
  2. 言語仕様から窺える思想を汲む
  3. Swiftの標準ライブラリの表現に倣う

Swiftらしい表現

  1. 関数名とメソッド
     API自体が文章表現と心得る
  2. イニシャライザー名
     全幅変換であるかを意識する
  3. 機能の所属
     振る舞いとして主体に備える
  4. 型キャスト
     変換先の責任で変換する
  5. 比較可能な型
     型を性質で説明する
  6. テキスト表現可能な型
     CustomStringConvertibleで表現
  7. 連続的な値を受け取る
     性質で着目して機能を組み立てる

参考URL http://iosdc.fm/