Splitties v2.0.0-alpha1
Pre-release
Pre-release
26 new library modules (amounting to a total of 33 splits):
- Alert Dialog: Create simple alert dialogs with simple code
- Alert Dialog AppCompat: AppCompat version of Alert Dialog
- Arch Lifecycle: Extensions to get
ViewModel
s, useLiveData
and observeLifecycle
s - Arch Room: Room helpers to instantiate your DB and perform transactions in Kotlin
- Bit Flags:
hasFlag
,withFlag
andminusFlag
extensions onLong
,Int
,Short
andByte
- Bundle:
BundleHelper
to useBundle
with property syntax forIntent
extras
and more - Dimensions: Android
dp
extensions forView
andContext
. Particularly handy
when using View DSL - Exceptions:
illegal(…)
and similar functions that returnNothing
, handy for
impossible or illegalwhen
branches - Fragment Args: Fragment arguments without ceremony thanks to delegated properties
- Init Provider: Base class for
ContentProvider
s used for automatic initialization
purposes - Main Handler: Top-level
mainHandler
property to stop allocating multipleHandler
s for
mainLooper
- Resources: Extensions to get resources like strings, colors or drawables easily,
with support for themed attributes - Selectable Views AppCompat: Selectable Views for AppCompatTextView
- Selectable Views ConstraintLayout: Selectable Views for ConstraintLayout
- Snackbar: Grab a snack without ceremony with
snack(…)
andlongSnack(…)
- System Services: No more
context.getSystemService(NAME_OF_SERVICE) as NameOfManager
- Toast: Show a toast by just calling
toast(yourText)
, and dodge API 25
BadTokenException
- UI Thread: Properties related to Android UI thread, and
checkUiThread()
precondition
checker - View DSL: Create UIs with readable Kotlin code
- View DSL AppCompat: AppCompat extension of View DSL
- View DSL AppCompat styles: AppCompat styles for View DSL
- View DSL ConstraintLayout: ConstraintLayout extension of View DSL
- View DSL Design: Design Support Library extension of View DSL
- View DSL IDE preview: Preview View DSL UIs in the IDE
- Views: Extensions function and properties on
View
s - Views AppCompat: AppCompat extension of Views. Includes helpers for
ImageView
tinting,ActionBar
and tooltip
1 renamed module:
- "Checked Lazy" replaces the "Concurrency" module.
Other changes:
- The groupId of the library changed from
xyz.louiscad.splitties
tocom.louiscad.splitties
. Check dependencies list below. - All previous modules migrated to Kotlin, excepted the
ViewHolder
class from the Typesafe RecyclerView module that can't be written in Kotlin at the moment due to hiding super fields not being supported. - App Context module has a new, memory leak safe
injectAsAppCtx()
method, that uses the newcanLeakMemory()
extension function onContext
that is also public. - Preferences
StringPref
andstringPref
don't allow null values anymore. UseStringOrNullPref
andstringOrNullPref
if you need nullable strings. Same forStringSetPref
andstringSetPref
. - The
isUiThread
property moved from the old "Concurrency" module to the "UI Thread" module. - Material Lists are now written in Kotlin with View DSL, fixing icon tinting support on day/night themes and behavior on long texts. Also, the naming has been improved. Old named items are now deprecated.
- Checked Lazy does no longer depend on Timber but is now more configurable, allowing to write reporting behavior if needed.
- Selectable Views has been split in base module (that includes only dependencies on Android platform), AppCompat module and ConstraintLayout module.
- Selectable Views don't support the
foreground
xml attribute from app namespace anymore, but there's a newforegroundSelector
property.
New artifacts
Here are all the artifacts added in this version. Just use the ones you need. (Click to expand)
implementation "com.louiscad.splitties:splitties-alertdialog:$splitties_version"
implementation "com.louiscad.splitties:splitties-alertdialog-appcompat:$splitties_version"
implementation "com.louiscad.splitties:splitties-appctx:$splitties_version"
implementation "com.louiscad.splitties:splitties-arch-lifecycle:$splitties_version"
implementation "com.louiscad.splitties:splitties-arch-room:$splitties_version"
implementation "com.louiscad.splitties:splitties-bitflags:$splitties_version"
implementation "com.louiscad.splitties:splitties-bundle:$splitties_version"
implementation "com.louiscad.splitties:splitties-checkedlazy:$splitties_version"
implementation "com.louiscad.splitties:splitties-dimensions:$splitties_version"
implementation "com.louiscad.splitties:splitties-exceptions:$splitties_version"
implementation "com.louiscad.splitties:splitties-initprovider:$splitties_version"
implementation "com.louiscad.splitties:splitties-mainhandler:$splitties_version"
implementation "com.louiscad.splitties:splitties-material-lists:$splitties_version"
implementation "com.louiscad.splitties:splitties-preferences:$splitties_version"
implementation "com.louiscad.splitties:splitties-resources:$splitties_version"
implementation "com.louiscad.splitties:splitties-fragmentargs:$splitties_version"
implementation "com.louiscad.splitties:splitties-selectableviews:$splitties_version"
implementation "com.louiscad.splitties:splitties-selectableviews-appcompat:$splitties_version"
implementation "com.louiscad.splitties:splitties-selectableviews-constraintlayout:$splitties_version"
debugImplementation "com.louiscad.splitties:splitties-stetho-init:$splitties_version"
implementation "com.louiscad.splitties:splitties-systemservices:$splitties_version"
implementation "com.louiscad.splitties:splitties-toast:$splitties_version"
implementation "com.louiscad.splitties:splitties-typesaferecyclerview:$splitties_version"
implementation "com.louiscad.splitties:splitties-uithread:$splitties_version"
implementation "com.louiscad.splitties:splitties-snackbar:$splitties_version"
implementation "com.louiscad.splitties:splitties-viewdsl:$splitties_version"
implementation "com.louiscad.splitties:splitties-viewdsl-appcompat:$splitties_version"
implementation "com.louiscad.splitties:splitties-viewdsl-appcompat-styles:$splitties_version"
implementation "com.louiscad.splitties:splitties-viewdsl-constraintlayout:$splitties_version"
implementation "com.louiscad.splitties:splitties-viewdsl-design:$splitties_version"
debugImplementation "com.louiscad.splitties:splitties-viewdsl-ide-preview:$splitties_version"
implementation "com.louiscad.splitties:splitties-views:$splitties_version"
implementation "com.louiscad.splitties:splitties-views-appcompat:$splitties_version"
All the lines above assume you defined the splitties_version
ext property in your
root project's build.gradle
file to 2.0.0-alpha1
as shown in this snippet:
allProjects {
ext {
splitties_version = '2.0.0-alpha1'
}
}