Preamble
- Course Title: Mobile Application Development for iOS I (cs 190)
- CRN: 17728
- Credits: 3
- Prerequisites: There is no pre-requisite for this course
- Days: Monday and Wednesday
- Time: 9:55 – 11:10 am
- Room: Charles A Dana Hall, 302 (map )
- Dates: 17 January – 29 April 2024
- Professor: Roy Vanegas (pronounced “vuh-nay-gus”)
- Email: vanegas at hartford dot edu
- Phone: 860.768.5925
- Office: Charles A Dana Hall, 310B
- Office hours: I meet students via video conference on the following day (click here for details). Other times by appt.
- Tuesday: 11:00 am – 5:00 pm
Description
This course is a platform-specific, in-depth study of Apple’s open source Swift programming language, with the goal of learning how to develop applications for macos and ios, specifically iPhone, while learning core programming concepts and methodologies. Topics include collection types, control flow, functions, closures, enumerations, structures, classes, and error-handling. This course also teaches students how to create optimal digital-device user experiences (ux) through user interface (ui) design principles using color, layout, rhythm, balance, and typography. Prerequisite: None.
Learning Outcomes
Upon successful completion of this course, students will be able to...
- Develop iOS applications from discovery to the implementation stage;
- Identify and implement appropriate basic types and control flow into iOS applications;
- Build and deploy applications using Apple’s Xcode development environment for ios devices, such as iPhone;
- Create basic graphical user interfaces for mobile devices, such as iPhone;
- And, improve user interfaces in order to augment user experiences.
Software Requirements
Apple Developer Account
Although an Apple Developer Account is not classified as “software”, you’ll need one in order to download certain software, and also to release any ios apps you create on the Apple Store. If you have an Apple id, then you can simply log in to the Apple Developer website. If you don’t, you can create one from the log in page.
Xcode (Mac only)
Xcode is the development environment we’ll use for ios development. It’s 7.8gb in size, as of January 2023. If you’re running the latest version of macos, then you may simply download the latest version of Xcode from its website or from the Apple Store.
If, however, you’re running an older version of macos, then the download process is more involved. You’ll need to locate the version of macos, locate the correct version of Xcode for your version of macos, and, finally, download the version of Xcode from the Apple Developer website.
- Locate the version of macOS on your machine. Click the apple icon in the top left corner of your screen, then choose “About This Mac”. Note the name and numeric version of macos.
- Locate the version of Xcode you’ll need. Launch the App Store, search for “xcode”, then click “Xcode Developer Tools”, not the download icon. Locate the text “Version History”. Click it, then look for your macos version. For example, if you were running Big Sur (11.3), you’d find that 12.5.1 is the correct version of Xcode for Big Sur.
- Download Xcode from the Apple Developer website. Log in to your Apple Developer account. Under Program resources, choose Additional resources → Software Downloads, then, in the top right corner, choose More. Now search for your version of Xcode. For example, I’d search for “xcode 12.5.1”. Note: Do not download any release candidates.
Text Editor (Mac, Windows, and Linux)
The code you write will require a text editor. Although there are many on the market, such as Sublime Text (nagware), for example, vs Code (open source) is the only editor supported in class. Download the Linux, Windows, or macOS version from https://code.visualstudio.com/.
We now need to install the official Swift extension for vs Code, created by The Swift Server Work Group.
- Launch Code
- Bring up the Extension pane by typing the following: COMMAND + SHIFT + X
- Search for sswg.swift-lang
- Click “Install”
Rectangle (Mac only)
Writing software requires working with multiple windows. Rectangle makes working in a multi-window environment much easier. Download it here.
GitHub (Mac, Windows, and Linux)
All in-class examples, assignments, and help will be done via GitHub. Download the client for your computer here if you don’t feel comfortable with The Terminal.
Fonts (Mac, Windows, and Linux)
In addition to the stock issue, monospace/fixed-width fonts included with your os, here are a few more fonts to explore in your text editors:
Textbooks
The textbooks for our course are free and authored by Apple Education Specialists. They are only available in electronic format, not in print. You can read, highlight, and annotate the textbooks via the Apple Books application on a macos or ios device.
The Swift Programming Language covers all the major aspects of the Swift programming language in the first half of the book, with examples designed to be compiled and run from your command line interface, or cli. We’ll cover about half of the Swift language from the book.
Develop in Swift: Explorations covers the basics of creating apps for the iPhone, using a simulator, paying special attention to the design process, while extending on the important programing concepts covered in The Swift Programming Language.
The Swift Programming Language
Develop in Swift:
Explorations
Schedule
Important Notes
The University treats absences related to covid-19 as excused absences. Consequently, you’ll need to get notes from someone in class, as mentioned in the section of this syllabus marked Advice on Succeeding in Class. There will not be a streaming video option for anyone missing class.
Notable Dates
- Wednesday, 17 January 2024 (Week 1) — First day of classes
- Monday, 11 March, and Wednesday, 13 March 2024 (Week 9) — Spring recess — No class
- Tuesday, 2 April 2024 (Week 12) — Last day to change to pass/no pass, or vice versa; last day to withdraw with a grade of W
- Monday, 29 April 2024 (Week 16) — Last day of classes
Week | Class | Topics | Homework |
---|---|---|---|
1 |
Mon
|
||
Wed |
|
|
|
2 |
Mon
|
|
The Basics, pgs 55 – 62 |
Wed |
|
The Basics, pgs 76 – 100 |
|
3 |
Mon
|
|
Basic Operators, pgs 103 – 115 |
Wed |
|
Basic Operators, pgs 115 – 127 |
|
4 |
Mon
|
|
Strings and Characters, pgs 129 – 138 |
Wed |
|
Basic Operators, pgs 138 – 164 |
|
5 |
Mon
|
|
Collection Types, pgs 172 – 207 |
Wed |
|
Control Flow, pgs 208 – 257 |
|
6 |
Mon
|
|
Control Flow, pgs 258 – 264 Functions, pgs 265 – 279 |
Wed |
|
Functions, pgs 279 – 298 |
|
7 |
Mon
|
|
Closures, pgs 300 – 308 |
Wed |
|
Closures, pgs 308 – 332 |
|
8 |
Mon
|
|
Enumerations, pgs 336 – 353 |
Wed |
|
None
|
|
9 |
Mon
|
Spring recess
|
None
|
Wed |
Spring recess
|
None
|
|
10 |
Mon
|
|
Structures and Classes, pgs 354 – 361 |
Wed |
|
Structures and Classes, pgs 361 – 370 |
|
11 |
Mon
|
|
Properties, pgs 371 – 384 |
Wed |
|
Properties, pgs 385 – 409 |
|
12 |
Mon
|
|
Properties, pgs 409 – 418 Methods, pgs 419 – 422 |
Wed |
|
Methods, pgs 422 – 434 |
|
13 |
Mon
|
|
Build a PhotoFrame App, pgs 48 – 71 Build a QuestionBot App, pgs 138 – 150 |
Wed |
|
Building Apps: Color Picker, pgs 301 – 345 |
|
14 |
Mon
|
|
Building Apps: ChatBot, pgs 346 – 367 |
Wed |
|
Building Apps: Rock, Paper, Scissors, pgs 368 – 383 |
|
15 |
Mon
|
|
Building Apps: MemeMaker, pgs 384 – 399 |
Wed |
|
Work on final project
|
|
16 |
Mon
|
|
Enjoy your break!
|
Wed
|
Assignments
The assignments portion of your final grade consists of three homework-type assignments and one final project. (See the Grading Formula section to learn what percentage of your final grade each is worth.)
- Assignment I
- Assignment II
- Assignment III
- Final project
Grading Formula
Your grade for this course will be computed using the following formula:
- Assignments (45%)
- Assignment I — 15%
- Assignment II — 15%
- Assignment III — 15%
- Final project (45%)
- Participation (10%)
Class Policies
- Masks. I don’t require students to wear masks in class, per university policy dictated in spring 2022:
Effective immediately, masks are now optional in most University facilities and settings. They [masks] will continue to be required in the classroom or personal office spaces, unless otherwise specified by faculty members or staff.
And, of course, you’re welcome to wear a mask in class, should you feel more comfortable doing so. You may read more about the policy regarding face coverings here. - Consuming food in class. There is no eating inside our classroom, either during class or while on break. Eat before or after class. Drinks in covered containers, however, are allowed.
- Digital devices. Silence your mobile devices before class starts.
Academic Honesty
Cheating of any kind will not be tolerated in this course; make certain that all the work you submit is your own. Refresh your understanding of the college’s policy on academic honesty.
Students with Disabilities
Read about how The University of Hartford supports students with disabilities: https://www.hartford.edu/academics/academic-support/accessibility-services/default.aspx
Title IX and Sexual Assault
Sexual violence and other forms of sexual misconduct and harassment, including stalking and intimate partner violence, are prohibited under Title ix, federal and state law, and University of Hartford policy. Information on the University’s policies against sexual violence can be found at https://www.hartford.edu/about/policies/title-ix/. Resources regarding sexual violence can be found at https://www.hartford.edu/about/policies/title-ix/on-off-campus-resources.aspx
Note: University of Hartford faculty, staff, and ras are required to report incidents of sexual misconduct to the Title ix Office (title9@hartford.edu). For further information on The University’s policies and resources, please contact Jason Martinez (860.768.5255; jamartine@hartford.edu) or Justin Bell (860.768.4880; jbell@hartford.edu).
Mental Health and Well-Being
Mental Health is an important aspect of students’ well-being and integral to positive academic experiences and success. If, during the semester, you experience difficulties and would like support, consider contacting the University of Hartford’s caps, or Counseling and Psychological Services, which offers a range of short-term counseling services available to full-time undergraduate students at no additional cost, and to part-time undergraduate and graduate students for a small fee. caps is located in Gengras Student Union, Room 313 , and can be reached by calling 860.768.4482 or emailing Liz Inkel at inkel@hartford.edu. Office hours are Monday – Friday, 8:30 AM – 4:30 PM.
Advice on Succeeding in Class
Read over the following to understand procedures for maximizing your chances of succeeding in class.
- Advice for Succeeding in Class (in Markdown)
- Advice for Succeeding in Class (in pdf)
Office Hours
- Office: Charles A Dana Hall, 310B
- Office hours: I meet students via video conference on the following day (click here for details). Other times by appt.
- Tuesday: 11:00 am – 5:00 pm
If neither of the aforementioned times agrees with your schedule, we can make alternate arrangements to meet.
Contact
Nowadays, I only use email for emergency situations, such as a pet emergencies, personal tragedies, etc. For matters related to our course, you’re advised to see me before or after class, during my office hours, or by appointment. My contact info is listed in the Preamble.