Hawaii iOS Developer Meetup – Session 13

During this meetup we discussed React Native. We are a group of developers in the midst of language changes. A few members of the group are hard-core Objective C developers. And the Swift developers are trying to get them to jump ship. Being able to talk about something other than the rift between objc and swift is nice.

To prepare for this talk I went through the tutorial on the React Native website. It was fairly straightforward except for 2 things:

  • I broke my version of homebrew installed on my machine. Had to find an uninstall script. Uninstalled and reinstalled homebrew.
  • Installed Node with Homebrew. Old symlinks persisted from the previous install. Googled and reset the symlinks properly.
  • Installed React Native and got registration errors on Android build. iOS build worked fine.

After going through all this fixing to get set up. I just didn’t have the time or the steam to continue working on updating the starter project. I was happy to have the project installed, proving to myself that this was possible with my laptop and setup.

So I showed my progress with the group. Our brains instantly saw the benefits of working on one code base to export to multiple devices. However, as the dependencies streamed down the console as the project was building for iOS, we all came to the same conclusion.

In business work, React Native is just too brittle. Disagree with me? That’s fine.

This week we’re building a 2d boxcar with SKSpriteNode and physics. I was so eager to get started, I made my first car and posted it as a repo on the Hawaii iOS Developer Meetup Github org page.

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

Hawaii iOS Developer Meetup – Session 12

Woohoo! This was a great meetup. Chae was back after working on his project. Good to have him in the room. I really appreciate his deep understanding of Swift 3.0.1.

This time through the subject of the night was vibrations and haptic feedback. I created a repo with code on our github page here.

I learned about new haptic (vibrations) feedback while researching for this topic. I found out that the iPhone 7 and 7S+ have haptic capabilities that allow the programmer to introduce about 6-7 new vibration patterns. Apparently there is a new feedback generator in the new iPhones.

With this in mind I coded the repo mentioned above to do the following:

  1. Determine what kind of device this is.
  2. Play the feedback for the iPhone 7 / 7+
  3. Play the feedback for all other iOS devices

12 weeks into coding with Swift and I am starting to feel much more accomplished with setting up conditionals with options and in traversing arrays in Swift.

I’m happiest to report back that I finished reading the entire book on Advanced Swift by the Objc group. I highly recommend this book. Like I’ve mentioned before, you can’t know a book until you’ve read it through the second time.

I finished a bunch of books this weekend. I’m going to loop back around and read Advanced Swift again. Has anyone read Functional Swift by the Objc guys? I can see that it’s published in 2015 and that makes me think it hasn’t been updated for Swift 3. Maybe I’ll wait for an update.

We’re having so much fun meeting up and talking iOS programming on the reg. This week we’re have a discussion to compare the pros and cons between React Native and Swift3. RSVP here if you’re interested in attending.


Hawaii iOS Developer Meetup – Session 11


There’s no meetup video to share for this session. Neither Jesse nor Jonathan were there at the meetup so we didn’t record the session. I reached out the Jesse to have him show me how to set up the computer, camera, and microphone to stream the meetup. Lesson learned: Learn how to do things yourself so you don’t need to rely on other people.

The meetup subject of the night was two-fold. First I discussed and shared code that  incorporates AdMob ads into an iOS app. If you’re interested in checking out the finished code check it out on github here.

The second piece of code I shared and discussed was In-App Purchases. If you’re interested in checking out the completed in app purchase code you can find it on github here.

I shared this code after the AdMob ads code with a secret request. I discussed the effects of leaving the members with a task to complete to get more buy in.

The two projects I coded need to be combined. That is where the real power of ads and in app purchases lie. It’s in the ability to gain ad revenue while allowing the users to opt out of the ads with a single in app purchase of 99 cents.

This week we’ll be discussing Vibrations and haptic feedback. If you’re interested in attending please RSVP here.

Organizations must understand, use, and control the stories that define them

