Many of our customers ask: why should we choose to develop a native mobile app and not a cross-platform one? So we sat down with Larten (CTO) to talk about mobile development at www.wanari.com and his team. This post will outline my findings that could also be useful to you if you are thinking about creating a mobile app.
What is the story behind you, the Mobile CTO at Wanari?
I began my studies in 2005 at the BME (Budapest University of Technology & Economics) aiming for a degree in Electrical Engineering. I was interested in computers and never really thought that I would end up a developer.
I started off my career at Telenor as a User & Application Administrator, managing system access and authorisation for colleagues. After almost 2 years of being there, I wanted a change and was hoping to do something more creative. I also spent a couple of months at another company… working with an excel database which (again) didn’t make me feel fulfilled. Accidentally, I came across a job post from one of my roommates who was at that time working for Wanari. I met with Rege (our CEO) at the interview and started off as a junior Android developer in 2012 (Mind you, I just knew somethings about Java development through the studies at the university and didn’t have any hands-on experience developing Android applications before).
Wanari gave me the opportunity to learn everything about Android development and the opportunity to educate myself in many other technologies in which I am competent today. With the exposure to the latest technologies & interesting projects, my job has also became my hobby. That is probably why I even used my free time to do freelance development work. Wanari didn’t only give me the tools and learning opportunities to become a skilled mobile developer, it also gave me the exposure to manage and lead. This made me get to where I am today in my career as the company’s Mobile CTO.
What technologies are you and your team specialized in?
We’ve tried and tested most mobile app development technologies in the last few years and now we believe our best work came out when we developed native mobile applications. We wouldn’t want to call ourselves the jack of all trades so we are solely focusing on native Android & iOS development. Swift, Android, RxJava, RxSwift, ReactNative, Dependency Injections are some of the technologies my team masters. We are using a lot of tools from Google, Square, Facebook, and services such as Firebase & Fabric. We organize our code in MVP and MVVM. We use static analyzers like CheckStyle & PMD. We always run checking types of tools before we release a project.
We also use existing libraries and are regular contributors to open source projects. This saves a considerable amount of time when developing projects from scratch. For example we use Retrofit to handle REST & HTTP communication. We use AlamoFire to communicate with APIs. These tools are continuously updated through various open source projects. There is a community out there and there are various support choices. Which also brings me to another advantage of focusing on native mobile app development: the fact that there are vast amounts of libraries and tools available and an there is an active community for support and updates. This doesn’t mean we solely rely on these tools. However this gives us and our customers 3 advantages:
What are the advantages you see in developing native mobile applications compared to cross-platform?
If you check out the biggest applications, they were all built on native platforms both on Android and iOS. Developing native applications will increase optimisation & the speed between interfaces.
Android for example has different sorts of devices with different physical attributes, manufactured by various companies across the globe. There are android versions ranging from 4.0 kitkat to 8.1. Comparing Apple’s standard specifications across global markets Android is quite diversified. The screen sizes and the camera functions are perfect examples for these differences on Android. With native development, you are able to overcome these challenges much more effectively compared to the UI & UX glitches you might find if the same app is developed using cross-platform tools. Even if you went onto developing a cross-platform application, you would see that to develop some features you need to write at least some native code. Comparing the size of the community in the background, open source projects & libraries available, native platforms are much more equipped with a great deal of support and assistance from across the world.
Larten gave me a demo of screen ratios and speeds on both native and cross platform apps to demonstrate this statement.
Cross platform development is a good option for enterprise applications where the customer is not putting too much of an importance on UI & UX but the functionality is the main objective. Most likely these apps are for internal use, rather than consumer use.
Also there is the risk of certain tools and the support for cross platform technologies declining and disappearing from the market because of the growth in native development. If this is the case, apps that were developed using these technologies will need to be re-developed on native platforms. From a personal standpoint, I wouldn’t want to take this risk myself, nor would I advise it for my customers.
There was a simple cross-platform app we were working on, using Phonegap. There was a function to attach a photo to an email client. There was a plugin for this function which worked well on Android & iOS but not on a Windows Phone. This is not a complicated plugin but it was built very recently. As you can see, cross platform tools and libraries are not regularly updated.
Watch Larten and another colleague talk about Wanari in their native Hungarian:
Tell me about your team!
We’ve got a team of 7 mobile app developers. 2 of us are multi-platform developers (developing for both iOS and Android). And the rest are either native Android or iOS developers. 2 of us have been here for more than 5 years. Even though we are considerably smaller compared to Wanari’s backend team, we have great team spirit. We always try to learn new technologies not just by ourselves but as a team. I want my team to have the same opportunities I got here at Wanari; not just to code with the know-how we already have but to expose ourselves to the very latest technologies and knowledge available. I empower them to use this newfound information on development projects and I make sure we test the results together before the project is released.
How do you keep the team motivated, empowered and committed to continuous learning?
We created 2 HipChat rooms for Android and iOS. We exchange blogs, articles, updates, libraries and open source projects. As we are a small team, a groupchat gives us the chance to spend a few minutes discussing the information if need be. Empowerment is something Wanari values and it flows from the very top. So we always encourage people to share their findings. See how active our mobile developers are On our tech blog: WanariLeaks. I am sure the empowerment they have will speak for them through their blogs. The top 5 blog posts to date were all written by the mobile development team. Some of which has caught 10,000+ pageviews from more than 130 countries. Some of them were featured on Android Weekly, as well, a curated professional newsletter.
If you are passionate about mobile app development here are two of the most successful blogs written by the mobile development team:
It’s not just work, we hang out quite a lot too. If it has nothing to do with coding, our next favourite topic is Clash Royale. I know you might be thinking ‘geeks’ but this actually brings us together as a team because it is a mutual interest many of us are passionate about. My team is quite forward when it comes to following new processes. We are usually the trendsetters and yet the obedient ones ;). And yes! we do have a healthy competition with the backend team. 🙂
If you would like to learn more about Larten and the mobil application developemnt team, follow us on Facebook or on LinkedIn or if you would like to work with the team, shoot us an email to firstname.lastname@example.org!