To highlight the benefits of working with Xamarin we interviewed Michiel Sioen about his approach and experience as a developer at Flow Pilots.
Where does your passion for mobile development come from?
I think most developers love to build new things. Mobile development is great for this in my opinion. While you can have very big mobile applications, in many cases the scopes are smaller allowing you to often start a new project with what you learned from earlier applications.
To me, it strikes a very nice balance enabling easy delivery of polished user experiences, technical challenges and the chance to often switch contexts or get to delve into a new domain.
What convinced you to start at Flow Pilots?
To answer this question fully, a bit of history is required. At my previous job, I was a fulltime WPF developer in England, working on a Windows desktop application in C#. Our company also had a native Android application that interacted with this desktop application. In order to align our technologies, we started to look at the possibility of moving this Android application to C#.
Right around that time Xamarin 2.0 was released, rebranding several separate technologies in an easy to use package. With this release, the first Xamarin Evolve conference was also announced in Austin. I got the chance to go to this conference where I took part in the try-outs for the Xamarin University program and got to see a lot of impressive talks.
I quickly started to love that Xamarin allowed me to apply my existing knowledge to create new types of applications I previously wasn’t able to. When I felt it was time to move back to Belgium and start a new job the first place I looked at was the official Xamarin Partners page for Belgium. From the few partners, Flow Pilots was clearly the best match for me. I was looking for a small company with enough smart people to learn from and Flow Pilots fit the bill perfectly. As luck would have it, they also had a job opening listed. I applied and am still enjoying this decision.
Flow Pilots uses Xamarin, can you explain what it is?
Xamarin allows you to write applications with the C# programming language, even if they natively don’t support this. This enables writing for multiple platforms on shared technology. The biggest platforms targeted by Xamarin is iOS and Android.
The main benefit of sharing technology across applications is that big parts of your code can be shared. If you develop fully natively, you’d have to implement the business logic both on iOS and on Android. I personally find C# awesome so to me it’s also a nice benefit that I get to reuse the language while still creating different types of applications.
Which skills are required to become fluent in Xamarin?
I don’t think there’s such a thing as ‘fluent in Xamarin’. There is however knowledge that will help you get the maximum out of it. I personally feel that every Xamarin developer should have a grasp of the main concepts of all platforms they target. Every operating system has its own quirks and the more you’re aware of these, the better you’ll be able to share code. Being able to write C# is also necessary.
Did you master those skills before working at Flow Pilots?
Before coming to Flow Pilots I’d used C# professionally for quite some years already, so I was good on that part. My platform knowledge, however, was very limited. While I had gone through the Xamarin University trial program where I learned some basics, nearly all in-depth knowledge I have now was acquired during my time at Flow Pilots.
At Flow Pilots, we usually look for developers that already have the platform knowledge and train them up on C#. I’m the odd one out that did it the other way around.
Why do you think cross-platform brings so many mixed reactions?
There will always be arguments about technologies and which one is better. This is good, arguments generally mean that people are using it and leads to competition and better solutions.
If you want to develop cross-platform, you’ll always need to compromise on something in order to get the benefits. A lot of cross-platform tooling is grouped under the header ‘write once, deploy everywhere’. This obviously has the benefit that you only need to write something once, cutting development time and budget. The compromise here is that you lose some control over what your app will look like on all the targeted platforms. Some frameworks will display your application exactly the same on all platforms, some will attempt to use native controls while still showing the same data.
At Flow Pilots, we use Xamarin Native as our cross-platform solution as this gives us currently the best benefit/compromise mix. As much code as possible is shared between all platforms but the user interface layer is created natively for every platform. This allows us to fine-grained control to deliver the best experience possible.
If you had to convince another developer on why Xamarin is the most efficient platform out there, what would you say?
Honestly, convincing isn’t really my forte. But to me, the power of Xamarin is that with basic C# knowledge, you’re able to very quickly try something out on a platform that you’ve never developed for before like Tizen or macOS. In some ways, it removes the barrier to entry for many platforms. To get the full benefits you’ll have to delve more into the platform specifics but that’s the same for every technology.
Read more about Xamarin and developing at Michiels personal blog https://michielsioen.be/