Skip to content

App Development with Swift – Part 1

Last updated on December 7, 2018

This first part of a series of post outline my process of conducting the App Development with Swift to a group of high school students. This program was initiated by myself to the school management and it was approved quickly because my school has many talented students who had always been interested in coding but does not have the required resources to follow up with their passion.

Introduction

I introduced the program to the student body in an announcement. I highlighted the important criteria for students who wished to enrol in this program. Specifically, I am inviting students who meet the following criteria:

  • Have excellent academic results
  • Loves challenges, including solving problems
  • Have deep interest in coding

The students were also made aware that they need to have Mac and iPhone in order to join this course. Although it seems common sensical, my past experience in running coding CCA was that there are students, who despite have been told that they need to own a Mac, still attend my CCA with their Windows notebooks.

I made it clear that not all who applied will be accepted, as they must submit an online form to introduce themselves. I will pick those who are potential candidates for an interview based on the reply they submit, including their academic results and the reasons why they want to join the course.

The Survey

I used the Google Forms to collect responses as my school is already has a Google Education account. The questions I posted are listed here:

  • Level
  • Class
  • What are your subject grades and marks in the last academic year?
  • What are your CCAs that you are currently doing?
  • If you are selected, what is the best time to meet for the course? You may give more than one options. State the day and time.
  • Write a brief description(Not more than 150 words) why you want to join this course. You can write about what prompted you to join this course and what you expect to get out of it.

It is interesting to know that there were responses that show they interested candidates were signing up the course for the wrong reasons. The responses that I immediate reject are:

  • sought to have exposure to programming. This course sought to train the participant to become full-fledged programmer, not to expose them to programming. This was clearly spelt out during the introduction.
  • wants to explore learning using computer. Again, this course is not about learning to use computers. That is reserved for ICT. This course is about learning to program.

My experience has shown that many students have no clear idea what programming is about. They will join the course and then easily gets overwhelmed, thus demoralising the trainer and disrupting others who are clearly interested. Hence it is important to accept only those who wants to join for the right reasons.

The Interview

Once the students passed the online survey application, they were asked to meet me for a face-to-face interview. The main purpose of the interview was to ascertain that they have the required devices, and that they are installed with the required applications and resources.

Below are the required installations they need to bring during the interview:

Mac

  • The Mac needs to be updated to the latest version of macOS High Sierra 10.13.6.
  • You need to install the latest version of the free coding app Xcode version 9.4.1.
  • You need to install the iBooks app on the Mac AND download the free iBook App Development with Swift.
  • You need to download the course codes from Apple’s website.

iPhone

  • Update your iPhone to the latest OS ver 11.4.1.

This interview is important because there are always students who do not follow clear instructions, as I can observe during the interview that there are some students who were still on Sierra and without Xcode and the other resources. They are told to see me again with the needed setup.

Parent’s Approval

As I had mentioned during the introduction, this course is a full year course and time and effort is expected from the students. This course is not a CCA where the students can choose to drop without consequences. As the course required my time and planning, it was highlighted to the students that they would need their parents to sign a letter of commitment to ensure that their children do not drop the course without valid reason. Reason such as to focus on academic subjects is deemed not valid because the students already understood the course expectations. In addition, it is important for the parents to know the commitment their children need to invest so that they would not question why their children are doing non-academic related work at home.

Once the letter of approval is received, all is ready for the course to commence. Altogether, I have 6 students. It was within what I expected, as I do not want more than 8 students in my course. A small class size allows me to pay more attention to the students, as you would expect many problems to come out during the actual training when their codes do not work as expected.

Training Schedule

Given that the course will be completed in one academic year, I would have to plan how many units to cover each week, taking into accounts exam periods and school holidays. With that in mind, I drafted the units according to the table shown.

 ObjectivesHomework
Term 2
Week 1Getting Started with App Development
Set expectations.
iBook to read, attempt Review Questions
Some exercises to do
Lesson 1.1: Introduction to Swift and Playgrounds
Lab exercise 1-1
Read 1.2, 1.3
Week 2Lesson 1.2: Constants, Variables and Data types
Lesson 1.3: Operators
Read 1.4
Week 3Lesson 1.4: Control FlowRead 1.5, 1.6, 1.7
Week 4Lesson 1.5: Xcode
Lesson 1.6: Building, Running, Debugging an App
Lesson 1.7: Documentation
Read 1.8, 1.9
Week 5Lesson 1.8: Interface Builder Basics
Lesson 1.9: Guided project – Light
Mid-Year Review
Term 2 Break
Introduction to UIKit
Complete
Lesson 2.1: Strings,
Lesson 2.2: Functions, and
Lesson 2.3: Structures
at your own time.
Video available to explain some of the more advanced concepts.
Read 2.4, 2.5
Term 3
Week 1Lesson 2.4: Classes and inheritance
Lesson 2.5: Collections
Read 2.6, 2.7
Week 2Lesson 2.6: Loops
Lesson 2.7: Introduction to UIKit
Read 2.8, 2.9
Week 3Lesson 2.8: Displaying Data
Lesson 2.9: Controls in Action
Read 2.9, 2.10
Week 4Lesson 2.9: Auto Layout and Stacks View
Lesson 2.10: Guided project – Apple Pie
Read 3.1, 3.2, 3.3
Week 5Navigation and Workflows
Lesson 3.1: Optionals
Lesson 3.2: Type Casting and Inspection
Lesson 3.3: Guard
Read 3.4, 3.5, 3.6
Week 6Lesson 3.4: Constant and Variable Scopes
Lesson 3.5: Enumerations
Lesson 3.6: Segues and Navigation Controllers
Read 3.7, 3.8, 3.9
Week 7Lesson 3.7: Tab Bar Controllers
Lesson 3.8: View Controller Life Cycle
Lesson 3.9: Building Simple Workflows
Lesson 3.10: Guided Project – Personality Quiz
Week 8Tables and Persistence
Lesson 4.1: Protocols
Lesson 4.2: App Anatomy and Life Cycle
Read 4.3
Week 9Lesson 4.3: Model View Controller
Week 10IPW(School)
Term 3 BreakComplete 4.4: Scroll Views and 4.5: Table Views
Term 4
Week 1Review 4.4 and 4.5
Lesson 4.6: Intermediate Table Views
Week 2Lesson 4.7: Saving Data
Lesson 4.8: System View Controllers
Week 3Lesson 4.9: Building Complex Input ScreensLesson 4.10: Guided Project – List
Week 4Working with the Web
Lesson 5.1: Closures
Lesson 5.2: Extensions
Week 5Lesson 5.3: Practical Animation
Term 4 BreakTo complete:
Lesson 5.4
Lesson 5.5
Lesson 5.6
Guided Project – Restaurant
Term 1New Academic Year
Week 1Review of 5.4, 5.5 and 5.6
Week 2Prototyping and Project Planning
Lesson 6.1: App Personality
Lesson 6.2: Design Cycle
Week 3 – 7Lesson 6.3: Project Planning
Final Project: Design and Plan your Project
Week 8Project submission
Week 9Certificate Award for Completion

Summary

I chose this course among the few options available under the Everyone Can Code curriculum, developed by Apple Inc. because the course provides the highest level of accomplishment for participants who complete it. They would be able to write and publish apps to the App Store. The other courses available require less effort, but are nevertheless, highly rewarding. As this course requires the most commitment in terms of time and effort, expectations need to be set among the students who are going to attend it.

I will continue to post updates on the course as it carries on through the year.

Published inCoding

Be First to Comment

    Leave a Reply

    Your email address will not be published.