In the previous post, we completed a first version of our app, which can spice up your visits to a zoo by identifying the animals you see. If, like me, you took it for a spin to your local zoo, you might have noticed that the app is not perfect. It can sometimes misidentify animals, and it can also fail to assign a label at the correct level of specificity. For example, it might identify a zebra as a horse, or it might not recognize a Labrador as a “canine” or even a “mammal”. Why does this happen? We will explore the answer to this question in this post.

Over the course of the past few posts (see the overview here), we’ve introduced the ZooScan app and developed its UI using SwiftUI. In this fourth part, we will focus on integrating the Swift Vision framework to classify animals based on images captured by the app.

Creating a Protocol to Define Image Classifiers #

The first step is defining a protocol for our animal classification model. By using a standardized interface, we can easily switch between different models in the future if needed. Here’s how we can define the protocol:

In the previous post, we implemented the initial screen and the ImagePicker view. In this post, we will further develop the app. We will create a ViewModel and a ScannedAnimal model, and add the ‘Main’ and ‘Detail’ views. This will allow us to focus on the UI and the app structure before we dive into the machine learning part in later posts. By the way, if you’re looking for an overview of all the posts in this series, you can find them here.

In the previous post, I introduced the ZooScan app idea and shared a demo of the app in action. In this post, we’ll be getting our hands dirty. We will set up the project, create the basic UI, and implement the first steps of the app. By the way, if you’re looking for an overview of all the posts in this series, you can find them here.

To give you a basic idea of what we’ll be doing, here is an animated GIF that shows the app in action.

My son has always been fascinated by animals. We go to the local zoo multiple times a week, and when we’re on holiday, we always make a point to visit local zoos and other animal parks. On one of our holidays in Porto, we visited the local SeaLife. While we were there, their SeaScan app caught my attention. his clever app lets you scan fish and other creatures in the aquarium to instantly learn more about them. That sparked an idea: what if I build a similar app for zoo animals?

Over the past few years, we’ve seen some truly impressive advancements in AI and machine learning. I remember that 20 years ago, when I was studying Artificial Intelligence, even finding faces in images was a major challenge—something that smartphones now do effortlessly in real time. The same goes for speech recognition: once considered nearly impossible, it’s now embedded in tools like Siri, Alexa, Google Assistant, and even real-time translation apps. While voice assistants are still not perfect—as this video humorously shows—it’s clear that AI has come a long way. Today, AI opens the door to exciting new applications that were unimaginable just a few years ago. In this post, we explore key areas of AI and ML that app developers can leverage to create smarter, more engaging experiences. First, let’s look at Image Recognition…

First off, a huge thank you to all our testers!
Your feedback has been instrumental in helping us refine and improve ScaleDiary. We’re excited to share the latest updates and improvements in Version 0.2.4, along with a glimpse into what’s coming next.

We’re thrilled to announce that we’ve navigated through the legal aspects of app development, which took a bit longer than we anticipated. With those challenges behind us, we’re now focusing on polishing the app before its official release on the App Store.

Just before the holidays we released ScaleDiary V0.2.2 to TestFlight. After testing this version, some bugs were identified, which we now fixed in version 0.2.3. Version 0.2.3 was released today on TestFlight. Version 0.2.3 will hopefully be the last testing version before we release a first version of ScaleDiary to the App Store. Hopefully, ScaleDiary can be released by the end of next week.

Changes in Version 0.2.3:

  • Deselect current dates displayed when changing month in calendar view
  • Show a app store review dialog after the user has started the app at least 7 times
  • Made it impossible to go to a month in the future by disabling the next button if the current month is visible in the calendar view
  • Update the calendar view when the calendar view becomes active again, for example when the app went to the background. This fixes a bug where the current date indicator was sometimes still visible for a day in the past.

After we release the app to the App Store, we are planning to work on the following features:

After our initial release of Scale Diary V0.2 to TestFlight we already got some useful feedback from our testers. We were able to fix some bugs this week and version 0.2.1 was released today on TestFlight.

Changes in Version 0.2.1:

  • Swapped Cancel and Add button order in AddWeight view.
  • Hidden stepper if no weight has been entered.
  • Fixed a bug where weights in stones or pounds (LBS) were not plotted correctly in the graph views.
  • Fixed localization of period descriptions (W, M, 6M, Y) in the picker in the ChartView.
  • Reduced space between calendar columns for better visibility on smaller devices like iPhone SE 2.
  • Fixed CalendarView landscape orientation.
  • Added German translation to the app.

Keep checking this site if you’re interested in updates. If you would like to help us test ScaleDiary please let us know. We are especially looking for testers in the following countries: US, UK, Germany, and any Spanish speaking countries.

Today we have release the first version of ScaleDiary for testing on TestFlight. ScaleDiary is an iOS app helping you track your weight from day to day. It helps you analyze your weight development and reach your fitness goals. It is also designed to be no-nonsense, this means it will be released as an one-time payment only app and does not share your data in any way.

Key Features:

  • Daily Weight Logging: Easily record your weight every day with a simple, intuitive interface.
  • Progress at a Glance: Visualize your progress with clear, easy-to-read graphs and charts.
  • Simple and Clean Design: No ads, no distractions—just a straightforward tool to track your weight.

Keep checking this site for progress updates! If you are interested in helping us test the app, please let us know.

Previous Next