This version (1.2.0-alpha08) of the Compose Compiler requires Kotlin version 1.6.20 but you appear to be using Kotlin version 1.6.21 which is not known to be compatible.

こんなの出ましたけどー。


> Run with --scan to get full insights.


> Task :app:compileDebugKotlin FAILED
e: This version (1.2.0-alpha08) of the Compose Compiler requires Kotlin version 1.6.20 but you appear to be using Kotlin version 1.6.21 which is not known to be compatible.  Please fix your configuration (or `suppressKotlinVersionCompatibilityCheck` but don't say I didn't warn you!).

言われるがままに、kotlin のバージョンを、1.6.20 に下げればこのエラーは消えてビルド通りますが、

Kotlin 安定版の 1.6.21 を 1.6.20 を下げる

ってのどうなのと。

 

Compose コンパイラ と Kotlin の互換性


Compose Compiler	Compatible Kotlin
1.2.0-alpha08		1.6.20
1.2.0-alpha07		1.6.10
1.2.0-alpha06		1.6.10

以下から、英語版 (言語を「English」に切り替える) にすると分かりやすいです。

👉 Compose to Kotlin Compatibility Map  |  Android Developers hatena-bookmark

Kotlin stable 1.6.21 に対応する Compose Compiler は 今現在は pre-release 版しかありません。


 

何でこんなことになるのか?


通常、安定版とアルファ版の両方が同じ日に修正された状態でリリースされると思われます。しかし、AndroidXのモノレポとその関連インフラは、実はこれを阻んでいます。リリースブランチが一つしかないので、Accompanist のような通常のプロジェクトとは異なり、別々に行うことを余儀なくされるのです。


Kotlin 1.6.20のアーティファクトがリリースされてから1週間。ComposeをアップデートするCLはリリース前にできていた。しかし、AndroidXのモノレポでは、無関係な50のライブラリを同時にアップデートすることを強制されるため、未だに不完全です。健全なプロジェクトであれば、同じ日にリリースするはずです。

Drop "androidx" from Jetpack Compose package name, for multiplatform, before 1​.​0 release.
👉 キャンペーン · Drop "androidx" from Jetpack Compose package name, for multiplatform, before 1​.​0 release. · Change.org hatena-bookmark

Compose コンパイラを開発する環境にいろいろ問題とかあるんですかね。

👉 公式 android デベロッパー の英語ページに日本語ページが遅れてる件 hatena-bookmark

 

2022-05-21 追記

1.6.21 対応の beta版がリリースされています。

compose の父が!


これも「English」ページのみ確認できます。注意です!
kotlinCompilerExtensionVersion = "1.2.0-beta02"

👉 Compose to Kotlin Compatibility Map  |  Android Developers hatena-bookmark



Android Studio : ワイルドカードなインポートをしない設定

ワイルドカードな import をしたくない


[Preferences]

  ↓

[Editor]

  ↓

[Code Style]

  ↓

[Kotlin]

  ↓

[Imports]

  ↓

[Top-Level Symbols]/[Java Statics and Enum members]

  ↓

[Use single name import]

IntelliJ: Never use wildcard imports

Preferences 左上の検索から「single name」と入力すると良いです 🙆

「*」を使ったインポートは今や不要です。

👉 Android Studio : Never use wildcard imports hatena-bookmark


【iPhone】あなたのスマホが最新絵文字 Emoji 14.0 を表示できるか確認してみよう【Android】

微妙な時期なので確認してみますか。

そのスマホが最新絵文字 Emoji 14.0 を表示できる確認する

まあ、表示できない場合の原因は、フォントであり、その原因は、そのアプリであり、その原因は、OSのそのバージョンであり、などさまざまです。

New Emojis for 2021, 2022 hatena-bookmark

以下、Emoji バージョンごとに3つずつ。

Android 絵文字ポリシー - Play Console ヘルプ
Android 絵文字ポリシー - Play Console ヘルプ hatena-bookmark

表示できていますか。


 ‍ 14.0
‍️ ‍♀️ ‍❤️‍13.1
  ‍❄️13.0
‍ ‍ ‍‍12.1
  ‍‍12.0

表示できていませんね!

同じ端末の同じブラウザで見ていても表示しているサイト側のテキスト処理や指定しているフォントで変わってきます。

以下、Unicode Emoji 14.0 の新規絵文字を貼っておきます。

GitHub Gist の埋め込みでは、右下の「view raw」から出力すると、とりあえずサイトのフォント指定の影響は受けません。

コピーしていろんなとこに貼り付けてみましょう!

顔文字/絵文字辞書 単語リスト - Google Play のアプリ hatena-bookmark


Jetpack Compose vs SwiftUI

世界のデベロッパーたちが比較しています。

UI部分の統一化、どちらが奪取するのでしょうか。

We looked at how to build a simple app with both Jetpack Compose and SwiftUI. The approaches for using these frameworks is different as outlined above.

