Download Full Outline
Course
Mobile Development Boot Camp for Swift / iOS: iOS Foundations with Swift
CompTIA Certified Badge
Gain the Skills Required to Build Robust, User-friendly iOS Apps using Practical Swift Programming Skills.
ID:TT4721
Duration:5 Days
Level:Introductory
Format:

What You'll Learn

Overview

CompTIA Authorized Partner Badge

Swift is the go-to programming language designed to build robust and efficient iOS applications, making it integral to any iOS development journey. iOS is Apple's mobile operating system with a substantial market share, making it an attractive platform for developers aiming for wide reach and engagement. iOS Foundations with Swift, an integral part of our Mobile Boot Development Camp for Swift / IOS, will equip you with the essential skills and industry insights to become a proficient iOS developer, enabling you to deliver high-impact mobile applications that drive organizational value. By the end of this course, you'll be able to smoothly navigate Xcode to initiate, develop, and finalize your iOS projects like a pro.

The course is rich with opportunities for engagement, hands-on lab activities and challenges, engaging discussions and group activities, all led by our engaging, expert instructor who brings a wealth of practical Swift, IOS, web and mobile development experience to share. You'll start by mastering the foundational skill of creating an Xcode project and quickly progress to architecting your app's front-end through Views and View Hierarchy. You'll gain expertise in coordinating these elements via View Controllers and fine-tune your problem-solving abilities through targeted Debugging Techniques using Xcode Debugger and LLDB. We also equip you with the skills to build secure apps by addressing Security and Mobile Risks, as well as manage complex data structures with Core Data Relationships. On the job, these skills translate into quicker problem-solving, accelerated development cycles, and a notable expertise in mobile security within your team.

Upon successful completion of this course, you'll not only be proficient in Swift but also attain a nuanced understanding of iOS application architecture and lifecycle. You'll be equipped to spearhead innovative mobile development projects, wielding cutting-edge tools to craft applications that respond to real-world needs.

Course Schedule Available By Request - Contact Us
Expand All

Objectives

This course combines engaging instructor-led presentations and useful demonstrations with valuable hands-on labs and engaging group activities.

Working in a hands-on learning environment led by our expert instructor, you'll:

  • Learn how to construct a polished and responsive front-end interface using Views and the View Hierarchy, adding a professional touch to your apps.
  • Master the art of using View Controllers to flawlessly link your app's logic with its layout, ensuring a smooth user experience.
  • Equip yourself with essential debugging skills to identify and resolve issues efficiently, minimizing stress and saving time during the development cycle.
  • Gain valuable insights into mobile security and vulnerabilities to ensure your applications are as secure as they are functional.
  • Manage Data Like a Maestro: Dive into Core Data Relationships to deftly manage complex data structures, optimizing performance and elevating the user experience of your apps.

If your team requires different topics, additional skills or a custom approach, our team will collaborate with you to adjust the course to focus on your specific learning objectives and goals.

Audience

