Dev Zone

A new generation of mobile development: Capacitor on ODC

filipe fernandes
hero-bp-mobile-app-development-capacitor-odc

As we evolve the OutSystems Developer Cloud (ODC), our goal continues to be to provide the most powerful, flexible, and secure hybrid framework on the market. Today, we are excited to share the significant improvements we’ve launched with Capacitor, our new native mobile stack that brings architectural modernizations and a vast new ecosystem to your fingertips.

The power of Capacitor on ODC

Capacitor is an open-source framework that enables the creation of cross-platform iOS and Android apps using modern web technologies. By integrating it into ODC, we are moving toward a more "Web Native" approach that offers direct access to native APIs and a highly active developer community.

Here are the key improvements you can now use.

1. Universal extensibility

We’ve introduced a new, modern, framework-agnostic abstraction for mobile app configuration. This universal extensibility schema is compatible with both Cordova and Capacitor, allowing you to define preferences and settings that work across stacks (except for Capacitor-only build actions).

universal extensibility schema

Integrated validation

Find syntax issues on your extensibility JSON before build time with auto-complete and syntax validation. You will now see suggestions for preferences and immediate warnings for invalid values, saving you from waiting for build-time errors to identify configuration issues.

Transition accelerator

To help you adopt the universal extensibility where you can configure mobile permissions, we’ve included an accelerator to facilitate the transition from Cordova-based extensibility. A message indicates that you can convert your JSON schema to conform to the new universal extensibility.

2. Expanded plugin ecosystem and mobile libraries

In addition to the plugins available in OutSystems Forge, Capacitor also opens the door to an extensive library of ready-to-use plugins from the Capacitor ecosystem.

Mobile libraries

Mobile Libraries is a new application type introduced with Capacitor. With mobile libraries, we can start introducing more mobile-specific properties without cluttering the web development experience. Because of this, extensibility and the mobile tab exist only on mobile apps and libraries. When opening a library with extensibility, it will be automatically migrated to a mobile library. Once migrated and published, the mobile library can only be referenced in mobile apps.

Dual-stack support

All OutSystems-supported plugins are now either Capacitor-compatible or dual-stack. A Capacitor-compatible plugin is a Cordova plugin that works on either Capacitor or Cordova apps. A dual-stack plugin has both Cordova and Capacitor implementations. With dual-stack support, the OutSystems platform automatically chooses the plugin based on your mobile framework selection when you are using MABS 12. We recommend that plugin developers evolve their plugins to support dual-stack.

Compatibility management

For mobile plugin development, we’ve added a new input box, mobile frameworks, on your extensibility tab to indicate whether plugins are compatible with Capacitor or Cordova. This is only applicable to mobile plugins and is automatically set when you reference Cordova or Capacitor plugins. You can declare if Cordova plugins are compatible with Capacitor.

extensibility view in App Settings

camera plugin

3. A new, high-performance build system

Starting with MABS 11.2, the underlying mobile build service is now a completely new cloud-based system integrated with Ionic Appflow build infrastructure. This modern infrastructure ensures faster, more reliable generation of your mobile artifacts.

4. Tailor your projects with build actions

We strive to provide 100% abstraction, but we also know that developers sometimes need to "tweak the secret sauce." With Build Actions, you can customize your native mobile projects during the build process using JSON-based configurations. These actions run right after the "capacitor sync" step, giving you granular control over the final native project. For example, you can use build actions to customize your Info.plist or AndroidManifest.xml.

Moving forward

With MABS 12, you can already start building mobile apps using the Capacitor stack. But what are the best use cases?

Starting a new app? We recommend using the Capacitor stack so you can take advantage of the latest native capabilities, improved plugin compatibility, and ongoing platform enhancements. The new mobile UI is also better integrated with Capacitor because it uses the haptics and keyboard plugins to deliver more powerful experiences.

Is your app in a regular maintenance or enhancement cycle? For mobile apps that are already in maintenance mode, migrating to Capacitor can be a smart, low-risk step forward. You and your teams can modernize gradually while benefiting from a future-proof runtime. This runtime is backed by active development, simpler and more reliable plugin management, improved tooling and native integrations, and greater flexibility to adopt modern mobile UX patterns.

As OutSystems mobile evolves, Capacitor plays an increasingly important role in enabling modern mobile experiences. We’re excited to continue building new capabilities on top of this foundation.

Ready to get started?

Try OutSystems for free or sign up for a demo.