WWDC 2018 Social Recap

I just got back from my WWDC 2018 Social trip and it was a lot of fun. I figured I’d do a quick recap of the social side and leave room to talk about the tech stuff as I get deeper into the session videos in the weeks to come.

Costs

With a nod to Manton’s lead I thought I too would share my costs in order to help others understand what is possible despite WWDC generally being a large cost these days.

  • Plane fare (Southwest, Philadelphia to San Jose Roundtrip taking the early and late times to save a little bit extra): $564.00
  • Hotel: ($125/night, 4 nights + taxes & early checkin fee). Booked early on event date assumptions, was cancelable.: $642.00
  • Airport cab fair: $25 each way.
  • WWDC conference ticket: $0 (Big savings here obviously. If you can get value from the labs, the $1700 ticket cost can pay for itself but if you just want to watch the sessions, enjoy the free video streams on delay).
  • AltConf conference ticket: $0 (I’ve bought the $300 Hero ticket in the past but held back this year since I’m on my own again and trying to keep costs down. Kind of feel bad considering how well I enjoyed the talks there this year.)
  • Food and drinks: ~$300 Made a point to get some supplies at a grocery store early in the week so I could supplement eating out with some in-room breakfast mornings and snacks.
  • Podcast and other event tickets: ~$50

Total: ~$1600

TL;DR: Make your decision about WWDC early and keep an eye on the rumored dates. Book early with hotels that are cancelable. If you need some more help, find a roommate to split hotel/cab costs with.

Events

On Sunday night I attended the sjMacIndie party and saw a lot of conference friends. Venue was a little on the warm side but plenty of space so it didn’t get too stuffy. I did not recognize much of San Jose from my earlier WWDC trips (2002-2004) but I did recognize this venue as the previous pool hall where the student scholarship winners once had a party. In fact it was at said party where I won an iPod which I later sold to help cover my plane fare back in the day.

You can check out some of the old WWDC 2002 Student coverage we did via Wayback Machine and this video, with footage from the pool hall, I was able to find and re-upload.

On Monday I watched the Keynote and State of the Union with friends at the hotel. We had to jump wifi networks a few times but overall was very successful. Afterwords I headed to the live recording of ATP podcast which was a lot of fun.

On Tuesday I took in a few AltConf talks and also attended the Micro.Blog meetup. Really enjoyed the Setapp talk about their growth/recommendations and the detailed talk on improving app startup times. I also took some time on Tuesday to work on my own project, finally breaking down a long list of tasks into a new Pivotal Tracker project so I can start to track things better.

On Wednesday did more AltConf stuff. Really enjoyed Paul Hudson’s review of new iOS 12 additions. Also had a good time in the Finding Product Fit lab. At night I attended the Relay FM podcast recording which went great. Afterwords I went to the Breakpoint / AppCampForGirls event. I didn’t stay too long though, place was really dark and loud. Also kind of irked me that there was a separate VIP section. I really dislike the social cliques that pop up at industry conferences and seeing the VIP thing put a bad taste in my mouth.

Aside: I’d love to see some options for non-bar night events at conferences. A 24 hour hacking lab with whiteboard grouping around ideas; maybe with room corners for Mario Karting or boardgames/poker. I like hanging out but I don’t like drinking too much and I can’t hear people over the crowds. I miss MacHack in many ways. Maybe I’ll lead by example some day should I ever dawn my event organizer hat again.

On Thursday I got to attend a few morning talks at AltConf before heading home. Of them I really enjoyed the review of what Firebase is offering these days. I’ve been watching them since before they were bought by Google. Like any third-party component you have to accept some risk but I welcome the opportunity to use them to bootstrap a new idea some time in the future.

The journey home took a long while. I didn’t sleep much but did enjoy a bunch of podcasts.

Overall WWDC 2018 Social was a great success. It was awesome to say hi to some internet/conference friends and hear how everyone is doing. Now that I’m home it’s time to jump into the technical content and see what the WWDC sessions have to share. I’ll post more on that as I experiment.

I’m Teaching a Half Day iOS Refactoring Workshop in July

When I re-entered the self-employed world last March and launched Zorn Labs LLC one of my main goals was to find a way to continue my education work. The first output of this effort has been workshops, specifically one on Refactoring iOS.

