You are on page 1of 4

Paul Gibbons

iOS: Development
Mr. Rho
5/10/18
Independent Study Wrap Up

A two semester independent study dedicated to learning an iOS programming language

and then developing an iOS app.The fall semester was used to study and learn the basis of

Swift 3, the newest language developed by Apple through the Udemy Course in the resource list

below. Additional resources will likely be found and used to help figure out niche portions of the

language that might not be covered in the initial course and book. My goal for the first semester

was to study and the learn basis of Swift 3, which is the newest language developed by Apple

through the use of a course on Udemy, “iOS 10 & Swift 3: From Beginner to Paid Professional”

by Mark Price in DevSlopes.

This lecture series consisted of around 71 hours of material but probably only about

50-60 hours of the series was relatable to my study. The course started with an introduction to

iOS 10 and Swift 3 and then learning to code in Swift 3. Then we moved onto version control

with Git and GitHub. Next was learning more of the frontend functions of Swift 3 and then

moved onto replicating apps. The main problem with this style of learning was that it was very

hard to feel like I knew a topic before they moved onto the next one. They would briefly cover a

section of code and then add it into the application to show what it did. There wasn’t lots of

individual, creative coding on my part. Almost 100% of the programming was just copying the

screen and replicating their application rather than getting lectured on a topic and then trying to

implement it. This is a big problem with an online video class. This is my first time trying to

structure my own curriculum and in

something as big as a whole computer language it was very challenging to come up with a

course plans and it was even tougher to follow it. I was not able to ask questions on this
Paul Gibbons
iOS: Development
Mr. Rho
5/10/18
individual section of code and I just had to follow along. The first semester of the independent

study was a good introductory lesson into the interactions of Swift and the Model View

Controller and a refresher on programming itself.

My second course that I chose to go into during the second semester of my project is an

online lecture series by Michel Deiman in which he is recorded teaching a iOS 11 introductory

course to students at Stanford. I didn’t want to commit into the whole course until I at least

watch a few lectures to see if it would continue my progression of learning Swift. This course

had prerequisite courses as a requirement unlike the Udemy course which is very beneficial.

This course isn’t teaching the basics of how to program as if Swift was your first language. Its a

course that is designed for people who already have a few years of object-oriented

programming.

I feel as if this style of online class wore more informative than the Udemy course

because it was also a class that is taught in person and this was a just a hybrid of an online

course and an in class course. I enjoyed following along with this because he would go through

a demo of a certain project or code but then we would have to elaborate on code after watching

and taking notes of the lecture. The first lecture in this course mainly covered stuff already

learned in the first Udemy course, such as, running simulators, creating subclasses while

spepecifying instance variables and methods, connection UI elements to call methods in Swift

code, connecting properties from the code and connecting it to the UI Outlet. It was nice to go

through a slight refresher in this first lecture as I already knew most of the basics he was talking

about the next lecture that included the demo was about the Model View Controller. Lecture

Three took a lot longer than the first two lectures in this course. It wasn’t following along demo

code but it was learning more theory and more information about the Swift language. This

lecture covered more on Autolayout, more review on the Concentration game, Tuples,
Paul Gibbons
iOS: Development
Mr. Rho
5/10/18
Computed Properties, Access Control, assertions, extensions, enums and a brief Data Structure

review. I next went into Lecture 5 of the iOS development course by Stanford. I’m finding much

easier and shortening these writeups by making them more concise and then just including my

lecture notes below in a PDF format. The lectures are getting more in depth and getting away

from current knowledge of programming which is challenging but nice at the same time. This

lecture is mainly based on Views and Custom Drawing. Some other miscellaneous topics were

handling errors, the object Any and when to (and not to) use it and covered some more

Objective C based classes. Lectures 6 & 7 were some of the two most challenging lectures I

have had yet in these series. Lecture 6 was a heavy demo that lasted around an hour and a half

Lecture 6 covered Multitouch. Multitouch ”Encapsulate your app's event-handling logic in

gesture recognizers so that you can reuse that code throughout your app.”. In this demo, we

turned our cardDeck into a gui based platform with two function with multitouch. We used

NSPanGestureRecognizer and NSMagnificationGestureRecognizer. The panGesture was used

to swipe across the card to shuffle and go through the whole deck randomly. The pinchGesture

was used to practice implementing functions on certain events. In this demo, we selected the

face cards to have the ability for the user to resize the image themselves. Lecture 7 was not a

demo based lecture but very information based and I had to take some time to make sure I

condensed a good amount of the lecture in a decent notespace. Lecture 7 was about Multiple

Model View Controllers, the timer function and an intro into animation. The main point for

additional MVCs is to create higher powered applications. The last lecture I covered was on

Animation. Covering, UIViewPropertyAnimator, Transitions, and the Dynamic Animator. The

UIView Animation has changes to certain UIView properties that can be animated over time, by

changing the center, bounds and etc. You can define some animation parameters and pass an

animation block and the animation block contains the code that makes the changes to the
Paul Gibbons
iOS: Development
Mr. Rho
5/10/18
UIView. The changes inside the block are made instantly. Dynamic Animation sets up physics

with relating animatable objects and let them run until they resolve to stasis. It is easily possible

to set it up so that stasis never occurs but can cause performance issues.

I enjoyed the second semester portion and realized what style of learning that I prefer.

Udemy’s course seemed more inclined to just push a agenda and then get you to get through

concrete examples while the Stanford online course allowed a more creative style of learning

although it still provided lots of note taking periods and had lots of information that required

more than one play through to understand it all.

Overall, I had a ok experience with this independent study over the course of the year. I

feel as if I have a decent understanding behind Swift and app development but I would love to

take an actual course to try to learn more and solidify my knowledge. My motivation for the

study was on and off as it was difficult to find motivation to do a lecture after say not

understanding how to elaborate on a project and etc. This was a good way to keep involved in

programming rather than just taking a year off which would have been the case if I didn’t make

this independent study

You might also like