CMSI 2022
Mobile Application Development
Spring 2023
-
Brightspace: Where you can access private content and check your grades
-
We will use
GitHub Classroom
to manage and submit assignments
-
Every now and then we may use
Socrative
to ask or answer questions as a class—my Socrative room is
DONDILMU
-
We continue to live in very fluid and dynamic circumstances—make sure to
follow
the university’s pandemic portal
for the latest news, updates, and policies—to which this class must, of
course, adhere
Assignments
-
Assignment 0208
Standalone mobile app
Setup
-
Use
Swift Playgrounds
to get started with the Swift programming language
-
Take the
Introducing SwiftUI tutorial
to completion (note the estimated time—this does fit the
expected workload between the start of class to the due date)
-
Follow the
Unifying your GitHub and Xcode repositories instructions
to merge the Xcode project with the GitHub Classroom repo
- Morph the tutorial code into your own “list of stuff” app
-
Assignment 0315
Generic API-backed mobile app
Setup
-
Download and install the
Postman desktop app
so that you can interact with APIs directly in order to get to know
them better without worrying about programming to them (yet)
-
Acquire your own
“APIdex”
for personal experimentation and exploration (it’s labeled as an
“assignment” in GitHub Classroom but it’s really just a private space
which demonstrates how to communicate with web services from within a
SwiftUI iOS app)
-
This Prezi provides an
overview of API-backed applications
-
The non-web page parts of
Dr. Toal’s Invoking Web APIs
page also lay some initial groundwork
-
Dr. Toal’s REST
page gets a little more technical and in-depth, if you’re interested
-
You will likely want to install and get to know
Postman
in order to explore APIs firsthand. They also offer a web version if
you prefer not to download anything but you’ll have to sign up for an
account
-
For SwiftUI specificity, this
Hacking with Swift tutorial
provides an introductory walkthrough. Once you’ve mastered that,
this one covers more sophisticated requests. Both pages are part of an
overall SwiftUI app tutorial
for developing something that interacts with a web service
-
Assignment 0412
Firebase-backed mobile app
Setup
-
Get going hands-on with
“BareBonesBlog”—another “assignment” in GitHub Classroom that is actually a sample
project from which you can start learning Firebase
-
Like the APIdex Giphy portion, BareBonesBlog does not work right out
of the box: to introduce you to Firebase, you will need to follow the
instructions in the README—to be walked through in class—in order to
get it up and running
-
The
Firebase website
is of course the authoritative site for all things Firebase
-
The non-web aspects of
Dr. Toal’s Firebase
page provides additional background and links
-
Firestore, which is one of the databases available for use with Firebase, is
an entire subsystem in itself. In addition to its main website, a
Getting to Know Cloud Firestore
YouTube playlist is available
-
Assignment 0503
Your own mobile app
Setup
-
Dr. Toal’s
Project Ideation
page adds structure to an otherwise open-ended process
Course Content and Useful Links
-
Run-on-device checklist:
- Have the right cable (typically USB to Lightning)
-
Have an Apple ID and tell Xcode in Preferences > Accounts
-
Upon connecting your device, it should appear in the device dropdown
and you should be able to run on it
-
Activate “Developer Mode” on your device in
Settings > Privacy & Security
-
You may need to do “one more thing:” visit your device’s
Settings > General > VPN & Device Management section to state
that you trust the app’s developer
-
One more “one more thing:” if you get an error message that complains
about the version of your iOS device, you can adjust the
deployment target of your project by clicking on the
uppermost node in the project tree (the one with your project name and
the blue app icon), going to the Info tab, clicking on the
PROJECT icon (again, the one with your project name and the
blue app icon), and choosing an iOS Deployment Target that is
the same as or lower than the version on your iOS device
-
Clean code notes
from Dr. Toal
-
Swift/SwiftUI development (to download and install)
-
git warmup/refresher:
This link gives you
a repository with notes and documentation about git and GitHub,
authored by GitHub. You can also use that repository to practice
git commands
-
Their phone, their rules:
iOS Human Interface Guidelines
-
Developer documentation and resources from the mother ship
-
Third-party iOS development resources—these are great supplements,
but just note that they may not be completely up to date. This stuff
changes fast, so be aware of when a resource got published
-
Stanford University was one of the first universities to offer formal
training in iOS (hey they’re Stanford), and
some of that content
is available publicly
-
Hacking with Swift
offers a range of tutorials and recipes for both learning and getting
specific things done
-
Kodeco
(formerly raywenderlich.com) hosts both free and subscription
content
-
Cocoa Dev Central
is likelier to be outdated than not, but there may still be some
focused tidbits here that will help