There used to be a time when companies were debating wether or not they should have an app. As everyone understood that a Mobile app is no more an option most of them started wondering what kind of Mobile apps they need, who will they be targeting or what devices they to deploy to. Also these questions lead to more questions regarding security, performance, reliability, efficiency, management, measurement, and budget. And this is where Incredible Web comes in, helping you decide the best approach to your mobile application.

Cross-platform app development combines the best capabilities of native other popular technologies such as Javascript or C#. It's a big investment that will allows you to create a big return. A Cross-Platform allows the developers to create one code based on cross-channel development frameworks (JavaScript, C#). The Cross Platform framework will then translate the code to native calls for each and every platform for Android, IOS and Windows.

Cross-Platform frameworks are considered to be more business-friendly as they often allow the enterprise to speed up time to market, lowering total cost of ownership and reducing development and maintenance costs. Some of the most popular Cross-Platform suites offers support on other elements of the SDLC (software development life cycle), such as design, testing and also management, or offer SLAs (service-level agreements) covering future device and OS upgrades or additions to the market. The Cross-Platform approach allows developers to serve the customers' needs (all kinds of devices). 

A Cross-Platform approach is extremely suitable when one needs to develop a mobile application supporting many devices across several platforms. Creating multiple apps, relying on a singular development language skill set, leveraging reusable components are all on the plus side of adopting a Cross-Platform strategy at your company resulting in an overall lower Total Cost of Ownership. Not everything is bells and whistles though, if you're simply building one or two mobile apps for limited devices going native or hybrid might be more feasible.

  • User Experience : Most cross-platforms frameworks don't provide the same user experience as native applications. The experience is closer to the one users have while on web apps than native apps even if the app seems to be like a native one (on app stores...). There are only a few Cross Platform frameworks which are able to provide native performance and User Experience such as Xamarin and Appcelerator. At Incredible Web we have worked with both.
  • Development :  In theory cross-platforms allows “Build Once and Deploy on Multiple Devices”, in practice apps require tweaking for each platform. Typically, plan on 20-25% additional effort on each platform once the base app is built since about 75% of the codes are usable. Some device functions may already be supported by the cross-platform framework, an analysis is needed to determine what additional effort is required when developing on multiple platforms. Most cross-platform frameworks allows you to build plug-ins* for device features not supported by the platform itself. However, plug-ins need to be written for each platform, which adds to the overall effort and so brings up the cost. 
  • Updates: Cross-platform frameworks take time to support new functionality that becomes available when a new OS version or device model is released. (there’s also no guarantee that it will be supported.) On the other hand, native apps can stand/support the new functionality  immediately. So an app might not be working on all new generation of devices, which is not what companies usually wants.

It is important to take all the points we mentioned into consideration before opting for a particular strategy. You need to make sure you understand the requirements of your typical client, the skills you have available within your team, the resources you'r willing to dedicate and the maintenance requirements of your typical projects.

*1 Plug-in:  is a software component  that adds a specific feature to an existing computer program.