Todd Gibbons

iOS Developer Portfolio

MLB

I was a member of the team at MLB that develops and maintains the official baseball app for iPhone. At the time, it was the second-most popular sports app in the world, featuring live and archived game streaming, statistics, schedules and more. I worked on features throughout the app in support of iPhone, iPad and Apple Watch.

Some of the most interesting work involved audio and video streaming, and implementing the network API connecting the app to the official baseball stats database. The codebase was a combination of Objective-C and Swift and was produced in a agile environment with Jira, using Jenkins and Fastlane for CI/CD. This work included frequent collaboration with product, design, and testing teams. In addition to new feature development and debugging, I was also involved in several redesigns and refactorings.

Experian

As a contractor for MEDL mobile, I was part of a team of four developers maintaining the Experian app, a tool for consumers to track and improve their credit scores. This was just before Swift was released, so all the work was done with Objective-C. The project was heavily dependent on the highly-sensitive consumer credit database, so part of my job involved frequent collaboration with the server-side team to develop and improve the networking API.

The project was developed in a Jira-driven agile environment and involved regular coordination with product, design and testing teams. The iOS devs met regularly with the Android team to help them mimic the iOS UX on Android. My favorite part of the project involved working with the design team to implement clever, original UI widgets that allowed users to explore their credit data in interesting ways.

Tracer

This is a simple musical memory game I created which involves tracing patterns on a grid. It’s an atmospheric, casual experience. I created the sound effects using an analog synthesizer. The result is a simple, pleasant and engaging experience. I included a Jam mode which allows the app to also be played like a musical instrument.

I was the sole developer of this project, which uses an MVVM architecture and includes inline documentation and unit tests. I wrote the code using a combination of SwiftUI, Combine and UIKit. The source is available on Github.

MLB for tvOS

I was part of a team of four developers at MLB who re-wrote the Apple TV MLB app from scratch. I was the lead developer of the streaming video player component that drives the user experience.

Video players on Apple devices can either be made using a turnkey, non-modifiable player, or you can write the whole thing from scratch. We went with the latter option in order to implement some great designs that display scores and statistics inside the player transport UI, as seen in the screenshot.

I also implemented a complex, proprietary DRM-laden streaming API as part of this work. I also accurately re-created many of the core UI behaviors and animations of Apple’s default player by capturing and scrutinizing videos of their player. It turned out great– The project was well-received by stakeholders and customers. The app is currently available on the App Store on Apple TV.

Gameday

I worked as a senior developer with a company called Sportslabs that specialized in collegiate athletic apps. Our main product was Gameday, a template-driven iOS app we customized to fit the needs of the athletic programs for over fifty major universities. This allowed students and fans to follow their favorite sports programs, including schedules, scores, stats and live streams.

This network-intensive app involved close coordination with our back-end team in support of a proprietary database that served all the client schools. We equipped our support staff with a custom CRM for responding to real-time customization requests without having to release new versions of the app. The project was written in Objective-C and Swift. Unfortunately, Sportslabs closed its doors in 2017 and Gameday is no longer available.

MyUT Austin

At Sportslabs, in addition to my work on Gameday, I was also part of a team of two developers who created the official student app for the University of Texas at Austin. We re-purposed our Gameday collegiate athletics app as the sports component and created the rest from scratch.

We included several features based on existing network APIs made available to us by the UT Austin tech team. These included course schedule management, student bank account management, campus maps, bus timetables, event schedules, office hours and other academic resources.

Scenescapes

On this project, I worked with a Mac software company called Amuse to port their successful MacOS app My Living Desktop to iOS. This resulted in a series of five apps called Scenescapes which, like their Mac predecessor, presented calming, atmospheric video loops to transport the user to relaxing spaces.

Amuse produced the source video for these apps and I wrote the code with Objective-C (this was before the introduction of Swift.) The app shipped with sample content, and I used the Storekit API to enable in-app purchases for unlocking the rest of the content.

This project involved heavy use of Apple’s AVFoundation framework. The biggest challenge I encountered and overcame was finding a way to get AVPlayer to allow for seamless video loops without any skipping- something it was not designed to do. This series of apps was first released in 2013 and two of them are still available on the app store.

Entangled

I worked with the folks at Entangled.org to build a new version of their upcoming experimental consciousness app. Entangled is following in the footsteps of an exciting series of experiments conducted by a group of Princeton scientists at the PEAR lab.

They found that their test subjects could affect the outcome of physical random number generators using only their minds, enough to constitute statistically significant results. The Entangled app aims to put this type of phenomenon in everyone’s hands. While the app has not yet been released, I helped them take their project to the next level.

This included building a next-gen version of their data mapping iPhone app, based on wireframes. I was the sole developer and built it entirely using Swift, MapKit, SwiftStats and an Alamofire-based Networking API that I designed using OpenAPI. I also provided architectural consulting, including specification of a scalable data warehousing solution along with extensive documentation.

MiLB

While working at MLB, I was part of a two-developer team that managed and maintained the official Minor League Baseball app (MiLB) for both iOS and Android. The app was written natively for both platforms, using Swift for iOS and Kotlin for Android. I worked on both apps.

When I joined the effort, the app had recently been rewritten from scratch on both platforms, and was suffering from a lack of customer satisfaction. Part of my job was to respond to this by gradually re-introducing features from the previous version of the app, to improve the user experience. We were successful in garnering a number of positive customer reviews as a result of these efforts.

Century Light

Prototype LED light bulb changing colors under control of the Bluetooth iOS app I developed.

I collaborated with a friend on this IoT product which was a color LED light bulb controllable by an iOS app using Bluetooth (this was before any other products like this existed.) My friend did all the hardware development and firmware programming, and I created the iOS app, using Core Bluetooth to develop an API for sending commands to the light bulb.

Our plan was to crowdfund the project on Kickstarter. While we didn’t quite make it to that stage, we did get two prototypes functioning, and in the process I became well-versed in developing IoT apps with Bluetooth under iOS.

This Video shows the progression of the prototype, including the Mark 1, which used a breadboard, and the Mark 2, which was built on a Texas Instruments key fob. I built a variety of UI elements into the app for controlling the brightness and color values, including sliders and a photoshop-style color picker, as seen in the storyboards at the end of the video.

Step Chess

I’ve always been fascinated with game development, and in 2013 I created this turn-based strategy game using OpenGL and GLKit. It was an adaptation of the 3-d chess-like board game called Terrace, which was once featured as a prop on the deck of the Enterprise in Star Trek: The Next Generation. The contoured nature of the board made it a great candidate for 3-d graphics, and no one had yet adapted it to a video game, except for an awkward 2-d version that appeared on a cd-rom in the 1990’s.

I created a primitive AI opponent including a min-max strategist algorithm, which was just good enough to be a legitimate challenge for new players. I also used the opportunity to teach myself Core Data, which I used to provide persistent storage of all the moves in all the games ever played. I’m currently working on a new version that uses SceneKit and GameKit, which includes multiplayer.

Contact

Todd Gibbons

Email: Todd at ToddGibbons.com

Visit my Linkedin