Splittiesは、小さなKotlinマルチプラットフォームライブラリのコレクションです(Androidを最初のターゲットとして)。
これらのライブラリは、書く必要があるコードの量を減らし、コードの読み取りと書き込み時間を解放することを目的としているため、ユーザーのために構築したいものにもっと集中することができます(あなたが唯一のものであっても)、またはfun時間があります。
このプロジェクトは、独立したライブラリとして分散されている小さなモジュールで分割されているため、「Splitties」と名付けられているため、プロジェクト/モジュールに必要なもののみを追加できるため、ユーザーデバイスがダウンロードして保管する必要がある最終的なバイナリのサイズを削減できます(ところで、すべてが制限されています)。
一部のAndroidターゲティングモジュールには、ANKOが提供するものと同様のコンテンツがあります。こちらの分裂とAnkoの短い比較を参照してください。
各モジュールは、フットプリントが少なくなり、可能な限り効率的になるように設計されています。
Splittiesは、コードを簡素化することです。ここにいくつかの例があります:
コトリン:
startActivity( Intent ( this , DemoActivity :: class .java))スプリティアクティビティを備えたコトリン:
start< DemoActivity >()コトリン:
Snackbar .make(root, R .string.refresh_successful, Snackbar . LENGTH_SHORT )
.show()スプリッティスナックバーとコトリン:
root.snack( R .string.refresh_successful) Racing Coroutines :( raceOf(…)はCoroutinesモジュールから来ています)
suspend fun awaitUserChoice ( ui : SomeUi , choices : List < Stuff >): Stuff ? = raceOf({
ui.awaitSomeUserAction(choices)
}, {
ui.awaitDismissal()
null
}, {
ui.showSomethingInRealtimeUntilCancelled() // Returns Nothing, will run, but never "win".
})コトリン:
Snackbar .make(root, getString( R .string.deleted_x_items, deletedCount), Snackbar . LENGTH_LONG )
.setAction(android. R .string.cancel) {
deleteOperation.requestRollback()
}
.setActionTextColor( ContextCompat .getColor( this , R .color.fancy_color))
.show()スプリッティスナックバーとコトリン:
root.longSnack(str( R .string.deleted_x_items, deletedCount)) {
action(android. R .string.cancel, textColor = color( R .color.fancy_color)) {
deleteOperation.requestRollback()
}
}appCtxを使用して、常にアプリケーションContextを手元に置いてください。context.getSystemService(NAME_OF_SERVICE) as NameOfManager 。 snack(…)とlongSnack(…)でセレモニーなしでスナックをつかみます。toast(yourText)を呼び出すだけでトーストを表示し、Dodge API 25 BadTokenException表示します。showAndAwait拡張機能。Viewの拡張機能とプロパティ。ImageView Tinting、 ActionBar 、Tooltipのヘルパーが含まれています。contentPaddingプロパティを提供します。ViewとContextためのAndroid dp拡張機能。 Views DSLを使用する場合に特に便利です。foregroundプロパティを使用した選択可能なビュー。RecyclerViewの基本的な使用を簡単にするためのTypeSafe ViewHolderおよびItemViewHolder 。RecyclerViewでの使用に最適)。 companion objectを強力なタイプセーフインテントスペックに変換し、清潔で簡単な方法でPendingIntentに作成します。BundleSpec 、 Intentエクストラなどにプロパティ構文を使用してBundle使用します。 Lifecycleとの統合。Looperに複数のHandler sの割り当てを停止するトップレベルのmainHandlerプロパティ。mainThreadLazy SharedPreferences / DataStoreおよびMacos/iOS/Watchos NSUserDefaultsのプロパティ構文。hasFlag 、 Long 、 Int 、 Short 、 Byte 、およびそれらの署名のない対応物でのwithFlagとminusFlag拡張機能。Iterator割り当てのないList sのforEachに。 unexpectedValue(…) 、 unsupportedAction(…) 、およびNothing返されない同様の関数。ViewModel取得し、 LiveDataを使用し、 Lifecycleを観察するための拡張機能。 プロジェクトの(root) build.gradleファイル(新しいAndroidスタジオプロジェクトのデフォルト)で定義されているリポジトリにmavenCentral()があることを確認してください。
Androidプロジェクトのスプリッティの内容を簡単に利用できるようにするために、ほとんどのスプリットを含むグループ化アーティファクトがあります。
Resherversionsを追加: Splitties.pack.androidBaseまたはSplitties.pack.androidBaseWithViewsDsl 。
これらの2パックにはAppCompatが含まれておらず、WearOSアプリに適しています。
次のモジュールが含まれています。
グレード依存関係:
implementation( " com.louiscad.splitties:splitties-fun-pack-android-base:3.0.0 " )DSLビューのバージョンもあります。さらに、次のモジュールが含まれます。
グレード依存関係:
implementation( " com.louiscad.splitties:splitties-fun-pack-android-base-with-views-dsl:3.0.0 " ) Resherversionsに加えて: Splitties.pack.appCompatまたはSplitties.pack.appCompatWithViewsDsl 。
これらの2つのパックには、Androidベースパックと次のモジュールが含まれます。
グレード依存関係:
implementation( " com.louiscad.splitties:splitties-fun-pack-android-appcompat:3.0.0 " )DSLビューのバージョンもあります。さらに、AndroidベースパックのビューDSLバージョンと次のモジュールが含まれます。
グレード依存関係:
implementation( " com.louiscad.splitties:splitties-fun-pack-android-appcompat-with-views-dsl:3.0.0 " )Resherversionsを追加: Splitties.pack.androidMdcまたはSplitties.pack.androidMdcWithViewsDsl 。
これらの2つのパックには、Android AppCompatパックと次のモジュールが含まれます。
グレード依存関係:
implementation( " com.louiscad.splitties:splitties-fun-pack-android-material-components:3.0.0 " )DSLビューのバージョンもあります。さらに、Android AppCompat PackのViews DSLバージョンと次のモジュールが含まれます。
グレード依存関係:
implementation( " com.louiscad.splitties:splitties-fun-pack-android-material-components-with-views-dsl:3.0.0 " )複数のアーティファクトを使用する可能性があるため、自分自身を繰り返さないために、バージョンを中央の場所に配置することをお勧めします。そのため、新しいバージョンにアップグレードすることはほとんど努力していません。
これを行う最良の方法は、リフレッシュバーを使用することです。 Splittiesの依存性表記法、およびKotlinx、Androidx、Square/CashAppのライブラリ、Googleのライブラリなど、他の多くの人気のある定性的ライブラリもあります。
最も重要なことは、 refreshVersionsタスクを実行すると、すべての依存関係について、バージョンのすべての依存versions.propertiesについて、数秒で利用可能な更新が表示されます。
参考までに、Splittiesの現在の最新リリースはバージョン3.0.0です
com.louiscad.splitties:splitties-activities
com.louiscad.splitties:splitties-alertdialog
com.louiscad.splitties:splitties-alertdialog-appcompat
com.louiscad.splitties:splitties-alertdialog-appcompat-coroutines
com.louiscad.splitties:splitties-appctx
com.louiscad.splitties:splitties-arch-lifecycle
com.louiscad.splitties:splitties-arch-room
com.louiscad.splitties:splitties-bitflags
com.louiscad.splitties:splitties-bundle
com.louiscad.splitties:splitties-checkedlazy
com.louiscad.splitties:splitties-collections
com.louiscad.splitties:splitties-coroutines
com.louiscad.splitties:splitties-dimensions
com.louiscad.splitties:splitties-exceptions
com.louiscad.splitties:splitties-fragments
com.louiscad.splitties:splitties-fragmentargs
com.louiscad.splitties:splitties-intents
com.louiscad.splitties:splitties-lifecycle-coroutines
com.louiscad.splitties:splitties-mainhandler
com.louiscad.splitties:splitties-mainthread
com.louiscad.splitties:splitties-material-colors
com.louiscad.splitties:splitties-material-lists
com.louiscad.splitties:splitties-permissions
com.louiscad.splitties:splitties-preferences
com.louiscad.splitties:splitties-resources
com.louiscad.splitties:splitties-snackbar
com.louiscad.splitties:splitties-stetho-init
com.louiscad.splitties:splitties-systemservices
com.louiscad.splitties:splitties-toast
com.louiscad.splitties:splitties-typesaferecyclerview
com.louiscad.splitties:splitties-views
com.louiscad.splitties:splitties-views-appcompat
com.louiscad.splitties:splitties-views-cardview
com.louiscad.splitties:splitties-views-coroutines
com.louiscad.splitties:splitties-views-coroutines-material
com.louiscad.splitties:splitties-views-dsl
com.louiscad.splitties:splitties-views-dsl-appcompat
com.louiscad.splitties:splitties-views-dsl-constraintlayout
com.louiscad.splitties:splitties-views-dsl-coordinatorlayout
com.louiscad.splitties:splitties-views-dsl-ide-preview
com.louiscad.splitties:splitties-views-dsl-material
com.louiscad.splitties:splitties-views-dsl-recyclerview
com.louiscad.splitties:splitties-views-material
com.louiscad.splitties:splitties-views-recyclerview
com.louiscad.splitties:splitties-views-selectable
com.louiscad.splitties:splitties-views-selectable-appcompat
com.louiscad.splitties:splitties-views-selectable-constraintlayout
まだリリースされていない新しい機能または修正を試す必要があるとしましょう。
以下に示すように対応するリポジトリを追加し、ライブラリバージョンを最新のスナップショットに変更することにより、スナップショットバージョンで入手できます3.0.0-SNAPSHOT :
allProjects {
repositories {
mavenCentral()
google() // Add sonatype snapshots repo below
maven(url = " https://oss.sonatype.org/content/repositories/snapshots " )
}
}リリースはGitHubで発表され、「watch」をクリックしてから「リリースのみ」でサブスクライブできます。
ただし、Resherversionsを使用する場合は、 refreshVersionsタスクをversions.propertiesファイルで実行するときに更新についても学びます。
このライブラリに新機能または既存のモジュールの改善が必要な場合は、問題を開いたり、最初に同様のモジュールに投票/コメントしてください。
ドキュメントの貢献も大歓迎です。タイプミスまたはその他の小さな改善については、PR(プルリクエスト)を直接送信してください。より重要なドキュメントの貢献については、最初に問題を開いてください。
バグが見つかった場合は、すべての重要な詳細について問題を開いてください。 API速報ではなく、考慮する必要がある副作用がない簡単な修正がわかっている場合は、PRを直接送信することもできます。
また、#splittiesチャンネルでKotlinのSlackに関するディスカッションに参加することもできます(こちらから招待状を入手できます)。
「分割」は、依存関係として追加できるSplittiesライブラリのモジュールです。必要な推移的依存関係のみが含まれます。これにより、アプリまたはライブラリモジュールに必要なもののみを追加できるため、最終的なAPK/IPA/アプリはできるだけ小さく、アプリで使用されていないものは含まれません。
Views DSLを使用してWear OSアプリを構築しているとしましょう。 OSアプリを着用するAppCompatは必要ありません。それを含めることは、帯域幅とストレージの無駄になります。 DSLコアモジュールのビューは、Android SDKに依存していますが、AppCompatには依存していないため、ビューDSLを使用して手首アプリを膨らませないでください。ただし、携帯電話、タブレット、またはコンピューターAndroidアプリを構築している場合は、使用するためのいくつかの拡張機能があるDSL AppCompatのビューが分割されています。
このプロジェクトの決定を下すのを手伝ってくれたJovche Mitrejchevskiに感謝します。
JetBrainsとANKOの貢献者に感謝します。これは、特にDSLのビューにとっては素晴らしいインスピレーションのソースでした。もちろん、このプロジェクトを可能にする優れたKotlinプログラミング言語に感謝します。
ダグ・スティーブンソンの記事「Kotlin&Android:A Brass Tacks Experiment」に感謝します。ビューDSLがこの実験にそのルートがあると言うのは公平です。
このライブラリは、ここで見ることができるApacheライセンスバージョン2.0で公開されています。