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.

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.

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.

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.

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

--

--

--

We use Medium to share our journey of creating what we hope will become the #1 next generation platform for native, cross platform app development www.scade.io

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Cross Platform App Development with Apple Swift

Cross Platform App Development with Apple Swift

We use Medium to share our journey of creating what we hope will become the #1 next generation platform for native, cross platform app development www.scade.io

More from Medium

Adapter pattern in practice by swift

My first native iOS app: YOURA

Convert Swift Facades Into async/await Syntax With Continuations

UNIVERSAL DEEP LINKS IN iOS