Hawaii iOS Developer Meetup – Session 33

We’ve all been waiting to try it out. All I needed was a deadline to give me the push into installing Xcode 9 beta 4 and upgrading iOS on my iPhone from 10.3.3 to iOS 11. The gains are huge. Perhaps the best thing I’ve noticed on iOS 11 has been the screen recording feature. Amazing!

During this meetup we had a chance to cover ARKit. I’m floored. Absolutely floored by this technology. I set up the this session so that we could have witness the tech hands-on. In order to prepare for this session I watched the WWDC 2017 video on ARKit. Then I searched YouTube for a tutorial video from Jared Davison.

While I was searching for tutorials I was busy installing Xcode 9 and iOS 11 on my devices. Both of these pieces of software are needed to develop and play with Augmented Reality for the iPhone.

I really like how ARKit projects have a very interesting screen lag. Sounds strange but, this is starting to feel like the future.

Next week Adam Smith will be covering Architecture 101 at the meetup. Please RSVP if you’re interested in attending. Don’t forget, we’re meeting at the iLab on Thursdays at 6pm!

Hawaii iOS Developer Meetup – Session 32

During this meetup I prepared a tutorial on setting up Firebase Realtime Databases. We hit a snag in the set up of the database when I put the configuration call in the wrong place in the App Delegate. Good thing the one of the developers had done the tutorial before. As a group we were able to debug the connection and get the tutorial to work as expected.

During the group debugging session Adam commented that he wished we could always have a group of developers programming together as we located the bug much faster. 10 eyes are better than 2!

If you’re interested in attending the next Hawaii iOS developer meetup, we’ll be covering ARKit to do augmented reality with the iPhone. Please RSVP if you’re interested in attending!

Takeaways from Accessibility Sessions at All-Campus IT Conference

This slideshow requires JavaScript.

Last week I attended the IT All-Campus Conference at the University of Hawaii at Manoa. There were a number of tracks attendees could take and I chose the Accessibility route.

Here’s a random assortment of takeaways from the Accessibility track:

  • Accessibility is about access, not disability.
  • Making site accessibly a priority makes the site better for everyone
  • How does your website perform for a student studying for his finals?
  • How does your website look when it’s printed?
  • Get in line with A, then AA, then AAA
  • The way I see my website is not the way you see my website.
  • Students shut off images to save data on their plan.
  • Have you looked at your website with a color blindness simulator?
  • If you say required fields will be red and the user can’t see red, you need to do it a different way.
  • high contrast, and large fonts to address cataracts.
  • add whitespace for glaucoma patients.
  • Provide transcripts as they are mandatory. Make sure your captions match the audio, not just a script that has been prepared ahead of time.
  • 75 char or less in line length. Increase line height to 1 and a half height.
  • Space out navigation on mobile.
  • Turn your pdfs into webpages so they can be read by screenreaders.
  • Not all devices can read PDFs.
  • Skip links are required for repetitive navigation.
  • Users don’t want to have to read through the same thing every time if they are already aware of the navigation structure.
  • Add label tags to all of your forms
  • Don’t use click here wording, update it to the verb that states what it is doing.
  • If linking to PDF, share in the link text that this is headed for a PDF.
  • Listen to a website by skipping through the headings. Section the content up this way.
  • Make site navigable by keyboard only!

Resources for more information:

Designing MaiTai’d for iOS – Democratizing Hawaiian Fishpond Tide Data

Combines landscape orientation with HUD

I’m giving a talk at the all-campus IT Conference at the University of Hawaii at Manoa this Friday. Here’s a list of things I’m going to cover in the talk:

  1. Finding a need at Purple Mai’a’s Native Hawaiian Tech Conference
  2. Discovering startlingly steep drops in the cost of water management sensors
  3. Learning why Hawaiian Fishpond tide data matters so much
  4. Leveraging Open Source Software (OSS) to build a rapid prototype
  5. Achievement Unlocked! Minimum Viable Product achieved.
  6. Focus Grouping at Water Conference in Punalu’u in August 7-9
  7. Follow our progress on Github

But first, who am I?

My name is David Neely. I am the Technology and Web Coordinator at the Manoa Career Center. I am most proud of the Pocket Workshops we recently created to allow students to view career development workshops on their mobile devices wherever and whenever they want.

I believe in leveraging the ubiquity of mobile phones to provide every person with superpowers unique to their needs.

I am also the organizer of the Hawaii iOS Developer Meetup. We are a group of nearly 100 developers who meet every Thursday at the iLab here at UHM to discuss the evolving best practices of developing apps for the iPhone, iPad, Mac, and Apple Watch. Next week we’re going to discuss ARKit for the iPhone to do some Augmented Reality on the iPhone with iOS 11.  If you’re interested in attending the meetup or have questions about iOS development, please come and see me after the talk.

Finding a need at Purple Mai’a’s Native Hawaiian Tech Conference

One of the developers at the Hawaii iOS Developer Meetup shared that she would be attending the Purple Mai’a Contest on March 25, 2017 and asked me if I’d be interested. The contest brought together Native Hawaiian Water Management caretakers and app makers.

I checked out their website and watched the video from the contest the year before. It looked awesome! So I signed up.

The contest provided an excellent opportunity to do service work at the Kanewai, the loi near the dorms, and learn more about the most pressing Native Hawaiian water issues. I learned from the many talks at the conference that “Water dictates the cultural practices of the land.”

They had a few white boards around the space for writing thoughts to share with other attendees. I wrote on the wall just before getting in line for lunch, “If the water could talk, what would it say?”

Discovering startlingly steep drops in the cost of water management sensors

