A portfolio app based on MVVM architecture, custom views and Firebase.
-
Architecture: MVVM (Model-View-ViewModel)
-
Networking: Retrofit2, OkHttp3 & Moshi
-
Database: Room
-
Dependency Injection: Hilt
-
Image Loading: Glide
-
Jetpack Components: Lifecycle, ViewModel, DataBinding, DataStore
-
Firebase Integration: Utilizing Firebase as a REST API
-
LeakCanary: A memory leak detection library
-
Custom Views:
- WavesTextView reproduces the animation effect used on Midjourney's landing page.
- TextShufflerView (View and Jetpack Compose) Inspired by TypeShuffleAnimation.
- BottomNavigationBar mixes TextShufflerView with some animated drawable effects.
- ImagePiecesView Inspired by AnimatedImagePieces.
- AsciiImage (View and Jetpack Compose) based on Shadertoy with some modifications.
The app supports multiple languages. To add data for each language, use the provided python code that would insert the data for each language and uploads the assets into Firebase (check the language_key.json.template file to see what you need to fill) each language must be in a json file in the lang directory, the admin directory would contain the serviceAccountKey for Firebase and a config.py containing DATABASE_URL and STORAGE_BUCKET
reproduces the animation effect used on Midjourney's landing page.
Can be used in XML and a version for Jetpack Compose Inspired by TypeShuffleAnimation.
a custom bottom navigation bar Mixing TextShufflerView with some animated drawable effect
Inspired by AnimatedImagePieces.
Can be used in XML and a version for Jetpack Compose based on Shadertoy with some modifications.