👉 Jetpack Compose vs SwiftUI - Coding with Mohit hatena-bookmark

If you think it is a good idea to use Compose for both Android and iOS, I’ll probably disagree with you. It is important to respect UI/UX guidelines of the platform and Compose can’t build an application like SwiftUI does.

👉 SwiftUI vs Jetpack Compose by an Android Engineer | by Gérard Paligot | Mar, 2022 | ProAndroidDev hatena-bookmark

You should definitely keep an eye on both frameworks!

👉 SwiftUI vs. Jetpack Compose | QuickBird Studios Blog hatena-bookmark

Kotlinに慣れ親しんでるのもあるかもしれませんが、個人的にはJetpack Composeが一番ストレスなく書くことができました。 Jetpack Composeは現在DesktopアプリやWebでも使え、今後活躍の幅が広がって欲しいなと思っています。

👉 Jetpack Compose, React, Flutter, SwiftUIを比較する - Blog - Mori Atsushi hatena-bookmark

まだ、どちらとも言えませんね。

注視しておく必要があるでしょう。


Firebase Authentication の キーデータ相互登録設定を忘れてハマるな

いまさら知ったのですが。

On October 31, 2018, we will no longer actively contribute to, or accept issues and pull requests on, the open sourced SDKs (iOS, Android, Unity) on GitHub. After this date we will also stop releasing the SDKs through Cocoapods, Carthage, and Bintray JCenter.

👉 Discontinuing support for Twitter Kit SDK hatena-bookmark

Twitter 公式 SDK の代替として Firebase Authentication を Twitter で使ってみました。

実装とは別に、各管理画面から発行されるキーなどのテキストを別のサービスの管理画面に登録することが必要になります。

忘れやすくて抜けやすくてハマりやすいので整理しておきます。

 

Twitter Consumer API Key / Secret Key

Twitter Developers で作成される 「Consumer API Key / Secret Key」 を Firebase Authentication と Android Studio 上でXMLリソースとして登録します。

Twitter Developers consumer api key secret key

Twitter Developers で作成される「Consumer API Key / Secret Key」は Firebase Authentication に登録します。

<string name="twitter_consumer_key" translatable="false">YOUR_CONSUMER_KEY</string>     <string name="twitter_consumer_secret" translatable="false">YOUR_CONSUMER_SECRET</string>
👉 Twitter Developers hatena-bookmark
👉 Firebase console hatena-bookmark
👉 firebaseui.xml - firebase/snippets-android hatena-bookmark

 

Firebase Authentication Callback URL

Firebase Authentication で作成される「Callback Url」は Twitter Developers に登録します。

Firebase Authentication で作成される「Callback Url」は Twitter Developers に登録します。

Firebase Authentication で作成される「Callback Url」は Twitter Developers に登録します。

Firebase Host Config で独自ドメインにしたほうが感じが良いです。

👉 Firebase Authで独自ドメインが使いたい hatena-bookmark

 

Google Play アプリリリースキー SHA-1 フィンガープリント

アプリをリリースに使われる公開鍵のSHA-1のフィンガープリントです。

リリース鍵は、開発者が作成したり、Google Play 側で変更時に作成されたりするので、実際のリリースに利用されてる鍵を認把握している Google Play Console で確認すると間違いないです。

Google Play Console で確認して Firebase プロジェクトの概要 に登録します。

[設定] - [アプリの完全性]

[プロジェクトの概要] - [設定(歯車マーク)]
Google Play Console で確認して Firebase Authentication に登録します。

👉 Play Console hatena-bookmark

 

Android Studio デバッグキー SHA-1 フィンガープリント

デバック時に使われる鍵のSHA-1フィンガープリントです。

Android Studio の Terminal や Gradle ウインドウで確認して Firebase プロジェクトの概要 に登録すると、デバッグ時にも使えます。

Android Studio の Terminal や Gradle ウインドウで確認して Firebase Authentication に登録します。

Android Studio の Terminal や Gradle ウインドウで確認して Firebase Authentication に登録します。

👉 【コピペ用】Android「Google アプリ署名」コマンドまとめ hatena-bookmark
👉 google maps - How to get the SHA-1 fingerprint certificate in Android Studio for debug mode? - Stack Overflow hatena-bookmark
👉 Gradle タスクリストが見えない件【Android Studio】 hatena-bookmark

 

まとめ


Twitter Developers 
Consumer API Key / Secret Key
→ Firebase Authentication
→ Android Studio XML


Firebase Authentication 
Callback URL
→ Twitter Developers


Google Play Console
Release Key Fingerprint SHA-1
→ Firebase Project


Android Studio
Debug Key Fingerprint SHA-1
→ Firebase Project

箇条書きではきっとどれかが抜けてしまいそうなので手書きでも書いておきます。

Twitter 公式 SDK の代替として Firebase Authentication を Twitter で使ってみました。

👉 Firebase Authentication  |  Firebase Documentation hatena-bookmark