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!

Advertisements

Hawaii iOS Developer Meetup – Session 7

We programmed Tetris yesterday at the meetup. I was surprised at how long it took to code up Tetris before the meetup. I used a single dimensional array to store the game piece and the game board. Bad move. Translating the index of an array to a differently sized array was a nightmare. An hour before the meetup I recoded Tetris with multidimensional arrays — Instant coordinate system.

There’s a technique Hemingway used when he wrote novels and short stories. He’d write until he caught a good tailwind, then, just as abruptly as he started, he would stop in the middle of writing.

Halfway through writing, his brain wouldn’t have the chance to fully express what it wanted to — no closure. This meant that his brain would continue to sift and sort his thoughts until the next day when he would dive into writing with gusto to finish what he started writing the day before.

I suspected the same effect exists in coding.

Stopping in the middle of implementing a function might not be the best place to stop. So I stopped when the game functioned well enough but contained a visual bug.

The bug gave us an opportunity to talk about Swift on a deeper level without being too invested in setting up a new project to have something specific to talk about.

If you’re interested in compiling, testing the code yourself, and checking out the bug, here’s a link to the repo.

This is a cool bug. It’s giving me ideas about other games that would benefit from this kind of visual oddity. Kind of like glitch art. The piece is placed on the screen then “melts” down the page. It’s kind of cool. How would you fix it?

We’ll be tackling piece rotation and scoring next week Thursday at the Hawaii iOS Developer Meetup. Please RSVP if you’re interested in attending.

Hawaii iOS Developer Meetup – Session 6

Killing it. Finding that the more of a lead I take, the more energy, interest and enthusiasm it creates. Finding that I need to slow down in my delivery. Finding my moderation style is a bit short. Working on it.

Meetup page is shaping up and looking novel:

screen-shot-2017-01-05-at-11-28-22-pm

Set up is getting cleaner:

screen-shot-2017-01-06-at-12-22-08-am

Looking forward to the next meetup where I will live-code Tetris in Swift 3 for the command line. Sign up if you’d like to attend in person.

Hawaii iOS Developer Meetup – Session 3

Chae and I were ready to go. Tyler walked in and we started session 3. I have a feeling that most developers are finishing up their christmas shopping on amazon, coordinating holiday schedules, and finishing up year long projects.

With such a small group we were able to discuss optionals, the topic of the night, deeply, and strategically. I’m most interested in created a best practices process that says, “Don’t ever use optionals. But if you must, guard them like this…”

We weren’t able to come up with hard and fast rules to follow concerning optionals. But we did discuss force unwrapping, implicit unwrapping, and the fact that optionals only have 2 states:

  • some()
  • none()

At the next meetup we’re going to be covering XCTests. I had a chance to write some tests for the first time this weekend. Main takeaway: I feel so much more confident about the code that I write. Here’s the XCTest video I suggested developers review before the next meetup:

Currently my tests prove that the code works with the expected input. I’m hoping to work this week on testing my error handling code by adding in tests to do just that.

Looking forward to the next meetup on Thursday. Busily reading Advanced Swift this week. If you’re interested in joining the meetup, please click here.

Hawaii iOS Developer Meetup – Session 2

This time we got together and there were only 5 developers, myself included. I had wanted the format to pivot around other people’s projects. Apparently, this strange time of transitions between Swift 2 to Swift 3, makes a need for syntax talks more important.

I’ve decided to focus on Swift 3 language topics for the next few meetups. This past meetup we spent the entire hour talking about Closures. In the middle of the talk, that I was leading, I found that I knew much less about passing functions than I thought I would.

We will be circling back to this topic as we continue to discuss Swift 3. Gotta say I love how clean the language looks. Here are a few more topics we will be discussing along the way:

  • XCTests
  • Cocoapods
  • Swift JS Bridge
  • Making a Tetris clone
  • LLDB

Hawaii iOS Developer Meetup – Session 1

I biked to HICapacity at the Manoa Innovation Center and arrived 15 minutes before 5pm. I passed out nametags and felt a strange feeling bubbling up. Haven’t felt it in a long time – Impostor Syndrome.

As more developers piled in to attend the first Hawaii iOS Developer Meetup, I started feeling the Impostor Syndrome ramp up. Good sign right? This means that I’m not the smartest person in the room. And I’m gonna learn things I didn’t even know I did not know.

We had a great first meeting but I wanted to start out with something that might help other people with their own meetups. According to Gitte Klitgaard, Imposter Syndrome “affects smart people. 70% of people you know suffer from it.”

Part of Impostor Syndrome comes from being made aware that you do not know nearly as much as you do. We freak out and imagine we’ll be found out if we don’t know everything.

In the YouTube video, Gitte suggest that networking allows you to know people that know the stuff you don’t know. Now, instead of freaking out that you don’t know everything, your brain can chill and minimize the internal freak out.

She also mentions that getting out of your comfort zone pushes you into the learning zone. I found that pushing your limits is the secret to slowing time.

Prior to the meetup, weeks seemed to be racing by. This week, it’s slowed to the point of feeling like no time has passed at all.

Impostor Syndrome minimized, let’s get to the meat of the meetup.

“I have learned one thing. Showing up is 80 percent of life. Sometimes it’s easier to hide home in bed. I’ve done both.” – Woody Allen

Here’s a list of the developers who attended the first meetup:

Joseph is working on donation app for non profits. Focused on payments facilitation with PayPal. His strengths are building teams. His weaknesses are mobile. He can help with best coding practices.

