Claris FileMaker 19 is the biggest release since FileMaker 7. It has the potential to change how we think about and build FileMaker applications forever. There are a host of new features for FileMaker users and advanced developers can now use powerful technologies, like machine learning and JavaScript to extend the platform in new directions, but it is the ability to build and share feature rich Add-ons that turns FileMaker 19 into the first Open Platform release for FileMaker.
This is what an Add-on looks like
The little clip above shows a Calendar Heat Map Add-on being dragged out onto a layout, just like it was any other FileMaker control. Once in browse mode the Add-on just works. It is responsive and interactive. It shows the number of events that have been scheduled on each day for a given 3 month block of time. You can drill into a FileMaker Card window to get more detail on each days’ events. This Add-on is a mixture of JavaScript and FileMaker. The user of the add-on doesn’t need to know anything about how the add-on is constructed to use it. The add-on builder feature has been released as a Developer preview in FileMaker 19.
The Calendar Heatmap was built by our own Jeremy Brown using an open source add-on framework we created at Geist Interactive as part of a collaboration with iSolutions and Claris Engineering teams.
Wasn’t 16 the biggest release since 7?
Yes, it was… but that was 4 versions ago. In my FileMaker 16 release blog post, I focused on the integration features we gained. It was the first release that natively supported connecting to the global API economy. Overnight, we gained access to thousands of APIs and services that are available over the internet. Just a few years later and just about every project we do connects to one or more APIs, and JSON has become the de-facto way of passing data around in our solutions.
All of this was great, but it but it didn’t change what we could do on a FileMaker layout. We could reach out and interact with the internet; we could even pull data back into FileMaker and display it. But FileMaker 16 didn’t make it any easier to build rich interactive experiences inside of FileMaker. We couldn’t use calendars, or photo editors, or kanban boards or D3 charts any easier than before. The calc engine and script engine were also out of reach, unless you opted for plugins, which required a C developer to write and didn’t work on the whole platform. FileMaker itself remained mostly closed.
All of that begins to change with FileMaker 19.
Open Platform
The most powerful and popular software platforms in the world have ways to extend their core capabilities. Some of these platforms like WordPress are free and “Open Source.” Others, like SalesForce, are closed-source and commercial. Either way, they are “open” to modification, extension and hacking. This critical capability lets users, developers and 3rd party vendors build unique value on top of the platform which they can either share for free or make into a commercial business. The easier it is for people to share code and for vendors to make money, they better it is for everyone.
Open platforms also spread out the effort and innovation in an ecosystem efficiently. The main vendor, in this case, Claris, gets to spend more resources building the core features that only it can build. And customers, developers and third parties have the ability to get close to the problems that may only matter to them or to a smaller subset of customers. As a result they will produce features that really work for them.
Importantly, that doesn’t mean that Claris isn’t going to build any more layout objects. Or just decide to let vendors do everything. They know that won’t work either. It’s a balancing act. But having an Open Platform makes the whole environment much more agile.
We’ll cover the specific features that power the Open Platform in detail in future blog posts and podcasts, but let me just touch on some of the highlights.
Better JavaScript Integration
Although we have had several JavaScript based applications in the market for years, these were quite difficult to build, especially on Windows, and they barely worked, if at all, on FileMaker WebDirect. FileMaker 19 has a new script step, “Perform JavaScript in Web Viewer.” This step lets you call INTO a JavaScript Application running in a Web Viewer from a FileMaker script. Now we have a native way of talking directly to these Apps. And it works on the entire FileMaker platform, including Web Direct.
We also get the reverse. Any JavaScript application running in a Web Viewer has a new function added to the environment; “FileMaker.PerformScript”. Any JavaScript application can use this to call out to FileMaker and tell it do things or to get some data. We have built some libraries and a template that we’ll link to below that add further sugar over these low level calls to make it even easier.
Now we can leverage the thousands of commercial and free Javascript Libraries and modules directly into our FileMaker layouts. You will not be able to tell what is FileMaker and what is JavaScript.
Machine Learning
FileMaker 19 brings CoreML machine learning model to the platform. You can do sentiment analysis, image classification, predictive analysis and a whole lot more. Apps that can look for signs of projects running into trouble in email conversations, or get better at producing estimates and bids that don’t expose your company to too much risk, or figure out how much stock to order are now within our grasp.
These are just a couple of the new features that allow developers who already know how or want to learn how to create JavaScript applications or machine learning models can open up FileMaker and extend it for their unique requirements. All this is great, but what if you don’t want to learn JavaScript or machine learning? Does that mean you are getting left behind? The answer is a most emphatic, “NO!”
Add-ons. Shareable and Re-useable Bundles of Code
Even if you don’t want to know anything about JavaScript or Machine Learning, you will still be able to benefit from these features. Because others will use the feature to create add-ons that you can install into your solution, and use much like you use any other FileMaker layout control or function, just like the video above. One other important note: Add-ons don’t have to be made with JavaScript. They can be made with a collection of regular FileMaker objects as well.
ModularFileMaker.org
In 2013 I launched ModularFileMaker.org. This was an attempt to build modular and reusable chunks of FileMaker code. We did the best we could back then with the tools we had. But I knew we needed some changes from FileMaker to really make the modular dream work. Over the years we have received some of those changes; JSON, Insert from URL, Card Windows, for example. But now FileMaker 19 brings the last big one to the table, the Add-on. A way to organize code so it can be shared, maintained and even sold. It’s the key piece because it lets us take complex modern work flows and package them up so others can use them, fulfilling Claris FileMaker’s ultimate purpose of making complex tech available to everyone and giving power to the problem solver.
It’s early. We don’t yet have everything we need, but Oh Boy do we have lots of fun new stuff to play with.
This will be the last of my yearly release blog posts since this is the last yearly FileMaker release. But I am sure I’ll find another reason to blabber on. But either way, thanks for reading all the way through.
All the best,
Todd
Resources and Links
We’ll be posting lots more materials over the next week. Check back for update. Below are links to two github repos that contain useful stuff for FileMaker/ JavaScript developers. Please post questions and comments to those repos.
Starter Template for building react based FileMaker Addons
https://github.com/geistinteractive/cra-template-fmw
Low level JS code useful for any JS Stuff
https://github.com/geistinteractive/fmw-utils