web-dev-qa-db-ja.com

Android KTXまたはAnko

Android KTX vs Anko を使用することの長所と短所について少し混乱しています。両方のライブラリが同じ最終目標を達成しようとしているため、それらの間の境界線が少しぼやけています 場合によっては、両方のライブラリで同じ機能を使用できます

それぞれの使命とその使用例を明確にするためにご協力いただければ幸いです。

前もって感謝します!

12
Arturo Mejia

Ankoは、JetBrainsがKotlinを開発し、Androidに関連させるために開始したプロジェクトです。 Kotlinの可能性の初期のプロダクション対応ショーケースとして認定します。

AnkoはAnkoレイアウトでよく知られていますが、Anko CommonsでのAndroid開発用の拡張機能や、SQLiteなどの他のいくつかのモジュールもあります。

ただし、Ankoライブラリは更新後にかなりの数のメソッド更新を蓄積しており、dexファイルあたり65Kメソッドに制限されている場合、今日ではライブラリが比較的重くなります(apkサイズとパフォーマンス上の理由から、単一のメソッドを使用することをお勧めします)。

Anko commonsはAndroidの拡張機能を提供するため、ある意味でAndroid KTXに似ていますが、AndroidXの一部となったAndroid KTXほど統合および整理されていません(パッケージとアーティファクトに関して)。 Android Jetpackの一部です。ライブラリをより小さく、より疎結合にすることは、Android Jetpack/Android X哲学BTWの一部です。

したがって、Android KTXは明らかに未来であり、船に飛び込まない理由はありません。むしろ、Androidプロジェクト。

また、 あなた自身が指摘したように 、将来のAnkoバージョンはAndroid KTXとの重複を廃止し(そしておそらく最終的に削除し)、AndroidXにない機能のみを提供します。

恥知らずなプラグが含まれています:Ankoについて話しているので、Ankoレイアウトに注意が向けられたが、それらとの苦労を経験した場合(特に、カスタムビューまたはサードパーティビューと対話する場合) 、 Splitties のViews DSLをチェックすることをお勧めします。これは、Ankoレイアウトよりも柔軟性があり、非常に軽量です。他のモジュールも興味があるかもしれません。このプロジェクトは、職場と自宅のAndroidプロジェクトでKotlinの機能を活用するために開始しました。

あなたはそれについて尋ねていませんが、これがアンココルーチンに関する私の見解です:私はbg { … }拡張子が混乱していると思います。 launchwithContextなどをDispatchers.IOとともに使用して、Androidアーティファクトでkotlinx.coroutinesを使用することを好みます。

ただし、Ankoコルーチンリスナー(たとえば、一時停止できるonClick)は悪い考えのIMOではありません。

23
Louis CAD

AnkoはJetBrainsのKotlinライブラリです。 Android KTXと、Android開発者としての生活をより簡単にし、コードをより読みやすく、快適に使用できるようにするという目標を共有しています。Android KTXとAnkoは似ていますが、まったく同じではありません。

あんことAndroid KTXの違い

それらには共通の目標がありますが、異なる範囲を念頭に置いています。 KTXの使命は、慣用的なAPIをKotlinユーザーに提供することです。 KTXは、既存のAndroid APIに新しい機能を追加するつもりはありません。Ankoの範囲は広いため、新しい機能を革新して作成する柔軟性が得られます。

AnkoまたはAndroid KTXをいつ使用するかを決定する

一般的に、AnkoとAndroid KTXはAndroid APIのさまざまな部分をカバーしており、プロジェクトで両方を使用できない理由はありません。それぞれを調査してください。個別に、プロジェクトで好きなだけ使用してください!

0