John is new to Hawaii. He moved here from Washington state. He has experience working on TV apps that feature live streams and security cameras. His strength is OCD. Which allows him to work on a problem until he gets it working. Interestingly, his weakness is that he stops once he’s hit MVP and has a hard time finishing after his proof of concept. He needs help with UI. He is willing to help out with backend.

Mike is originally from Osaka, Japan. He’s been in Hawaii for 15 years. He’s been working for wedding companies. A couple of years ago he started making his own apps in Cocos2dx and Unity. He’s released 5-6 apps on the App Store. His weakness is not knowing Swift. He’s hoping to learn Swift at the meetup.

Chae started in Swift 1 and is now learning Swift 3. He’d ultimately like to put Swift on a server. He’s currently learning Vapor, a web framework for server side Swift. He’s also working on an energy auditing app and wants to put it on a server.

Jonathan is HICapacity member who is finishing up his degree in EE.
He’s currently playing with Elixir, Erlang, PureScript, and ElmEmail servers in Elixir and Phoenix.

Eric attended a bootcamp on Swift. He’s currently doing Unity game development. He has experience using SpriteKit to do games. But he’s interested in switching gears to focus on AR and VR in Swift. He’s also interested in leveraging Siri Kit. Eric made a SpriteKit template for anyone with an idea to drop right in. Eric is also a artist and painter who does animation.

Paul has a PhD in electrical engineering. His background is in C, C++, and ObjC. His strengths are algorithms. Unfortunately, he doesn’t have enough time to play with new stuff. He’s developed in Obj and enjoys hardware projects.

Jesse doesn’t have much programming experience. He’s interested in creating VR music videos. He’s just purchased a $700 3d camera that arrives in March.

Notes for Improvement

With such a varied group of developers I struggled with how to best serve them and make Thursdays from 6-7pm as beneficial as possible.

Initially the meetup agenda pivoted on introductions. I was hoping that the introductions would be a launching pad for informal conversations and camaraderie. And I still believe the format is right. Now, I see how important it is to provide a second track for developers who aren’t ready to share their progress.

I feel like it’s important to provide some kind of learning time which could take the form or a info session, article discussion, or free form conversation. I’m going to try this out at the next meetup today.

I will be requesting suggestions from the developers to build up our repository of interesting articles, tutorials, resources, open source projects.

I sent out messages to all attendees for feedback on the first meetup. The number one most common request was to move the start time from 5pm to 6pm. Now we are meeting at 6pm.

That’s it for the recap of the meeting. I am eager to see how this meetup evolves over time. I am confident that the start time will allow more people to attend.

If you are interested in attending, please RSVP for one of our weekly meetups here.

Misc Thoughts

  • Post XCode keyboard shortcuts
  • Post screenshots of current projects
  • Schedule first talk
  • List articles we are interested in talking about
    • Fuckingswiftblocksyntax.com
    • Text to speech
    • Push notificaitons (Ray Wenderlich)
    • Lets Encrypt
    • https://whatilearnedtoday.io/
    • Swift Style (Ray Wenderlich)
  • List book recommendations
    • iWoz
  • Lingering questions:
    • Why swift on the server?
    • Can work with MySQL
    • What else?
    • Why is this better?
    • Swift playground online?
    • Installing Swift on linux
    • Installing Swift on Windows 10 / 7

Just started the Hawaii iOS Developer Meetup

Welp, I did it. I put my money where my mouth is. I signed up for meetup.com and created a new group. We’re called the Hawaii iOS Developer Meetup. We’re going to meet once a month at the beautiful hackerspace HICapacity in suite 132 at the Manoa Innovation Center.

I talked to my friend James at HICapacity. “James, I want to do a meetup at HICapacity.” He responded, “Cool!”

I created the meetup on meetup.com. I wasn’t sure exactly how to structure the meetup so I talked to my friend Nick, the host of the iPhone OS Weekly Developer Meetup San Francisco.

I loved the way he structured the meetup in San Francisco. He told me he was fine with me just using his framework. Reading over the manifest I am very happy with the trajectory of this endeavor.

Can’t wait to see what the turn out is like at the first meeting on Dec 1. If you’re in Hawaii and you’re interested in attending, please check out the event and register to attend.

Here’s the manifest for the Hawaii iOS Developer Meetup:

This group was created to provide a regular meetup for iOS developers actively working on projects. The purpose is to work together to support one another in bringing our ideas to life. The goals are also to meet people in the Honolulu, Hawaii area who are doing the same type of work (programming and creating apps for the iphone, ipad, and mac) and to have fun.

This meetup is for:

  • iOS Developers of all levels.
  • People who are interested in getting their hands dirty in code.
  • People just starting to develop for iOS who do not have much experience.
  • Developers on other platforms (Android, etc) who are interested in learning about iOS development.
  • Developers looking for specific help in adding functionality to their app.

This meetup is NOT for:

  • People interested in hiring a developer to work on their idea.
  • Marketers wishing to sell a product / service to iOS developers.

The meeting format will be evolving and dynamic but as a starting point attendees should expect an opportunity to discuss:

  • What he/she is working on
  • What apps they have released
  • What they’re interested in or what their specialty is
  • What they want to get help on.

There may also be a speaker who presents a specific topic. But everyone will have the opportunity to share and ask questions. Afterwards, there will be non-structured time, during which attendees are free to pair off or have discussions in smaller groups. If you have one, bring your laptop and any iOS devices you have. I’m hoping this meetup will serve as a launching point for barn raising groups, where all members of the group in turn have the opportunity to utilize the rest of the group to develop an app. This will most likely be done separately from the formal meetup.

While the primary purpose is to support developers of iOS applications, there will also be events in which the topic of discussion will be other platforms such as android, however they will never be presented by direct stakeholders of the platform (in other words, no pimping allowed).