公式「Android Kotlin Guides」が公開される!! Jake がメンテ中

Kotlinのコードががなんとなく見づらいような気がしてましたが.

こんなの公開されています.

Android Kotlin Guides

このコンテンツについては, GitHubにて公開されていまが,

メンテナーは, Googleにフレームワーク開発において最近合流したあの Jake Warton 神.

android/kotlin-guides: A set of guides for writing Kotlin for Android.

Jake と言えば, ハンガリアン記法についてなどコードスタイルについてはSquare在籍時より強いこだわりを持った発言がありましたよね.

Just Say mNo to Hungarian Notation - Jake Wharton

「Android Kotlin Guides」にはコードスタイルについて記述があります.

例えば, だれもが遭遇していると思われる以下.

When a function signature does not fit on a single line, break each parameter declaration onto its own line. Parameters defined in this format should use a continuation indent (+8). The closing parenthesis ()) and return type are placed on their own line with no additional indent.

関数の記述が一行では収まらないときは, それぞれのパラメータをそれぞれで改行する.それらのパラメータは8のインデントで連続させて, 閉じカッコと戻り型はインデントなしの一行とする.


fun <T> Iterable<T>.joinToString(
        separator: CharSequence = ", ",
        prefix: CharSequence = "",
        postfix: CharSequence = ""
): String {
    // …
}

見やすいですね!

これまで, Square から公開していたように, 定義ファイルで公開してほしいですね!

Android Code Style で インデントはスペース何個?


【AndroidStudio 3.0】「flavor dimension」とは何?

AndroidStudio 3.0 にアップデートしましたが,

こんな build.gradle で 以下のエラーです.


android {
  // ...
}

productFlavors {
  flavor1 {
    // ...
  }
}

buildTypes {
  release {
    // ...
  }
  debug {
    // ...
  }
}


Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html

StackOverflowで調べてみると以下の記述で大丈夫と書かれている.

Android Studio 3.0 Flavor Dimension Issue - Stack Overflow


android {
  // ...

  flavorDimensions "default" // OK
  //flavorDimensions "versionCode" // OK

}

productFlavors {
  flavor1 {
    // ...
  }
}

buildTypes {
  release {
    // ...
  }
  debug {
    // ...
  }
}

これでビルドは通る.

なんだか気持ち悪いし意味が不明すぎますね.

 

試してみる

いろいろやってみましたが, 以下のような記述がOKです.


android {
  // ...

  flavorDimensions "a"
}

productFlavors {
  flavor1 {
    // ...
  }
}

buildTypes {
  release {
    // ...
  }
  debug {
    // ...
  }
}

productFlavor を複数にする.


android {
  // ...

  flavorDimensions "a"

}

productFlavors {

  flavor1 {
    // ...
  }

  flavor2 {
    // ...
  }

  flavor3 {
    // ...
  }

  flavor4 {
    // ...
  }

}

buildTypes {
  release {
    // ...
  }
  debug {
    // ...
  }
}

flavorDimensions で productFlavor を2段階に分ける.


android {
  // ...
  flavorDimensions "a", "b"
}

productFlavors {

  flavor1 {
    dimension "a"
    // ...
  }

  flavor2 {
    dimension "a"
    // ...
  }

  flavor3 {
    dimension "b"
    // ...
  }

  flavor4 {
    dimension "b"
    // ...
  }
}

buildTypes {
  release {
    // ...
  }
  debug {
    // ...
  }
}

dimension で階層化された Build Variant が作成される.

 

まとめ

もともと productFlavor では以下のようなものが設定できました.

- applicationId
- versionCode
- minSdkVersion
- versionName/Suffix
- ソースコードやリソースの位置
- dependencies

これらを階層化させたい場合に使うのがいいように思います.

まずは, 開発時の時間短縮でしょうか.


flavorDimensions "minSdkVersion", "others"

Migrate to Android Plugin for Gradle 3.0.0 | Android Studio

ビルド バリアントの設定 | Android Studio


Play Store の Google 取り分が30%から15%へ 2018年1月から

以前から噂はありました.

2016年6月9日

Recodeが伝えたところによると、Googleもまた新たな利益配分モデルを導入し、月額課金アプリでGoogleが吸い上げる割合を15%に削減する計画があるとのこと。しかもアップルは15%の適用を月額課金アプリの、しかも2年目以降からに限定するのに対して、Googleは1年目からこの利益配分を適用するとしています。

ただ、Recodeはこの新しい利益配分がいつから適用になるのかはまだわからないとしています。

GoogleもAndroidの月額課金アプリ取り分を15%に引き下げるという噂。しかも1年目から対象の可能性 - Engadget 日本版

ついに来年からのようです.

Now, Google is doing the same. Similar to Apple’s approach, an Android developer selling a subscription service will be eligible for the cut so long as the customer in question has been subscribed for more than a year. The company plans to put it into effect starting January 2018.

今回 Googleは同様のことをする予定です。アップルのアプローチと同様に、サブスクリプションサービスを販売しているAndroidデベロッパーは、問題の顧客が1年以上契約している限り、そのカットを受けることができます。同社は、2018年1月から施行する予定です。

Google matches Apple by reducing Play Store fee for Android app subscriptions - The Verge

英語ページでは公式でも追記されています.

Appleと同様に2年目からの定期課金加入者のみのようです.

Note about subscription payments: Starting January 1, 2018, the transaction fee for any subscribers you retain after 12 paid months will be 15% (instead of 30%).

Transaction fees - Play Console Help

なぜか日本語ページではまだ記述がありません.

取引手数料 - Play Console ヘルプ

もしすると, 日本はまだ先になるのかもしれませんが開発者にとってはいい話でしょう.