Mikansei
Mikansei copied to clipboard
Danbooru client for Android
🍊 Mikansei
Mikansei 未完成 (lit. unfinished) is a Danbooru client for Android. Made with Jetpack Compose 🚀.
Danbooru is an image board website for anime-style artworks with tagging system that makes organizing easier. You can easily browse your favorite characters or real artists here.
Screenshots
Note: the screenshots don't indicate the final product.
Features
- 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 the 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
- Saved searches
- Tags filtering/blacklisting
- Safe mode toggle
- Show deleted posts toggle
- Image detail size switch
- Account deactivation
Download
- Version: 1.0.0 (1.0.0)
- Updated at: 2024-06-16
- Download: Play Store (coming soon) • APK
- Changelogs: here
Tech Stacks
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)
- Serialized Navigation Extension (Navigation)
- Timber (Logger)
- Media3 ExoPlayer (Video Loading)
Resources Used
- API: Danbooru API
- Design Specs: Figma
- Design System: Noctiluca
- Icons: Material Symbols
Building
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
.
Notes:
By default it will use the ossDebug
build variant. The playRelease
build variant will bundle Firebase Crashlytics to the app. 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.
License
Copyright 2024 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.