Boosting Apple Swift developer productivity with a unified build system for cross platform iOS and Android app development

Under the hood

In this release — SCADE beta6 aka RC1 — we made significant changes to the build system of our cross platform app development solution for Apple Swift. Previously, we used separate build systems, one for iOS and one for Android, but that became unsustainable and hard to scale. Any change in regards to building apps had to be done for each platform. Now, with our migration and consolidation onto one build platform (cmake), it opens up a plethora of options and possibilities.

Faster download times through much smaller binaries

With release Beta6, we leverage code optimization techniques that come with the build platform resulting in much smaller binaries. This is because of the use of compiler optimization techniques as well as the fact that we are now able to separate out our code into smaller bundles, and including only those parts of the SDK that are used by the app. As a result, binary app size decreased by up to 35%, allowing for much faster download.

Developer productivity through hot code reloading

We are and even more in the future will compile only the code that changed. Over time, we will increase the granularity of our app. In the short term, this will further improve the launch time of the simulator, resulting in faster turnaround times. In the long term, the idea is to be able to hot reload parts of the app, so that the developer will be able to make changes to the native app in Swift code and observe the results immediately in his app without restarting it.

Libraries for greater productivity

Now that we unified the build system, we can start working on features that we previously did not start as the effort of implementing them for multiple build systems would be overwhelming. We will now add a SCADE library feature, where Swift code can be packaged in one component and reused across applications (think of an iOS framework for both iOS and Android). This library will later then not only be able to be used by Swift, but you will be able to use these libraries from Java/Kotlin as well. All this is further improving developer productivity.

Component Based Development improves time to market

Finally, going forward, we want to offer SCADE components, the ability for the developer community to write reusable cross platform components in Swift. A great many components such as calendars, color pickers, charts and many more would be added to the app by simply selecting them from our marketplace and dragging them onto the app page for easy reuse. Again, our new build system is a prerequisite to make this happen.

I hope this helps to understand our motivation behind our work of creating a unified build system and the many advantages it will bring to the SCADE platform.

Viva Swift — Your SCADE team
www.scade.io