I’ve developed and taught the workshop for a local development studio Tonic Design and am now going to run it publicly.

iOS Refactoring Workshop

Throwing away bad code and writing something new from scratch is both risky and expensive. You need to avoid this temptation and instead learn to master small improvements over time.

Refactoring is the art of improving code without changing user behavior. Adding dedicated refactoring time to your workflow and sprints can pay for itself many times over in both added source code flexibility and application stability.

In this workshop we will review refactoring concepts from a high level and then explore example cases found in many iOS projects. As a group we’ll refactor and discuss the benefits of our changes. We’ll then work on our own (or in pairs) to execute what we’ve learned and then demonstrate the results for the class.

This workshop is targeted at those iOS developers who are getting over the hump of learning iOS and now want to know how to write higher quality iOS code. This workshop is capped at 12 people to make sure there is plenty of time for questions and individual attention.

Tickets for the half day workshop cost $189.00 even (we take care of all the ticketing fees). For more information on the agenda, see the event page.

Local performances of this workshop (and others in development) are available for corporate purchase. Contact us for more information.

Speaking at 360iDev, Come Join Us.

I’m happy to report some recent talk proposals were accepted and I’ll be speaking at 360iDev this August in Denver. I was already going to go to 360iDev regardless of the talks, I’ve heard great things from recent years, so this just makes the week that much more exciting.

360iDev Logo

My Talks:

Overcoming the Stress Surrounding Code Review, for the Betterment of Your Project and Career

Code Review is a practice where before a change is made to a code base, the code is first posted somewhere for peer review and critique. Code Review is an extremely productive way to catch problems before they are delivered to users as well as help individuals mature as programmers. In this talk we’ll explore Code Review by documenting the responsibilities of those involved, the person posting the code, the person (or people) reviewing the code, and then again back to the poster, as they react to the feedback given. In addition to the raw process of these stages we’ll also review the very human side of Code Review using real world stories, the good, the bad and the ugly. We’ll close with more general tips and tools that can help, as well as cover some of the how and why you might want to utilize these practices even in your own solo work. The best audience for this talk are people who are looking to improve their personal or team code processes. Those who attend will leave with very actionable strategies to execute productive code review on their own projects.

Starting, Growing and Running a Successful Developer Meetup

One of the most rewarding aspects of my career has been attending and then helping to run my local Apple developer meetup group. Meetup groups provide great learning opportunities but more importantly they provide great relationship opportunities for its members. In this talk I’ll share the story and lessons learned from running my local CocoaHeads chapter. After a quick review of the benefits and challenges of running a local developer group we’ll jump into actionable items for people starting, growing or running their own group. From defining success, to time expectations, marketing, sponsorship, planning content, tools and more. To close the session we’ll invite a few other group leaders from the audience to the front for a broad question and answer session about your specific issues and concerns. This talk is targeted at those who are running or would like to run a local developer meetup. It may also be helpful to those who attend a current group that needs guidance and/or focus.

If you are an iOS developer you should consider joining us. It’s going to be a great conference. Per CocoaHeads, use the coupon code “cocoacommunity” for 15% off all tickets.

Video: UIKit is Dead, Long Live UIKit!

Philly CocoaHeads held a joint meetup with our Android friends for Philly Tech Week. At said meetup there were a bunch of lightning talks, and I did one.

UIKit is Dead, Long Live UIKit!

With the introduction of Swift and the rise of functional programming ideals in the community, UIKit and its MVC heritage has become a bottleneck for new ideas. This talk speculates how Apple might overcome this in the years to come. Attendee should walk away with a curiosity about the other UI patterns being developed and a resource list to learn more.

UIKit is Dead, Long Live UIKit! from Philly CocoaHeads on Vimeo.

Related Reading:

I actually had a few vocal flubs in the recording (was a little stressed about the 10 minute limit) but figured I’d use the live one anyways since it has more humanity than me speaking to myself in my room. I hope you enjoy!

Introducing Zorn Labs LLC

As I alluded to after loosing my job at the end of January, I knew I’d take the majority of February to recover from my neck surgery and then get serious about work in March. We’ll it’s almost the end of March so I figured I’d do an update.

First, welcome Zorn Labs LLC, my new company. It will house my future consulting and product work.

