The project we developed with the help of my mentor Alaa Eddin Albarghoth during my internship.
This project represents a mobile cloud based gallery application.
Mentor: Alaa Eddin Albarghoth
Mentee: Mehmet Emin Ergenç
Of course, I am grateful to my mentor Alaa Eddin Albarghoth and the entire Appcent team.
Firebase, Cloud Firestore, Firebase Realtime Database, Firebase Storage, Firebase Authentication
Appcent Mentor Buddy Task Document — By Alaa Eddin Albarghoth
Clone the project
git clone https://github.com/mergencdev/AppcentMentorBuddy
Open in Android Studio and run.
-
Create a Tabbed Application:
Tab 1: (Feed) 1. Show news feed in a grid of 2 columns (grid item should contain image, title and description). 2. A button to switch between fixed grid size and automatic height based on the image's aspect ratio. Note: Please refer to the following images for a better understanding of fixed and automatic grid sizing 3. Cache all the images into Disk after downloading to be used offline. 4. Make a custom search bar that looks like the following: Note: don't forget to show/hide the progress loader in the search bar. 5. Tap on the camera icon to take a picture from the camera and insert it into the grid. Note: Once you add the item to the grid, show a local system notification. 6. Long press gestures on the grid item rearrange the positions of the item. 7. Tap on the grid item to delete with a confirmation bottom sheet. 8. If there are no items in the grid, show a view like the following: 9. Share button on the grid item to share the image to WhatsApp, Facebook, etc. 10. Add a timer to check every 10 minutes; if there are more than ten feeds, remove all the extras. 11. All the deleted feeds should go into Tab 2 as a list. Tab 2: (Trash) 1. A table view is displaying all the deleted feeds with the date and time of deletion. 2. Add the 'swipe to delete' action to delete the feed permanently.
-
Instructions for the test:
1. Follow MVVM architecture and use Kotlin language. 2. Ensure the code is clean, understandable with comments wherever required, reusable, and bugfree. 3. You can use any third-party libraries or APIs to get dummy images or add a JSON file with image URLs in the project
https://developer.android.com/topic/libraries/view-binding
https://developer.android.com/guide/navigation/navigation-getting-started#kts
https://developer.android.com/guide/topics/ui/layout/cardview
https://github.com/hdodenhof/CircleImageView
https://stackoverflow.com/questions/40057798/firebase-token-authentication-error
https://firebase.google.com/docs/auth/android/custom-auth
https://firebase.google.com/docs/storage/android/upload-files#kotlin+ktx
https://stackoverflow.com/questions/49793203/firebase-storage-error-error-getting-token
https://developer.android.com/topic/libraries/view-binding#kotlin
https://www.geeksforgeeks.org/view-binding-with-fragments-in-android-jetpack/
https://www.geeksforgeeks.org/view-binding-with-fragments-in-android-jetpack/
https://square.github.io/picasso/
https://github.com/bumptech/glide
https://stackoverflow.com/questions/51344714/how-to-create-option-menu-in-fragment/51344762
https://github.com/MikeOrtiz/TouchImageView
https://www.tutorialspoint.com/how-to-set-dialog-to-show-with-full-screen-in-android-using-kotlin
https://developer.android.com/guide/topics/ui/dialogs#AlertDialog
https://developer.android.com/training/sharing/send
https://developer.android.com/training/notify-user/build-notification
https://firebase.google.com/docs/firestore/query-data/get-data#kotlin+ktx_4
https://firebase.google.com/docs/firestore/manage-data/delete-data#kotlin+ktx_2
https://stackoverflow.com/questions/54144543/firestore-google-cloud-timestamp-parsing?rq=1
https://developer.android.com/studio/write/vector-asset-studio#svg
https://developer.android.com/training/dependency-injection/hilt-android#groovy
Hex |
---|
#1E2C3F |
#FF7A00 |
#BFC0C2 |
#D5D5D5 |
If you want to support me or give any feedback, please contact me at [email protected].