Virginia Tech

Course Information

Course Description

Apple Watch
Apple Vision Pro
Apple TV
Mac Studio
Mac Pro
Mac mini
iOS iPadOS watchOS visionOS tvOS macOS macOS macOS macOS macOS

Xcode SwiftUI

Learn How to Develop Apps that Run on Apple Computers

As of February 2023, Apple has an active installed base of more than 2 billion computers including iPhone, iPad, iPod touch, Apple Watch, Apple TV, Mac laptop (MacBook), and Mac desktops (iMac, Mac Studio, Mac Pro, and Mac mini) in more than 175 countries.

The primary objective of this course is to teach how to provide software-based solutions to complex problems by using Apple mobile devices and Mac computers. The course employs the “Learning by Examples” pedagogy for teaching how to develop software applications for all Apple computers. In each class meeting, students develop a tutorial app hands-on using the iMac computers provided in the classroom or their own MacBook laptops. Hands-on step-by-step hypertext-based instructions are provided for more than 16 tutorial apps developed by the instructor in increasing size and complexity. A team of 3 students develops an app as their crowning achievement in the semester project to solve a complex problem. The course employs Xcode IDE, SwiftUI framework, and is taught entirely in Swift programming language, which is a modern programming language for iOS, iPadOS, macOS, watchOS, and tvOS app development. Students learn Swift gradually as part of hands-on development of tutorial apps.

Learning Objectives
  Having successfully completed this course, students will be able to:
  1. Provide software-based solutions to complex problems by using Apple mobile devices (iPhone, iPad, iPod Touch), Apple wearable computers (Apple Watch, Apple Vision Pro), and Mac laptop and desktop computers;
  2. Develop software applications to run on Apple mobile devices, Apple wearable computers, and Mac laptop and desktop computers using the Swift programming language with Xcode IDE and SwiftUI framework;
  3. Effectively employ object-oriented, procedural, and functional programming paradigms for software engineering; and
  4. Work on a mobile software development project with the title of Apple Mobile Software Engineer.
  • CS Major or CS Minor
  • A grade of C or better in CS2114: Software Design and Data Structures

Mac Computer Required:

  • The course requires a MacBook laptop or a Mac desktop computer running the latest version of macOS.
  • If you do not own a Mac computer, you will use:
    • the Mac computers in the classroom, and
    • an Apporto Mac computer remotely over the Internet under a web browser.

Apple Mobile Device Required:

  • You are required to have an iPhone or iPad to deploy your course apps to run on it.
  • See the list of iPhones and iPads acceptable for use in the course.
  • An iPhone or iPad is required for your hands-on learning. Some tutorial apps, assignment apps, and exam apps use geo-location determination, camera interfacing, and barcode scanning that cannot be tested on a laptop or desktop Mac computer under the Xcode Simulator and requires a mobile device.
  • Your iPhone or iPad will be registered under an Apple Developer Program as a test device so that you can deploy your apps to run on it.

Apple Developer Program Membership Required:

  • Instructions will be provided on how to sign up for a free Apple Developer Program so that you can deploy your course apps to run on your iPhone or iPad.
  • Classroom:
    • Torgersen Hall 1010 (32 Mac computers)
  • Availability: Check Room Schedule Lookup to find out when the classroom is available for your use.

  • The Xcode IDE is installed on classroom Mac computers under the course account CS3714.
  • Students can access the classroom Macs anytime by swiping their VT ID cards 24/7 if they are not being used for a course or for cleaning.
  • If a student owns a Mac laptop, s/he must bring it to each class meeting for use in hands-on learning.
Tentative Chronological Outline
Students Only