FileMaker Plugin Development

During my time at Linear Blue I have been introduced to the realms of FileMaker and what it offers. As I have been first and foremost a Web Developer FileMaker is new to me but at it’s heart it is by all accounts just a Database and those I am quite familiar with. Upon arriving at Linear Blue the one thing that I didn’t expect to be getting my hands dirty with was plugin development well not for FileMaker anyway.

The journey begins with the development of a new service which Linear Blue will be offering bridging the gap between web services and FileMaker. The Plugin Development has taken place to simplify this process one step further.

Many years ago I began development life creating simple programs in C at University and briefly moving on to C++ from there the progression moved into PHP. As the development of the service takes shape it was brought to my attention that it would be great to have Plugins for FileMaker. With this I began investigating how this could be achieved and found a Plugin Template by 24U Software, at the same time Linear Blue had begun to bring on board Jason Erickson of SyncDek a synchronisation tool for syncing multiple FileMaker Databases which also has Plugins for FileMaker. With this Linear Blue were embarking on FileMaker Plugin Development for the first time and for me getting back to my roots as a developer. 

So far the road has been long and winding, the first compiled Plugins were much as an excitement for me as they were for the company but there were a few issues and hurdles to overcome. Small tests with FileMaker outlined really a proof of concept, yes the theory works and yes we can create Plugins. The first unveil of the Plugins happened at Apple UK HQ when Linear Blue held a FileMaker 13 launch and at the end showed off some new products that we will be releasing. While this was successful there was a drawback, the speed was an issue.

After the show case I went back to the drawing board and began stripping away areas where the issues of speed would be causing an issue. What I found was I needed to revamp my C++ skills so what I decided was to use the skills I had programming with PHP, which actually derives from C++ and combine it with C++ skill I needed to know. The biggest thing I had forgotten was C++ is a compiled language and I have become so used to PHP’s dynamic ability that what I really wanted was PHP in C++. I began looking at ways I can use C++ in a dynamic fashion this journey has been the biggest learning curve of all. It seems that many people have been doing this also and in 2011 a new version of C++ was released giving C++ a new age of freedom and along side this new release is a Library which I mentioned in a previous post called Boost. With these two new additions to the C++ tool box C++ has now become a lot more dynamic and as such the compiler has become more sophisticated.

One of the major speed issues with the Plugin was the amount of data being passed to FileMaker which FileMaker needed to process so this issue has now been solved by firstly removing the overhead needed by FileMaker to parse the data and secondly properly allocating and deallocating memory space, something that I have become accustom of not needing to do. 

With many RESTful API’s out there the response data is almost always JSON (JavaScript Object Notation) and as such this was the path used during testing of the new service. The first batch of Plugins requested the data as XML but the amount of data FileMaker had to process for some of the requests was vast, so I made the decision to output as JSON but this wasn’t as straight forward as I thought. I had many tests with compiled C++ code both on the Mac and with Windows. 

I eventually found a very neat JSON library which worked exactly how I wanted it to. With a completely rewritten request method and the newly acquired JSON library I began to see the pieces fit together. The moment I began to put the code together with the Plugin Template code I quickly began to realise I was putting square pegs into round wholes. During this time some may have seen my twitter posts about the development and my up and down experience. Since this blog post there has not been an update purely because there hasn’t been much to update until now.

Since JSON parsing has been the thorn in the side this is what I have concentrated on by trying out different libraries to see which one will work the best for the purpose and the Plugin Template Code. Previously there have been many trial and error moments which caused many compile errors but finally a solution has been found and development will commence once again, so look out for twitter updates and be sure to look out for Linear Blue at Filemaker DevCon 2014.

Darren Kayes

Darren is Linear Blue's Chief Operations Officer, ensuring the smooth running of the company and making sure nothing gets in the way of our developers creating top-notch web and database solutions for our clients.

More Posts - Website

1 thought on “FileMaker Plugin Development”

Leave a Reply