Low-Code makes great Chateau-Code
Robin van het Hof
SAP Experience magician - Proprietor at Qualiture - SAP Mentor
Low-code platforms tend to be positioned as a creative application development environment for business users.?But what about "traditional" application developers? And does it always have to be used in a "business" environment? In this blog I would like to share how a low-code platform such as Neptune DXP Open Edition perfectly fits non-business scenarios.
We humans tend to make our lives as easy as possible. Choosing the path of least resistance is hard-wired into our brains. The ancient Egyptians already used sleds to pull the massive stones to build the pyramids, and wetted the sand in front of it to reduce friction and workforce needed. The ancient Romans paved their major roads so their armies wouldn't have to travel through mud. These roads were also slightly cambered for drainage so you don't have to walk through puddles. And we in our lifetime are no different.
Everyone now has a mobile phone with several apps making your life easier. You don't need to visit a bank to transfer money anymore. You don't need to carry an actual address book or agenda with you, there's integrated apps for that that even allows you to share contacts and appointments with your family or beyond. You can turn the lights, heater and airconditioner on or off while on holiday oversees, and answer the door via a smart doorbell when walking the dog. And I can think of dozens of other apps or tools that make one's life much more convenient.
But sometimes you come across a case which is so specific to your own situation, you won't find an off-the-shelf solution to your particular issue.
Home automation
Last summer, we went on holiday to the beautiful isle of Rhodes, Greece. My wife had booked an early flight, and since we were departing from the zoo called Schiphol Airport, we made sure we arrived at the airport 4 hours in advance, around 3 AM.
Normally, when we go on a trip, I use a handy app where I have entered all the things I need to pack, shutdown, or take care of before going on holidays. It is quite an extensive list, containing things like "Sunglasses", "Passports", "Turn off central heating", "Check if all windows are closed", "Charge the kid's tablets and phones" and many more. As the departure date comes closer, I tick off all the items, until everything is off the list and I can leave my home with ease of mind.
At around 4:05 AM, while we were waiting in the queue from hell for security, my wife received a landline phone call. We generally don't receive calls that early in the morning, so it was probably something urgent. The person at the other end of the phonecall was the emergency operator for our home security system, and he called because our alarm went off in the living room and dining room... Gosh no, please no burglary on our first day of holiday!
Since we have indoor cameras which I turn on when leaving the house, I quickly opened the app to see what was going on, and hopefully get a good view of the perpetrators.
When I opened the camera view for our living room, there was no petty thief to be seen. Instead, I saw our two-weeks old robot vacuum cleaner zooming up and down our living room, blissfully ignorant of the turmoil it had caused. It had started at 4:00 AM, just as I had scheduled it, and I had forgotten to turn off the scheduled tasks.
So, despite the handy, massive checklist I used, I forgot to add an item "Disable vacuum cleaner schedule"...
During our holiday, I started thinking these things should be much easier to handle as well. Instead of "Turn down the heater", "Turn off airconditioning", "Turn on smart lights at scheduled times", "Turn off vacuum cleaner schedule", "Turn on indoor cameras" and finally "Turn on alarm system", ideally I want an app that does it all at the touch of a button. But since we have a couple of very specific smart devices, of course there's no off-the-shelf app that does this for me.
Being a developer, I would be perfectly able to create an app myself. However, it would take a significant number of hours, days if not weeks to build such an app, where in essense the only UI would be a switch control; "At Home" or "Away". The real pain of course would be to integrate and consume all the API's for these devices, and that's not something I particularly like to develop myself.
However, there *is* a platform I grew very fond of, which lets me easily consume these external API's, and quickly build a front end on top of it.
The easiest way to integrate external API's into Neptune DXP Open Edition would be to upload the Swagger definition files for my smart devices. For the airco, thermostat and smart lights as swagger definition was found, so I could fairly simple integrate these in the platform.
For the cameras and vacuum cleaner I couldn't find Swagger definitions, but there are unofficial open-source API's available as npm packages so I could use these as well. Arming the alarm system remains a manual task so I did not bother to find an API for that.
领英推荐
I must admit, I haven't completed this app yet, but that has more to do with me finding the actual time rather than me already spending days and weeks developing it. It's still bare-bones, not everything works as expected, but it doesn't need much time to have a fully working prototype.
In total, I have spent maybe 3 days developing it (including the search for Swagger definitions, REST API's and npm packages). But once it's finished, I can remove at least 4 items from my holiday-todo-checklist.
On-the-go-Code
The thing is, there's another app I "need" to build that's fighting for my attention.
As an independent consultant, I have driven my company car for 5 years now. Being an electric car, I have benefitted from quite some governmental and tax incentives. But after 5 years, these benefits are gone. If I would continue driving it as a company car, I have to pay a 22% tax liability as opposed to the previous 4%, making it not very economical. However, if I buy the company car from myself and have it listed as a private car, the tax liability is gone.?
I do need to pay the remaining VAT over the current value of the car, but on the other hand, for every business kilometer I drive, I can get 19 cents back from the tax agency. So it is highly desired to record each and every trip I make with the car, and mark personal and business trips properly so I can get a small tax return for these driven business km's.
Of course there are apps that can track these trips, but over time the total number of kilometers will deviate from the actual odometer readout of the car. Ideally I want an app that can read the car's odometer, and detect when I'm driving or parked.
Luckily, for my brand of car there's a couple of API's available which reads these values and states, and there is even a Swagger definition available! So naturally, this app is being developed on Neptune DXP Open Edition as well.
Since I think this app would be worthwhile not just for me, but for at least other people in The Netherlands driving the same brand, I'm taking my time to make this app as solid and easy to use. Right now, I can already detect park / driving state and read the odometer upon start driving and when parked, as well as storing the results into a custom table on the Neptune DXP Open Edition platform. The one thing I'm still working on is exporting the data to an Excel file and plotting the trip on a map. While the map is not needed for the actual tax deduction (since I'm able to read out start km and end km, the number of kilometers driven is known) I think it's a nice to have.
And while my smart home app for now uses the simple SAPUI5 controls, the trip tracker app will use the much better looking Bootstrap controls (which have SAPUI5 databindings as well). That makes for great UI with enterprise-grade databinding. Truly spectacular!
Conclusion
Just like the ancient Egyptians and Romans, I am creating the tools to make my life a bit more easier. Apps take away a little of the stress, especially if they can run in the background so I don't need to think of even activating a button or write something down.
If you are a developer, you probably are already doing the same. But if you're like me, you probably don't want to spend weeks building these essentially small apps.?
I would like to encourage you to download a trial version of Neptune DXP Open Edition , and see for yourself how fast you can create apps, not only with great UI and UX thanks to Bootstrap controls, but also the ease of consuming API's, creating data tables and interacting with them. Have fun!
Makes for a great read ????
Cool use cases! I had fun reading it!