We recently sat down with James Malcolm, one of our iOS developers, to talk about the best way to build apps on iOS, future innovations in coding and what his favourite code base is.
What does the xDesign iOS tech stack look like?
We use a combination of Xcode (from Apple) and Viper but we’re currently making the switch to a more MVVM style.
So, starting with our iOS development: the majority of this is done in Xcode. We use Xcode because of its debugging hierarchy so, if you’re on your phone or a simulator you can push a button and it breaks what you’re viewing down into layers so you can see if anything is broken on any given layer and switch between them fairly easily.
For architectures, we’re going to be switching from Viper to an MVVM style because Combine (the Swift API framework) and SwiftUI are going to become more prominent. They rely on a different pattern to Viper and we want to make sure we’re keeping up with the newest technology.
Why is it important for us to switch from Viper to an MVVM development style?
From my perspective, it’s about getting the jump on next year when the SwiftUI becomes more common and we can put it into more apps.
What innovations are you currently seeing in the iOS development space?
I’ve been doing a lot in Flutter lately. Flutter is developed using the Android Studio IDE and it’s a cross platform language that lets you build in iOS and Android, using a declarative UI. Essentially, in Flutter, you declare the widget you want to use and it gives you a lot of flexibility to customise and that widget.
There is a big difference between what you can do in Flutter and what you can do in Xcode or AppCode. We’ve been able to build the NHS 24 and Royal College of Surgeons Edinburgh apps in Flutter and have been able to create really unique experiences for the users of those apps.
How much innovation is there in your day-to-day app development?
While we do have the concept of a boilerplate and we might use a boilerplate as the base layer of what the structure will look like, all of our projects are custom built. From a personal point of view, I want our developers to always be improving on what they built last time and it helps to constantly push yourself and find better ways of doing things.
How much time do you spend looking at and studying new tech to help give our clients the edge with their apps?
You have to be on top of the changes and new technology because you don’t want to be stagnant. I keep up with Apple WorldWide Developer Conference and follow Swift developers as well as always reading more, watching videos and following tutorials.
It’s important to be able to adapt every time a new technology comes out so we can always give our clients the best development experience.