Mikansei ๆชๅฎๆ (lit. unfinished) is a Danbooru client for Android. Made with Jetpack Compose ๐.
The name is inspired from my favorite vocaloid producer, Orangestar's Japanese name version (่ๆๆ, which is read mikansei).
This is a complete rewrite version of my old project Mejiboard, that aims on delivering a great Danbooru browsing experience on Android.
Danbooru [dahn-boh-ruh] (noun):
- (on donmai.us) A repository of high-quality anime-style art and doujinshi.
- A taggable imageboard, with sophisticated features for keeping, organizing and finding pictures.
- (Japanese) Corrugated cardboard box.
(taken from the website's home wiki)
Note: the screenshots don't indicate the final product.
- Sync and switch multiple Danbooru accounts with ease
- System-based theme with dynamic colors support and 3 themes available (light, dark & black)
- Optimized for one-handed operation
- Image viewer with zoom, pan & gestures support
- Video player with controls & gestures support
- Download and share posts
- DNS over HTTPS enabled by default
- Using latest Android tech stacks
Features that are currently supported and synced with Danbooru:
- View, favorite and vote posts
- Searching with autocomplete
- Favorites and favorite groups
- Tags filtering/blacklisting
- Safe mode toggle
- Show deleted posts toggle
- Image detail size switch
๐ง PROJECT IS UNDER DEVELOPMENT (~90% finished) ๐ง
The signed APK is currently not yet available, please build it yourself to test.
This project is trying to use the latest Android tech stacks.
- Language: Kotlin
- Architecture: Android App Architecture
- User Interface: Jetpack Compose
- Concurrency: Coroutines & Flow
- Dependency Injection: Koin
- Local Database: Room
- Networking: OkHttp & Retrofit
- Image Loading: Coil & TouchImageView
- Others:
- Kotlinx.Serialization (Serializer)
- Accompanist (Jetpack Compose Extensions)
- Safer Navigation Compose (Navigation)
- Timber (Logger)
- Media3 ExoPlayer (Video Loading)
- API: Danbooru API
- Design Specs: Figma
- Design System: Noctiluca
- Icons: Material Symbols
To build this project, you need the latest stable of Android Studio.
- Clone the project and open in Android Studio.
- Sync project with Gradle then Run 'app'.
Note:
The playRelease
build variant will bundle Firebase Crashlytics to the app. By default it
will use the ossDebug
build variant. The rest of the build variants won't bundle Firebase at all.
To use the playRelease
build variant, first you need to create a Firebase Android app with
com.uragiristereo.mikansei
as the package name then store the google-services.json
file in the
root of app
module.
Copyright 2023 Agung Watanabe
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 at
http://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.