kumamotone’s blog

https://twitter.com/kumamo_tone https://github.com/kumamotone http://qiita.com/kumamotone

potatotips #60 に参加しました (iOS, Androidブログまとめ) #potatotips

超遅刻投稿です。申し訳ありません。

potatotips #60Androidブログまとめ枠で参加させていただきましたのブログです。

会場は ZOZOテクノロジーズ さんでした。

f:id:kumamotone:20190328000501j:plain

バッチバチにおしゃれな社屋 やっていきを感じる

以下発表内容です。参加枠としては Androidブログまとめ枠でしたが iOS の発表内容に関してもまとめています。

気になるところや間違いなどあればご指摘ください。埋まっていない資料は公開されたのを見つけ次第反映します。

togetter.com

意外に面倒じゃなかったXcode Template

Xcode の テンプレートは自分でも作れるぞ 作り方を紹介 xib とか storyboard もできるらしい

(自分用メモ)ここらへんとかも参考になりそう↓

www.lanches.co.jp

アプリのパフォーマンス改善を数値化

speakerdeck.com

Firebase Performance Monitoring で パフォーマンス計測、Firebase Remote Config で ABテストができる 組み合わせると簡単に計測できて素敵

Bitrise の人のデモ / Viktor さん (Bitrise iOS Engineer)

Bitrise すごいよ モバイル特化しとるんや 簡単 code signing 設定 とても簡単

  1. なんか新機能の予定はある? A. 物理デバイスでのテストができるようになるかも

Bitrise の人のデモ / Tamas さん (Bitrise Android Engineer)

Bitrise すごいよ 簡単 設定 とても簡単

Bitrise 上で UIテストできて動画ブラウザで見れる バリアントの設定もできる

iOSで正しく歩数を取得する

speakerdeck.com

HealthKit の HKSampleQuery でiOSバイスの歩数などが取得できる。しかし、HKSampleQuery を使うと、 iPhoneApple Watch の歩数が重複してカウントされてしまう。

HKStaticticsQuery の options: .cumulativeSum を使えば、 重複を考慮していい感じに集計された値が取れる。Bundle ID(com.apple.healthからはじまるもの)で絞ることで不正対策ができる。

サンプルコード

github.com

Qiita

qiita.com

Firestoreを使って純広告配信機能を作った話

speakerdeck.com

ユーザーの所在地、性別、年齢の推定情報などをUserPropertyに設定して、RemoteConfig と連携させると、ターゲティングが簡単にできる。便利。

Azure PipelinesでiOSアプリをCI/CDしてみよう🚀

speakerdeck.com

Azure Pipelines は CI/CD サービスで Azure DevOps の1機能。無料枠で1800分/月、オープンソースプロジェクトなら並列ジョブ10で無制限に動かせる。

f:id:kumamotone:20190416112419p:plain

Visual Designer を使うことでpod installしてビルドしてApp Centerで配布、みたいなパイプラインをGUIで書くことができる。

App Centerと併用することでテストアプリを配布できる。

protobuf in kotlin

speakerdeck.com

square/wire に 2019/03/14 の Version3.0.0 alpha01 で Kotlin Generator が追加されて、Kotlinのデータクラスを吐いてくれるようになったっぽい。

--java_interop をつけるとBuilderパターンのメソッドチェーンでプロパティを設定できるようになる?

proto2 から proto3 になったときに requiredとoptionalが廃止されたっぽく、その影響で proto3 から生成したモデルには NonNull と Nullable の区別がなくてすべて Nullable になるっぽい(マジか)。

f:id:kumamotone:20190416112343p:plain

github.com

WebView as 
Fancy and effective 
View

speakerdeck.com

Webの表現力の高さを利用して以下を実装してみた

  • 紙吹雪
    • minifyしたjsファイルを読み込んでWebGLで描画
  • グラフ
    • React/Recharts というD3のラッパーライブラリを使って表示

iOS/Android でだいたい同じ体験を一度に実装できるので便利だが、Webの技術、アプリエンジニアが扱うと大変っちゃ大変なので上手に使っていきましょう

f:id:kumamotone:20190327210314p:plain

Transparent な WebView の作り方はこれだけ

iOSアプリで気になった動きや表現を上手にアレンジして活用してみる

www.slideshare.net

Twitter の TabBar 画像のバウンドアニメーション、Pinterest のコンテンツ画像の段差表示の表現、Yummyのコンテンツ画像の示唆効果の表現など、巷のアプリで気になったUI表現を取り入れたサンプルを作ってみたので、その紹介と実装などについて。

medium.com

僕は上スワイプでBottomSheetを出したかっただけなんだ

docs.google.com

BottomSheetDialog を、"シート部分ではないところを上にスワイプして全画面になるように引っ張り出す"やつをやりたい。(説明が難しいのでGoogle Docs のアニメーション参照)どうするか?を解説 

github.com

つかおう!L2CAP

speakerdeck.com

通常のBLE実装と比べたときのL2CAPの利点

  • 一回あたりの送信できるデータサイズが大きい
  • BLEの手続きをラップしてくれていて、NSStreamを扱うだけで良い?

マルチモジュール化のTips

speakerdeck.com

マルチモジュール化すると並列ビルドできてビルド速度が改善する。packageで分けるより強い制約をつけることができる。Dynamic feature modulesを利用することができる。

Dagger使ってて新しくモジュールを追加したがビルドに失敗して半日ほど潰したが、kotlin-kapt忘れただけだった kapt 忘れは dependencies をスクリプト化して防ごう

感想とか

f:id:kumamotone:20190328000533j:plain

少なくとも次の回の開催までには投稿するという自分ルールがあったのだが今回ついに破ってしまった。Bitriseのおふたりと休憩時間や懇親会で結構お話できた。