January 23, 2024
Hi everyone - I’m excited to share my first mobile app! It’s really more of a mini-app that is a step along the way to building something better, but it’s still a big deal to me ❤️ It’s extra fun because it let’s me mush together my absolute dorky love of coding, my appreciation for design, and of course - like any parent - my desire to make my kid’s life better.
I wanted to learn app development so that I could build a diabetes logbook app. When Alma was first diagnosed, everything was really overwhelming. It was a lot of carb counting and measuring and weighing and calculating insulin doses (ok, it’s still all of those things). We initially kept everything on photocopied log sheets from the hospital, eventually moved to a paper logbook, and then just stopped doing the logbook altogether. But I have often thought about how having a digital version of that original logbook could have made our lives easier. I’ve searched around for just the right app, and when I couldn’t find quite I was looking for I figured I might as well try to build it myself.
I’m taking an a great course on Udemy and have been tinkering with small projects that will help me build the app I am envisioning. This little dosing calculator was a big step for me - I learned just enough about basic UI layouts and buttons that I was able to cobble it together.
Flutter seemed like a good framework for app development because it is very approachable, has a large and growing ecosystem of “widgets”, and also it’s designed so that you only need to write the code once and it will work on both iOS and Android devices.
Fun stuff I learned
Refactoring and Organizing: I love learning how to tidy up and refactor the code. It’s so satisfying to make logical, readable, sensible code. And even better - a lot of the things I picked up the course actually apply to coding in general.
Custom Widgets and Flexibility: Flutter’s flexibility in customizing widgets is incredible and so powerful. And it’s all open source so you can just dig into literally any widget and see how they did it. And then take the pieces that you need to build your own!
Navigating Multi-page Layouts: This is an obvious one to any app or web programmer, but as a scientific programmer with only minimal experience in this area, it was cool to see how it’s implemented in Flutter.
Theming and design: Flutter (and Dart, the language used to run Flutter) was created by Google, and it integrates Google’s Material design concepts with an eye towards accessibility and consistency and best design practices. Even if I don’t fully adopt that functionality, it’s still super interesting to play around with it and see what’s possible.
Next Steps
This app is simple. It is definitely imperfect. But it is functional! And it was so cool to see an app that I made myself on my phone. As I move forward I hope to add more features and improve usability, and have made myself a few goals for improving this app over time:
Simple improvements
Remove the plus/minus button approach since that is just annoying. Have direct number entry using number keypad.
Separate out the nutrition information part - maybe make it a different color or match the way nutrition labels on food look.
Incorporate current blood glucose value and insulin sensitivity
Complex improvements
Have user login/authentication
Store carb/nutrition info for past meals so user can look it up
Access an open nutrition info database so users can look up common foods
Pull in users’ CGM (continuous glucose monitoring) data
Use geolocation to suggest previous meals along with blood glucose response and insulin dose
Hopefully this gives you a little glimpse into not only the technical aspects of the app but also the motivation behind it and a little peek into the learning process.
Have you had similar experiences learning a new programming language, delving into app design, or even building tools that might help you or your family? (Is your child obsessed with minecraft??) I’d love to hear from you!