The first preview version of Calcapp Creator is nearing completion. It will allow people to leverage their spreadsheet skills to build calculator apps for iPhone/iPad and Android devices, as well as Windows and Mac desktops and the open Web. The first preview version will only allow web apps to be built, though, and the feature set will be limited compared to what we hope to deliver in the future. Once we release the preview version, we need your help to guide us in the right direction, to help us prioritize features and ensure that we build a product that solves your problems and meets your requirements.
Our app designer
This is Calcapp Creator, our web-based app designer:
The app that is being designed is the healthcare app that we mocked up as part of the landing page you arrived at when signing up for the beta program. The top gray bar contains the name field, allowing you to name your fields, and the formula field, allowing you to edit formulas. The inspector to the left is currently empty, but will allow you to use data validation to flag fields as invalid, edit drop-down menus and change the number format, to name a few properties. The play button in the lower right corner brings up a live preview of your app. Unlike a traditional spreadsheet application, Calcapp Creator does not crunch numbers. Rather, calculations are performed by the apps you build.
The main content of the window is a calculation panel that the user is currently editing. Apps built with Calcapp consist of a hierarchy of panels. Every panel may have a title, which is displayed at the top of the screen of the apps you build. Calculation panels are forms with fields connected to formulas, text panels contain only rich text and list panels enable users to select from a list of panels and navigate to them. (Calculation panels and text panels allow users to move forward to only one designated panel.) This system enables you to build arbitrarily large apps that users navigate using a familiar user interface. Calculation panels will be able to communicate with other such panels, enabling data collection to be spread out over several screens (though that particular feature won’t be available in the first preview release).
Fields are contained in named groups and are associated with captions and units (such as “$” and “feet”). Use the buttons at the bottom to add fields, groups, separators and arbitrary text. Use the check boxes to select rows, which can then be removed. The symbols to the right of every row may be dragged to reorder rows.
Field names and formulas
The next image shows a number of errors having been made. The purple bar to the left of some of the items signifies that these fields contain formula or naming errors. (The top bar is gray as some fields have been selected and its sole active button allows you to remove them.)
There are two errors in the preceding image: the name of the field is in conflict with the name of another field and there is also a formula error. All values are referred to by name in Calcapp. We have found that spreadsheets that use explicit cell names are easier to maintain and less prone to breaking than spreadsheets that use absolute or relative cell references. Mandating the use of names is one part of our plan to help Calcapp apps become more robust than the average spreadsheet. (Making it easy to write automated tests—unit tests—for apps is another part of that plan; we will have more to say about that in a future update.)
There is also a formula error. For an Excel user, the formula likely
looks a bit off: it does not start with the customary equals sign and
the innocuous-looking IF function is reported as unrecognized.
Calcapp is designed to be familiar to spreadsheet users, but its
formulas are slightly different from what you may be used to. For
instance, function names are written using lower-case letters
(if(Weight >
1000, 4, 3)
is a correct formula) and there is no leading
equals sign.
The first preview release will have a very limited function library. Excel supports more than 400 functions, but Calcapp will only support, at most, 18 in its first preview release. Also, the calculation engine of Calcapp is currently being rewritten, meaning that a temporary solution will likely be used in the first preview release. We hope to have a complete calculation engine ready, with support for more formulas, as quickly as possible.
(Modern computers come with hardware—floating point units—that can perform calculations very quickly. Nowadays, essentially all such units use a binary representation, meaning that decimal numbers need to be converted from base ten to base two. Not all decimal numbers can be represented exactly in base two (such as the number 0.1), meaning that some accuracy is sacrificed when doing the conversion. The errors that result from the conversion are very small, but when combined with rounding can become very large. For instance, if a calculation that should have worked out to 0.5 erroneously yields the number 0.49999999999999, rounding to an integer will produce the number zero instead of one, meaning that a very small error has become very large. Apple famously got this wrong a decade ago. The solution is to perform all calculations in software and not make use of the floating point unit. Unfortunately, the interim calculation engine Calcapp apps will use in the first preview release will be suspectible to these kinds of errors, as it will use the hardware floating point unit.)
Use Calcapp Connect to run apps
Until we implement support for building native apps that can be distributed in app stores, apps will be run using an app named Calcapp Connect. The web version of Calcapp Connect will ship as part of our first preview release and native versions for iOS (iPhone/iPad), Android and desktop computers will ship later.
This image shows the healthcare calculator run through Calcapp Connect, running on an iPhone 5:
While not an exact match with the native iPhone app mock up of the landing page, the web app looks quite similar. (The native iOS version of Calcapp Connect will closely follow Apple’s design conventions and the native Android version will closely follow Google’s Material Design style conventions.) At this point in time, web apps produced through Calcapp Creator look like iOS apps even if they are run on an Android, Windows or BlackBerry device. We expect to mimic Android design conventions more closely in the future, even for web apps.
When making changes through Calcapp Creator to an app, Calcapp Connect (running on a smartphone) provides the opportunity to reload the app to see the latest changes:
We believe that native apps will, for the foreseeable future, adhere more closely to the design conventions of the underlying platform and provide better performance. Even so, we feel that it is important to support web apps—even after we ship support for native apps—for a few reasons. First, web apps do not need to be installed and require no special permissions, making it easy to access apps. Second, we currently do not envision providing native support for Windows Mobile (née Windows Phone) or BlackBerry OS. With web apps, we can provide some level of support even for platforms that are not as popular as iOS and Android. Third, Calcapp Creator supports a live preview feature, which uses web apps under the hood.
Calcapp web apps will continue to evolve, even as we ship support for native apps. Our web apps currently do not work well on desktop computers, which we would like to fix. Also, some customers are looking for a way to create solutions to integrate into their existing websites and today’s Calcapp web apps are not a good fit in that context.
Looking ahead
We believe that spreadsheet users are programmers, and that it should be possible to build high-quality, polished calculator apps using the skills acquired using products such as Excel, LibreOffice and Apple Numbers. We know that our first preview release has a feature set that is sufficient for a number of calculator apps, but sorely lacking for others. Please bear with us, the first preview release is only the first of many releases to come.
We have some ideas for what features we need to work on next, but we are looking to you to guide us. Our goal is to create a product that meets and exceeds your expectations so that we can successfully commercialize the product. This will enable us to continue working full-time on the project and grow our team.
With that said, there are a number of areas that we believe will need our attention in 2016. Support for data defined in tables is important for many applications, as is the ability to update said data. (Supporting tables would give us support for the HLOOKUP and VLOOKUP functions.) Looking ahead even farther, we hope to enable dynamic tables that the user can update with data, making Calcapp apps full-fledged data collections apps (with a web-based interface where you can collect the data). We would also like to work on graph support, report generation, integrating with enterprise systems such as CRM systems and external databases, adding support for a large number of additional functions, supporting calculations performed in the cloud on our hardware (meaning that proprietary data and formulas would not even get onto a user’s device) and enabling much more flexibility in terms of customizing the user interfaces of apps.
It will take time to get there, and we will likely have to grow our team along the way, but we hope you stick around for the journey.
David Polberger
Co-founder, Neosupport AB