This repo captures the coding I did while following along with the App Evolution with Swift course from @codeschool.
So, why start now with Swift? Well, this weekend was a Free Weekend on Code School meaning anyone who had signed up with them could take any of their courses during a 48hr window. This is a fantastic way to 'try before you buy'. So, I took advantage and here I am, about 5 hours later reporting out on how the course went for me. Bottom line, I was able to follow along and build my very first iOS Swift app.
The purpose of this Readme is to just highlight a few observations from taking the course. Remember, I hadn't really created an iOS app, or coded in Swift, before this adventure.
All opinions are my own. @AndrewJByrne
Building a simple app like GoodAsOldPhones was useful for highlighting some key concepts:
- Getting started with the Single View Application template in XCode (mind you, we end up with 3 views)
- MVC and the concepts of Views and Controllers
- Using the various XCode editors to produce UI on the main Storyboard
- Different types of ViewControllers
- How to layout a table/list
- Navigating between views using Segues
- Optional variables and the use of the question mark
- Optional binding
- Use of the Guard statement and how it helps de-nest "if let" trees
- Arrays and classes.
First thing to observe was the production quality of the course. I was particulalry chuffed to here a very nice jingle and watch a nice cinematic transtion between each level of the course. Nice touch!
After a couple of levels, I decided to get this code checked into GitHub. It is, afterall, nice to look back and see the progression of the class from the perspective of the code I was writing. So, I created a local repo, then a remote repo and merged the two. Great instructions can be found here
Every now and then I decide to validate my repo creating by nuking everything local and then clonin the repo. If the code at that point doesn't load, compile or run as expected then the chances are that I missed soem files. Lo and behold - that's exactly what happened to the images I had added to the assets catalog in my project called Assets.xcassets
. The images never made it to my remote repo!
Some searching on Stack overflow led me to the conclusion that this was a known issue and the workaround was simple enough - I had to git add .
in my local folder to add all missing files and then git push origin master
to gt those up into my remote repo - Mystery solved!
I mean the transtion type of segue as defined in the dictionary
It was interesting to manipulate the navigation scheme in the storyboard, but I found it cumbersome to do using the trackpad on my MackBook. Note to self: Consider using a mouse in the future 💡
Again, not a complaint about the course at all - this is just a gripe based on my limited time using XCode, with the trackpad on my 12 inch MacBook. Jumping between windows, icons and window names are not intuitive to me (yet) and a few other quirks made my progress a little slower. That said, all can easily be remedied with practice!
I really enjoyed the pace of the course, the fact that each "level" was short and that you gather points by completing challenges at the end of each level. Finally, beign able to easily tweet and add thsi new badge to my LinkedIn profile was also 👍
- In this course I created a Contact/About page but in the final level the page isn't actually part of the app that the user can reach - I should fix that.
- I intend to watch Soup to Bits: Try iOS & iOS Operation: Models Update 3/62016: I have now complete the above video and the app has been updated as a result. You can see some very brief notes here
From this point on, I will do all updates using issues, mapping each checkin to an issue.
Many thanks to @jonfriskics for hosting this course on @codeschool. The pace was perfect and Jon's voice and communication style is great to follow along to. You can also see Jon's full (original) code on GitHub
Thanks also to Code School for hosting this Free Weekend!