+   +++++++++   +
+     +++++++++     +
+      +++++++++      +
+        ++++++++       +
+          +++++          +
+            ++           +
+    ++++              ++   +
+  +++++++++      ++++++++  +
++        +++      +++    +  ++
++       ++           ++      ++
+     +  ++ +       + ++ +     +
+        ++ + +     + ++       +
+             +                +
+             +                +
++            +               ++
+            +               ++
++          +                +
+          +                +
++         +++  +          ++
+         ++++++++        +
++      ++++++++++++     ++
+++    ++++++++++++++    ++
The reasons for making an app can have any number of origins. Up until now most ideas came from ‘the outside’ but our most recent app idea found its origin a bit closer to home.
I recently became the father of two babies. “Two babies?”, I hear you think, “Why not just say twins?”. Well because one of these babies is a physical baby and the other is a metaphysical one.
Let me explain … the story begins with the real baby.
The birth of our daughter on the 5th of January, was a magical moment and thankfully went smoothly. As the dust settled and reality kicked in we realised she needed to be fed. But because the breastfeeding left our daughter a bit hungry we had to supplement her diet with formulae. And of course, the maternity care assistant told us to keep track of what we feed her; on a large form with tiny, little squares where you could keep track of how much breast milk and how much formulae the baby was eating.
There’s an app for that!
We knew there had to be an app for that because this was quite the awkward process (looking for a pen, looking for the form, most of the time with only one hand free). So we searched the App Store for a good app to keep track of these important numbers.
Easier said than done. It turns out all the apps in the App Store that claim to track feedings either need you to navigate through multiple screens to add an entry or need you to find this specific feature in a tangle of unnecessary ones.
So what does a developer do in situations like these? They tell their wife they will make her the perfect app for the job. And so the story of the second baby, Feed Me, begins.
Easy, one handed data entry
As most new parents know you rarely have: 1. two hands free and 2. a lot of free time, when you have a newborn. This resulted in the requirement that the app must allow you to quickly add a new entry with the use of only one hand.
All information in one screen
Because of the fact you have so little free time (or free hands) you would like to limit the navigation within the app to a minimum. That added the requirement that all information relevant to (at least) today and the ability to add an entry must be visible in the main screen.
A New Type of Control
I would like to start with the control to add new entries. This was a challenge because of there are 3 types of data in one entry: 1. The type (breast milk or formulae), 2. the amount and 3. the feeding time.
- Type: Selecting the type is not much of a problem as this would not have to take too much space. The amount and time on the other hand pose a bit of a challenge.
- Amount: You would commonly use a slider control to adjust an amount in iOS. This slider would have to be quite wide as the amount of milk would vary from 5 to about 200 in steps of 5. Accuracy would suffer if the size of this slider would be much less than the width of the screen.
- Time: The goto control in iOS for selecting time is a large and clunky control that is usually presented on a separate page. This is not an option in our app so my conclusion was that I needed a new control for both manipulating an amount and time.
I wanted a control that would let you change a value by sliding your finger across the screen but not have it take up the whole width of the screen. What I designed was a button that shows the current value and pops up a larger version of this value when you press it. If you then slide your finger left (or right) this value will decrease (or increase). My first version was far from perfect as it gave the user no intuitive information about the control whatsoever. So I made the popup fill the screen and added a plus and a minus to have some incentive for the user to slide their finger.
A Simple Backend
As requirements started pouring in from my one tester (my wife), the need for synchronisation was born. She was convinced feeding a baby was not always a one man (and device) job and you would need to be able to access the data on multiple devices. This called for a simple API where data could be store and retrieved. I had made some simple API’s with the help of Parse.com before so I designed a datamodel and let Parse take care of the rest. Alas just after I finished this API I learned Parse is going “End of Life” and we will come back to this in the “What’s Next” section.
All in all, creating the API took me about 30 minutes so no time wasted there ;)
I wanted the app to be at least bi-lingual from the start but that results in a lot of extra work when offering your app to the App Store. Thankfully, the at least the localization of the app is a snap.
For every language you need:
- at least one screenshot (five max) for all six device types
- release notes
- general information
- and more…
This process can leave you crying in a corner when you realise you used the wrong size screenshots after you manually took all 2 languages * 6 devices * 5 screenshots = 60 of them over the last 2 hours.
Luckily Bruno was looking into some new integrations in fastlane (an iOS deployment automator) and found snapshot, a tool that allows you to automate taking localised screenshots.
This in addition to all the tasks fastlane already takes care of (updating version number, getting the correct certificates, uploading to the store) makes deployment of the Feed Me app pretty much effortless.
Fastlane is a tool that takes the majority of the tedious work that goes into releasing an app out of our hands. Fastlane save us time by:
- checking the versioning system to see if you are up to date
- keeping track of the version number.
- taking care of the digital signing process and all that comes with it.
- building the (correct version) of the application
- uploading it to either Hockeyapp or the App Store
- taking care of release notes and other app information
- taking care of all required screenshots
- make coffee … ok, maybe not that … but we are working on it
This is the section about what’s to come. Not just feature wise since we have recently learned that our beloved BaaS (Backend as a Sevice) Parse.com has started the process of going “End of Life”.
We want a way to export the users data in a way that’s useful to him or her (or childcare services). There is a big chance this will be in csv format, but we will wait for some user input before starting this feature.
As I mentioned Parse.com is shutting it’s doors (Thank you, Facebook!) and we learned this just after I made the FeedMe API. This is a bit of a set back but we are exploring some alternative amongst which making one ourselves. We have until January 2017 to figure this one out and we might let it depend on the number of active users by that time ;)
Pie charts, that is. We would love to take the FeedMe data and present the user his or her data in a smart way. A way that goes beyond just showing how much the baby ate on a day or week and show the user patterns in the babies feeding pattern.
This is a long term goal and not something you can expect in the first few updates as we have to brush up on big data analysis first.
So that’s Feed Me’s story. The app has helped my wife and I gain some confidence and insight in our daughter’s feeding pattern. And confidence is what you need as new parents, you’ll take all you can get your hands on. Looking back I wish I made this app before the birth of our first child but alas, progress on our time machine app is slow.
We hope this app can help you get a grip on at least one part of raising a newborn and get rid of some paperwork in the process. If you know anyone that just had a baby, don’t forget to point them to the App Store. We hope Feed Me can make their life a little bit easier!