SoFA icon

SoFA - Snap-on Finance App -


This app is made specifically for Snap-on company. Snap-on is Autodidact's largest customer and has requested an iOS app to calculate the monthly cost of their products for their customers.

This calculation requires some specific requirements, such as VAT depending on the region and custom duration depending on the sales price.

Snap-on used to use this calculator built in Excel and wanted it in an iOS format, so the SoFA 'Snap-on Finance App' was developed. Because I'm the only iOS Developer at Autodidact, this was the first app I created specific for a customer (B2B).

SoFA Screenshots

Focal Points

Programming icon App Requirements
  • Snap-on Only
    This app is distributed through Apple Business Manager.
  • Custom Login
    Snap-on requested a hardcoded login for their staff.
  • Region-dependent VAT
    The app automatically sets the VAT depending on the region, but can be overridden in the settings if necessary.
  • Interest Amount
    Snap-on wanted a specific interest amount for certain prices.
  • Subscription Duration
    Snap-on wanted a specific subscription duration for certain prices.
  • Currency
    Snap-on specifically wanted the currency to be displayed after the price.
  • Version-control
    GitHub was used for version-control.
  • Multilingual
    The app can switch between English, Dutch, German and French.
  • Drop Down menu
    Snap-on wanted a drop down menu to select the subscription duration.
  • Custom Keyboard
    The app uses a custom currency keyboard including '.' and ','.
Software icon Used Frameworks
  • UIKit
    100% programmatically designed with UIKit.
  • AutoLayout
    The app is built using AutoLayout programmatically.
  • UserDefaults
    UserDefaults was used to store simple app state settings.
  • Currency Formatter
    The user input is manipulated using Currency Formatter to convert it to a currency.

SoFA Screenshots

What I've Learned

I learned to work with different stakeholders in a project and develop a custom iOS app for a client. Here I also learned to listen to what the customer needs and to convert their intuitions into well-functioning features. I learned to work with the different needs of the customer and the end user, and to balance them in a well-arranged app

In addition, I learned how to develop, archive and upload a Business to Business app (B2B) with Apple Business Manager, instead of the normal route through the App Store.

I learned how to distribute a testFlight app not only to Snap-on personnel, but first internally as well. I also learned to create a custom input view for the native keyboard with the original sounds and colors.

Future Features

Future idea icon New Ideas / Improvements
  • macOS
    Make sure the app supports macOS so Snap-on can use it on their macs too.
  • Login
    Instead of a hardcode login, use an API and backend to log in securely.
  • Print to PDF
    Print a PDF for the customer with details of the subscription fees.