Virginia Tech

Course Information

Course Description

iPhone
Handheld
Computer
iPad
Handheld
Computer
 Watch
Wrist
Computer
 Vision Pro
Spatial
Computer
 TV
TV
Computer
MacBook
Laptop
Computer
iMac
Desktop
Computer
Mac Studio
Desktop
Computer
Mac Pro
Desktop
Computer
Mac mini
Desktop/Server
Computer
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, 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), 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.
Prerequisites
 
  • CS Major or CS Minor
  • A grade of C or better in CS2114: Software Design and Data Structures
Materials
 

Mac Computer:

  • 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 (Torgersen 1010), and
    • in the Computer Science Undergraduate Learning Center (Torgersen 1070).

Apple Mobile Device:

  • You are strongly recommended to have an iPhone or iPad to deploy your course apps to run on it for your learning.
  • See the list of iPhones, iPads, and Macs 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.
Facilities
 
  • Classroom:
    • Torgersen Hall 1010 (32 Mac computers)
  • Computer Science Undergraduate Learning Center:
    • Torgersen Hall 1070 (Mac computers)

  • The Xcode IDE and SF Symbols app are installed on classroom and learning center Mac computers for your use.
  • Students can access the Mac computers anytime by swiping their VT ID card 24/7.
  • If a student owns a Mac laptop, s/he must bring it to each class meeting for use in hands-on learning.