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 Inspired by TypeShuffleAnimation.
- BottomNavigationBar mixes TextShufflerView with some animated drawable effects.
- ImagePiecesView Inspired by AnimatedImagePieces.
- GLImageView 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.
Inspired by TypeShuffleAnimation.
a custom bottom navigation bar Mixing TextShufflerView with some animated drawable effect
Inspired by AnimatedImagePieces.
Based on Shadertoy with some modifications.