Glassdoor app for iPhone and iPad

I worked for Glassdoor for a number of years (2014-2020) on their iPhone and iPad apps as a Senior iOS Software Engineer and then iOS Lead Engineer. Glassdoor helps people everywhere find jobs and companies they love! Check out the current app via the app store link below.

 

Kroger Co. app for iPhone and iPad

The Kroger Co. app is the mobile companion to the Shopper Card customer's use at all Kroger branded grocers. It allows a customer to find stores near them, view weekly ads and coupons for each store, create shopping lists, add coupons to their Shopper Card for easy application at check-out, and more.

Tech Notes

The Kroger Co. app is under active development by a team of iOS engineers. My contributions (circa 2013) included:

  • Complete ground up rewrite of UI code for shopping list section of the app.

  • Contributed significant work toward rewrite of backend code for shopping list, including list item aggregation.

  • Refactor of custom networking code built on AFNetworking to simplify a half dozen possible methods of invoking a web service to only two methods

  • Refactor code to reduce redundancy, reduce copy/paste coding and increase code reuse

  • Add Personal Information update screen for editing name, address and phone numbers

 

Fly Delta for iPad

Delta Airlines iPad app allows users to track their flights, explore information about destinations, book trips, purchase upgrades, view in-flight entertainment info, see what friends have to say about various locations and more.

 

Tech Notes

The original Fly Delta for iPad app (circa 2012) was a multi-pronged effort by a dedicated group of software engineers. In addition to my efforts to address general development bugs throughout all areas of the app, I also implemented new features and/or architectural design updates to many areas, including but not limited to:

  • Primary UI structure and transitions

  • User persistence, deletion, and login process (UI and web service logics)

  • App resume process

  • User recognitions (million miler, medallion status, birthdays)

  • What's Next panel

  • Facebook login and persistence

 

Nedi the Yeti

Nedi the Yeti was a children's book for the iPad. Designed for children ages 2 and up to read with their parents, Nedi the Yeti featured tilt activated parallax scrolling backgrounds and characters that animated when touched. Kids could help Nedi the Yeti find his animal friends in snowy forests and iceberg seas! Tilting the iPad made backgrounds move, and kids could drag Nedi's friends out from their hiding places and tap on them to see what they had to say!

Nedi the Yeti characters and illustrations were conceived by Rob Warnick at Spinaroo LLC. You can see more of his illustrations and projects at warnickart.com I was the sole developer for Nedi the Yeti.

In the short movie below, the side to side movement of the backgrounds is controlled by tilting an actual iPad to the left or right. Tapping Nedi on the first page shown causes him to smile. Sox the Fox is touched and dragged out from behind his tree and tapping him causes one of two animations to play (his ears move differently).

 
 

Tech Notes

Nedi the Yeti is built upon a custom page layout engine. The page layouts, interactions, animations and sounds are described via an XML file which is consumed by the engine at runtime to create the entire book. This provides the flexibility to add additional pages or create another book with little or no changes to the engine code.

Tech used:

  • Accelerometer for tilt reactive parallax graphic layers

  • NSXMLParser for parsing the custom XML page layout description file

  • All animation techniques leverage CoreGraphics

 

Sit or Squat

Sit or Squat was developed by another app development company, but I helped tie up some loose ends and bugs on the early Sit or Squat app. The issues I addressed included finishing legal requirements (T&Cs, links, Facebook notices and load issues), bugs in presentation of the Facebook login dialog, failure in bookmarking locations, failure to specify a location on a Google Map by touch, and changing the content of the Settings screen.

Tech Notes

