Honeycode: 3 Steps to Build Apps with No-code

Manoj Fernando
Bits and Pieces
Published in
9 min readAug 19, 2020

--

The world of web development is going through rapid changes. It is now, more than ever before, a world driven by components, with tools like Bit (Github) making the distinction between building components and composing apps, clearer than ever.

Components are created as independent building blocks, shared on a component hub (e.g, Bit.dev), and used by others to create new compositions.

Example: React components shared on Bit.dev

This, of course, opens the way to more abstract and low-code app development. For example, in the world of React, there is quite an explosion of visual editors that make use of React components to bridge the gap between code and low-code.

Having said that, some tools go a step further in delivering a “no-code” solution for app development. One of these tools is Amazon Honeycode.

When I heard the new launch of Amazon Honeycode, I was curious about the “No-code Application Development.” So I built a Honeycode app to try that out.

In this article, I’ll share my experience with Honeycode. Does it really eliminate the need for programming?

What is Honeycode?

Amazon Honeycode is a fully managed service that was recently released by AWS. It helps you build three-tier business applications without coding.

Honeycode apps can,

  • Run-on Web
  • Run-on Mobile via Honeycode Android and iOS apps
  • Share data in real-time with the users
  • Personalize data for users
  • Automatically send notifications
  • Manage business workflows

It’s Based on Spreadsheets!

Honeycode apps are based on spreadsheets. So If you have some knowledge about Spreadsheets, Amazon Honeycode is an excellent choice for building business apps!

An Honeycode app uses,

  • Spreadsheet tables as the database tables
  • Spreadsheet formulas to implement business logic
  • Drag-and-drop application builder to create user Interfaces.

In fact, it adds more functionalities on top of spreadsheet tables and formulas to make them suitable for building powerful apps.

What is the Purpose of Honeycode?

Most businesses use spreadsheets to share data with employees. However, spreadsheets have many drawbacks.

  • Hard to manage security
  • Susceptible to costly human errors
  • Hard to prevent users from accessing unauthorized sections in the spreadsheet
  • Difficult to send update notifications for selected users
  • It’s boring to work on a spreadsheet without a friendly user interface after all.

So, how can we overcome these drawbacks? One of the solutions would be to develop custom apps to replace spreadsheets. But it is a costly approach. Your IT department may not have enough budget and resources to build such apps.

Now, this is where Amazon Honeycode comes in handy. It helps in solving all of the above problems by enabling businesses to build custom apps based on existing spreadsheets with no-code.

What can you Build with it?

Amazon Honeycode is ideal for building Line of business(LBO) applications. Here are some apps that you may build with Honeycode.

  1. Event Management
  2. Inventory Management
  3. Field Service Agent
  4. Customer Tracker
  5. Surveys
  6. Team Task Tracker
  7. Purchase Order(PO) Approvals, etc.…

In fact, Amazon provides a template library for the above apps to help you get started with Honeycode quickly.

3 Steps of Building an App with Honeycode

When building an app with Honeycode, you should follow three steps. (The 3rd step is optional)

  1. Create spreadsheet tables to act as database tables
  2. Create app screens based on the tables with business logics
  3. Add “Automations” if required

Let’s explore more about these steps using an example of a Time Reporting App.

Time Reporting App

Imagine your company needs a way to track the working hours of employees who work from home. The management decides to use Honeycode to build an app that is accessible over the web and mobile.

Requirements

Employees should be able to select the project and report time on a daily basis. As soon as a time entry is added, the corresponding project lead should be notified about it. The project lead will then approve the time entries of the team. Additionally, employees should be able to view the historical time logs, and project leads should be able to view a list of approved time logs of the team.

Time Reporting App Overview

Two Apps for Employees and Project Leads

To implement the above requirement with Honeycode, let’s create two applications that consume the same set of tables. (See the above diagram)

  1. Time Report App — Employees will log in to this app and report time.
  2. Time Approval App — Project leads will log in to this app and approve the time entries of the team

Step 01 — Creating the Tables

Let’s use the following three tables to store time entries and projects.

  1. TimeLogs Table
  2. Projects Table
  3. Status Table

The TimeLogs table acts as the data source for both Time Reporting App and Time Approval App.

TimeLog Table

Table Column Formats

The TimeLog table has multiple columns/fields to store data. Each column has a data format.

Employee Column

Let’s set the format for the Employee Column to “Contact”. It is a special format provided by Honeycode which will reference the users of the application.

Project Column

The Project Column format is “Rowlink”. It is used to reference other tables. In this case, the Projects Table is linked with the Project column to pick the project from a dropdown menu when creating a time entry.

Here is how the Project Table looks like.

Project Table — Each project has a name a project lead

