I went to Thoughtworks last week where I participated in a Hack Day. I went expecting it to be a hackathon, but it was more of an event where iOS developers could gather and work with the upcoming Swift 3, Xcode 8 and HomeKit. It was a great day, I got to work with my friend (a fellow FS graduate) and meet new people. I fumbled a lot. There isn’t much information out there about HomeKit, but it was still interesting to see what we could do with the framework.
This weekend was different from the last. This weekend I went to an official hackathon, the Women in Tech Hackathon hosted by AT&T and Girls Who Code at the Centre for Social Innovation.
We gathered together at 10AM to discuss the schedule, the prizes and hear the awesome ideas and skills that people wanted to share. At 11, we began. Myself, and three other Flatiron School graduates paired up with a few girls from Girls Who Code, one of the girls had this brilliant project she already started as a web application so we decided to expand on her original idea and turn it into a mobile app. The idea? Adiona (the Roman goddess said to protect travelers).
An app that “ensures safe commutes for its users. After creating an account, the user sees three buttons: yellow, orange, and red. If nervous, the user clicks the yellow button, allowing police to track her real-time movement on an administrative display that’s only accessible with the proper certifications. If feeling more nervous, the user clicks the orange button, which sends her message of distress and location to those on her emergency contact list (customizable). If in a life-threatening situation, the user clicks the red button, which calls 911 and sends help to her location. There’s a map button that allows the user to see locations of past crimes, so that he/she can make smart decisions as they commute.”
Right off the bat we knew that we wanted to implement Core Location, call on some API’s, use our good friend NSUserDefault to avoid wasting too much time with Core Data and use some funky Cocoapods (for our button). We jumped right into it and I was so happy to have such a passionate and pro-active group.
My job was to implement the Core Location - allowing us to access the user’s location (with their permission when they opened the app). I completed that and created a function that allowed us to store the latitude and longitude we received from the user in hopes that we would be able to use it later, if needed. The work with location didn’t take too long at all - what did take long was working with Git. I’m pretty sure that I spent over two hours fumbling through Git and fixing merge conflicts, but I’m also sure all that fumbling has made me a little bit better at dealing with Git. I also had fun writing the code that would allow us to make a fun call after tapping our “Emergency” button.
My team members did amazing work. A. found a Cocoapod that made our buttons look like the bomb. The Cocoapod for our buttons did something else interesting - it made our buttons JBButtons (a type of UIView) as opposed to a UIButton. This provided a fun challenge. We had to figure out a way to to operate on these views the way that we normally would with a button. We tried different methods, but nothing seemed to work! In the code we had towards the end we had one fully functioning button, with the logic for the other two buttons on in separate files (where they worked) - minutes before it was time to present we came across a possible solution which I hope to test out soon.
This post is already so long, so I’ll come to an abrupt end. We didn't finish Adiona, but I'm proud of what we presented. There were many lessons learned, many chips eaten, I was unbelievably impressed by the girls from Girls Who Code (rockstars) and a good time was had. Oh yeah, and we won first place for mixed group (women and GWC) and tied for the Audience’s Choice - which is pretty awesome! I’d love to go into my takeaway from this hackathon, but I’ll save that for another post. Look out for it.