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.
- Runtime Permissions with Dexter.