Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sgr-ksmt/FireTodo
Simple Todo Application using SwiftUI / Firebase / Redux.
https://github.com/sgr-ksmt/FireTodo
combine darkmode example firebase ios ios13 redux reswift swift swiftui todolist xcode11
Last synced: about 1 month ago
JSON representation
Simple Todo Application using SwiftUI / Firebase / Redux.
- Host: GitHub
- URL: https://github.com/sgr-ksmt/FireTodo
- Owner: sgr-ksmt
- License: mit
- Created: 2018-12-26T12:07:02.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-07-22T04:10:03.000Z (over 2 years ago)
- Last Synced: 2024-10-27T23:55:28.814Z (about 2 months ago)
- Topics: combine, darkmode, example, firebase, ios, ios13, redux, reswift, swift, swiftui, todolist, xcode11
- Language: Swift
- Homepage:
- Size: 725 KB
- Stars: 376
- Watchers: 15
- Forks: 53
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-swiftui - sgr-ksmt/FireTodo - Simple Todo Application using SwiftUI / Firebase / Redux. (Samples)
- fucking-open-source-ios-apps - FireTodo
README
---
![Swift](https://img.shields.io/badge/swift-5.1-orange.svg?style=for-the-badge)
![SwiftUI](https://img.shields.io/badge/use-swift_ui-orange.svg?style=for-the-badge)
![Firebase](https://img.shields.io/badge/firebase-6.9.0-orange.svg?style=for-the-badge)
![Xcode](https://img.shields.io/badge/Xcode-11.1_GM_Seed-blue.svg?style=for-the-badge)
[![Git Version](https://img.shields.io/github/release/sgr-ksmt/FireTodo.svg?style=for-the-badge)](https://github.com/sgr-ksmt/FireTodo/releases)
[![license](https://img.shields.io/github/license/sgr-ksmt/FireTodo.svg?style=for-the-badge)](https://github.com/sgr-ksmt/FireTodo/blob/master/LICENSE)Simple Todo Application using **SwiftUI**/**Firebase**/**Redux**/**Combine**.
| Light | _ | _ | _ |
| -------------------------- | -------------------------- | -------------------------- | -------------------------- |
| ![](docs/images/img1.png) | ![](docs/images/img2.png) | ![](docs/images/img3.png) | ![](docs/images/img4.png) |
| ![](docs/images/img5.png) | ![](docs/images/img6.png) | ![](docs/images/img7.png) | _ |
| Dark | _ | _ | _ |
| ![](docs/images/img8.png) | ![](docs/images/img9.png) | ![](docs/images/img10.png) | ![](docs/images/img11.png) |
| ![](docs/images/img12.png) | ![](docs/images/img13.png) | ![](docs/images/img14.png) | |## Feature
- Use SwiftUI fully.
- Use Firebase.
- Authentication
- Cloud Firestore
- Adopt Redux Architecture.
- Compatible with DarkMode.
- Adopt Context Menu for edit/delete task.
- Support iPad(Full Screen).## Setup an Run
- Clone this repository.
```sh
cd path/to/FireTodo
make # run install script.
open FireTodo.xcworkspace
```- Setup Firebase(See below.)
- After setup Firebase, you can run application!### Firebase
- Visit [console](https://console.firebase.google.com)
- Create Project. (Project name can be anything.)
- Setup Anonymous Authentication.
- Setup Firestore using test mode.(region can be anything. In my case, I chose asia-northeast-1)
- Setup `iOS Application` and download `GoogleService-Info.plist`.
- Bundle Identifier is same as project's Bundle Identifier.(e.g. `example.firetodo`)
- put `GoogleService-Info.plist` in `FireTodo/`## Dependencies
- [SwiftUI](https://developer.apple.com/xcode/swiftui/)
- [Firebase](https://firebase.google.com/docs)
- [ReSwift(for Redux architecture)](https://github.com/ReSwift/ReSwift)
- About Redux: https://redux.js.org/
- [FireSnapshot](https://github.com/sgr-ksmt/FireSnapshot): Firebase Cloud Firestore Model Framework with Codable.
- I'm developing it.## Todo
- [ ] Divide some views into Components.
- [ ] Edit user profile
- [ ] Use Combine Framework more.
- [ ] Put firestore.rules for improvement security.## Communication
- If you found a bug, open an issue.
- If you have a feature request, open an issue.
- If you want to contribute, submit a pull request.:muscle:## License
**FireTodo** is under MIT license. See the [LICENSE](LICENSE) file for more info.