January 12th: Blake Robinson, with Lessons Learned with the Bloom Fertility app

Hello and Happy New Year!

This Thursday, Blake Robinson will share a few lessons he's learned when working on the Bloom Fertility App. He's got a couple of tips for working with StackViews, and criteria for when to use custom controls and when not to. Also, he'll share why NSCoding made sense for his app and how it might work well for you, too.

Join us at 6:30 at Google on the 9th avenue entrance side, 4th Floor (details here). If you aren't sure how to get in, or have trouble at the security desk, email me (npodrazik @ gmail) and I'll come down and help you.  Zia Maria's is for dinner afterward!



By the way, if you have not filled out the 2017 NYC CocoaHeads Wishlist survey, please do! This helps me find speakers on topics that we actively want to learn about and prod a few local experts to share what they know.



We've had a number of solid speakers and get-togethers over the past year, and I apologize for not keeping the blog up to date.  Even the meetings without a formal speaker have given us the chance to decompress around our favorite topics and provide a backchannel for some current events.

Here's what we've been talking about since July 2015:

  1. In August, after we had a chance to let WWDC sink in a bit, and caught up on a few talks, we had a lively discussion about some of the new things and things omitted.
  2. October was fresh after the tvOS announcement. We discussed some of the limitations and documentation.
  3. For our November meeting, we got an excellent demo from Bob Clair about the physics app that he'd been working on for CERN.  Eric Panchenko also gave us a walkthrough of his trivia app that he rebuilt for tvOS.
  4. I gave a demo in December of a UITableView that prepends data as the user scrolls up (as Messages does).
  5. Dennis Pilarinos from Buddybuild impressed us thoroughly with a new way to distribute Beta builds in January!
  6. For February, we tried a show-and-tell type of set up with a few demos from around the table.

Looking forward to what 2016 will bring!


July 9th: Jeremy Cohen, Facebook, and Core Data

Howdy folks! Join us this Thursday night for a rabble-rousing talk from Jeremy Cohen about what Facebook is doing for persistent storage. I know I've got a ton of questions and I'm sure you do, too — bring 'em on Thursday and we'll hash it all out.


Also, please note that Jeremy's gotta run right around 7, so we're going to do our best to start right at 6:30 on Thursday. All the details are here. See you then!

May 14th: Job Interview Trivia [UPDATED]

Technical interviews: loved by some, loathed by others, but, universally, a necessary gauntlet to vet possible coworkers to prove their worth.

Join us this Thursday, May 14th, at our usual time and place where we will *gasp* quiz each other on interview questions! Sure, there will be softball questions, certainly some hardball questions, maybe a curveball or brain teaser or two BUT there WILL BE PRIZES.

Since I'll be running this open-ended and interactive edition of CocoaHeads, this will be part trivia, and part discussion of which questions make Good Technical Interview Questions for different levels of people.

If you have any interview questions you'd like to contribute, please pass them my way before Thursday!

Post-Meeting Update

Thanks to all who made it out and suffered through 15 iOS interview questions. The good news is that I didn't grade your answers because (a) that'd be creepy and (b) I couldn't read most people's handwriting. But I could make out integers in some of their scrawl!

Here are the slides that I gave for the talk:

…and here's how each question fared. For each question, everybody rated how difficult the question was, where a 1 was for a Junior iOS Dev, 3 was Intermediate, and 5 was Expert. Here's the list sorted by the number of votes a question received to grade its expected difficulty (Junior -> Senior):

Question 1 2 3 4 5 Average
Name some of the UIApplicationDelegate protocol methods and how to use them. 6 2 0 0 0 1.25
What’s a delegate? Give an example. 6 2 0 0 0 1.25
NSArray *foo = @[@“alpha”, @“beta”, @“gamma”]; How would you add another element (@“delta”) to the foo array? 5 2 1 0 0 1.5
What are some ways that you can persist data in an app? 4 2 2 0 0 1.75
Describe what happens behind the scenes when you tap an app’s icon, you see the app open, and you press the home button. 2 5 1 0 0 1.875
How can you add a method to a class that you don’t have the code for? 3 3 2 0 0 1.875
What is a hash? 3 3 2 0 0 1.875
How do you use NSNotificationCenter? 1 5 2 0 0 2.125
What are the differences between an array and a linked list? What do you think an NSArray is? 2 4 1 1 0 2.125
When you create an object (in a running app, not while you’re writing code), where are the bytes located in memory? 2 3 3 0 0 2.125
You have a method call. By using the debugger or a print statement you determine that the method is never called even though it seems plain that it should be. What is a very likely cause? 0 4 4 0 0 2.5
Have you worked with NSOperationQueue? How does it work? 0 4 3 1 0 2.625
When responding to an NSNotification, what will happen if the notification handler executes for a long time? What can you do about it? 1 3 3 1 0 2.625
Why shouldn’t you reference self in a block? 0 1 6 1 0 3
What is an NSZombie? 0 1 3 3 1 3.5

