This is not a new topic, but we also want to share our experiences of the migration to ā’pěks 18.1.
As you’ve probably read, the ā’pěks team have tested hundreds of times this migration process with all their internal apps. And that’s something you can really feel when working on this migration. However, there are a few things that we’ve seen that are not that smooth.
updating ā’pěks for some of our products
We have a server hosted at Digital Ocean, so we made a copy of the development environment and updated individually the TomCat listener and the ā’pěks version installed at our Oracle XE database. If you need to know a bit more in details regarding the performed steps, leave us a comment and we’ll prepare other post covering those steps.
Once ā’pěks was updated, and everything related to https access well configured, we started migrating to ā’pěks 18.1 by updating Universal Theme. By performing the steps listed in the migration guide from the ā’pěks team, it was almost straight away in most of our apps: just verifying the theme and refresh. A couple of clicks, and we could start checking our apps. For some of those apps we have custom templates, but that’s something that doesn’t interfere with the theme refreshing and we’ll deal with that later. However, one of the apps had a problem with performing the normal steps, so we had to import again the Universal Theme, in order to be able to use the latest features. As we don’t use jQuery Mobile at any of our apps, we didn’t have to worry about that point.
Once all the apps where updated, we had to go through them all and verifying everything was ok. But not everything on this migrations was that easy…
let’s deal with the badge
In our apps, we normally add some kind of dashboard, to display a milestones’ badge. Using the default version of the region that ā’pěks provides wasn’t an option… until now. They’ve solved some of the issues it used to have, like overloading with big numbers for example. Now you can have a decent badge, without those rendering issues from before. And here it comes: however… They still need to work a bit around this template, and I’m going to explain why. You can display this region from a List or from a Classic Report.
The Classic Report approach doesn’t work for now. The documentation provides a query structure that doesn’t work yet. As we ā’pěks users know, it might be something in place for future releases. We went for the List region type, and we create our query with the corresponding structure (documented at the official Universal Theme website). And there it is. The badge is fully functional now, without using any plugin! Until we realised that we had to submit the page to change the data…
In some of our dashboards, we also include date navigation, and we update the affected regions by using Dynamic Actions. That can’t be performed with a list, allocated in Shared Components. For that reason, while we wait for the ā’pěks team to complete the Classic Report Template for this element, we created a custom plug-in performing this behaviour, following the syntax that the region will follow in the future. When the Badge will be completely defined, we’ll change the region type and configure the appearance in order to have this badge working, being updated with dynamic actions.
new item’s template
Another great change for forms and items, in general, is the new appearance Template: Floating. With this new resource, it’s quite easy to refresh a lot the User experience by using a different appearance. Labels included in the field and support to include an icon have added a fresher look for all our apps. But… first version here, so not everything is perfect yet. For the text area, the second line will overlap over the icon area. A small bug that will be fixed soon for sure.
what happens with plugins?
Regarding plugins, we use some of them to enrich a bit the UX. It’s completely normal that, if there’re changes at the libraries we’re using. It was a bit tricky, as finding documentation on how’s done somebody else’s plugin is difficult in some cases. Plugins like Apex Office Print or some functionality to auto-hide notifications, etc worked perfectly fine. We also use some custom date range picker or time pickers that didn’t work that fine, so we had to go throw the plugin source to modify them according to the new classes included.
They’ve included in this ā’pěks version a long time awaited feature. Now, we can translate our apps in a more efficient way from inside the development environment. A new checkbox to select if you want to translate a bunch of text chains in one go. Now, working on translations is much faster than before. But here it comes my “however”. What happens when you have several languages support? When selecting the checkbox, all the text matches containing a certain string (let’s imagine a “Back” button) are translated in one go. So, if your app supports more than two languages, this feature can’t be used to accelerate the translation process using the apex built-in interface. We can’t filter between different languages when we use the built-in translation tool.
To avoid extending myself much more and finishing this post, let’s do a quick summary of this migration process. The ā’pěks team did a great work, as there’re only little things to do manually after updating to 18.1. In most cases, everything worked very smooth. If you don’t need/want to change your items appearance to the new float template, there’re no many changes needed. If you use any plugin that displays a button or similar, you might need to review the code a bit to add new classes.
Now, the development environment is even easier to use, with many new resources that help to be more efficient while creating our apps. The new search functionality (Ctrl + ´ at my Spanish keyboard display), the possibility of pinning a filtered attribute for whatever purpose you have, or the colourful icons at the left column, highlighting relevant information in a quick view… To be honest, I think those small changes make even easier to develop something using ā’pěks. And after getting rid of the old (and ugly) jquery mobile interface and pushing with the Universal Theme, ā’pěks trends to become a very complete and responsive framework, perfect for most kind of web apps.