Making A Meal Planner With AWS Honeycode
Yesterday afternoon AWS has announced a new service named AWS Honeycode (beta). Honeycode lets people build mobile and web applications without writing a single line of code. Many people find coding esoteric, hard to fathom, or just plain too steep to learn to get value out of. I find it an exciting proposition that many people could benefit from simple automations that could save them time. Until Honeycode, no one would be making them. So just to try it, I set out to build a simple application for myself and this post is about my experience.
My first impression of Honeycode was “Google Forms On Steroids.” Do not get me
wrong, Google Forms is a great product to be compared to. Like Google Forms,
Honeycode provides a spreadsheet as a data source, but it takes it further. You
can build not only a data entry form around it, but a list page with search,
details page, and connect them into a simple, but cohesive app. Second,
Honeycode uses the all too familiar spreadsheet macro language to adjust the
data here and there (filter a sheet, vlookup
something). This is a brilliant
idea because I think it flattens the learning curve in a major way. Anyone who
has seen Google Sheets or Microsoft Excel, and went through a basic computer
literacy course at school should be able to connect the dots. Finally, there are
automations - send an email on data entry, or update a record in a different
sheet, on some condition. Without automations, it would just be a spreadsheet
with a form and maybe a few other sheets to list data in different ways. With
automations, something can happen after the data was entered or changed. I think
this is what closes the circle and makes it into a real application building
tool.
AWS Honeycode has a good list of starter templates, from a to-do list to event planning, to weekly team organizer, but one use-case I tried to address with Honeycode is to build a meal planning application. At home, my partner and I try to preplan most of the dinners for a week ahead and I must confess I find the task daunting, for a few reasons:
- I have to remember a chunky list of recipes I’ve made in the past;
- I have to then check my recipe notes in Google Keep, Google new ones, or just plain scour through our recipe bookshelf to get a list of ingredients.
Of course, there should be an app for that. Maybe there already is, but I am not willing to spend $15/mo on subscription I know I will only use on Sunday evenings, but that will nag me daily with notifications. I’m thrifty like that. But then again, this sounds like a perfectly valid use-case for a tiny app on AWS Honeycode. Lo and behold, after about an hour playing with bells and whistles a not very cleverly named “Home Organizer - Meal Planner” web application was born. And in a true developer fashion, I have “Test Meal” and “Another Dish” recipes planned for today and yesterday.
And when I click on a recipe - it shows info where I can find that recipe in a book:
And if I don’t know what recipe to pick - I can see the list and search by ingredients:
Considering that it took me about an hour to make this prototype and have it live, on a service I haven’t seen before, I think it is great. However, I am very curious to try and get my partner on board to develop this prototype together further. And possibly inspire people, who don’t know how to program, to try this too, considering that it is virtually free for up to 2500 rows in spreadsheets and 20 users. That is plenty for recipe references and meal plans for just the two of us.
Of course, not all is flying colours. There is room for improvement too:
My biggest disappointment came when I realized the Android application was not available in the UK. This meant that I could not use the Honeycode on mobile (logging in on phone just points you to download the app).
Help was hard to navigate sometimes. Especially finding the list of spreadsheet functions for reference. The autocomplete tooltips could show not the parameter list, but the explanation too. Google Sheets do it quite well.
I did not use automations for meal planner, and there seemed not very many options available, past the basic: update a row, send an email notification, add a new row. I am sure the developers have a backlog of ideas and I hope one of them is an ability to invoke an AWS Lambda - that would open up interesting automation options for people with some coding basics. (e.g. I’d happily write a function to split the ingredients list into components, or a function to automatically search and add recipes).
Finally, I thought the app wizard was great. So great, that once I knew how to use it, I found it difficult to create screens from scratch. Which lead me to some confusion about how to pass around variables between screens. In the end, whenever I found myself struggling, I just created a temporary app with a wizard and copy-pasted the screen to my main app, and deleted the temporary one.
None of these are permanent problems. Considering AWS Honeycode is a beta product and the way Amazon builds things - ship fast, listen to feedback, and iterate - it will improve. But most importantly I am excited about the ability for people to build apps without writing code. An environment that enabled building this builder (sic) mentality, ability to try, break and fix things, was what lead me into the world of programming, software engineering, and constant learning. AWS Honeycode can become such an environment for a new generation of builders, whatever their age, race, gender, or economic status.