iOS
potatotips

potatotips#47 iOS Tipsまとめ

potatotips#47 まとめ

https://potatotips.connpass.com/event/75105/

2月のDroidKaigiや3月のtry!Swiftを目前にイベントをより楽しめるようなタイムリーなLTが多かったです。

今回の会場はオイシックスドット大地さん。隣がキッチンスペースになっていて、途中から良い香りが漂ってきました。LT後にはヘルシーな晩御飯が次々と。ごちそうさまでした!

IMG_4754.jpg
IMG_4752.jpg

LT

審査なしでiOSアプリのアイコンを変更する

Hideyuki Okuniさん
期間限定でアイコンを変更したい
アイコンの画像をプロジェクトに追加
追加した画像をInfo.plistに追記

UIApplication.setAlternateIconName を使う。
iOS 10.3からしか使えないので、使えるかどうかをチェックする
アイコンを変えると必ずアラートが出る。ユーザが不快に思わないタイミングでやる。
有料プランでアイコンが変更できる、という使い方がある。

Advanced Usecase for Codable

d_dateさん
Codable は Encodable & Decodable, Swift 4で導入
Encodableに注目

どのようなユースケースが想定できるか?
オフラインキャッシュ、オフラインだけどデータを表示したい。
ローカルストレージにデータを保存する。

キーチェーンに何か保存するときにもData型で保存して任意の方に戻す、という使い方ができる。

https://speakerdeck.com/d_date/advanced-usecase-for-codable

Swipe Transition 

tattnさん
便利なスワイプジェスチャーできる便利なものを作ってみた
画面のどこでも左にスワイプできるSloppy Swiping
下スワイプでモーダルを閉じる
実装方法の紹介、UIKitに5名の登場人物がある。

https://speakerdeck.com/tattn/swipe-transition
https://github.com/tattn/SwipeTransitionExample

ライブラリ(Method Swizzlingを使ってどのViewControllerdでも使えるような機能もある)
https://github.com/tattn/SwipeTransition

UXデザインをやるやらないで変わったUIの精度  

HaraguchiYumikoさん
UXデザインを取り入れたら良くなった話
動画から指定した静止画を切り出す機能で導入
指定した範囲の動画を切り出せるようにしちゃおう、ということで静止画+動画を切り出すプロジェクトが始動!

  1. UXデザイン無視して取ってつけたようなボタンができた。
  2. ユーザーストーリーを作成、操作に統一感が出てきた。
  3. ユーザーテスト1回目、20の課題が出て7つの課題を解消。
  4. ユーザーテスト2回目、少しの修正でいい感じに

メリット、デメリットの紹介

初めてのSwift Intermediate Language 

kitasukeさん

Swift Intermidiate Language(SIL)の雰囲気を紹介
Swiftの中間表現
SwiftコンパイラのバックエンドはLLVM
LLVMのフロントエンドがSwiftコンパイラ
SILには最適化がかかっているものとかかっていないものがある。

そんなに難しくないかもしれない。
エンジニアとしては知っておいていいかも。
最適化の仕組みがわかる。

https://www.slideshare.net/kitasuke/sil-for-the-first-time

既存のプロジェクトに、Firestoreを導入してみた 

sun54907さん

開発合宿をした時にFirestoreを入れてみた。
リアルタイム通信には次のような選択肢があった

  • WebSocket
  • Realm Mobile Platform
  • Firestore

既存の仕組みを残したまま、リアルタイム通信したい。
新着件数だけを外部に保存
クライアントはその値を監視
クライアントは新着件数の変化のみ検知して、既存のAPI経由でupdateすればいい。という仕組み。

FireBase Realtime Databaseの後継で、まだベータ版
新着件数のみをストアしているので、最悪無くなっても問題ないデータだろうということで選んだ。
ユーザー認証はFirebaseのAuthを使う。

https://speakerdeck.com/umikawak0392/ji-cun-falsepuroziekutoni-firestorewodao-ru-sitemita

Introducing Relax -- A release tool for Xcode

SCENEEさん

リリースツールRelaxの紹介 https://github.com/SCENEE/relax
iOSアプリのbuild, release, supportを楽に。
CodeSignエラーに悩まされることなくIPAファイルを作成
YAMLで要件を宣言できる
ipaファイルの検証ができる
DockerfileのようなRelfileで定義する