potatotips#52に参加しました!(Android編)
Android枠で先日FOLIOさんで開催されたpotatotipsに参加してきました!
遅くなってすみません...orz
基本的に、口頭で話された、スライドに書かれていないものをスライド下に箇条書きで書いています(多分)。
ご覧になる方は、スライドを見つつ参照して頂ければと思います。
にわタコ (@niwatako) | Twitterさんが各LTで書かれていたgistも参考にしながら書かせて頂きました。
niwatako’s gists · GitHub
素敵共有、本当にありがとうございます🙏
LT
Roomのできるまで InvalidationTracker編
Yuichi Araki (@yuichi_araki) | Twitterさん
Room InvalidationTracker potatotips #52
- RoomはAndroidに標準搭載されたSQLiteのラッパー
- どうやってSQLiteから通知を受け取るのか?
- 案1:書き込みメソッドの実装はRoomが生成しているので、その中で通知する→直接SQLiteに書かれたら検知できない
- 案2:C言語で書かれたSQLiteの拡張機能を使う→最強かと思いきやAndroidで使えない
- 実際:変更ログのテーブルを準備して、各テーブルに変更があるたびに書き込むトリガーをこっそり仕掛けて使う
- ObservedTableTracker = 監視されている時だけトリガーを仕掛ける為に、監視されているかを監視する
- 今後の課題は次バージョンで対応したい。不具合報告、要望受付中。
- ほぼ直面することはないだろうが、2つ目の課題に関しては、長い書き込みをする前にはダミーのトリガーを仕込むと回避できる
KotshiからMoshi-codegenに乗り換えた経緯
- Moshi-codegenとKotshiのどちらを選ぶか?
- 速度検証、イシューから大きなバグの確認、今までの流れやイシューから将来性の確認
- Kotshiは作者がdeprecatedになるかもと言っているので、Moshi-codegenの方が安全そう
- しかし、まだ出て1ヶ月ほどなので、様子を見た方が良いかもしれない
Kyashで使っているTutorial Library
- チュートリアル:ハイライトさせて吹き出しで説明する
- 似たようなライブラリはあるが、Kyashの要件に合わなかったので自作した
- ハイライトする部分はTargetという単位で捉えてTargetインスタンスを作り、そこにテキストのアニメーションの設定、テキスト部分のレイアウトを設定していく
- レイアウトに関しては、指定されたidを持つレイアウトを準備すれば作られるようになっている
- チュートリアル系のライブラリはどれも癖があるので、要件に合えば使ってみて、合わなければコード見て真似してみてね
XML Object Mapping
hmori (@moridroid) | Twitterさん
- Swift4で生まれたCodable、Jsonとコードの変換ができる
- Javaはこれが得意で、GsonとかMoshiとか色々ある
- これらの基本的なロジックは空のインスタンスを作って後から値を入れる
- が、Kotlinのdata classは基本ロジックと考え方が合わない
- Moshiを使うか自作する(自作の話をしていく)
- オブジェクトマッパー作ったけど、仕事で作ったから公開できないです
Tips for Bitrise Android
Shohei Kawano (@shaunkawano) | Twitterさん(へいへいさん)
- タップル誕生のAndroid開発でBitriseを使っている
- Bitriseはモバイル開発に重きをおいたCIサービス
- circleCIを使っていたが、メモリ不足やスクリプト管理が辛いのでBitriseにした(スクリプトはfastlaneで対応)
- コミットしたタイミングでbitrize.ymlのタスクを実行
- trigger_mapにpush/prの他にtagを追加したが、意図した動きにならない
- '--tag'をつけることで今のところ動いている
- タグが切られた時にドラフトリリース作って署名つきアプリをアップロード、レポジトリではファイルダウンローダーの機能を使ってgradleとkeystoreを取ってきて署名
Android P - Restrictions on non-SDK interfaces
shinobu.aab (@operandoOS) | Twitterさん
動画も公開されている
昨日potatotipsで発表した「Android P - Restrictions on non-SDK interfaces」の録画をYouTubeにあげましたので、もし資料とセットで気になる方はどうぞー!!
— shinobu.aab (@operandoOS) June 22, 2018
かなり時間がなかったので資料飛ばしまくってますが、、、w
補足記事なり補足動画は出そうかなー!https://t.co/8gHtJhIc7e
#potatotips
惜しまず全て共有してくれてるので、追記する内容は特にありませんでした
What’s new in Google Play Billing
- Google Play Billing: Google提供の決済基盤でワンタップで支払いができる。都度購入や定期購入をサポート、アプリで金銭トランザクションを処理する必要がない、ユーザーに一貫した購入フローの提供。
- 2のproration modeに関しては文字だとわかりにくいので、図でも説明
スライドが詳細なので、ぜひご一読を。
Pay attention to the HUGE logs
わくわく (@wakwak3125) | Twitterさん
- WorkManager: 実行条件に電源接続されている、Wi-Fi接続されているなどの制限を加えられる
- 金曜日にWorkManagerに感謝しながら帰宅 → 月曜日全部死んでた: WorkManagerは何も悪くないが、ログが爆発(OOM = Out Of Memory) => めっちゃでかいログには気をつけよう
Hey Guys, I am...
mhidaka (@mhidaka) | Twitterさん
スライドURL:
なし
#potatotips で話したので言っちゃうぞ!会社でエンジニアリングマネージャ(Android)をやることになりました。最高のエンジニアリング環境を作るんで一緒に働きたいひと、声かけてね!
— mhidaka@技術書典5 (@mhidaka) June 21, 2018