2020 has undoubtedly been a challenging year. Yet I am confident that this year has been our most impressive in terms of the technological leaps we have made. Amongst the continued enhancements to our platform, we also launched OXIDE, our new IDE — which is proving to be a game-changer for rapid code-centric app development. Here are some of our highlights from this year:
The Launch of OXIDE, Our Next-Gen IDE
In September we launched our next-generation IDE, OXIDE. We created OXIDE to solve a specific problem — companies are faced with two different approaches to app development that are both lacking: For many companies, traditional professional development (“pro-code”) is too complex, slow and, expensive to use on a large scale. On the other hand, no-code and low-code tools are too limiting or cumbersome for building more complex apps.
That’s why we created OXIDE to usher in a new paradigm for app development platforms that fills the gap between no-code/low-code and pro-code tools. With OXIDE, JourneyApps is pioneering a new breed of app platform: ultra high-productivity, yet code-centric, based on open technologies.
Some OXIDE-specific enhancements that we shipped include:
Improved View Designer
We improved the View Designer so that developers can see a high-level representation of all views in their app, called the Gallery view. Additionally, developers can add UI components to views with a single click, and the underlying XML and JavaScript code is generated automatically, saving developers time when prototyping.
Visual Data Model Editing
We introduced the ability to edit the Data Model using point-and-click on the ERD (i.e. the visual representation of the Data Model). Developers can add new models, create relationships between models, and edit the fields on models, all from the ERD. Changes made via the ERD are immediately reflected in the XML code.
XML/JS Linking
In Advanced IDE mode, you can open many views in parallel, and the code is displayed side-by-side in tabs. Developers can select tabs individually to edit specific XML or JS files. Alternatively, you can select the view using the sidebar on the left, to open the related XML and JS side-by-side again.
We then added the ability to link view tabs, so that when you select a specific view JS tab, the corresponding view XML tab is also brought to focus. This saves time, allowing you to get the best out of editing views with tabs while still giving you the flexibility of using tabs the way you prefer.
The Introduction of TypeScript Support
In the latter part of this year, we announced that developers could now get access to a preview version of TypeScript support for their apps. As most devs know, TypeScript is a statically-typed version of JavaScript developed by Microsoft.
TypeScript allows you to be more productive when building apps, for example:
- You can import and export TypeScript modules, allowing you to share code between views, and write code that is more maintainable.
- You can include NPM packages in your app. This gives you access to a myriad of open-source libraries, giving you even more leverage to build sophisticated apps.
- Autocomplete is also more comprehensive, saving you many keystrokes during development.
- With TypeScript, you can benefit from features such as classes,
const
,let
, arrow functions, and more.
Furthermore, with Typescript support, we drastically improved our debugging tools:
Game-Changing Debugging Tools
Earlier this year we announced that we’ve integrated with Chrome’s Dev Tools:
- This means that your app source code is available in the Chrome Developer tools, which can be accessed by right-clicking on whitespace anywhere in a test app.
- Stack traces now contain lines such as
journeyscript:///main.js:45
, that you can click on to navigate directly to the relevant place in your app source code. - Developers can access view variables using this pattern:
view.my_variable
. Both getting and setting are possible from the console. - Developers can call view functions from the console using
viewController
, e.g.await viewController.init()
. - XML file names are displayed in stack traces of $: functions.
- Developers can make DB calls from the console, e.g.
await DB.user.first()
.
Support for Web Apps
At the beginning of 2020, we announced that JourneyApps started supporting web apps. This means that you have the ability to run your apps on mobile, tablets, desktop, and the web – all without the need for maintaining different code bases for each.
No other platform we know of offers this level of “write once, run anywhere” responsiveness. Developers don’t need to double their work to support mobile, desktop, and web, since an app can be built once and deployed to all platforms.
Web apps can be custom-branded and accessed through your SSO, or by using our login service. Our support for web apps is ideal for building apps that need to be accessed by a wider user base (for example, easily giving your customers access to functionality).
Work-From-Home Tools
One of the consequences of the COVID-19 pandemic was the need for many people to work from home for the whole, or part of, the year. Since working from home became a necessity in early 2020, we highlighted some JourneyApps features that enable our developer customers to maintain productivity while working remotely. These include:
GitHub Integration
Developers can link their app code to a GitHub repository to allow for better team collaboration. This is unique to JourneyApps — no other mainstream app development platform on the market supports this. By taking advantage of GitHub’s collaboration ecosystem, your dev team can work on different branches and complete work using git best practices, including code reviews and methodologies like trunk-based development and git flow.
Live Co-Editing
One of the stand-out features of OXIDE is live co-editing for developers working in a team — you can see what your collaborators are doing in real-time, just like Google Docs. Teams now working remotely are using the live co-editing in OXIDE to set up pair programming sessions with colleagues, increasing their productivity.
Some Other Stand-Out Features Shipped This Year
Our New Sync Indicator
PowerSync is one of the key features of JourneyApps, which helps to keep app users fully productive, whether they are online or offline. Based on your feedback on our Public Roadmap (see below), we made a host of usability updates so that app users can better understand their connectivity and data sync status:
- We made it clearer for app users to know whether they are downloading and uploading data, uploading attachments, or downloading app updates.
- Users now see a progress bar, which indicates how much data still needs to be uploaded or downloaded.
- If users lose connectivity or there are other sync-related errors, this is displayed in an intuitive way.
Floating Action Buttons and Long-Press Functions
Many of the UI components in JourneyApps are designed to make working on a mobile device in industrial environments as time-efficient and safe as possible.
Some relevant additions we made this year included floating action buttons and long-press functions:
- Common tasks can be added as floating action buttons — allowing your users to press a button while holding a mobile device with only one hand.
- Apps can be designed so that long-presses expose additional actions for app users.
Photo Upgrades
We reworked how app users interact with photos and how they are displayed in apps. Both the capture-photo and display-photo components are used extensively throughout apps, and we made various improvements:
- App users can download photos from the app to use them in documents or other applications.
- We updated the photo capturing UI to be more intuitive and space-efficient. The buttons to activate the camera or open the photo gallery are more prominent. Furthermore, photos are now displayed as thumbnails, with intuitive actions available on the thumbnails such as clearing the current photo or taking a new photo.
- Finally, users can tap on a photo thumbnail to view the photo in full-screen mode, where they can zoom and pan to look at the image in more detail.
Our Public Roadmap
Early this year we announced the launch of our Public Product Roadmap, allowing customers and prospective customers to see what we are working on. You can also make suggestions on what features you would like to see added to JourneyApps.
Please have a look at what we are working on, comment on the features we are considering, and submit your own ideas that you think we should consider!
New Release Notes Portal
In October we launched whatsnew.journeyapps.com to streamline release notes for new versions of CloudCode, the Container, and Runtime. Check it out and subscribe to updates!
New Developer Community
Also in October, the JourneyApps Developers private Stack Overflow community migrated to a new open developer community, devs.journeyapps.com. Our new community site promotes discussion, allows for replies via email, is easily searchable, and does not have restricted viewing access like the private Stack Overflow community.
If you are a JourneyApps customer and would like to create a profile on our Developer Community, please get in touch.
TCP Socket Support: Connect to Networked Systems & Build Powerful Edge Apps
Late this year we announced the ability for developers to open TCP socket connections to external systems directly from their app. This allows the app to send commands to external devices (such as printers or other hardware), and/or for the app to receive streaming data from TCP-compatible devices such as smart sensors.
Fine-grained Developer Permissions For Enterprise Customers
Also in December, we announced the ability for Enterprise customers to specify fine-grained permissions for developers across all resources of the platform.
This includes the ability to:
- Allow specific users access to some apps only.
- Allow specific users to edit the app, but not deploy (or the reverse).
- Grant read-only access to an app’s code and/or data for review purposes.
What to Look Out For in 2021
We are moving full-steam ahead into 2021, working on exciting new features to empower you. A sneak peek of the enhancements we are working on include:
Use Your Apps on RealWear’s HMT-1
RealWear’s HMT-1 is a head-mounted device that allows workers to use both hands while being connected. We’re excited to extend our apps to work perfectly for connected workers using the Realwear HMT-1.
More Styling Control for UI components
We’re opening up our UI components so that you can style them more granularly than before. Change default global styles for an app or view, or override the styles of individual components.
PowerSync V6
Our PowerSync system forms the basis of our unparalleled offline capabilities. We will be making it faster than before and more flexible, allowing you to sync data from multiple JourneyApps databases, or even external databases.
Use Your On-Premise SQL Data Offline in Apps
We are planning on allowing apps to use data from external SQL databases. This is useful for master data that needs to be used in apps that only reside in on-premise SQL databases.
And that is it! Thank you for your continued support of JourneyApps. We wish you a healthy and successful 2021.
Make sure you don’t miss any JourneyApps product updates by subscribing to the JourneyApps Product Newsletter here.