potatotips #56 のiOSブログまとめ枠で参加させていただきましたのブログです。
会場は スマートニュース さんでした。
地球くんかわいいですね。
以下発表内容です。参加枠としては iOSブログまとめ枠でしたが Android の発表内容に関してもまとめています。
気になるところや間違いなどあればご指摘ください。埋まっていない資料は公開されたのを見つけ次第反映します。
Best Bugs 2017 in SmartNews iOS / aramaki さん
www.slideshare.net
スマートニュースであった2017年の面白いバグ(単純なバグではなく、ちゃんと書いているのに予想外の動きをするもの)を3つピックアップ。各々ワークアラウンドで解決して対処。
Android 8.0のPush受信時のサービス起動について / hideoさん
Pushを受けた後に処理をServiceに委譲し、別途我道を取得してNotificationを出していた すると、Android8.0でstartService()したときにIllegalStateExceptionになってた どうやらpush受けてからstartServiceまでに時間がかかりすぎると起こったりするらしい
おそらくアプリではどうしようもないところで時間を食ってしまっているので、startServiceに失敗したらとりあえずService使わないことにした(画像が表示されなくなることにはなったが、画像が表示されなくてもリアルタイムで通知することを優先した)
Redirectable in App? / ushisantoasobu さん
Redirectable =思考の方向転換や割り込みに対応(ジェスチャーしているときのジェスチャーに対応する)。
iPhone X が出て1年、徐々にRedirectable なUIが浸透してきたのではという持論。
How to contribute GPUImage-android / kettsun0123 さん
iOS の GPUImage framework を 参考にしたライブラリがある。
contributeするにはどうしたら良いか?一番簡単なのはフィルタを追加すること。本家に比べてまだまだFilterがたりない。
リストからまだ作ってないフィルタを選んで、作って、sampleを作って試して、PRを出せばOK。
静的な定義で動きのあるレイアウトを作る(AutoLayoutライブコーディング) / kishikawa katsumi さん
のライブコーディング。
- 親の親のViewとの制約つけるときは Align 使うとやりやすい
- 優先度の異なる複数の制約を同時に定義することで、静的な定義だけで切り替え(動的な振る舞い)を実現できる
ライブコーディングの実行は https://t.co/9kSHygphLj のスクリプトであらかじめ用意した手順に強制的にコードがなるようになっっていて経過が間違っててもちゃんとなるようにしてありました。あと複数シミュレータに同時にインストールして起動する仕掛けがあります。 #potatotips
— kishikawa katsumi (@k_katsumi) 2018年11月15日
5分でわかるKotlinコルーチン / shogo.yamada さん
- Coroutineは関数の途中で中断させたり、再開させたりするやつ。Retrofit と組み合わせて使えるよ
- 単純に RxJava の代替とはいえない
UIGestureRecognizer と UIResponder の違い / やまださん
以下のようなことをしたい。
- タップ位置に点を描画
- ドラッグで描画したものを移動
ダブルタップで拡大縮小
UIGestureRecognizerで良いんでは?と」思ったけど遅い 時間もはかってみたが、 ワンテンポ遅れて描画される
- タップした瞬間に描画したい場合は UIResponder を使ったほうが良いかも
OSS開発のリテラシー / Android編 / gfx さん
Orma を例に、OSS を開発するときに満たさなければならない/満たしててほしいこと
MUST↓
- ライセンスを明記
- READMEを置く
- Ormaを参考に
- リリースしたら git tag を打って push する
- 手でやると忘れるので自動化できると良い
- CIを設定してバッヂをREADMEに置く
- テストがなくてもCIの設定はすべき
- アーティファクトのgroupIDはライブラリ固有のものにする
- artifactIdにも ライブラリ名を含めるほうが良い
- bintray に成果物を公開するときはライブラリごとにorgをつくる
Fluid Interfaceの実践 / SCENEE さん
Map とかにある下からにゅっと出るやつのライブラリを作った(ありがたや)
ScrollView はプリミティブな Fluid Interface。予測可能な動きを実現する処理のひとつとしてprojectionがある。物理法則をコードに落とし込んで実装。
Appstoreconnect api with Open API Spec / d_date さん
AppStore Connect API 出た
Open API Spec。Swagger Codegen 作ってた人たちが fork して作ってる。今のバージョンは3。
バージョン3の oneOf
なのだが、Swiftのコード生成に関してはAnyに変換されてしまいCodableに適合できていない状態 みんなで作りましょう
もっと! Alternative Resources / takasfz さん
良い年月日入力フォームを作るみたいな記事があって、英語圏の PC Web の話だが、以下とかを満たすのが良い入力フォームだと言われてた。
- 月/日/年にわかれてる
- 適切なラベルが付いている
- テキストフィールドのサイズが入力するもののサイズと合ってる
日本語圏なら 年/月/日にしたい…こういうリソースの出し分けってどうする?Alternative Resourcesつかえばできるよ。
作り方。リソース追加ダイアログでぽちぽちする。
言語や国、キャリア、画面サイズ、APIラベルによって、画像、レイアウト、文字列、とかとか出し分けれるよ!便利
Dribbbleで見つけたコンセプトデザインの実装 / edm さん
を実装した。
- スクロールと合わせて数値を表示
- 背景色のグラデーションを追加
とかあるが、2について話す。
touchesMoved でスクロールに応じての水温の計算したりする。
おそらく解説↓
Dynamic Links 知られざる?Firebaseの秘技 / なかてぃる さん
Dynamic Links は Firebaseが提供しているアプリに対するすごいリダイレクトリンク。Android、iOS、PCに応じてリダイレクトしてくれる。
アプリのインストール有無を判定できる上、ストアからのインストールを挟んでもディープリンク発火できる。使い方。パラメータをクエリでつめてく。d=1 でデバッグ。
アプリ側もふつうに対応する必要はあり、iOS→ユニバーサルリンク、Android→Intent Filter でスキーム起動できるようにしておくようにはする必要ある。
RxSwiftのエラー分岐Tips / y.imajo さん
異常処理系のパターンはいろいろあるが、 materialize() を使うとひとつのObservable から正常系とエラー系のObservableに分けられる。
-AndroidとiOSどっちが早く作れるか-今夜くらべてみました / kboy さん
- ぽちぽちやってたら Firebase につながるので IDEでFirebase使うのはAndroidのほうがはやい
- ドロワー デフォルトであるので Androidのほうがはやい
- Firebase の JSONパース toObject メソッドがあってAndroidだと楽
Koin x AndroidでMVIアーキテクチャを採用する / itome さん
MVIはModel-View-Intent(android.content.Intentではないよ)。RxJava / Kotlin での実装例を紹介。
良いと思ったとこ。
プログラマーに対する制約が強く、テスタブル、エラーハンドリングが容易(Rx使ってるので)で良い。
良くないかもと思ったとこ。
1回きりのイベントを伝えるのが難しい、複雑なレイアウトではViewStateの更新の処理が重くなる、冗長になりやすい。
感想とか
余裕がなく記事まとめ雑になり申し訳ない気持ちがありますが、なんだかんだ行くと懇親会とかで刺激を受けてやっぱポテチええな〜となりますね