ハンガリアン記法の話でよくある反論

以下、どっちがいいか。


void setScore(int score) {

  this.score = score;

}


void setScore(int score) {

  mScore = score;

}

もう、ええわ。

ありがとうございました。

Does Android team starts to abandon Hungarian Notation? : androiddev


新「元号」の西暦へ変換方法と「Build.VERSON_CODES」

今回もまた、和暦と西暦の変換の方法とか。

昭和:元号に25を足すと西暦。
平成:元号から12を引くと西暦。
?? : 元号に18を足すと西暦。

面倒ですね。

一方、Android OS (API) バージョンの呼び方。


19 KITKAT                 4.4 - 4.4.4   KitKat
21 LOLLIPOP               5             Lollipop
22 LOLLIPOP_MR1           5.1           Lollipop
23 M                      6             Marshmallow
24 N                      7             Nougat
25 N_MR1                  7.1           Nougat
26 O                      8.0           Oreo
27 O_MR1                  8.1           Oreo
28 P	                  9.0           Pie

Android バージョンやコードネームなどからのシェアの一覧取得


同じ意味なのに別の呼称があることは、少し考えての変換が必要になる。

いらなくね? 元号とかコードネームとか。

まあ、コードネームを付けることで話題として取り上げやすくはなるわな。

キャバ嬢の「平成生まれ」をうれしがってた時もあったけどなあ。

Android OS バージョン確認方法 (platform versions)

The Unicode Blog: New Japanese Era


本物「Jake Wharthon」さん、偽物「Jake Whaarton」になりすます

jitpack で配布しているライブラリに不必要な怪しい通信処理を入れて

Bintray -> jcenter() 経由で同じアーティファクトidで配布してる「Jake Whaarton」さん。

これは、神と呼ばれるJakeWarthonさんの偽物です。

Jake Wharthon → 本物
Jake Whaarton → 偽物

少し話題になってましたね。

A Confusing Dependency

A Confusing Dependency : androiddev

すると、本物JakeさんのTwitterが!!

Jake Whaarton(@JakeWharton)さん | Twitter

なりすましてます、本物が偽物に。

この話を、解説しています。

アーティファクトの整合性の話は別にして、jcenter() を常に最後に置くだけでなく、mavenCentral() をそれらの前に置くことも必要です。
JCenter と Bintray は、信頼できるアーティファクトホストではありません。理想的なのはそれらから何も取得しないことです。

上から読んでいくリポジトリ群指定の最下位にオープンすぎる jcenter() を置くべし、と言っています。


repositories {

  //...
  mavenCentral()
  jcenter()
}

しかし、ワロタ。

android - Why does the Google maven repository exist and when should I use it? - Stack Overflow

Gradleが参照するリポジトリの優先順位について - Qiita


Firebase In-App Messaging は実装不要。

言い換えると、「コードの記述」が不要。

できることは、Firebase 管理画面からアプリ上にプッシュしてダイアログを出せるというもの。

アプリのリソースでの作業は、 build.gradle の以下の記述追加のみ。


dependencies {
  // ...
  implementation 'com.google.firebase:firebase-inappmessaging-display:17.0.0'
  implementation 'com.google.firebase:firebase-core:16.0.1'
}

Firebase アプリ内メッセージングを使ってみる  |  Firebase

あとは、Firebase のコンソールで設定する。

表示させた各ダイアログ(ボタン)をタップしたときのアクションはURLでセットしておく。

あとは表示させるタイミングを設定画面からアレコレやってみるといい。

なんせ、2行の追加だけだもの。

これで撒いといてもいいんじゃね?

ベータだけど。


NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion とかでた。

[Developer Preview Android P] NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion; inside of com.google.android.gms [79478779] - Visible to Public - Issue Tracker

If your app is targeting API level 28 (Android 9.0) or above, you must include the following declaration within the element of AndroidManifest.xml.

対策は以下。AndroidManifest.xml。


<application ...
  ....
  <uses-library
      android:name="org.apache.http.legacy"
      android:required="false" />

Project Configuration  |  Maps SDK for Android  |  Google Developers

今回は、GoogleMap SDK vs API-28(9.0/Pie) だったけど、他でも出そうで、使えそう。