Tech used:

  • Facebook SDK - changed Facebook code to allow for login dialog to popup in response to 'OK' in modal message dialog (it's a window!)

  • Google Maps - added single tap to place annotation capability

  • Block based animations - used to greatly simplify animation code

 

Wee Gallery

I developed the initial code and iPhone user interface structure for this app. Another developer then added assets and made user interface adjustments as needed to support the iPad. The app was meant for very young children as an aid (i.e. stimulus) during the early stages of eye development.

Tech Notes

Tech used:

  • MPMoviePlayerController for videos

  • An "Infinite" paged scrolling view is the basis of interface, allowing the user to wrap from the last view to the first (or vice versa) when swiping

  • Customized gestures for sliding videos onscreen and revealing tips

 

vMobiLearn

vMobiLearn is a corporate training application that allows a company to deliver training material to employees and track employee progress. I was contracted by VistaCast LLC to add an iBooks style bookshelf view to the app.

The image below is from the iPhone version of the vMobiLearn app. I created the bookshelf view shown, including the graphics used for the bookshelves, the search bar, and the bookmark graphic that displays percentage progress.

 
 

Tech Notes

The bookshelf view adjusted in size to accommodate the iPhone, retina iPhone, and iPad. It offered an infinite vertically scrolling bookshelf to display as many training volumes as necessary. It also offered dynamic realtime search based on training title through the search field at the top of the view.

 

Live Work Play

Live Work Play provided a view into the culture and benefits of the Possible Worldwide office in Cincinnati, OH. It incorporated a Google Map of the office location, project and office event videos, and photos of past work and events. Visual flair is provided by a parallax scrolling background in the main interface. I was the sole developer for this app.

The video below shows the paging scroll view used in Live Work Play, the seamless parallax background cloud images, and several popup views including an interactive Google map and a video player.

 
 

Tech Notes

I created the parallax scroll capability as a learning exercise and it was an initial inspiration for the interface of this app. Live Work Play only utilizes two levels of parallax and 3 pages of content, but many more levels of parallax are possible with a virtually unlimited number of seamlessly scrolling pages of content.

Tech used:

  • Google Maps - display point of interest in interactive map

  • MPMoviePlayerController - show videos in popover views and full screen

  • Custom parallax scroll solution

  • Custom popup overlay solution for greater control over presentation

  • App layout is specified by an XML file with Objective-C runtime calls used to create classes as needed based on the XML data

 

SwissshCam

A client app that wasn’t released. This app allowed a user to capture video and then choose a slower frame rate to produce a slow motion version of the video. It also allowed the user to capture photos and apply a variable level of full image blur to the photo. Saving to the device's asset library, social sharing and emailing of videos and photos, and viewing of a twitter feed was also provided. I was the sole developer for this app.

Tech Notes

Tech used:

  • AVFoundation for recording and saving slow motion video

  • Twitter integration to view a specific twitter feed

  • Core Data used to cache tweets for display in case Twitter is unavailable

  • Facebook integration for sharing of videos and photos

  • MFMailComposeViewController to allow for sending videos and photos via email

  • UIWebView for some displays with link interception for native code responses to web view interactions

  • Multi-tasking support to allow uploads to finish if app is closed

 

Photo Paint

This demonstration app allowed users to capture a photo and then paint or blur that photo via touch using simple painting tools. The tools included brushes of different sizes and an eraser. The effected photo could be saved to the device's image library, emailed, or posted to Facebook. I was the sole developer for this app.

The video below shows a prop photo being painted by touch with several colors, some blur applied, and emailing of the finished photo.

 
 

Tech Notes

Tech used:

  • AVFoundation to capture a photo with the front or back camera of a device

  • Custom image manipulation code to color and blur an image when touched

  • Facebook SDK to allow for posting a photo to Facebook

  • MFMailComposeViewController to allow for sending photos via email

 

Movie Trivia

This movie trivia demo app showed one possible user flow for allowing a user to answer trivia questions to win points toward redemption of special offers. Note: Branding elements have been removed from these screenshots, thus the apparent barren areas in the designs. I was the sole developer for this app.

 
 
 

Expense Tracker

The Expense Tracker was used by employees to enter reimbursable expenses while on the go. A reimbursement form could be generated from a list of expenses, digitally signed, and then emailed to a manager for approval. I was the sole developer for this app.

Tech Notes

Tech used:

  • Custom signature by touch interface

  • Custom generation of a PDF reimbursement form using an empty PDF form as a base, filled in with data provided by the employee, including the employee's touch created signature

  • Core Data for storage of expense data

 

Document Library

Backend web service support for the app was provided by another development team, but I developed the app code for this enterprise app. The app queried a web service for a list of PDFs and videos, determined if the latest versions had been downloaded and provided the user with an interface to acquire or update individual PDFs or videos. Once downloaded, the PDF or video could be viewed in the app.

 
 

The video below shows the selection, download and viewing of several documents and a movie.

 
 

 

Tech Notes

Tech used:

  • Split view controller to display available PDFs or videos in the left side table and then view the content of a selected item in the right side detail view

  • Custom paged scroll view to display PDF pages in the style of iBooks with swipe gestures to advance forward or backward through pages

  • Core Data to store document information from the supporting web service and about documents already downloaded

  • MPMoviePlayerController to display videos

  • Multi-tasking support to finish a document download even if the app is closed

 

ToppsTown

 

ToppsTown was a "virtual world" website for kids who collect Topps sports cards. The site allowed kids to collect virtual Topps cards, create an avatar made of collected parts, and create their own locker room filled with collected furniture and decorations, play games to get on-site currency, challenge friends to games, play fantasy baseball, football and basketball based on real world stats, and more. I was hired as a backend developer for the site and quickly moved into day to day development management, tracking local and offshore resources up to the site's launch. After launch, I was the server and database admin and the web services and database developer. My second iOS project was a conversion of one the Flash games on the site to a native iPhone app (completely native, not a recompilation of the Flash game to iOS code).

 

Note, projects shown may have been developed for an employer, a client, for fun, or in the case of Nedi the Yeti, as an app from my company, Irreverent Bits LLC.