And this is not to say that all the questions were acceptable — some of them I put strikethroughs because our group more or less voted them down to be too algorithmic or pure computer-sciency, which does not equate to a good iOS developer. This is a tricky subject: some startups will want a versatile engineer well-versed in the basics of CS, and, frankly, some excellent iOS devs have had no need to study up for those questions. Additionally, some questions are absolutely harder or simpler if the interviewer is or is not a pure jerk and doesn't lead the interviewee on without any affirmation that they're on the right track. All points taken.


p>This was a very fun and engaging talk! I think we all learned something about each other. My personal favorite was the entire room's reaction to the adding things to an NSArray question: "You can't.", which, as the person with the slides, I said "Oh really, Junior Developer, you're telling me you can't add an element to this array?"

Thanks to all that attended! We'll meet again on 6/18.

Our Next Meeting: April 9th, featuring Orta Therox

Welcome to Spring of 2015!

Thanks very much to Andy Lee for last month's presentation of developing snippet extensions in Swift.  Andy is the best. (Sorry, all other members and future presenters!)

At our next meeting, we'll have Ørta talking about making a mobile team run like an open source team.  Sounds pretty neat, eh?  Join us at the usual place and time, and don't forget about pie afterwards!



Last week, the day before our meeting, I announced to the group that I would be stepping down as organizer. As of now, that change is official: Natalie Podrazik is the new organizer of CocoaHeadsNYC.

Many of us know Natalie as a longtime attendee and contributor, and as a friend. She and I have discussed many times what we value about CocoaHeads. I feel Natalie is perfect for the role, and everyone at the meeting on Thursday was supportive as well.

We will continue to meet every month at the Google offices. For that I want to say thanks to Ed Marczak, our sponsor at Google and another longtime CocoaHead. Thanks also to the other Googlers who help us out.

I don't want to sound too farewell-ish, since I'm not actually going anywhere, but for the record: I've appreciated everyone's support over the years.  What a great bunch we are!

Natalie, you have the reins.

I'll see you all at next month's meeting!

14 months of CocoaHeadsNYC

You might not guess it if you've been checking this blog since November 2013, but we have been having lively meetings every month:

  • December 12, 2013. Paul Kim talked about the design and implementation of his open source OpenPanel built on ConnectionKit.
  • January 9, 2014. Two speakers:
    • Andy Lee showed a little one-off utility he wrote to get a column of images into a Numbers file.
    • Avi Drissman showed a cool thing about AppKit internals.
  • February 20, 2014. There wasn't one main presenter, but a couple of people volunteered to do show-and-tells, and Ed Marczak facilitated a general discussion. (Postponed from the usual second Thursday to the third Thursday.)
  • March 13, 2014. Howard Olah-Reiken shared his recent experience using iOS view animation to develop a drag-and-drop game with points and lives.
  • April 10, 2014. Andy Lee presented "Table Views on the Mac, for iOS Developers".
  • May 8, 2014. David Cilia of GrubHub gave a presentation on CocoaPods. Many thanks to David and to GrubHub for hosting and feeding us this month.
  • June 12, 2014. The Kinsa Smart Thermometer uses the headphone jack on mobile devices as a signal input for precise medical temperature measurements. Mike Akers discussed how Kinsa deals with the technical and usability challenges they faced. The post-meeting dinner this month was Thai food at Spice.
  • July 10, 2014. This month's meeting was kindly hosted, again, by GrubHub. Two speakers:
    • Pavan Podila demoed his screen utility QuickLens ("Explore the UI, down to the Pixels").
    • Ariel Michaeli, CEO of appFigures, talked about the reporting service his company provides.
  • August 14, 2014. Dave Wiskus discussed his work as the designer of Vesper.
  • September 11, 2014. Kevin Wolkober talked about KuaiBoard, his iOS 8 keyboard app, and about iOS keyboard apps in general.
  • October 9, 2014. Pavan Padila agreed to give a follow-up talk on QuickLens, to discuss the many problems he solved in making a usable, responsive, and testable screen utility. Pavan also waxed enthusiastic about RubyMotion.
  • November 13, 2014. Mike Gozzo, visiting from Montreal, gave a talk titled "Getting to know your users as well you know your code".
  • December 11, 2014. Daniel Steinberg was in town. He gave his "What the Func?" talk about Swift functions.
  • January 8, 2015. Andy Lee showed how he added in-app purchases of auto-renewing subscriptions to a Mac app.

UPDATE: Whoops! I just noticed three other months had gone unmentioned.

  • August 8, 2013. Brian Papa talked about his bicycling app, and what he's learned about MapKit and working with NYC OpenData.
  • September 12, 2013. Samantha John, co-founder at Hopscotch Technologies, talked about Hopscotch.
  • October 10, 2013. Natalie Podrazik, then at 29th Street Publishing, talked about how they implemented Emily Books Reader, their first Book Club app in the newsstand.