This introductory-level technical course is ideally suited for experienced object-oriented programmers (coming from Java, C++, C#) seeking to transition to Swift for iOS and MacOS development.

This course is not for non-developers.

Pre-Requisites

To ensure a smooth learning experience and maximize the benefits of attending this course, you should have the following prerequisite skills:

  • Basic Swift experience preferred, or hands-on experience with another OO programming language, such as Java, C# or C++.

Take Before: Students should have incoming practical skills aligned with those in the course(s) below, or should have attended the following course(s) as a pre-requisite:

  • TT4720 Mobile Development Boot Camp: Swift / iOS (Part 1): Swift Programming Essentials (5 days)

Mobile Development Boot Camp for Swift / iOS: Swift Programming Essential

Agenda

Please note that this list of topics is based on our standard course offering, evolved from typical industry uses and trends. We'll work with you to tune this course and level of coverage to target the skills you need most. Topics, agenda and labs are subject to change, and may adjust during live delivery based on audience skill level, interests and participation.

Day 1

1. A Simple iOS Application

  • Creating an Xcode Project
  • Model-View-Controller
  • Designing Quiz
  • Interface Builder
  • Building the Interface
  • Creating view objects
  • Configuring view objects
  • Running on the simulator
  • A brief introduction to Auto Layout
  • Making connections
  • Creating the Model Layer
  • Implementing action methods
  • Loading the first question
  • Building the Finished Application
  • Application Icons
  • Launch Screen

2. Views and the View Hierarchy

  • View Basics
  • The View Hierarchy
  • Creating a New Project
  • Views and Frames
  • Customizing the labels
  • The Auto Layout System
  • The alignment rectangle and layout attributes
  • Constraints
  • Adding constraints in Interface Builder
  • Intrinsic content size
  • Misplaced views
  • Adding more constraints

Day 2

3. View Controllers

  • The View of a View Controller
  • Setting the Initial View Controller
  • Tab Bar Controllers
  • Tab bar items
  • Loaded and Appearing Views
  • Refactoring in Xcode
  • Accessing subviews
  • Interacting with View Controllers and Their Views

4. Text Input and Delegation

  • Text Editing
  • Keyboard attributes
  • Responding to text field changes
  • Dismissing the keyboard
  • Implementing the Temperature Conversion
  • Number formatters
  • Delegation
  • Conforming to a protocol
  • Using a delegate
  • More on protocols

5. Debugging

  • A Buggy Project
  • Debugging Basics
  • Interpreting console messages
  • Fixing the first bug
  • Caveman debugging
  • The Xcode Debugger: LLDB
  • Setting breakpoints
  • Stepping through code
  • The LLDB console

Day 3

6. UITableView and UITableViewController

  • Beginning the LootLogger Application
  • UITableViewController
  • Subclassing UITableViewController
  • Creating the Item Class
  • Custom initializers
  • UITableView's Data Source
  • Giving the controller access to the store
  • Implementing data source methods
  • UITableViewCells
  • Creating and retrieving UITableViewCells
  • Reusing UITableViewCells
  • Editing Table Views
  • Editing mode
  • Adding rows
  • Deleting rows
  • Moving rows
  • Design Patterns

7. Subclassing UITableViewCell

  • Creating ItemCell
  • Exposing the Properties of ItemCell
  • Using ItemCell
  • Dynamic Cell Heights
  • Dynamic Type
  • Responding to user changes

8. Stack Views

  • Using UIStackView
  • Implicit constraints
  • Stack view distribution
  • Nested stack views
  • Stack view spacing
  • Segues
  • Hooking Up the Content
  • Passing Data Around

Day 4

9. Navigation Controllers

  • UINavigationController
  • Navigating with UINavigationController
  • Appearing and Disappearing Views
  • Dismissing the Keyboard
  • Event handling basics
  • Dismissing by pressing the Return key
  • Dismissing by tapping elsewhere
  • UINavigationBar
  • Adding buttons to the navigation bar

10. Saving, Loading, and Scene States

  • Codable
  • Property Lists
  • Error Handling
  • Application Sandbox
  • Constructing a file URL
  • Scene States and Transitions
  • Persisting the Items
  • Notification center
  • Saving the Items
  • Loading the Items

11. Presenting View Controllers

  • Adding a Camera Button
  • Alert Controllers
  • Presentation Styles

Day 5

12. Camera

  • Displaying Images and UIImageView
  • Taking Pictures and UIImagePickerController
  • Creating a UIImagePickerController
  • Setting the image picker's delegate
  • Presenting the image picker modally
  • Permissions
  • Saving the image
  • Creating ImageStore
  • Giving View Controllers Access to the Image Store
  • Creating and Using Keys
  • Persisting Images to Disk
  • Loading Images from the ImageStore

13. Adaptive Interfaces

  • Size Classes
  • Modifying traits for a specific size class
  • Adapting to Dark Mode
  • Adding colors to the Asset Catalog
  • Using custom dynamic colors

14. Web Services

  • Starting the Photorama Application
  • Building the URL
  • Formatting URLs and requests
  • URLComponents
  • Sending the Request
  • URLSession
  • Modeling the Photo
  • JSON Data
  • JSONDecoder and JSONEncoder
  • Parsing JSON data
  • Enumerations and Associated Values
  • Passing the Photos Around
  • Downloading and Displaying the Image Data
  • The Main Thread

Day 6

15. Mapping Walkthrough: Location Tracker in IOS/Swift

  • Four frameworks to be used
  • Core Location
  • Combine
  • Core Data
  • SwiftUI
  • Setting up and using Core Location-aware
  • Setting up and using Combine
  • Setting up and using Core Data PersistenceController
  • Setting up and using SwiftUI ContentView @FetchRequest

Extras - time permitting:

  • Geo Location on iOS with Swift Development resources
  • Battery saving tips

Day 7

16. Exploring Security and Top 10 Mobile Risks

  • How to recognize actual and potential software vulnerabilities and implement defenses for those vulnerabilities.
  • Explore common security vulnerabilities faced by mobile app developers, examining a few vulnerabilities from a coding perspective through a process of describing the threat and attack mechanisms, recognizing associated vulnerabilities, and demonstrating some common defenses.
  • Top Ten Mobile Risks Review
  • M1: Improper Platform Usage
  • M2: Insecure Data Storage
  • M3: Insecure Communication
  • M4: Insecure Authentication (Overview)
  • M5: Insufficient Cryptography (Overview)
  • M6: Insecure Authorization
  • M7: Client Code Quality (Overview)
  • M8: Code Tampering (Overview)
  • M9: Reverse Engineering (Overview)
  • M10: Extraneous Functionality (Overview)

Day 8

17. Extensions and Container View Controllers

  • Starting Mandala
  • Creating the model types
  • Adding resources to the Asset Catalog
  • Extensions
  • Creating a custom container view controller
  • Creating the MoodSelectionViewController
  • Creating the MoodListViewController
  • Handling the embed segue

18. Custom Controls

  • Creating a Custom Control
  • Relaying actions
  • Using the Custom Control
  • Updating the Interface
  • Adding the Highlight View

19. Controlling Animations

  • Property Animators
  • Basic animations
  • Timing functions
  • Spring animations
  • Animating Colors
  • Animating a Button

Day 9

20. Collection Views

  • Displaying the Grid
  • Collection View Data Source
  • Customizing the Layout
  • Creating a Custom UICollectionViewCell
  • Downloading the Image Data
  • Image caching
  • Navigating to a Photo

21. Core Data

  • Object Graphs
  • Entities
  • Modeling entities
  • NSManagedObject and subclasses
  • NSPersistentContainer
  • Updating Items
  • Inserting into the context
  • Saving changes
  • Updating the Data Source
  • Fetch requests and predicates

22. Core Data Relationships

  • Relationships
  • Adding Tags to the Interface
  • Background Tasks

Day 10

Putting It All Together

  • Optional Capstone Project Day
  • Course Review

Related Courses

Swift Programming Essentials

Connect with us

Tailor your learning experience with Trivera Tech. Whether you need a custom course offering or want to schedule a specific date and time for corporate training, we are here to help. Our team works with you to design a solution that fits your organization's unique needs; whether that is enrolling a small team or your entire department. Simply let us know how many participants you'd like to enroll and the skills you want to develop, and we will provide a detailed quote tailored to your request.

Contact Trivera Today to discuss how we can deliver personalized training that equips your team with the critical skills needed to succeed!