wak-plus
wak-plus copied to clipboard
[안드로이드, 마이리얼트립 합격] 🕊 Wak+ is an application that helps you to conveniently access to WAKTAVERSE member's SNS content such as YouTube, Twitch, Instagram, and Twitter in one app.
Wak+
Wak+ is an application that helps you to conveniently access to WAKTAVERSE member's SNS content such as YouTube, Twitch, Instagram, and Twitter in one app.
Tech stack & Open-source libraries
Android
- Minimum SDK level 23
- Kotlin based, Coroutines + Flow for asynchronous.
- JetPack
- Lifecycle - Create a UI that automatically responds to lifecycle events.
- LiveData - Build data objects that notify views when the underlying database changes.
- ViewModel - Store UI related data that isn't destroyed on app rotations.
- Room - Constructs Database by providing an abstraction layer over SQLite to allow fluent database access.
-
DataBinding - Useful to bind data directly through layouts xml file, so no
findViewById()
anymore. - Navigation - Handles navigating between your app's destinations.
- DataStore - Data storage solution that uses Kotlin coroutines and Flow to store data asynchronously, consistently, and transactionally.
- Hilt - Dependency injection.
- Coil - An image loading library for Android backed by Kotlin Coroutines.
- Retrofit2 & OkHttp3 - Construct the REST APIs.
Caching API Data (Currently Updating)
- Node.js with TypeScript
-
Firebase
- Cloud Firestore
- Cloud Functions
- WebSub
- Youtube - Google Pubsubhubbub
- Twitch - EventSub
Features
SNS & Streamer Selection
Switch from Twitch to Youtube Content | Show Content from the Selected Streamer | Show Content from All Streamers |
---|---|---|
![]() |
![]() |
![]() |
Themes
Multiple Color Themes | Change Dark Themes by System Default | Dark / Light / System Default Options |
---|---|---|
![]() |
![]() |
![]() |
Favorites
Add or Remove Content from Favorites | Filter by SNS |
---|---|
![]() |
![]() |
Network Connectivity
Network Disconnected | Network Reconnected |
---|---|
![]() |
![]() |
Architecture
Wak+ is based on the MVVM architecture and the Repository pattern.
Currently, data is obtained through direct API calls from web services such as Youtube and Twitch.
However, this method has an API limitation problem, so the method of caching in Firebase Cloud Firestore will be applied.
Design in Figma
MAD Score
License
Designed and developed by 2022 Junseop Lim
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.