Date Column

The Date Column format is “Date”. It’s used to manage date operations.

Worklog Column

Worklog column is used to store the work log description of the employees. The format of Worklog Column is “Plain Text”.

InTime & OutTime Columns

Both of these columns use “Time” as the column format. That will help the table to understand and interpret time entries from the employees.

Status Column

The Staus column also has the format of “Rowlink”. It’s referencing the status table. So when project leads are approving time entries, they can pick the status from a dropdown list.

Status Table — It has only one attribute ‘Status’

Note: The Status column is hidden in the Time Reporting App. When a new time entry is added, the Status is set to “Pending” by default. A project lead who uses the Time Approval App can change the status to Approved or Rejected.

Step 02 — Creating App Screens with Business Logics

My favorite way of using the app builder is via the App builder Wizard. The app builder wizard creates all the screens for a given table in one-click. These screens include,

  1. List Item Screen
  2. Detail Screen
  3. Create Form
  4. Other Screens for Linked Tables

In addition to the wizard, the app builder provides UI components that can be dragged and drop to the application screens. We can also customize these components with custom styles and themes.

Time Reporting App — List item screen

Data Sources for UI Components

Once UI components are added to a screen, we need to attach data sources to bring them to life. There are two types of data sources.

  1. Table — Spreadsheet table can directly be assigned as the data source to the component
  2. Filter — Create a formula to filter some custom data from a table and set that as the data source for the component.

Here is an example. Let’s set the TimeLogs Table as the data source for the List Component in the Time reporting app. (See the above figure)

We can select the List Component and set the data source from properties, as shown below.

Personalization

Once employees logged into the Time Reporting App, they should only see their own time entries. The list has to be personalized to a logged-in employee.

We can quickly achieve that by selecting the user-specific column for the TimeLogs table, as shown in the image above.

Handling Business Logics with Formulas

Now, most business applications have various business logic. Amazon Honeycode uses spreadsheet Formulars to implement that business logic. You can find both standards and Honeycode specific formulas here. By combining multiple formulas, we can also implement complex business logic for our applications.

Business Logic Example

Let’s imagine a Project Lead login to the Time Approval App to bulk approve some time entries. The app needs to retrieve time entries of all team members of all the projects that he/she is leading. We also have to make sure that a project lead will see only the Pending time entries on the landing page. He/She can view all the completed time entries on the History page if required.

So how do we accomplish it?

Let’s create a Filter using a spreadsheet formula and set it as the data source of the List Item Component. We have also used global variables like $[SYS_USER] that maps to the currently logged in user.

=FILTER(TimeLogs, "TimeLogs[Project][Lead]=$[SYS_USER] AND TimeLogs[Status]=""Pending""")

The above filter will return the pending time entries of all team members of all the projects where the logged-in user is the Project Lead.

Step 03 — Adding Automations

Another advantage of Honeycode is the ability to automate manual tasks. This includes notifying users when certain events happen.

In Time Reporting App, we need to notify Project Leads when a team member logs a time entry. So the Project Lead can log in to the Time Approval App and approve it.

We can easily accomplish it by using Honeycode Automation. As shown in the image above, we can send to notifications the corresponding Project Lead when an employee is submitting a time entry.

Summary

  • Amazon Honeycode is ideal for building line-of-business applications without coding.
  • Honeycode apps use spreadsheet tables as databases. You can create one or more tables with different column formats and relationships.
  • Use the powerful Honeycode Wizard to build an app in one-click. You can edit generated screens later with customized styles and UI components.
  • You can create multiple applications based on one or more tables to suit your business requirements. E.g., Admin App and User App.
  • Implement business logic with spreadsheet formulas. You can use both standard formulas and Honeycode specific formulas to build simple and complex expressions.
  • Use Automations to harness the full power of Honeycode. The Automations are useful to automate tasks such as notifying selected team members, Send reminders to users, run expressions upon specific dates and times, etc.…
  • Share your application on mobile so your team members can use it on the go.

Conclusion

Amazon Honeycode is still in the beta version. We can expect more updates in the upcoming months. If you are familiar with spreadsheets, you can build web and mobile apps with zero effort.

However, the following points are worth noting.

  • Honeycode mobile apps cannot be published directly to App Stores at the time of writing this article. But you can use the official Honeycode App for iOS and Android to distribute your custom apps.
  • You don’t have to write programming code, But you may have to write expressions with spreadsheet formulas to implement business logic.
  • Refer to Honeycode app templates to get started with Amazon Honeycode.

I hope this lengthy article may have helped you to understand about Amazon Honeycode and its use-cases.

Thanks for reading and if you have any questions, let me know in the comments below :)

Cheers!

Related Stories

--

--