Skip to content

Splitties v2.0.0-alpha1

Pre-release
Pre-release
Compare
Choose a tag to compare
@LouisCAD LouisCAD released this 11 Mar 20:47

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 ViewModels, use LiveData and observe Lifecycles
  • Arch Room: Room helpers to instantiate your DB and perform transactions in Kotlin
  • Bit Flags: hasFlag, withFlag and minusFlag extensions on Long, Int, Short and Byte
  • Bundle: BundleHelper to use Bundle with property syntax for Intent extras
    and more
  • Dimensions: Android dp extensions for View and Context. Particularly handy
    when using View DSL
  • Exceptions: illegal(…) and similar functions that return Nothing, handy for
    impossible or illegal when branches
  • Fragment Args: Fragment arguments without ceremony thanks to delegated properties
  • Init Provider: Base class for ContentProviders used for automatic initialization
    purposes
  • Main Handler: Top-level mainHandler property to stop allocating multiple Handlers for
    main Looper
  • 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(…) and longSnack(…)
  • 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 Views
  • 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 to com.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 new canLeakMemory() extension function on Context that is also public.
  • Preferences StringPref and stringPref don't allow null values anymore. Use StringOrNullPref and stringOrNullPref if you need nullable strings. Same for StringSetPref and stringSetPref.
  • 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 new foregroundSelector 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'
    }
}