CMSI 2022
Mobile Application Development
Spring 2022
- 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 0210 Standalone mobile app Setup
-
Assignment 0310
extended to 0314
Generic API-backed mobile app
Setup
- 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 0405
extended to 0411
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
- Unlike APIdex, 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 0505
Your own mobile app
Setup
- Dr. Toal’s Project Ideation page adds structure to an otherwise open-ended process
- Beyond this course: if you remain interested in iOS mobile app development, strongly consider connecting to WWDC 2022 from June 6–10, 2022
- Student opportunity: WWDC 2022 includes the Swift Student Challenge—yes, the challenge requires a Swift Playgrounds app and the contest deadline overlaps with our final app assignment, so you will need to either work on a separate project at the same time or come up with a project that fulfills both the challenge and assignment requirements…still, may be worth it, right?
Course Content and Useful Links
- Clean code notes from Dr. Toal
-
Swift/SwiftUI development (to download and install)
- Swift Playgrounds
- Xcode
- For pure Swift language practice on a web browser, replit has you covered
- 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
- Swift programming language
- SwiftUI tutorials
- SwiftUI documentation
- Special topics and interests: Videos, videos, and more videos on all kinds of iOS dev things
-
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
- 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
(watch this space, more to come)