The primary goal of this project is to to familiarize yourself with the environment and
the language. All in this class will be written in Swift 5.1, using XCode 11 as your
friendly development environment. *Errors resulting from development in different
environments still result in loss of points.* More importantly, `SwiftUI` will not work
on anything before Mojave.
Specifically, you will do the following:
1. create a standard single-view app, "*assign1*" that does nothing (other than
compile and show a blank screen), but does include a model of our app: "Triples".
In the process you will obviously learn quite a bit about the `XCode` environment, about
unit tests in the context of Swift applications, and about defining type extensions.
## Using git
We will use [*git*](https://git-scm.com/doc)([cheat sheet](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=2ahUKEwi_uaemsqXgAhVmzlkKHc-HCUkQFjABegQIAhAC&url=https%3A%2F%2Feducation.github.com%2Fgit-cheat-sheet-education.pdf&usg=AOvVaw2D3W2R0fwoOBi8YrhZYLFJ)) both to distribute starting files, for those projects that
have them (not `assign1`), and to submit the work that you create. Each of you will have had a single
gitlab repository create, e.g. `ios436spring2020/cmsc436-<dirid>` (but use your
directoryid, which is NOT a number). Clone this repository as follows:
1. log into gitlab and verify that you have the above repository
1. create and upload a public key as described below in "Upload Public Key". This will allow you to
access gitlab via `ssh`, which is much less kludgy/buggy than https.
1. In your terminal window, clone via `git clone git@gitlab.cs.umd.edu:ios436spring2020/cmsc436-<dirid>` (again, use *your*
dirid). **cd** into this directory.
-**Note** that if your repository is not found, or you don't have
permissions, it's because our script could not finish setting the
repository up until you had logged into gitlab.cs.umd.edu at least
once. Please do this at once, and then try again the next day. If it
still fail, email me directly w/ subject "436 repository".
2. Establish a new *upstream remote*: `git remote add upstream
git@gitlab.cs.umd.edu:keleher/cmsc436spring2020-starter.git` This remote
will be where you *pull* startup files from when each new project, or iteration of a
project, is made available (`git pull upstream master'). **You will not
need the upstream remote for this project, but set it up anyway.**
3. Verify your setup by executing `git remote -v`. You should see something
Submit by pushing your project to your 436 repository. **Check this** by visiting your
repository in a web browser at `https://gitlab.cs.umd.edu/ios436spring2020/cmsc436-<dirid>`
Each of the nine tests is worth 1 point. There is no partial credit.
# Notes
- Remember, frequently save your work on gitlab through the folloing. This is exactly the same sequence you will use with the final submit. We will download