“Want to develop a sense of belonging and buy-in in your organization? Collect and refine the stories of your group members that best embody the attitudes and outlook you want to promote. Actively tell these stories and encourage others to create and share their own.” – Haven

How important is story to your organization? Do you know the path that your organization took to get here? Are you the founder of your organization? What motivational stories to do you have to share? Why aren’t you sharing these?

“The conclusions of each of these studies shows that stories are an essential and inseparable part of successful organization existence. The question is never, “Do organizations need stories?” or even “Do stories play an important role in organizations?” any more than “Do humans breathe?” is a reasonable question. They do. Period. The question of concern in these studies is: do organizations consciously understand, use, and control the stories that define their beliefs, attitudes, decisions, and actions?” – Haven

When we learn about a new organization that we’re interested in (or are forced to interact with) Stories give our minds a way to process the information.

“Stories reveal causes and consequences that form the foundations of meaning.” – Hirst

We need stories to make sense of the motivations behind the organization’s decisions to do things the way they uniquely do.

As a consumer of products and services from the organization, I want to know why they choose to conduct business the way they do.

“Narrative fulfills critical sense-making function. If you can’t see the story; you won’t learn the content and its meaning.” – Spicer

Remember this important point:

“We humans live, think, and learn through stories.” – Haven

Why are you holding out on us? We want to know who you are before we choose to work with you. If we’re forced to interact with you, tell us who you are. Make it easy for us to like you.

“I believe that the way of storytelling and the ways of conceptualizing that go with them become so habitual that they finally become recipes for structuring experience itself, for laying down routes into memory, for not only guiding the life narrative up to the present but directing it into the future.” – Bruner

Let’s play a game.

Set a timer on your phone for 7 minutes. Think back to the founding of your organization. Why was it founded? Write on this topic for the full 7 minutes.

Connect the reasons with a beginning, middle, and an end.

Stories need these three points to show your readers the characters involved, the motivation behind certain organization-defining-decisions, and the realization of the goals of the organization through struggle, hard-work, and the awareness of their customers and their unique position in the market.

Stop holding back your story. We want to know who you are before we work with you. Make it easy for us. Share your story. Craft your story. Spread it. Share it!

Hawaii iOS Developer Meetup – Session 10

Last night we had a different format for the Hawaii iOS Developer meetup. Usually I prepare a talk for the developers. When we meet we do introductions, I deliver the talk, and we leave room for discussion and questions.

The topic of the night was Intruments and LLDB in Xcode. Aron asked for feedback on using Intruments in Xcode a few meetups ago so I added it to the agenda.

Zac just released his game Dodge It Rocket to the app store this past week. He ran into an issue in his code where a UILabel was being initialized at runtime.

John mentioned that init’ing a UILabel at runtime would cause the frame rate to drop because the program is having to load a gigantic texture file every time a new label is being requested.

As the meetup progressed we were able to identify a potential fix (initializing the labels and reusing them). We also set up a loop in the code to isolate the problem and have the program call the offending code over and over. This allowed us to save time, navigating the in-game ship to trigger the piece of code we were testing.

I’ve never thought of isolating a piece of code in a loop to have it spin up a bunch of times to make the memory/performance issue come to light.

Once we identified the issue, put it in a loop, and ran the code a few times, we put it through Instruments. I’ll pause here. I did a bunch of research into instruments and felt that I had a good feel for how it worked. Not so much. When I tried to leverage the skills I learned about Instruments in YouTube videos. The understanding broke down when it came to profiling Zac’s code.

We all laughed at the end of the session. We really don’t know Instruments. Marking this subject as something we definitely need to loop back around to.

It was helpful to band around the issue and leverage our individual experiences with code to help Zac identify the bug, propose a testing method, and learn more about best practices.

I am very happy with this style of having other developers bring in their code for review.

We’ll be covering In-App Purchase and Ads next week. Please RSVP if you’re interested in attending.