Second, I am still looking for work. My goal is to find something 10-30 hours a week, doing iOS or iOS mentoring. To help express my skill set and goals I’ll point you to the new company site. I would appreciate all friends and followers to help spread the word.

Outside of setting up the new business and website, much of March has been spent towards marketing and planning. I had many lunches and coffees with prospects and friends. I even had a few offers but they sadly weren’t the right fit for me at this time. When I haven’t been marketing I’ve been trying to jumpstart some new web skills, refreshing my HTML5/CSS3 knowledge, getting deeper into Hugo template design for the new Philly CocoaHead website, and experimenting with Elixir and Phoenix.

For those interested in my Mac app project, you can also check out my project journal blog at: http://restedexperience.com. I’ve been trying to update that a little more often with my recent progress.

So that’s my March update. Thanks for the interest! More to come in April! 🙂

Accessibility

At the Apple event a few weeks ago they began with a short video on accessibility.

I’ve learned a lot about accessibility on iOS over the last few years. Apple’s products are some of the most accessible in the world and for all the frustrations I have with Apple, this is definitely one of the high points I’m proud of.

I was also really pleased to see our own Philly CocoaHeads give accessibility some attention at a recent Side Project Saturday event. A group of people worked on improving the accessibility of the Wikipedia iOS app.

Group of Programmers using Voice Over on iPhone

Anyways, I think the time is right for development agencies and indy consultants to put accessibility front and center. For them to say loud and proud, any app you hire us to build will have some basic level of accessibility.

Some people whom I bounced this idea off of thought it would be bad for sales. Maybe. But these are the probably the same clients who question code review because they think it is a similar waste of money. At the end of the day we all have have some level of standards onto which we execute our craft. People hire us because they can’t build software. They need us to point them in the right direction.

Somewhere out there, a construction agency is in a discussion whether or not to add a wheelchair ramp to the current project. Some people will add it because it’s required by law, others will add it because it’s the right thing to do.

The software industry moves incredibly fast, maybe even too fast. We don’t have regulations and inspectors like other industries. We have to regulate ourselves. The tools to improve access for our creations are ready. They work really well. They sit there, waiting for us to use them.


I don’t want to come off like I’m some know it all when it comes to accessibility. If you need real help with your app, contact my friend Austin who does consulting on the subject.

I do have some experience enhancing a few personal iOS apps and hope to make it a larger priority with my upcoming side project. Like a lot of things, I think the goal here is for continual learning and small, iterative improvements.

Should I Sell My Apple Watch?

I did not partake in the first release of Apple Watch. I was curious but not curious enough. I bought a Playstation 4 instead.

Last month Apple had its announcements. I wasn’t all that jazzed about the iPhone 7 (even though I am due to upgrade my iPhone 6) so I thought I’d try out the watch instead. I ordered an Apple Watch Series 2, 42mm Stainless Steel w/ Silver Milanese Loop. I also got a Cocoa Sport Band for a little variety.

It’s been about a month with the watch and I’m not sure I should keep it. Few notes:

  • I suspect a big benefit of the watch is quick glances at notifications — but for me, I’m actively trying to remove notifications from my life. I turn them off completely on the desktop and audit them on iOS significantly.
  • There is the health tracker / movement component, but for me it’s not a huge draw. I don’t do heavy workouts much. I do like to take the occasional podcast walk, but I feel like I get enough info from my phone’s step counter if I really cared.
  • I don’t like the pressure that I need to wear the watch all day to fill up my bars. I did not wear a watch before this and it still feels very alien. I like taking it off when I type on my laptop or after I wash my hands (it gets wet and doesn’t dry off right away).
  • I find myself constantly fiddling with the magnet strap. I like the band to be slightly tight and it feels like it get loose quickly if I move my arms a certain way (putting on my backpack, making my bed, etc.).
  • The sport band strap is too small for me (even with the larger of the two bands) — it technically fits but is too tight. One more hole would have helped.

Am I missing something? What do you love about your Apple Watch? Let me know. As of now, I’m looking for ways to sell it — I think the money for me would be better put towards a new Mac (should they ever be rev’d again).

Posted in iOS

CocoaConf DC 2016 Recap

Had the pleasure to attend and speak at CocoaConf DC this past weekend.

CocoaConf is a touring training conference for iPhone, iPad, and Mac developers. We bring some of the best authors, trainers, and speakers to the most passionate, engaged developers in a region—together, they make magic!

