CMSI 2022

Mobile Application Development

Spring 2024

This page is maintained as an archival record of the course shown above, and as such, some links on this page may no longer be valid nor accessible. They are kept here as a record of the resources that were available at the time of the course offering.
  • 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


  • Assignment 0131 Standalone mobile app Setup
    1. Use the official Swift Tour to get started with the Swift programming language
    2. 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)
    3. Follow the Unifying your GitHub and Xcode repositories instructions to merge the Xcode project with the GitHub Classroom repo
    4. Morph the tutorial code into your own “list of stuff” app
    Student opportunity: If you’re a quick study, check out the Swift Student Challenge—yes, the challenge requires a Swift Playgrounds app and the contest deadline is pretty darned early in the semester, so you will need to get ahead of things pretty quickly…still, may be worth it, right?
  • Assignment 0221 Generic API-backed mobile app Setup
  • Assignment 0325 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 0430 Your own mobile app Setup
    • Dr. Toal’s Project Ideation page adds structure to an otherwise open-ended process
    • Review & renew! A new set of Swift development tutorials has been released—perfect timing to gear up for this last app of the semester
    • Beyond this course: if you remain interested in iOS mobile app development, strongly consider connecting to WWDC 2024 from June 10–14, 2024

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
    • A great resource for people who already know another programming language (you!) and would like to pick up Swift: A Swift Tour—this pairs perfectly with the next item…
    • For pure Swift language practice on a web browser, replit has you covered
    • And finally, where all the action ultimately happens: Xcode
  • 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 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