Hawaii iOS Developer Meetup – Session 23

Gotta love the mob programming challenges. I feel that that’s what the developers (even the ones who don’t end up participating) enjoy the most. There’s something magical about watching other people code.

This week’s topic was Foundation. I was at a loss for how to prepare for the subject this week. In order to learn more about the subject I first started by posting questions to the developers on the meetup page:

What are you most interested in discussing with Foundation?

I got a request from O’Neill to compare and contrast Foundation and UIKit. I got a request from Ryan to go over localization. With those 2 requests in mind, I got to work researching Foundation, Localization, and UIKit.

In my research I learned that UIKit is written on top of Foundation. So there are no real tradeoffs or benefits – by using UIKit, you need to bring in the Foundation framework.

I looked into Localization to attend to Ryan’s request to find out more about how he could localize menu items in his app TouchOven. When I researched further into Localization, I found that there is a full Localization library that can be utilized. With the idea of focusing on Foundation from the extending and open source scope, I pivoted and started researching more about the open source aspects of Foundation.

Turns out that Foundation is a rewrite of Foundation from Objective C. The Foundation class is being re-written in Swift to leverage the Swift compiler. Not all of the functions that are in the Objective C implementation of Foundation. In the meantime they are suggesting the developers create bridging headers to access the additional capabilities of Swift’s Foundation while the ports are still being made.

Fantastic meetup and lots of gaps in my knowledge regarding Swift have been cleared up. Next week, Adam Smith, will be delivering a talk on Core Data. I can’t wait! RSVP if you’re interested in attending!

Hawaii iOS Developer Meetup – Session 22

This week I prepared something different for the meetup. Usually I create a playground with a bunch of code to execute with the group. This time I did some research online and prepared it as a talk for the group.

I also liked talking about anything that was unclear from the previous meetup. I started out the session, after introductions, with a request for any questions or feedback from the last meetup.

Joanne had asked about the code we covered last week regarding reduce. It wasn’t clear that the accumulator was the first parameter and the closure was the second parameter. Ryan and Chae helped to explain.

Then we got into the discussion about Classes vs. Structs vs Enumerations. I love the preparation that I can do before these meetups. I learn so much. We had a nice discussion about the strengths and weaknesses of each data type.

I was happy, through my research, to find the best practices regarding the use of Classes vs. Structs vs. Enumerations.

I am glad to report back that we reached concensus that the way to create data models for your iOS projects is to always start with an Enum, then if undefined cases come up in the program creation, we should switch to using structs. Then and only then, if we need the actor to talk to other objects and control them, we should start using classes.

This week we’ll be covering Foundation. I asked for feedback from the group to prepare for the talk. So far I have gotten requests to compare UIKit and Foundation and another request to cover localization (support languages such as japanese, korean, and spanish).

If you’re interested in attending the next Hawaii iOS Developer Meetup, please RSVP.

Hawaii iOS Developer Meetup – Session 21

I managed to get the streaming computer to work correctly this week. We had a few technical difficulties. I find that narrating my way through them tends to put everyone at ease through the process.

Last time we met we discussed closures and I had loaded too much content into the talk. This time we covered Results, Errors, and Optionals. I am glad that I prepared just a light talk on the material. We ended up discussing guard let and if let for a good 20 minutes.

I shared with Joanne that I had read something about group sessions and how it’s wise to leave room at the beginning of the meetup to review anything that was unclear from the last meetup.

This time through I asked at the beginning of the meetup, after the introductions, if anyone had questions about the last meetup on closures. Joanne brought up the fact that the mapping functions Chae wrote at the last meetup was unclear. So we took about 15 minutes to discuss that section.

Going forward I am planning to loop back around at the beginning of the meetup to leave room for discussions of questions that lingered from the previous meetup.

I’m glad to have discovered this method of looping back around, seeing how effective it is in promoting continuity in the meetup, and to make sure that the time we have set aside for meeting is rife with learning opportunities, psychological safety, and powerful swift programming.

If you’re interested in attending the next meetup, we’re covering Classes vs. structs vs. enums. Please RSVP if you’re interested in attending!

Hawaii iOS Developer Meetup – Session 20

No stream to share this time. The camera was set to record with OBS but the computer thought it was still connected to 2 monitors. I was not able to aggregate all running programs on one monitor and restarting did not help. So I decided to proceed with the meetup without streaming or recording. And it went well. I believe everyone learned something new.

I felt like I was trying to cram too much space into a single talk and ended up lecturing at the attending developers more than teaching and letting them ask questions.

Good notes for future meetups.

We did have a chance to go over the exercise I created for the meetup. I created a function that doubled, removed odds and summed the total.

The Mob Programming challenge was meant to have them get into the hot seat and code. Getting over that fear of doing something in public is central to my ideas in terms of learning how to code. And doing it well.

I shared a story that reminds me to just throw my hat into the ring, especially if I’m afraid.

When I was about 16 years old, I had been playing the guitar for about 4 years. My friend Johnny told me about a jam circle in Aiea that I just had to go to with him. He didn’t really share the logistics or how the group worked and I didn’t ask. I packed up my Fender Strat and took my tiny amp and Johnny picked me up in the morning.

We drove to Ewa. Took us about 20 minutes. We parked in a strip mall. And walked our gear up stairs. The drive took longer than expected and we were about 15 minutes late.

Johnny opened the door and I followed him in. There must have been about 30 old-timers sitting around jamming together. I was intimidated but tried not to let it show.

I sat down and watched Johnny take out his guitar, tune it, and set up. I was frozen.

The other men acted like they had seen Johnny before too. I don’t think he had ever been here before.

I sat there, still frozen.

One guy started the riff, easy 1-3-5. Then each person in the circle would take his turn (about 2 minutes) riffing leads over the chord progression.

Johnny did a good job riffing.

When it came to me, I said that I wasn’t going to participate. So I sat there and listened for 40 minutes. Just sitting there and feeling like shit.

Nearly 20 years later, I still remember that day. I remember it because I regret it. I should have gotten my guitar out, plugged in, and ego-be-damned, played my little heart out.

I shared this story with the meetup attendees as a caution to get out of your comfort zone. And a reminder that we are all beginners. And that you just need to get started to get going.

I’m looking forward to tonight’s session on Result Errors vs. Optionals!

If you’re interested in attending the meetup, please RSVP.