While I was waiting in line, I met Brian Glazer, an associate professor and oceanographer in the University of Hawaii at Manoa’s School of Earth Science and Technology (SOEST).

Brian shared that he was working on a project that leverages the falling price of water sensors that presents a outstanding opportunity to democratize water sensor data. Here’s how he pitched it:

Expensive water sensors used to cost up to $20,000 to purchase

Now those sensors can be had for less than $100!

Brian’s team installed those sensors to monitor tides at He’eia Fish Pond in Kaneohe

They also have a web interface to show the real-time data on desktop computers

But there’s a problem

If you’re working at the He’eia Fish Pond, you’re not going to have access to a desktop computer. They needed an app to display real-time data to allow the caretakers of the findpond to know exactly how much water was flowing from each of the makahas.

Lucky me, I had an opportunity to join the team and I jumped at it.

We met a bunch of times to discuss the state of He’eia Fishpond and the cultural practices that are informed by the flow of both fresh and salt water into the pond.

But why does Hawaiian Fishpond tide data matter so much?

Hawaiian fishponds are unique and advanced forms of aquaculture found nowhere else in the world. The techniques of herding or trapping adult fish with rocks in shallow tidal areas is found elsewhere but the six styles of Hawaiian fishponds, especially large walled ponds, were technologically advanced and efficient as their purpose was to cultivate pua, baby fish, to maturity.

Fishponds provided Hawaiians with a regular supply of fish when ocean fishing was not possible or did not yield sufficient supply (Kelly, 1976).

The compact style of wall slows water flow, allows the pond to maintain a base water level even at the lowest tides, and forces more water to the mākāhā or sluice gates. He’eia Fishpond has six mākāhā – three along the seaward edge that regulate salt water input and three along He`eia stream that regulate fresh water input.

By allowing both fresh and salt water to enter the pond, the pond environment is brackish and therefore conducive to certain types of limu. By cultivating limu, much like a rancher grows grass, the caretaker could easily raise plant-eating fish and not have to feed them.

source: http://paepaeoheeia.org/thefishpond/

Leveraging Open Source Software (OSS) to build a rapid prototype

As I designed the app, I identified 3 pain points. In order to build the app I would need to query the datapoint with a network call, validate and parse the returned JSON, and display that data in an interactive chart.

Luckily I had some experience with open source software and managed to find 3 libraries that would make my job much easier. Here is a list of the OSS I used for this project:


SwiftyJSON is an open source library written in Swift for iOS that allows developers to validate and parse JSON with very clean and simple calls.


AlamoFire is an open source library written in Swift for iOS that allows for clean and simple asynchronous network requests. Errors and callbacks are easy to structure and respond to with this library.


SwiftCharts is an open source library written in Swift for iOS that gives developers deep control over how they present JSON data in a nice, very customizable, interactive graph.

Achievement Unlocked! Minimum Viable Product achieved.

By leveraging the open source software libraries SwiftyJSON, AlamoFire, and SwiftCharts, I was able to build the minimum viable product that queried the endpoint, validated and parsed the JSON, and displayed 24 hours of tide data in an interactive chart for the iPhone.

Here’s a gallery of screenshots that shows the progressive development of the app:

This slideshow requires JavaScript.

Focus Grouping at Water Conference in Punalu’u on August 7-9

On Aug 7-9 we will be conducting a makers conference in Punalu’u where fish pond owners for each of the neighbor islands will come to Oahu to learn how to build and maintain their very own inexpensive water sensors. They will each build their own sensor to take them back to their fish ponds.

Now that we have version 1.0 of the app, we can show them that they will be able to see their real-time data on their phone.

During the water workshop, I’m planning to ask the fishpond owners what features they want in the app and what matters most. I am a big believer in Eric Ries’s Lean Startup Methodology. I want the fishpond owners to validate the product before we build it out.

Follow our progress

If any of this is interesting, please follow our progress on Github: https://github.com/Mai-Tai-D/maitaid001

Thank you for your attention today 🙂

Hawaii iOS Developer Meetup – Session 25

With all the announcements from WWDC 2017, I was eager to get everyone’s opinions on iOS 11, Xcode 9, wireless capability to build to your devices over the air, and my personal passion: ARKit.

I sped through the prepared talk on Bluetooth Game Controllers. Then we had a chance to discuss the new hotness from Apple.

I was surprised that Machine Learning with MLKit and the new Foundation class Coder that allows for easier serialization of data were big items that developers were interested in discussing.

I learned a lot from Jonathan, with his Functional Programming background, Ryan, with his experiences creating and reading JSON in his own projects, and Chae’s deep knowledge of data formatting.

So happy to have this group of developers to discuss, learn from, and guide through our mutual learning of Swift.

We’re covering Firebase Analytics at the next meetup. RSVP if you’re interested in attending!

Hawaii iOS Developer Meetup – Session 24

Core Data is a subject that has always been spoken about amongst the iOS developers I know, in hushed tones. That’s why it was so great that Adam Smith, one of the developers at the meetup, suggested that he was willing to do a talk at the meetup on Core Data.

Adam’s presentation was well thought out. He prepared a talk that took us through all 4 types of data persistence available to iOS developers:

  • UserDefaults
  • KeyChain
  • NSKeyedArchiver
  • Core Data

And once he’d taken us through the pros and cons of each solution, he did some live coding that showed us how he sets up a project to use Core Data.

I especially like how he brought some humor into the live coding by naming his project CuteDogs. Hilarious. It reminded me of Joel Spolsky’s blog post on Painless Functional Specifications.

This week we’ll be covering MFi Bluetooth Game Controllers in Swift. RSVP if you’re interested in attending.

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!