-
Notifications
You must be signed in to change notification settings - Fork 79
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Revert "Tutorial: Chapter 1.2 - Implementing MVVM (#97)"
This reverts commit 04fa15a.
- Loading branch information
1 parent
04fa15a
commit b2950b2
Showing
351 changed files
with
3,554 additions
and
8,402 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
<!-- PROJECT SHIELDS --> | ||
[![Xcode][xcode-shield]][xcode-url] | ||
[![Swift][swift-shield]][swift-url] | ||
[![Contributors][contributors-shield]][contributors-url] | ||
[![Forks][forks-shield]][forks-url] | ||
[![Stargazers][stars-shield]][stars-url] | ||
[![Issues][issues-shield]][issues-url] | ||
[![MIT License][license-shield]][license-url] | ||
|
||
<!-- PROJECT LOGO --> | ||
<br /> | ||
<p align="center"> | ||
<a href="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/peterfriese/MakeItSo"> | ||
<img src="assets/hero/repo-hero.png" alt="Logo"> | ||
</a> | ||
|
||
<h1 align="center">Make It So - Again!</h1> | ||
|
||
<p align="center"> | ||
This is the source code for <i>Make It So</i>, a sample app that demonstrates how to use Firebase in a SwiftUI app that runs on all (most) of Apple's platforms. | ||
<br /> | ||
<a href="https://twitter.com/peterfriese/status/1453467058302291975"><strong>Follow along on Twitter as I code the app »</strong></a> | ||
<br /> | ||
<br /> | ||
<a href="https://github.com/peterfriese/MakeItSo/issues">Report Bug</a> | ||
· | ||
<a href="https://github.com/peterfriese/MakeItSo/issues">Request Feature</a> | ||
</p> | ||
</p> | ||
|
||
# Getting started | ||
|
||
This app requires a Firebase project, which you can create at no cost using the [Firebase Console](https://console.firebase.google.com). Here are the steps. For a more detailed description of how to add Firebase to an iOS project, refer to the [official Firebase docs for iOS and Apple's other platforms](https://firebase.google.com/docs/ios/setup). | ||
|
||
1. Clone the repo | ||
1. Create a Firebase project | ||
2. Create a Cloud Firestore database in the new Firebase project ([link](https://console.firebase.google.com/project/_/firestore/)) | ||
2. Enable Anonymous Authentication ([link](https://console.firebase.google.com/project/_/authentication/providers)) | ||
1. Register the iOS app in the Firebase project | ||
1. Download the `GoogleService-Info.plist` file to the `code/frontend/Configuration/Firebase/Development` folder | ||
1. Open `MakeItSo.xcodeproj` in Xcode | ||
1. Select the `MakeItSo (iOS) DEV` target | ||
1. Run the app | ||
|
||
# About the project | ||
|
||
|
||
<!-- LICENSE --> | ||
## License | ||
|
||
See [LICENSE](LICENSE) | ||
|
||
<!-- Disclaimer --> | ||
## Disclaimer | ||
|
||
This is not an official Google product. | ||
|
||
<!-- CONTACT --> | ||
## Contact | ||
Peter Friese - [@peterfriese](https://twitter.com/peterfriese) | ||
|
||
Project Link: [https://github.com/peterfriese/MakeItSo](https://github.com/peterfriese/MakeItSo) | ||
|
||
<!-- ACKNOWLEDGEMENTS --> | ||
|
||
## Acknowledgements | ||
|
||
The application icon is based on [Check](https://thenounproject.com/term/check/1905028/) by [Robert Won](https://thenounproject.com/robertwon/) from the [Noun Project](https://thenounproject.com/) | ||
|
||
<!-- MARKDOWN LINKS & IMAGES --> | ||
<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --> | ||
[xcode-shield]: https://img.shields.io/badge/xcode-v13.3.1-blue | ||
[xcode-url]: https://developer.apple.com/xcode/ | ||
|
||
[swift-shield]: https://img.shields.io/badge/swift-v5.5-%23fe4b2d | ||
[swift-url]: https://swift.org/ | ||
|
||
[contributors-shield]: https://img.shields.io/github/contributors/peterfriese/MakeItSo.svg?style=flat-square | ||
[contributors-url]: https://github.com/peterfriese/MakeItSo/graphs/contributors | ||
|
||
[forks-shield]: https://img.shields.io/github/forks/peterfriese/MakeItSo.svg?style=flat-square | ||
[forks-url]: https://github.com/peterfriese/MakeItSo/network/members | ||
|
||
[stars-shield]: https://img.shields.io/github/stars/peterfriese/MakeItSo.svg?style=flat-square | ||
[stars-url]: https://github.com/peterfriese/MakeItSo/stargazers | ||
|
||
[issues-shield]: https://img.shields.io/github/issues/peterfriese/MakeItSo.svg?style=flat-square | ||
[issues-url]: https://github.com/peterfriese/MakeItSo/issues | ||
|
||
[license-shield]: https://img.shields.io/github/license/peterfriese/MakeItSo.svg?style=flat-square | ||
[license-url]: https://github.com/peterfriese/MakeItSo/blob/master/LICENSE | ||
|
||
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=flat-square&logo=linkedin&colorB=555 | ||
[linkedin-url]: https://linkedin.com/in/peterfriese | ||
[product-screenshot]: assets/screenshot.png | ||
[product-demo]: assets/demo.gif | ||
[product-screenshot]: assets/screenshot.png "Screenshot of Make It So, a replication of the iOS Reminders app" |
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,176 @@ | ||
{ | ||
"info" : { | ||
"version" : 1, | ||
"author" : "Bakery" | ||
}, | ||
"images" : [ | ||
{ | ||
"idiom" : "iphone", | ||
"size" : "20x20", | ||
"scale" : "2x", | ||
"filename" : "notification40.png" | ||
}, | ||
{ | ||
"idiom" : "iphone", | ||
"size" : "20x20", | ||
"scale" : "3x", | ||
"filename" : "notification60.png" | ||
}, | ||
{ | ||
"idiom" : "iphone", | ||
"size" : "29x29", | ||
"scale" : "2x", | ||
"filename" : "settings58.png" | ||
}, | ||
{ | ||
"idiom" : "iphone", | ||
"size" : "29x29", | ||
"scale" : "3x", | ||
"filename" : "settings87.png" | ||
}, | ||
{ | ||
"idiom" : "iphone", | ||
"size" : "40x40", | ||
"scale" : "2x", | ||
"filename" : "spotlight80.png" | ||
}, | ||
{ | ||
"idiom" : "iphone", | ||
"size" : "40x40", | ||
"scale" : "3x", | ||
"filename" : "spotlight120.png" | ||
}, | ||
{ | ||
"idiom" : "iphone", | ||
"size" : "60x60", | ||
"scale" : "2x", | ||
"filename" : "iphone120.png" | ||
}, | ||
{ | ||
"idiom" : "iphone", | ||
"size" : "60x60", | ||
"scale" : "3x", | ||
"filename" : "iphone180.png" | ||
}, | ||
{ | ||
"idiom" : "ipad", | ||
"size" : "20x20", | ||
"scale" : "1x", | ||
"filename" : "ipadNotification20.png" | ||
}, | ||
{ | ||
"idiom" : "ipad", | ||
"size" : "20x20", | ||
"scale" : "2x", | ||
"filename" : "ipadNotification40.png" | ||
}, | ||
{ | ||
"idiom" : "ipad", | ||
"size" : "29x29", | ||
"scale" : "1x", | ||
"filename" : "ipadSettings29.png" | ||
}, | ||
{ | ||
"idiom" : "ipad", | ||
"size" : "29x29", | ||
"scale" : "2x", | ||
"filename" : "ipadSettings58.png" | ||
}, | ||
{ | ||
"idiom" : "ipad", | ||
"size" : "40x40", | ||
"scale" : "1x", | ||
"filename" : "ipadSpotlight40.png" | ||
}, | ||
{ | ||
"idiom" : "ipad", | ||
"size" : "40x40", | ||
"scale" : "2x", | ||
"filename" : "ipadSpotlight80.png" | ||
}, | ||
{ | ||
"idiom" : "ipad", | ||
"size" : "76x76", | ||
"scale" : "1x", | ||
"filename" : "ipad76.png" | ||
}, | ||
{ | ||
"idiom" : "ipad", | ||
"size" : "76x76", | ||
"scale" : "2x", | ||
"filename" : "ipad152.png" | ||
}, | ||
{ | ||
"idiom" : "ipad", | ||
"size" : "83.5x83.5", | ||
"scale" : "2x", | ||
"filename" : "ipadPro167.png" | ||
}, | ||
{ | ||
"idiom" : "ios-marketing", | ||
"size" : "1024x1024", | ||
"scale" : "1x", | ||
"filename" : "appstore1024.png" | ||
}, | ||
{ | ||
"idiom" : "mac", | ||
"size" : "16x16", | ||
"scale" : "1x", | ||
"filename" : "mac16.png" | ||
}, | ||
{ | ||
"idiom" : "mac", | ||
"size" : "16x16", | ||
"scale" : "2x", | ||
"filename" : "mac32.png" | ||
}, | ||
{ | ||
"idiom" : "mac", | ||
"size" : "32x32", | ||
"scale" : "1x", | ||
"filename" : "mac32.png" | ||
}, | ||
{ | ||
"idiom" : "mac", | ||
"size" : "32x32", | ||
"scale" : "2x", | ||
"filename" : "mac64.png" | ||
}, | ||
{ | ||
"idiom" : "mac", | ||
"size" : "128x128", | ||
"scale" : "1x", | ||
"filename" : "mac128.png" | ||
}, | ||
{ | ||
"idiom" : "mac", | ||
"size" : "128x128", | ||
"scale" : "2x", | ||
"filename" : "mac256.png" | ||
}, | ||
{ | ||
"idiom" : "mac", | ||
"size" : "256x256", | ||
"scale" : "1x", | ||
"filename" : "mac256.png" | ||
}, | ||
{ | ||
"idiom" : "mac", | ||
"size" : "256x256", | ||
"scale" : "2x", | ||
"filename" : "mac512.png" | ||
}, | ||
{ | ||
"idiom" : "mac", | ||
"size" : "512x512", | ||
"scale" : "1x", | ||
"filename" : "mac512.png" | ||
}, | ||
{ | ||
"idiom" : "mac", | ||
"size" : "512x512", | ||
"scale" : "2x", | ||
"filename" : "mac1024.png" | ||
} | ||
] | ||
} |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Diff not rendered.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
# Logs | ||
logs | ||
*.log | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
firebase-debug.log* | ||
|
||
# Firebase cache | ||
.firebase/ | ||
|
||
# Firebase config | ||
|
||
# Uncomment this if you'd like others to create their own Firebase project. | ||
# For a team working on the same Firebase project(s), it is recommended to leave | ||
# it commented so all members can deploy to the same project(s) in .firebaserc. | ||
# .firebaserc | ||
|
||
# Runtime data | ||
pids | ||
*.pid | ||
*.seed | ||
*.pid.lock | ||
|
||
# Directory for instrumented libs generated by jscoverage/JSCover | ||
lib-cov | ||
|
||
# Coverage directory used by tools like istanbul | ||
coverage | ||
|
||
# nyc test coverage | ||
.nyc_output | ||
|
||
# Grunt intermediate storage (http:https://gruntjs.com/creating-plugins#storing-task-files) | ||
.grunt | ||
|
||
# Bower dependency directory (https://bower.io/) | ||
bower_components | ||
|
||
# node-waf configuration | ||
.lock-wscript | ||
|
||
# Compiled binary addons (http:https://nodejs.org/api/addons.html) | ||
build/Release | ||
|
||
# Dependency directories | ||
node_modules/ | ||
|
||
# Optional npm cache directory | ||
.npm | ||
|
||
# Optional eslint cache | ||
.eslintcache | ||
|
||
# Optional REPL history | ||
.node_repl_history | ||
|
||
# Output of 'npm pack' | ||
*.tgz | ||
|
||
# Yarn Integrity file | ||
.yarn-integrity | ||
|
||
# dotenv environment variables file | ||
.env |
Empty file.
Empty file.
This file was deleted.
Oops, something went wrong.
5 changes: 0 additions & 5 deletions
5
...-building-a-simple-todo-list-ui/artwork/building-todo-ui-07-finale.cmproj/bookmarks.plist
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.