Skip to content

Commit 4488cbd

Browse files
committed
feat: migrate library to Kotlin (Roadmap #1)
- Converted all Java files in shinebuttonlib to Kotlin - Updated build configuration to support Kotlin - Improved null safety and idiomatic code - Bumped version to 0.3.0 - Updated README.md roadmap
1 parent 92744a1 commit 4488cbd

17 files changed

Lines changed: 1004 additions & 1053 deletions

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## [0.3.0] - 2026-06-13
6+
7+
### Added
8+
- **Kotlin Migration**: Fully converted the library module (`shinebuttonlib`) to Kotlin.
9+
- Improved null safety and idiomatic Kotlin code.
10+
11+
### Changed
12+
- Updated library version to 0.3.0.
13+
514
## [0.2.1] - 2026-06-13
615

716
### Added

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Add the dependency to your `app/build.gradle` file:
2626

2727
```gradle
2828
dependencies {
29-
implementation 'com.sackcentury:shinebutton:0.2.1'
29+
implementation 'com.sackcentury:shinebutton:0.3.0'
3030
}
3131
```
3232

@@ -36,7 +36,7 @@ dependencies {
3636
<dependency>
3737
<groupId>com.sackcentury</groupId>
3838
<artifactId>shinebutton</artifactId>
39-
<version>0.2.1</version>
39+
<version>0.3.0</version>
4040
<type>aar</type>
4141
</dependency>
4242
```
@@ -117,7 +117,7 @@ shineButton.setFixDialog(dialog);
117117

118118
We are continuously working to improve ShineButton. Here is what we have planned:
119119

120-
- [ ] **Kotlin Migration**: Fully convert the library to Kotlin for better safety and modern features.
120+
- [x] **Kotlin Migration**: Fully convert the library to Kotlin for better safety and modern features.
121121
- [ ] **Jetpack Compose**: Provide a native Composable version of ShineButton.
122122
- [ ] **Vector Support**: Allow using `VectorDrawable` as shape masks.
123123
- [ ] **Custom Animators**: Support for custom easing and path-based animations.

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ buildscript {
1212
}
1313
dependencies {
1414
classpath 'com.android.tools.build:gradle:7.4.2'
15+
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.20"
1516

1617
// NOTE: Do not place your application dependencies here; they belong
1718
// in the individual module build.gradle files

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
1818
# org.gradle.parallel=true
1919
org.gradle.jvmargs=-Xmx1536M
20-
VERSION_NAME=0.2.1
21-
VERSION_CODE=11
20+
VERSION_NAME=0.3.0
21+
VERSION_CODE=12
2222
POM_GROUP_ID=com.sackcentury
2323
POM_DESCRIPTION=This is a UI lib for Android. Effects like shining.
2424
POM_URL=https://github.com/ChadCSong/ShineButton

shinebuttonlib/build.gradle

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
apply plugin: 'com.android.library'
2+
apply plugin: 'kotlin-android'
23

34
android {
45
namespace "com.sackcentury.shinebuttonlib"
@@ -7,8 +8,8 @@ android {
78
defaultConfig {
89
minSdkVersion 14
910
targetSdkVersion 34
10-
versionCode 11
11-
versionName "0.2.1"
11+
versionCode 12
12+
versionName "0.3.0"
1213

1314
}
1415
compileOptions {
@@ -25,6 +26,7 @@ android {
2526

2627
dependencies {
2728
implementation fileTree(dir: 'libs', include: ['*.jar'])
29+
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.7.20"
2830
testImplementation 'junit:junit:4.13.2'
2931
implementation 'androidx.appcompat:appcompat:1.6.1'
3032
implementation 'com.github.MasayukiSuda:EasingInterpolator:v1.3.2'

shinebuttonlib/src/main/java/com/sackcentury/shinebuttonlib/PorterImageView.java

Lines changed: 0 additions & 161 deletions
This file was deleted.

0 commit comments

Comments
 (0)