#50 2019-01-13
DroidKaigi 2019のタイムテーブルが公開される、DroidKaigi 2019公式アプリのコードが公開される、SQLDelight 1.0.0リリース、Looperの閉じ忘れでファイルディスクリプタが枯渇する話など。
DBのIDをinline classで表現する
GitHubで見るhttps://jakewharton.com/inline-classes-make-great-database-ids/
https://www.reddit.com/r/androiddev/comments/aek2pg/inline_classes_make_great_database_ids_jake/inline classを利用すれば、異なるテーブルのIDを間違って使わずにすむ、ということのようです。
Androidのコードはハンガリアン記法をやめたの?
https://www.reddit.com/r/androiddev/comments/ae4i43/does_android_team_starts_to_abandon_hungarian
Googleチームからコメントが入ってますが、別にやめたわけではなく、マテリアデザインのライブラリはAOSPのコーティングルールでなくGoogleのコーティングルールに従っているというだけのようです。
GitHubで見る-
ところでポストにリンクがあるハンガリアン記法(という名称は正確ではないのですが)をスタイルガイドに導入した人の記事はなかなかおもしろかったです。
http://beust.com/weblog/2017/07/17/i-am-the-reason-for-hungarian-notation-in-android/
-
DroidKaigi 2019公式アプリのコードが公開される
GitHubで見るhttps://github.com/DroidKaigi/conference-app-2019
今年は
- Flux
- Kotlin Multiplatform Project
な構成のようです。
いろいろissueが立っているので、はじめてのOSS活動に良いかもしれませんLooperの閉じ忘れでファイルディスクリプタが枯渇する話
https://blog.japantaxi.co.jp/2018/12/23/3108
使っていたSDKがLooperを閉じ忘れており、そのせいでファイルディスクリプタが枯渇してアプリ側でエラーになっていたそうです。Looperを直で触るときは覚えておきたいですね。
GitHubで見る-
余談ですが『Androidを支える技術』にLooperをepollで実装する話は出てきた覚えがあります
-
SQLDelight 1.0.0リリース
https://medium.com/@anstrong22/announcing-sqldelight-1-0-d482aa408f64
https://github.com/square/sqldelight抜本的な書き直しを行い、Kotlin Multiplatform Projectにも対応しました。
iOS用のアーティファクトも用意されています。RxJava2にも対応し、リソースの集中のためかSQLBriteが非推奨になりました。
GitHubで見る-
Roomとの比較がRedditで議論されています。Alec, JakeとYigitの考えは多少異なるようです。余談ですがReddit上でこういった(社内で行われ得る)議論が可視化されるのはよいことだと感じます。
https://www.reddit.com/r/androiddev/comments/adxwr3/announcing_sqldelight_10_alec_strong_medium/
-
技術記事を検索してもチュートリアルばかり出てくるという嘆き
Androidアプリ開発に限らないですが、英語の記事でも事情はおなじようです
GitHubで見る-
なお、Medium記事にある "unnecessary meme images" というのは思わず頷いてしまいました
-
複数Activityにまたがるデータをどう管理するか
https://www.reddit.com/r/androiddev/comments/adaecm/how_do_you_or_your_team_scope_an_object_that/
LiveDataやSingle Activity、Intentでバケツリレー、シングルトンといった方法が議論されています。
GitHubで見る-
Single Activity + Fluxが主流になっていくのかなぁという気はします。
-
Android Qがシステム全体でダークモードを持つという噂
Chromeチームのメンバーが公開範囲を誤って書き込んだとのことです。前から噂はあったのですが、Qではダークモードがきそうな気配です。
クライアントとサーバーどちらに実装するかの設計指針をチームで持つこと
http://tomoima525.hatenablog.com/entry/2019/01/06/075644
よく議論になるトピックなので指針を持つのはよさそうです
GitHubで見る-
なお、自分もクライアントサイドがメインなのでポジショントークに聞こえるかもしれませんが、この記事にあるのと同じ理由で基本的にサーバーでロジックを持つべきと考えています。テストもはるかに書きやすいと思います。
-
私も基本的に同じスタンスです。
同じ処理を各プラットフォームで実装するのも手間ですしね
-
SQLDelightが自動的にAS文から生成してくれるのですね。なるほど。