超遅刻投稿です。申し訳ありません。
potatotips #60 のAndroidブログまとめ枠で参加させていただきましたのブログです。
バッチバチにおしゃれな社屋 やっていきを感じる
以下発表内容です。参加枠としては Androidブログまとめ枠でしたが iOS の発表内容に関してもまとめています。
気になるところや間違いなどあればご指摘ください。埋まっていない資料は公開されたのを見つけ次第反映します。
意外に面倒じゃなかったXcode Template
Xcode の テンプレートは自分でも作れるぞ 作り方を紹介 xib とか storyboard もできるらしい
(自分用メモ)ここらへんとかも参考になりそう↓
アプリのパフォーマンス改善を数値化
Firebase Performance Monitoring で パフォーマンス計測、Firebase Remote Config で ABテストができる 組み合わせると簡単に計測できて素敵
Bitrise の人のデモ / Viktor さん (Bitrise iOS Engineer)
Bitrise すごいよ モバイル特化しとるんや 簡単 code signing 設定 とても簡単
- なんか新機能の予定はある? A. 物理デバイスでのテストができるようになるかも
Bitrise の人のデモ / Tamas さん (Bitrise Android Engineer)
Bitrise すごいよ 簡単 設定 とても簡単
Bitrise 上で UIテストできて動画ブラウザで見れる バリアントの設定もできる
iOSで正しく歩数を取得する
HealthKit の HKSampleQuery でiOSデバイスの歩数などが取得できる。しかし、HKSampleQuery を使うと、 iPhoneとApple Watch の歩数が重複してカウントされてしまう。
HKStaticticsQuery の options: .cumulativeSum を使えば、 重複を考慮していい感じに集計された値が取れる。Bundle ID(com.apple.healthからはじまるもの)で絞ることで不正対策ができる。
サンプルコード
Qiita
Firestoreを使って純広告配信機能を作った話
ユーザーの所在地、性別、年齢の推定情報などをUserPropertyに設定して、RemoteConfig と連携させると、ターゲティングが簡単にできる。便利。
Azure PipelinesでiOSアプリをCI/CDしてみよう🚀
Azure Pipelines は CI/CD サービスで Azure DevOps の1機能。無料枠で1800分/月、オープンソースプロジェクトなら並列ジョブ10で無制限に動かせる。
Visual Designer を使うことでpod installしてビルドしてApp Centerで配布、みたいなパイプラインをGUIで書くことができる。
App Centerと併用することでテストアプリを配布できる。
protobuf in kotlin
square/wire に 2019/03/14 の Version3.0.0 alpha01 で Kotlin Generator が追加されて、Kotlinのデータクラスを吐いてくれるようになったっぽい。
--java_interop をつけるとBuilderパターンのメソッドチェーンでプロパティを設定できるようになる?
proto2 から proto3 になったときに requiredとoptionalが廃止されたっぽく、その影響で proto3 から生成したモデルには NonNull と Nullable の区別がなくてすべて Nullable になるっぽい(マジか)。
WebView as Fancy and effective View
Webの表現力の高さを利用して以下を実装してみた
- 紙吹雪
- minifyしたjsファイルを読み込んでWebGLで描画
- グラフ
- React/Recharts というD3のラッパーライブラリを使って表示
iOS/Android でだいたい同じ体験を一度に実装できるので便利だが、Webの技術、アプリエンジニアが扱うと大変っちゃ大変なので上手に使っていきましょう
Transparent な WebView の作り方はこれだけ
iOSアプリで気になった動きや表現を上手にアレンジして活用してみる
www.slideshare.net
Twitter の TabBar 画像のバウンドアニメーション、Pinterest のコンテンツ画像の段差表示の表現、Yummyのコンテンツ画像の示唆効果の表現など、巷のアプリで気になったUI表現を取り入れたサンプルを作ってみたので、その紹介と実装などについて。
僕は上スワイプでBottomSheetを出したかっただけなんだ
BottomSheetDialog を、"シート部分ではないところを上にスワイプして全画面になるように引っ張り出す"やつをやりたい。(説明が難しいのでGoogle Docs のアニメーション参照)どうするか?を解説
つかおう!L2CAP
通常のBLE実装と比べたときのL2CAPの利点
- 一回あたりの送信できるデータサイズが大きい
- BLEの手続きをラップしてくれていて、NSStreamを扱うだけで良い?
マルチモジュール化のTips
マルチモジュール化すると並列ビルドできてビルド速度が改善する。packageで分けるより強い制約をつけることができる。Dynamic feature modulesを利用することができる。
Dagger使ってて新しくモジュールを追加したがビルドに失敗して半日ほど潰したが、kotlin-kapt忘れただけだった kapt 忘れは dependencies をスクリプト化して防ごう
感想とか
少なくとも次の回の開催までには投稿するという自分ルールがあったのだが今回ついに破ってしまった。Bitriseのおふたりと休憩時間や懇親会で結構お話できた。