Hi, Oclemy here. Talk to me: email@example.com
Largest Stars App – MVVM Firebase Images Text Upload/Download/Update/Delete
This is a Firebase Cloud Storage + Firebase Realtime Database project. You learn how to Upload/Download/Update/Delete/Paginate/Search data, in the process creating a full app. In this case we are creating a Largest Stars App but you can be creative and modify it based on your own idea. This is easy as even though this is a full app, it’s designed to be used as atemplate for creating other projects. Alot of care has thus been taken while designing the code and we chose to use the Model View ViewModel pattern recently added to android development by Google.
By using Clean Architecture, we’ve made this project easy to follow and understand and extend. The code is high quality and tested against common errors and therefore will not crash easily. When an operation is being performed, for example uploading data to Firebase, a progress card is shown which shows you exactly the operation currently ongoing. If an error is raised, the error is displayed in the card. Because of this you can easily understand what the app is doing even without looking at the code.
Do you want the perfect project to learn how to work with Firebase Cloud Storage + Firebase Realtime Database? That is the project to perform CRUD on both images and text. Do you want to learn Firebase using Clean Architecture, using Model View ViewModel pattern? Do you want a well tested project you can modify then use to create your own app? Well then this project is for you.
Here are the things this project does:
- User can Upload Images and text. Images get stored in Firebase Cloud Storage while Text in Firebase realtime database. Image URL also gets stored in cloud storage.
- When user navigates over to Listings screen, data is automatically downloaded from Firebase realtime database. If there is no internet then an message is shown to the user.
- That data is automatically paged/paginated at the Firebase side. Thus it gets downloaded quickly as we are loading only a small amount. However as user scrolls the recyclerview, the next page is automatically fetched. When there is no more data then we inform the user.
- The fetched images are shown in a beautiful carousel/slider on top of our recyclerview. User can swipe those images or leave them to be autoswiped with beautiful animations being applied.
- When user clicks a single cardview,we automatically navigate over to the detail screen. As we move to the next activity we apply activity transition animations. In the detail activity we simply render the details in a beautiful dark screen.
- When user clicks on the edit floating action button we slide over to the editing screen. Here the user can update our data. The user can re-select a new image and and or change the text then click update. If the user did select a new image, we will remove the previous image from Firebase Cloud storage then replace it with the new uploaded image, then save the new image url alongside the updated text in Firebase realtime database.
- When the user clicks delete we delete the image from Firebase cloud storage and the text from firebase realtime database.
- We have a dashboard screen which is like the home screen. Here the user can navigate over to the CRUD screen, the listings screen, the About Us screen or exit the app.