An open API service indexing awesome lists of open source software.

https://github.com/mownier/photostream

A photo sharing iOS app that uses Firebase and is being driven by VIPER architecture.
https://github.com/mownier/photostream

firebase ios swift3 viper-architecture

Last synced: about 1 month ago
JSON representation

A photo sharing iOS app that uses Firebase and is being driven by VIPER architecture.

Awesome Lists containing this project

README

        

# Photostream

A photo sharing app that uses Firebase.

- [x] Swift 4
- [x] iOS 11

There is a `swift3` branch for those who want to stay on Swift 3.

## How To Make It Work?

- Clone this repo or download source code.
- Do `$ pod install`. (_install cocoapods first if not installed_)
- Create a new project in your Firebase console.
- Set the database rules to:
```
{
"rules": {
".read": "auth != null",
".write": "auth != null",
"users": {
"$user_id": {
".indexOn": ["username", "id", "email"]
},
".indexOn": ["username", "id", "email"]
}
}
}
```
- Enable `Email/Password` sign-in method.
- Download the `GoogleService-Info.plist` file.
- Put the file into the root of the project folder.
- Open `Photostream.xcworkspace` and add the file into the `Photostream` project.
- Modify the bundle identifier and display name.
- There you go, build and run the app. :)

## Screenshots
||||
|---|---|---|
|![Login](https://raw.githubusercontent.com/mownier/photostream/master/Screenshots/Login.png)| ![Registration](https://raw.githubusercontent.com/mownier/photostream/master/Screenshots/Registration.png)| ![News Feed](https://raw.githubusercontent.com/mownier/photostream/master/Screenshots/News%20Feed.png)|
|![Profile Edit](https://raw.githubusercontent.com/mownier/photostream/master/Screenshots/Edit%20Profile.png)| ![Settings](https://raw.githubusercontent.com/mownier/photostream/master/Screenshots/Settings.png)| ![Photo Picker](https://raw.githubusercontent.com/mownier/photostream/master/Screenshots/Photo%20Picker.png)|
|![Photo Share](https://raw.githubusercontent.com/mownier/photostream/master/Screenshots/Photo%20Share.png)| ![Post Upload](https://raw.githubusercontent.com/mownier/photostream/master/Screenshots/Post%20Upload.png)| ![Comment Controller](https://raw.githubusercontent.com/mownier/photostream/master/Screenshots/Comment%20Controller.png)|

## Remarks
This app is built because there is no complicated iOS app (_social media-ish_) out there that uses the VIPER arthictecture. A todo list app is not enough to see what the VIPER architecture can really do. If you have comments or improvements about it, just file an issue and let us discuss about that. Also, this will somewhat give a leverage to those who are still into Massive View Controller (MVC) coding approach. Reading articles about VIPER architecture is not enough, putting it into practice makes it more interesting and exciting. Happy Coding!

## License

MIT License