Flatiron Day 14: ARC and UI Tricks

Another geofencing Morning Assessment.  This time I put in a button to switch between jumping in and out of the region I set-up so I wouldn’t have to type it in the coordinates in the Emulator.

Morning Lecture today covered ARC which is the marketing name for what the Apple Xcode development team called ARR: Automatic Retain & Release – a way more descriptive name for what Automatic Reference Counting is.  I think this makes it cleared that ARR is not a form of Garbage Collection.  Why did Apple Marketing change it?  The story I heard from now-retired Apple Director Don Melton leader of the WebKit and Safari teams tell is that the development team would act like pirates whenever they talked about ARR – so marketing changed it.

Specifically, we discussed the retain cycle, why children should not strongly retain to parents, and the UNIX philosophy of doing one thing well.  This reminded me of Windows Phone 6 which had a menu bar and you had to use a stylus.  No menu bar on the iPhone in UIKit is a good thing.

After another Sophie Lunch of Beef Stew we plowed into Afternoon Lecture with UI Tricks of the Trade.  We took a look at a random palette generator at 80×15.com. These are great designed palette color schemes which color hex codes. What do you do with the hex code you ask – why put it through a UIColor Code Generator. Next we enhanced Navigation Bars by setting tints, translucency, and title text attributes. We then went back to the Visit Charlotte App from Day 11 which we changed to the Visit New York App. Today, we went in to enhance the UI of the App.

Guest Lecture by Jeff Holliday of brainscape

Guest Lecture by Jeff Holliday CTO of brainscape

We had Jeff Holliday CTO of  brainscape come in for a guest lecture entitled “Reducing Dependencies in Objective-C.”  This reinforced the Morning Lecture and Jeff showed some sample code he had brought along.   Continue reading

Flatiron Day 13: Local Notifications

Mondays seem like Tuesdays when you come in on Sundays.  We started Week 3 with a Morning Assessment with another MapKit App that takes what I call the driving Phil (since he is driving around Cupertino on the Freeway at 70+ MPHs) and drop pins behind him on the 280 with a special callout that shows his speed.

After this we went straight into a Quiz with five topics: Nav Controllers, TableViews, Objects, MapKit, and finally no quiz would be complete without Git.

Broadway Columbus Day Street Fair

Columbus Day Street Fair in the Financial District

After the quiz we stepped outside to see a huge Columbus Day Fair going up Broadway.  We grabbed some German Smoked Rostbratwurst on a bun served with sauerkraut.  We also got some free bags from YP but you had to install the app on your iPhone which Jay did hence taking one for the team. Continue reading

Flatiron Day 12: Review Session 2

Today we held our second Review Session and although less than half the class showed up for this it was extremely worth going through this code kata.

We started an empty review session app from scratch and added a storyboard, dragged a navigation controller, implemented the tableview, added a MapView controller, an outside xib for the MapView annotation callout. In two hours we had a fully functioning app that combined all the topics of this past week.  I went back home and repeated all the steps again. Practice makes perfect.

Tomorrow, we start Local Notifications.

Flatiron Day 11: MapKit Annotations

Today’s morning assessment was more fun with MapKit, MKAnnotationViews, callOutAccessoryTapped and some UIAddressBook extra credit.  This took us the entire morning with our own work and then Joe going over the solution.

For lunch James found an awesome hole-in-the-wall joint called Luke’s Lobster where we had Maine lobster, crab, and shrimp rolls. Plus if we go there 9 more times we get a free lobster.  I’ll take that as a challenge.  A taste of Main was a welcome addition to the menu and a much needed break from the constant stream of beans from Sophie’s and Chipotle’s. Continue reading

Flatiron Day 10: Core Location, Location, Location

Today, we had a tough Morning Assessment which at first seemed like a piece a cake (like all assignment seem at first) but turned out to be a doozie.

It reads simple enough to open our iPhone or the iPhone Simulator and go to Settings > Maps and simply recreate the interface using a UITableView with static cells.  What could be easier.  Two hours later and we were wrapping up.  Not that easy once we got into it.

Cruising through Cupertino in an Emulator

Cruising through Cupertino in an Emulator

After a discussion about a new Git Workflow using milestones we reviewed both the Morning Assessment and Homework #3.

Then we started Morning Lecture on Core Location. Continue reading

Flatiron Day 09: Guy Walks Into A UITabBar

Today’s morning assessment was the same one I did yesterday twice – and yet on my third time I still forgot to set the UIImagePickerController Delegate to self until something wasn’t working.  I quickly remembered seeing the missing UIImageView and this reminded me of the Code Kata which comes from the Japanese word (型 ) describing detailed choreographed patterns of movements practiced either solo or in pairs.

The concept imagines how do you get to be a great musician? It helps to know the theory, and to understand the mechanics of the musical instrument. It helps to have talent. But ultimately, greatness comes from practicing; applying the theory over and over again, day after day, and using feedback to get better every time.  How do you get to be an All-Star Sports person? Whether fencing, football, or martial arts, obviously fitness and talent help. But the great athletes spend hours and hours every day, practicing. Practice makes perfect. This is what we are applying to software development with these practice sessions of constant repetition. Continue reading

Flatiron Day 08: View Review

Today, we started the Morning Lecture by discussing the view hierarchy in Cocoa: UIWindow, rootViewControllers, mainViewControllers, Views, UIButtons, UILabels.  We started a project called “LearningViews” to illustrate this hierarchy.  We then injected a NavigationController to see the awesome that you get with this class.  Then we started diving into NavigationController mechanisms of presenting / dismissing Modal ViewControllers and Pushing / Popping View Controllers.

Cruising With Navigation Controllers

Cruising With Navigation Controllers

We then went into Delegates  before heading off to lunch.   Continue reading

Flatiron Day 06: Review Session 1

Today we held our first Review Session and although only half the class showed up for this it was well worth it.

We reviewed the App Lifecycle by putting in NSLog() messages into different methods of the AppDelegate to see when they fired off.  We reviewed pointers by using a metaphor of rooms (the data) versus room numbers (the pointer to the data).  We emphasized the metaphor by watching a short entitled “Pointer Fun With Blinky.”

Continue reading