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.