Case Study: Creating Custom Applications

Mobile applications regularly goes through changes in their scope. The first mobile applications were limited by phone and tablet processing power, wireless bandwidth, cloud capabilities and their limited sophistication. This kept apps from living up to our expectations.

As the capabilities of our phones, tablets and available bandwidth grew so did the functionality of mobile applications. Certain business applications are great; providing all of the tools and functionality needed while in a mobile environment. Other apps have gone too far and tried to replicate the full desktop experience on a mobile device. Finding that sweet spot between minimalist and bloated is where we need to be as developers.

This is the second year that I have received a whisky advent calendar from Kensington Wine Market in Calgary, Alberta as a gift.

Much like the chocolate-filled Christmas calendars that we had as children, the whisky advent calendar has 25 doors, each hiding a small bottle of whisky to be sampled each day of the month leading up to Christmas Eve.

With the first calendar I didn’t think about documenting all of the different whiskies until I was half-way through the month. I wished that I had in order to later purchase my favorites.

When the 2017 calendar arrived I decided that I needed a way to document and rate the whiskies. There were several ways that I could do this:

  • Paper - people still use that?

  • Text document - probably the least usable. No structure or consistency in the data, limited ways to display it or do any searching, sorting or reporting.

  • Spreadsheet - more structured but data entry is manual. A spreadsheet doesn’t offer a great user experience; constant horizontal and vertical scrolling make it cumbersome and the mobile spreadsheets aren’t easy to use.

  • Database - structure, control, consistency and ease of use. Now we’re talking.

As FileMaker is my platform of choice I figured that I could creating something quickly with the features I wanted and a high level of usability.

The FileMaker Platform can easily deploy to multiple device types using the same code. I could leave the database on my computer, install it on my iPhone or iPad or have it shared across any device, or web browser, through FileMaker Server.

As this was going to be a micro-app, designed for a specific task and limited functionality, I knew the data structure was going to be minimal. The entire database is comprised of 1 data table, 18 fields, 8 scripts and 4 screen layouts. This could be pared down even further if I wanted. The majority of the fields are text fields, a few number fields, a field to hold an image, and a single calculation field which is used to combine a number of other fields for display purposes.

The main device for the database is an Apple iPhone 7 Plus. The computer and iPad share the same code base. The display of information on the computer and iPad could be optimized to take advantage of the bigger screens but it wasn’t critical as most data entry will be done on the iPhone.

The layouts consist of a list view, a detail view and two layouts to display a larger version of the image and notes.

The list view, it is a sorted, summary report. The report is first sorted by the calendar year; in this case 2016 and 2017. This gives the “Calendar Year 2016” separator and then the information is sorted by the date. This makes it very easy to use the database for future years. Every time the list view is entered the sort order is maintained. There is no user action required.

The list view displays 5 key pieces of data. That’s enough to let me easily and quickly find what I need. There is no search capability built in yet. There are only going to be 50 records in the database until the 2018 calendar is added. That’s easily scrollable. In the future, I might add a filter or additional sorting capabilities (distillery, country, region, etc.).

The five fields are the date, the distillery, whisky name, age and the rating I’ve assigned. There are no editing capabilities on the list view. Tapping on the row displays additional information on the detail layout.

The detail view allows for editing. There are 6 high-level buttons:
  • Back to List
  • Add Record
  • Close File
  • Delete Record
  • Next / Previous navigation buttons

The fields, when possible, use FileMaker’s built-in data entry tools. Several fields are automatically populated when a new record is created; Advent Version field auto-populates the year, Advent Date populates with the current date.

The Distillery field is free-form text and will auto-complete based on existing entries, making data consistency much easier. The Country and Region fields are drop down menus based on previous entries with the ability to add new entries.

The Whisky Name field is free form as it wouldn’t have many duplicates between bottles.

The Distilled Year, Bottled Year, Age and Alcohol fields are all numeric and bring up a numeric keyboard compared to the standard QWERTY keyboard; making data entry faster.

The Alcohol field is one of the few calculated fields. Entering .46 is recognized as a percentage and formats accordingly. Entering 46, the business logic determines that this isn’t a valid percentage, divides the number by 100 to create the correct entry.

The Age field can be entered directly. Some whiskies are labelled with the distilled and bottled years. If both have been entered the Age field automatically calculates the correct age. If the fields are empty, the Age is manually entered if available.

The Ratings tool lets me assign a 1-5 rating for the whisky. Clicking on the appropriate “star” button sets the field and uses conditional formatting to light up the correct number of stars. Instead of typing in a number, the star buttons are a faster and easily understood method of data entry.

Notes is a free form field where I can enter pr paste in text. It could be more elaborate but as these bottles are consumed in a single sitting there isn’t likely to be many additional notes.

The Notes field has a secondary layout associated with it that contains a larger, customized view of the information. Normally, when clicking in a text field FileMaker Go automatically displays the keyboard, which may not be desirable when you only want to read the text. The “View All Notes” button navigates to the other layout and displays the text in a form that is scrollable but does not display the keyboard.

The image field has two button associated with it and 3 scripts.

The magnifying glass button displays a larger version of the image on the final layout and the minus button clears the image.

If there no image in the field, tapping on the field opens the camera on the iPhone to take a picture. If an image has been inserted, tapping the field displays the larger version.

Other things that I added, a script to create the 25 records needed for the entire month. This avoids having to create a record every day. That was done with a single script that would run once a year.

The entire database, which was built from scratch took less than 3 hours to create. Populating the 25 records from the 2016 calendar took about an hour and served as the testing and revision phase of the project. As records were added a few usability tweaks were needed and adjusted them on the computer, connected to the same file on FileMaker Server while the iPhone was connected. Changes were made on the fly and instantly available. The later records took much less time to enter than the first records as the usability ramped up.

A few data consistency items had to be added. iOS automatically adds a space after a word in many instances. Text fields were adjusted to automatically strip out trailing spaces and remove text formatting on data that was copied and pasted from other sources. All of the data will appear exactly the same no matter if it were typed in on the phone or pasted from somewhere else.

Buttons look like buttons, there is little confusion about what a button will do.

All of the FileMaker Go toolbars have been hidden to maximize the available screen space and prevent any users (beyond me) from doing things they shouldn’t. It also makes the database look more “app-like” vs being a document. The required functionality of this application is limited so the space was better used with other things.

What else could be added? There’s a few things I can think of; have I purchased a full bottle?, bar code on the bottle, more notes, there are likely many but none are critical at the moment. Some might be available only on a desktop version. Adding everything to the mobile version pushes the app towards the bloated application that we’re trying to avoid.

This is good example of a very focused application with a specific purpose and the power and flexibility of the FileMaker Platform to create a mobile application in a very short period of time.

This micro-application shows that a mobile app doesn’t have to take a long time to develop or be expensive. The is something that could grow in the future or stay as it is. Everything works well, the tasks I set out to accomplish are there and it didn’t take long to create.

List View
Detail View
Bottle Image