https://github.com/mori-atsushi/katalog
A UI Catalog Library made with Jetpack Compose
https://github.com/mori-atsushi/katalog
android jetpack-compose kotlin
Last synced: about 1 month ago
JSON representation
A UI Catalog Library made with Jetpack Compose
- Host: GitHub
- URL: https://github.com/mori-atsushi/katalog
- Owner: mori-atsushi
- License: apache-2.0
- Created: 2021-06-22T12:52:59.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-05-14T17:54:00.000Z (12 months ago)
- Last Synced: 2024-05-15T13:57:55.352Z (12 months ago)
- Topics: android, jetpack-compose, kotlin
- Language: Kotlin
- Homepage: https://mori-atsushi.github.io/katalog
- Size: 3.44 MB
- Stars: 155
- Watchers: 4
- Forks: 6
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Katalog
A UI Catalog Library made with Jetpack Compose
## Features
* It is made with [Jetpack Compose](https://developer.android.com/jetpack/compose) and you can preview Composable.
* You can easily register and group UI components using the `DSL`.
* It supports [Android View](https://developer.android.com/reference/android/view/View), [DataBinding](https://developer.android.com/topic/libraries/data-binding), [ViewBinding](https://developer.android.com/topic/libraries/view-binding) and [Fragment](https://developer.android.com/guide/components/fragments).
⚠ Migration to 1.2.0
Please update the dependency from `jp.co.cyberagent.katalog` to `com.moriatsushi.katalog` as follows.
```diff
dependencies {
- implementation("jp.co.cyberagent.katalog:katalog:1.0.2")
+ implementation("com.moriatsushi.katalog:katalog:1.2.0")
}
```Also, please fix the imports from `jp.co.cyberagent.katalog` to `com.moriatsushi.katalog` as follows.
```diff
package com.moriatsushi.katalog.androidsampleimport android.app.Application
- import jp.co.cyberagent.katalog.registerKatalog
+ import com.moriatsushi.katalog.registerKatalogclass SampleApp : Application() {
override fun onCreate() {
super.onCreate()
registerKatalog(
title = "My App Catalog",
) {
compose("UI Component") {
Text(text = "Hello, World")
}
}
}
}
```## Getting Started
### step1: Add the dependencyAdd Maven Central repository to your `build.gradle`.
```kotlin
repositories {
mavenCentral()
}
```Add the package dependencies to your `build.gradle`.
```kotlin
dependencies {
implementation("com.moriatsushi.katalog:katalog:1.2.2")
}
```### step2: Register the UI component
Just run the `registerKatalog` function in your application.
To register a `Composable`, use the `compose` function.```kotlin
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()registerKatalog(
title = "My App Catalog"
) {
compose("UI Component") {
Text(text = "Hello, World")
}
}
}
}
```You can use the `group` function to group components.
```kotlin
registerKatalog(
title = "My App Catalog"
) {
group("Group 1") {
compose("UI Component") {
/* ... */
}
}group("Group 2") {
/* ... */
}
}
```The `group` can also be assigned to a variable.
```kotlin
val group1 = group("Group 1") {
/* ... */
}
val group2 = group("Group 2") {
/* ... */
}
registerKatalog {
title = "My App Catalog"
group(group1, group2)
}
```### step3: Start Catalog Activity
Start `KatalogActivity` from your debug menu.
```kotlin
KatalogActivity.start(activity)
```### You want to know more?
Please check the [Full Documents](https://mori-atsushi.github.io/katalog).## Ideas
* Search function.
* Combine with Screenshot Test.
* Provide some Addons.
* Support [Compose Multiplatform](https://www.jetbrains.com/lp/compose-mpp).## License
```
Copyright 2021 CybeAgent, Inc.Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```