Professional Documents
Culture Documents
Course Outline
Course Outline
Fall 2023
Institute of Business Administration, Karachi
School of Mathematics and Computer Science
Course Outline
Teaching assistant -
Course Objective
• To cultivate a comprehensive understanding of iOS app development using the Swift programming
language.
• To proficiently navigate the Swift programming language, encompassing its syntax, data types, control
structures, and modularization techniques, setting the foundation for effective iOS app development.
• To unravel the art of crafting user interfaces using UIKit, unravelling the mechanisms behind Interface
Builder, Auto Layout, and responsive design principles to create visually appealing and functional user
experiences.
• To foster a problem-solving mindset in the context of iOS app development, encouraging students to
tackle complex challenges by employing a combination of Swift skills, creative thinking, and resourceful
exploration.
• PLO-1. Design and Develop Solution – Students will showcase their creativity and problem-solving skills
by designing and implementing innovative iOS applications that incorporate advanced features and
optional frameworks where applicable, reflecting their ability to create sophisticated solutions.
• PLO-2. Modern Tool Usage - Create, select, adapt, and apply appropriate techniques, resources, and
modern computing tools to complex computing activities, with an understanding of the limitations.
• PLO-3. Individual and Teamwork - Function effectively as an individual and as a member or leader in
diverse teams to develop an iOS application.
Course Learning Objectives
• CLO1 (Create): Translate conceptual ideas into well-defined project proposals that articulate the vision,
objectives, and potential impact of the proposed application.
• CLO2 (Apply): Effectively employ modern computing techniques, including Swift programming, UIKit,
and frameworks such as SwiftUI and CoreData, in the development of iOS applications.
• CLO3 (Communicate): Communicate ideas, requirements, and progress effectively through written,
verbal, and visual means within the team.
Assessments
CLO-1: Assessment of the application developed (thrice during various stages of the project lifecycle)
1. Ideation
2. Development
3. Completion
1. Development
2. Testing
3. Source Control
CLO-3:
1. For team – Assessment using commit history for the final project
2. For individual – Assignments’ completion above set threshold
Learning Strategies
• Demonstrations
• Lectures
• Assignments and Quizzes
• Final Project
Reference Books / Materials
Assessment Strategy
Make up policy
Attendance policy
Week Topics
Introduction
• Navigating Xcode
• Swift Playground
1
• Assets, PLists and App Delegate
• Development Lifecycle
• Simulator
Swift Basics
2
• Data Types
• Loops
• Control Flow
• Collections
• Functions
• Optionals
• Enumerations
• Closures
• Classes & Structs
More Swift
• Extensions
• Protocols
3 • Generics
• Opaque Types
• Access Control
• Memory Safety and Automatic Reference Counting
Creating Layouts
• Storyboard
4
• Layout Constraints
• AutoLayout
UIKit
• Labels
• Text field and Text views
5
• Images
• Switch
• IBOutlets and IBActions
App Architecture
• Model View Controller (MVC)
6
• ViewController and ViewController Lifecycle
• NavigationController and other view controllers
Handling errors
• Source Control
7 • Try, catch and defer
• Debugging through XCode
• Testing using XCTest
Displaying multiple items
• ScrollView
8 • TableView
• CollectionView
• StackView
9 Common iOS Design Patterns
• Delegate Pattern
• Singleton Pattern
• Observer Pattern
Concurrency
• Grand Central Dispatch
10
• Animations
• Completion Handler
External Dependencies
• XCWorkspace
11
• Cocoapods
• Custom Views
Accessing the web
• Networking
12
• Data and Codable
• Core Data (optional)
Declarative iOS
13
• Swift UI (optional)
Miscellaneous
• File Manager
• Notifications
14
• Test Flight
• Other Core Libraries (optional)
• Firebase (optional)
Presentations
15 • Guest Lectures
• Project Presentation