A really simple Image gallery app
Cocoa-pods is used for dependency management. Pods directory is checked on the repository. This way, project can be run immediately after cloning and avoid possible compatibility conflicts for a resource installed with different version.
- Firebase/Storage: For file storage
- Firebase/Auth: For user authentication
- Firebase/Core: Required by Firestore
- Firebase/Firestore: For database
- Kingfisher: For asynchronous image download and caching
- IHProgressHUD: For activity indication and operation result feedback
MVVM pattern allow a better testability and layer abstraction for reusability. The Bindable
class enable to bind UI updates depending on the data model changes or process status.
Removing Main.storyboard
and creating single xib
files for views avoid massive storyboard files that can carry version conflicts. Also, it can benefit navigation abstraction and view reusability.
Using a NavigatorProtocol
allows to create custom Navigators to handle controllers presentation, animation, and routing. Multiple Navigators could be created to work on each scope of the app (Authentication, Publications, etc.)
Gallery Files index is stored on Cloud Firestore.
Gallery Files are stored on Cloud Storage.
- Clone this repository
- Go to Firebase Console and Create a project. Enable Storage, Cloud Firestore and Email Authentication
- Configure the Firebase Project settings with your Bundle identifier and download the
GoogleService-Info.plist
file - Open
SimpleGallery.xcworkspace
and add yourGoogleService-Info.plist
file to the XCode project - Build
- UI Tests
- Unit Tests
- Pick image from device Camera
- Image detail controller
- Better UI
- Localization Manager
- User Registration
- Session permission for file access
- Thumbnail creation with Firebase Functions