Ting Hsuan Lin | September 27, 2016
Developing mobile apps in today mobile landscape is hard and wasteful. Mobile developers need to support all major mobile platforms: iOS and Android (maybe Windows Phones); that usually means they have to rebuild everything on each platform, maintain multiple codebases, and possibly have different platform-specific teams. The silted approach of building app multiple times has some drawbacks:
These drawbacks affect almost all mobile products and projects. With the current Bring Your Own Devices (BYOD) policy, even enterprise mobile applications need to support multiple mobile platforms. You cannot dictate which mobile devices your employees will bring to work. Even resourceful consumer companies such as Google, Dropbox, and Rdio, are looking for cross-platform solutions. With the current trends in mobile technology, there won’t be a clear winner-takes-all in near future (like what happened in the PC market before). Developers must support at least iOS and Android platforms. Android has clearly become the number 1 mobile platform in term of market share.
According to the latest IDC report, “Android shipments lead the global smartphone market, with 283 million units shipped and over 84% of the market share in the third quarter of 2014”. However, Apple’s iOS has a lock on the high-end of the phone market that faces no immediate challenge. Apple Dec 2015 quarter results showed iPhone sales reaching 75m units a quarter (highest ever sales, better than expected). Also, iOS is superior in term of monetization; for instance, only 5% of the award-winning game Monument Valley installs on Android are paid for, the number is 40% on iOS.
Either case, all codes are executed inside the mobile platform’s WebView control. Using this approach, we only need one single codebase for all mobile platforms; many of the platform specific issues are handled by the frameworks (developers don’t need to worry about them). Many developers are already familiar with Web technologies; hence it is easy to find people to work on your mobile projects. This approach is popular among business apps, which don’t need heavy UI interaction. Another approach is to allow developers to build native apps on multiple platforms from one single programming language and dev environment. The most popular framework following this approach is Xamarin, it allows developers to write full native apps entirely in C#. Developers have complete access to 100% of native APIs for iOS and Android in C#. Using Xamarin you can share app logics across platforms. This approach is attractive to teams, which are using .NET technology and now need to work on mobile platforms; they can utilize all the existing knowledge and skills. An interesting approach is to use cross-compilers to compile source-codes from one platform directly to another. For example, the Google’s Inbox app was developed in Android (Java) first, and then they used the J2ObjC to compile the app Java logic codes to Objective-C codes. In this way, they can share most of the app logic code, while the user interfaces are written in native to utilize all the platform specific advantages. If you want to develop your apps for iOS first then port to Android, Apportable provide a tool set using clang to cross-compile Objective-C to native ARM and x86 machine code – no virtual machines, emulators, or Java translation. The resulting Android apps run fast; Apportable framework has a lot of success with games.
There will be no silver bullet for the mobile cross-platform problems. However, by choosing the right tool for the right situation, developers will be saved from a lot of trouble. He will build the app faster, have less bugs, etc. FSoft has identified cross-platform mobile development is one of the key R&D areas. We have projects with customers using all above cross-platform approaches. For example, we have helped our customer to mobilize their Permit to Work (P.T.W) system, which controls certain types of work which are identified as potential hazardous. PTW is a critical system of our customer because the petroleum industry handles large quantities of flammable and toxic materials, so the potential serious accidents are clear. P.T.W is essential part of a system that determines how jobs can be carried out safely. Based on their technical requirements, we selected HTML5 Web Hybrid Architecture: Sencha Touch packaged as iPad app using PhoneGap.
For our own FPT Sales Force Automation solution eMobiz, we used Xamarin for mobile front-end development. The reasons are the app needs to perform well on low-end devices, and the team is highly skilled in C# and .NET but has limited experience in mobile development. We are actively building our expertise in this area. Currently, we are developing cross-platform UI libraries for both the Sencha platform and the Xamarin platform. Both libraries are developing in conjunction with real projects in FSoft. The Sencha UI library is used by eMobiz product line, and the Xamarin UI library is used by a new mobilization project for a US title insurance company. By using the developed libraries, the project team will save time and efforts of tuning client-side performance. Also using a standard UI library will improve UX quality because many UX aspects have been standardized. We also continue looking for innovative technologies in this area to improve Fsoft solutions (to serve our customers better). For instance, we are working with Apportable to train our experts on their state-of-the-art cross compilers. We are looking forward to see more projects in FSoft using our mobile cross-platform solutions in year 2015.
– AnhTT55 –