CocoaConf draws anywhere from 100-120 developers. It’s a very nice, comfortable size. Large enough to host a diverse collection of personalities and ideas, but small enough not to feel overwhelming. People actively mingle and you get to meet lots of new faces without much effort.

This was my third CocoaConf, and first as a speaker. My own talk was at the end of the first day and I spent ample time the previous weeks preparing to avoid the need to do last minute slide updates and miss sessions — and I’m glad I did so.

The sessions were really good at this CocoaConf. Sure it helps that iOS 10 is just out and there is still lots to learn, but even the talks that were version agnostic, covering patterns, architectures and bug hunting skills all got my brain spinning with ideas.

One cool benefit of my work scheduling is now I have a week of stay-home vacation and I can hopefully direct that post-conference enthusiasm towards my side projects and some extra experimentation. Specific items on my list:

  • Do more interactive prototyping of my side project and follow up with some user interviews.
  • Do some experimentation with Perfect to build a simple Swift API and host it on Linode.
  • Continue to polish up my RanchWeather app and start a blog series reviewing the code patterns.
  • Do some experimentation with Twilio authentication in preparation for a web app project.
  • Inspired by the journalling abilities of MarkD, dedicate the vacation week to a journaling experiment: Daily Journal, Project Journal, Tool Journal.

As for my talk, I think it went very well. One thing I really like as a speaker is the conference not only has a session review system but they encourage submissions of reviews with a raffle for prizes at the end so you get a lot of feedback. Most of my talk’s feedback was very positive and I appreciate the criticisms, both good and bad. Always room for improvement.

So yeah, if you are considering attending or speaking at a CocoaConf, do it. It’s very rewarding and worthy of your time. If it’s on the east coast you’re more than likely to see me there too — and if so, say hi!

Regarding Knight Rider and Delegation

One of the saddest aspects of being a Big Nerd Ranch instructor in 2016 is that students these days do not appreciate the Michael Knight is to Delegation, as RoboCop is to Subclassing discussion of yesteryear.

From Cocoa Programming for OS X: The Big Nerd Ranch Guide:

Delegation

Let’s start with a story: Once upon a time, there was a man with no name. Knight Industries decided that if this man were given guns and wheels and booster rockets, he would be the perfect crime-fighting tool. First they thought, “Let’s subclass him and override everything we need to add the guns and wheels and booster rockets.” The problem was that to subclass Michael Knight, they needed to wire his insides to the guns, wheels, and booster rockets – a time-consuming task requiring lots of specialized knowledge. So instead, Knight Industries created a helper object, the Knight Industries 2000, or “KITT,” a well-equipped car designed to assist Michael Knight in a variety of crime- fighting situations.

While approaching the perimeter of an arms dealer’s compound, Michael Knight would say, “KITT, I need to get to the other side of that wall.” KITT would then blast a big hole in the wall with a small rocket. After destroying the wall, KITT would return control to Michael, who would charge through the rubble and capture the arms dealer.
Note how creating a helper object is different from the RoboCop approach. RoboCop was a man subclassed and extended. The RoboCop project involved dozens of surgeons who extended the man into a fighting machine. This is the approach taken by many object-oriented frameworks.

In the Cocoa framework, many objects are extended in the Knight Industries way – by supplying them with helper objects. In this section, you are going to provide the speech synthesizer with a type of helper object called a delegate.

What do you think the new metaphor should be?

Join Us at CocoaConf DC, Sept 9-10th

I’ve been to multiple CocoaConfs as an attendee and it’s with great pride I’m happy to say I’ll be a speaker at one soon.

CocoaConf Boston

CocoaConf is a traveling conference focused on Apple technologies that has been around since 2011. It’s big enough to have multiple tracks of content but small enough that you’ll have time to socialize with most of the other speakers and attendees throughout the event.

The 2016 “tour” is coming to a close. I’ll be speaking at the Washington DC CocoaConf (Sept 9-10) but if you are on the west coast you might want to consider San Jose, CocoaConf (Nov 4-5th).

When registering use code “COCOAHEADS” for 10% off!

I can’t wait to see everyone. If you will joining us, please come by and say hi. I’ll have some Big Nerd Ranch swag for ya.