OneUIProject / oneui-core

Samsung's One UI core libraries for Android apps.
MIT License
119 stars 15 forks source link
android appcompat library material-design oneui samsung sesl

For Wear OS, please look at oneuiw-core.

Samsung Experience Support Library (One UI 4.x)

This is the repository for the Samsung Experience Support Library (internally referenced as sesl).

Samsung's One UI apps are created by using a heavily modified version of Google's Android Jetpack and Material Components libraries, that include (but are not limited to) a new theme for the UI, new APIs and much more. The intent of this library is to make those Samsung UX elements available to everyone for study, modding or whatever feels right for you.

Any form of contribution, suggestions, bug report or feature request will be welcome.

Libraries

Android Jetpack:

Missing libs:

Usage

To use these libraries in your project, simply add the dependencies in your build.gradle file:

dependencies {
    implementation 'io.github.oneuiproject.sesl:appcompat:<version>'
    implementation 'io.github.oneuiproject.sesl:material:<version>'
    // ...
}

In order for your project to build correctly, you'll need to remove Google's original libraries:

configurations.all {
    exclude group: 'androidx.appcompat', module: 'appcompat'
    exclude group: 'androidx.core', module: 'core'
}

For more informations about the usage of the libraries, please take a look at our wiki.

Using with libraries that depend on AndroidX

If you need to use a library that requires one or more stock androidx module, you have to exclude those specific dependencies to avoid build errors, like this:

implementation("com.org.group:library:1.0.0") {
    exclude group: 'androidx.swiperefreshlayout', module: 'swiperefreshlayout'
}

More info

Special thanks