Hawaii iOS Developer Meetup – Session 11

tapticenginexrayr

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.

Shape your material into a specific story structure and it will pass through to the conscious mind with few, if any, internal alternatives

“If you shape your material into a specific story structure, then it will pass through to the conscious mind with few, if any, internal alternatives, additions, and restructurings. Your story reaches the conscious mind, not some other story created by the receiver’s own mind.” – Haven

How many times have you heard someone say, “You need to own your story!”? I never really knew what it meant. Then I came across this quote,

“Make sure you set your own priorities. Because if you don’t, people will make their priorities your priorities.” – Unknown

What happens when you don’t advertise who you (or your product) are clearly? Do people even know what you stand for? Actually, what do you stand for? Having a hard time answering that question? Then it might be time for you to do some journaling. If you don’t know your story, how do you expect others to?

Oprah famously said, “You teach people how to treat you.”

Dr. Phil goes on to say,

“Say your bossy friend always picks the restaurant you hate. If you’d rather keep silently resenting her instead of speaking up, then don’t change a thing. (By the way, there is a payoff here for you, too; maybe you don’t want to put any effort into making a decision, or you enjoy feeling wronged.) But if you want to see a different result, then you need to teach her how to treat you.

Why aren’t you challenging her when she ignores your opinion? You’re the one who is refusing to say, “Wait a minute, I’m really in the mood for someplace else.” The only person you control is you—which is great news, because you’re the one who has been letting her call the shots time and time again” – Dr. Phil

In “Story Proof: The science behind the startling power of story,” Kendall Haven writes:

“If you shape your material into a specific story structure, then it will pass through to the conscious mind with few, if any, internal alternatives, additions, and restructurings. Your story reaches the conscious mind, not some other story created by the receiver’s own mind.” – Haven

It’s important to know how your story functions.

It’s important to structure your story in a way that other people will understand you, how you operate, and what you need. It’s even more important to make sure you’re telling yourself the right story.

Let’s play a game.

Take a moment to write out your story. Do this alone. Don’t let someone else tell you what your story is. This is the time you’ve blocked off for yourself to check-in.

Get out a piece of paper. Set a timer for 5 minutes. And get busy answering the following 3 questions:

  • What is my personal story?
  • What is my work story?
  • What is my family story?

Now read over what you wrote.

Does it make sense? Is there a clear beginning, middle, and end? Now go find someone you trust. Read your story back to them. Ask them what parts are unclear.

Make notes of what parts are unclear. Revise what you wrote with feedback from your trusted friend.

Repeat this process with other trusted friends. Keep revising until you get responses that the story is clear.

Now that you have a clear story. Look to see if this really defines who you are. Are there parts to the story that could be integrated better? Are there glaring inconsistencies in your story? Patterns?

This exercise should give you a chance to get clear on what parts of your story are clear and what areas need work. Finally, ask yourself, “What parts of my story can be ripped away?” Old beliefs holding you back?

You write your story. If it’s crystal clear, you won’t leave any room for misinterpretation.

You write your story. Make it a good one 🙂

Hawaii iOS Developer Meetup – Session 9

Another great meetup at HICapacity in Manoa. The topic of the night was Git workflow and TDD.

I was happy to share my experiences with TDD during most of the meetup. I took a poll at the beginning of the meetup to find out who was familiar with git. All hands raised. I pivoted the talk from easy git commands to the one that I have used the most:

git reset –hard ALPHANUMERICHASH

I’ve used this single command so many times, I thought it was the most important part of using git. And I wanted to share it. So I did.

We ran into a few issues during the meetup. I created a folder with the swift project on my computer. I initialized the project with a git repo on the computer.

Then, after I had finished adding the files and creating a commit, Tyler mentioned the need to push to github to keep the files backed up. Tyler made a good point so I logged into my github account and created a new public repo.

I started going over the merits of github, the little green squares, issues, the ability to share OSS with other creators, etc. Then, right before I was about to finish creating the repo we started discussing the dropdowns for .gitignores and a license.

Having discussed the .gitignore and different licenses, I had to create them for this repo. Unfortunately, we ran into pull and merge problems when I added the github origin to my local folder being managed by git.

I ended up moving the files to a different directory on my machine, rm -rf’ing the .git in my folder, initializing git again locally, adding the origin, pulling the changes, moving the project files back into the directory, adding the files to git, and finally committing them.

Only after all that reconfiguring, was I able to successfully push my files to the newly created repo. Still working on best practices. Happy for the opportunity to work with a bunch of great iOS developers in a group setting.

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

Hawaii iOS Developer Meetup – Session 8

Another fantastic meetup. We finished coding Tetris. John took the project a few steps further in his spare time. He got the console to set itself at a fixed width and height. He got input controls working. Fantastic stuff. A testament to the problems that are solvable by time, determination and interest in the subject matter.

We discussed the difference between tuples and structs. To be honest, I’ve never used structs in my programs before. John saw that I had created the piece offset as a tuple and asked me why I didn’t make it as a struct.

He walked me and the rest of the meetup attendees through the process of updating the code to use a struct instead of a tuple. This was a fantastic exercise in group refactoring. The pace of our discussion was also ideal.

Troy, a new attendee, was able to ask more basic questions about the language. And on explanation, I was able to learn more aspects of the things I already knew.

Loving the meetup. We’re covering Test Driven Development and Git workflow on Thursday. RSVP if you’d like to attend!