kumamotone’s blog

iOS/Android アプリエンジニアです https://twitter.com/kumamo_tone

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

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

会場は スマートニュース さんでした。

f:id:kumamotone:20181218154453j:plain
地球くん

地球くんかわいいですね。

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

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

Best Bugs 2017 in SmartNews iOS / aramaki さん

www.slideshare.net

スマートニュースであった2017年の面白いバグ(単純なバグではなく、ちゃんと書いているのに予想外の動きをするもの)を3つピックアップ。各々ワークアラウンドで解決して対処。

Android 8.0のPush受信時のサービス起動について / hideoさん

speakerdeck.com

Pushを受けた後に処理をServiceに委譲し、別途我道を取得してNotificationを出していた すると、Android8.0でstartService()したときにIllegalStateExceptionになってた どうやらpush受けてからstartServiceまでに時間がかかりすぎると起こったりするらしい

おそらくアプリではどうしようもないところで時間を食ってしまっているので、startServiceに失敗したらとりあえずService使わないことにした(画像が表示されなくなることにはなったが、画像が表示されなくてもリアルタイムで通知することを優先した)

Redirectable in App? / ushisantoasobu さん

speakerdeck.com

Redirectable =思考の方向転換や割り込みに対応(ジェスチャーしているときのジェスチャーに対応する)。

iPhone X が出て1年、徐々にRedirectable なUIが浸透してきたのではという持論。

How to contribute GPUImage-android / kettsun0123 さん

speakerdeck.com

iOS の GPUImage framework を 参考にしたライブラリがある。

github.com

contributeするにはどうしたら良いか?一番簡単なのはフィルタを追加すること。本家に比べてまだまだFilterがたりない。

リストからまだ作ってないフィルタを選んで、作って、sampleを作って試して、PRを出せばOK。

静的な定義で動きのあるレイアウトを作る(AutoLayoutライブコーディング) / kishikawa katsumi さん

speakerdeck.com

blog.kishikawakatsumi.com

のライブコーディング。

  • 親の親のViewとの制約つけるときは Align 使うとやりやすい
  • 優先度の異なる複数の制約を同時に定義することで、静的な定義だけで切り替え(動的な振る舞い)を実現できる

5分でわかるKotlinコルーチン / shogo.yamada さん

speakerdeck.com

  • Coroutineは関数の途中で中断させたり、再開させたりするやつ。Retrofit と組み合わせて使えるよ
  • 単純に RxJava の代替とはいえない

UIGestureRecognizer と UIResponder の違い / やまださん

speakerdeck.com

以下のようなことをしたい。

  • タップ位置に点を描画
  • ドラッグで描画したものを移動
  • ダブルタップで拡大縮小

  • UIGestureRecognizerで良いんでは?と」思ったけど遅い 時間もはかってみたが、 ワンテンポ遅れて描画される

  • タップした瞬間に描画したい場合は UIResponder を使ったほうが良いかも

OSS開発のリテラシー / Android編 / gfx さん

gfx.hatenablog.com

Orma を例に、OSS を開発するときに満たさなければならない/満たしててほしいこと

MUST↓

  • ライセンスを明記
  • READMEを置く
    • Ormaを参考に
  • リリースしたら git tag を打って push する
    • 手でやると忘れるので自動化できると良い
  • CIを設定してバッヂをREADMEに置く
    • テストがなくてもCIの設定はすべき
  • アーティファクトのgroupIDはライブラリ固有のものにする
    • artifactIdにも ライブラリ名を含めるほうが良い
  • bintray に成果物を公開するときはライブラリごとにorgをつくる

Fluid Interfaceの実践 / SCENEE さん

speakerdeck.com

Map とかにある下からにゅっと出るやつのライブラリを作った(ありがたや)

github.com

ScrollView はプリミティブな Fluid Interface。予測可能な動きを実現する処理のひとつとしてprojectionがある。物理法則をコードに落とし込んで実装。

Appstoreconnect api with Open API Spec / d_date さん

speakerdeck.com

AppStore Connect API 出た

github.com

Open API Spec。Swagger Codegen 作ってた人たちが fork して作ってる。今のバージョンは3。

バージョン3の oneOf なのだが、Swiftのコード生成に関してはAnyに変換されてしまいCodableに適合できていない状態 みんなで作りましょう

もっと! Alternative Resources / takasfz さん

speakerdeck.com

良い年月日入力フォームを作るみたいな記事があって、英語圏の PC Web の話だが、以下とかを満たすのが良い入力フォームだと言われてた。

  • 月/日/年にわかれてる
  • 適切なラベルが付いている
  • テキストフィールドのサイズが入力するもののサイズと合ってる

日本語圏なら 年/月/日にしたい…こういうリソースの出し分けってどうする?Alternative Resourcesつかえばできるよ。

作り方。リソース追加ダイアログでぽちぽちする。

言語や国、キャリア、画面サイズ、APIラベルによって、画像、レイアウト、文字列、とかとか出し分けれるよ!便利

Dribbbleで見つけたコンセプトデザインの実装 / edm さん

dribbble.com

を実装した。

  1. スクロールと合わせて数値を表示
  2. 背景色のグラデーションを追加

とかあるが、2について話す。

touchesMoved でスクロールに応じての水温の計算したりする。

github.com

おそらく解説↓

qiita.com

Dynamic Links 知られざる?Firebaseの秘技 / なかてぃる さん

speakerdeck.com

Dynamic Links は Firebaseが提供しているアプリに対するすごいリダイレクトリンク。AndroidiOS、PCに応じてリダイレクトしてくれる。

アプリのインストール有無を判定できる上、ストアからのインストールを挟んでもディープリンク発火できる。使い方。パラメータをクエリでつめてく。d=1 でデバッグ

アプリ側もふつうに対応する必要はあり、iOS→ユニバーサルリンク、Android→Intent Filter でスキーム起動できるようにしておくようにはする必要ある。

RxSwiftのエラー分岐Tips / y.imajo さん

speakerdeck.com

異常処理系のパターンはいろいろあるが、 materialize() を使うとひとつのObservable から正常系とエラー系のObservableに分けられる。

-AndroidiOSどっちが早く作れるか-今夜くらべてみました / kboy さん

note.mu

  • ぽちぽちやってたら Firebase につながるので IDEでFirebase使うのはAndroidのほうがはやい
  • ドロワー デフォルトであるので Androidのほうがはやい
  • Firebase の JSONパース toObject メソッドがあってAndroidだと楽

Koin x AndroidでMVIアーキテクチャを採用する / itome さん

speakerdeck.com

github.com

MVIはModel-View-Intent(android.content.Intentではないよ)。RxJava / Kotlin での実装例を紹介。

良いと思ったとこ。

プログラマーに対する制約が強く、テスタブル、エラーハンドリングが容易(Rx使ってるので)で良い。

良くないかもと思ったとこ。

1回きりのイベントを伝えるのが難しい、複雑なレイアウトではViewStateの更新の処理が重くなる、冗長になりやすい。

感想とか

余裕がなく記事まとめ雑になり申し訳ない気持ちがありますが、なんだかんだ行くと懇親会とかで刺激を受けてやっぱポテチええな〜となりますね