Amadeus Consulting Discusses Cross Platform App Development: iPhone, Android, BlackBerry and Windows Phone 7

admin on June 7, 2014 · Filed Under Android Tablet 

As a mobile app development company, we help companies and entrepreneurs generate a wide array of Smartphone apps. One question i am often asked is concerning cross platform development, or porting an app in one platform to an alternative platform.

The term “porting” signifies portability of software in one platform to a new, or how easy it can be to adapt a course to operate for a different platform. Applications are considered portable as soon as the valuation on porting it completely to another platform is leaner compared to price of developing it completely from scratch. The low the buying price of porting the program with regards to its implementation costs, the greater portable it is actually.

Apps commonly are not regarded as being very portable. But there are many aspects of cross platform development which will help save your time and cash on the multi-platform application.

Saving Money on Cross Platform Development

Unfortunately the 4 major platforms – iPhone?, BlackBerry?, Android? and Windows? Phone 7 – all use unique programming languages which might be largely incompatible while using the other platforms. There are many rare exceptions, but mostly, apps usually are not very portable.

In addition to true portability, there are plenty of things that you can use to help reduce the price of launching an app using a new platform.

Plan Ahead for Cross Platform App Development: Let your developer know up-front when you plan to inflate to multiple platforms, and which platforms you need to use. Repeat Successes: Makes use of the same developer or development team while you expand to every single new platform. Even though code cannot be reused, logic often remains somewhat consistent between your platforms and expanding to new platforms can be cheaper or quicker than initial development.Know the Limitations: Cross platform app development, besides a highly portable framework, still takes a lot of additional work. Each additional platform will prove to add additional costs together with possible long-term maintenance costs.Look outside the app: Consider setting up a mobile website or web-based app that might be compatible coming from all mobile platforms. Or create a website tool which can be packaged within the app interface.In-platform expansion: Another substitute for cross platform development is optimizing your app to get more detailed devices on the very same platform. For example, as an alternative to expanding in the iPhone to BlackBerry, consider building an iPad-optimized version within your app. Know your market: View the benefits and perils of other platforms. Each platform has unique competition, an exceptional user base, plus a unique culture. An app that does well one platform might not be suitable for another.

The Three Layers of Smartphone App Development

In a fundamental sense, apps are designed in three layers: the information layer, an individual Interface, plus the “Business” layer which handles the logic and control code. Every one of the major platforms manages these layers differently, meaning that during cross platform development, each layer must be considered naturally terms.

1) The Data Layer

Data may be stored natively about the device, or in a web-based external database. For example, an email application relies mainly on a web-based server to generate and manage emails, whereas a photograph editing app mostly relies on local storage (storage within the device).

The help to web-based storage is that it is commonly fairly well optimized for many devices and, if planned for correctly, is fairly compatible across all platforms. Needless to say, to essentially not waste time and cash it’s essential to plan in advance for multi-platform access, but this can be a most compatible solution.

Of course sometimes and situations the place where a web-based option would be not optimal for the app. This could be due to requirement to have a reliable data connection, or maybe the incontrovertible fact that an internet service might simply be “too big” of any solution for just a simple app, or possibly a selection of other reasons where local data storage might make more sense.

Using any local data layer may present additional challenges as each platform and device handles data storage and Files access slightly differently. But overall, the local data layer of the app is fairly consistent across each platform.

2) Anyone Interface Layer

Covering another layer will be the user interface. There are numerous ways the person sees and interacts with all the app. Our CEO has written extensively on interface design and development and its particular implications for traveling with a laptop, which can be worth reading for more resources on mobile interface design. The most important issue coming from a development standard is that each platform (and they often each device on a platform) have their distinct graphical user interface requirements.

In broad terms, you can certainly say that the Native UI control upon an iPhone is distinctly not the same as the control on any Android phone. This is due to the iPhone and Android are trying to be distinct from one another (just consider the number of “hardware” buttons within the Android – 8 – , versus the iPhone’s 4 buttons.) As a result for obvious interface and buyer experience changes when examining cross platform development.

However, essential, is definitely the unique differences between devices on a single platform. The most apparent example is Android, with around 150 devices that you can buy and a minimum of 60 more already announced for release this season. Whilst the controls for many of us of those devices remains consistent, could decide among various different shapes, sizes, and infrequently with some other hardware capabilities which require additional customization and adaptation to guarantee an optimal experience.

So how do you quickly and economically customize an app for 150 devices? That is a remedy for one more blog. Even so the point is the fact that you cannot find any easy one-size-fits-all solution.

3) The Core Code and Logic Layer

The code layer is the biggest and most complicated a part of most apps as it brings everything together and makes everything work. Unfortunately, this layer is different to every platform and can’t be moved from a single platform completely to another.

For example, iPhone apps usually are designed in Objective-C, while Android apps are written in Java and XML. Since Android isn’t going to support Objective C plus the iPhone doesn’t be smart with Java or XML, developers have very little code that is directly reused.

There are a few tricks and tips which make cross platform development a little easier that do not require third-party tools. As an example, automobile iPhone app is coded in ANSI C or C++ it could be easier to port for some other platforms. Unfortunately most apps are not created that way (for your a number of reasons), however some apps, like larger game engines, are finished by doing this. Game engines or another apps which have been written in ANSI C++, is often covered inside a thin Objective C or iOS interface layer which lets it run naturally for the iPhone.

Since Android even offers a Native Development Kit (NDK) that enables deployment of ANSI C/C++ code, you are able to reuse high of the same code except having a thin Java layer that interfaces to C/C++. Nevertheless, Java-to-C integration can be a fragile process and might not yield optimal results, and yes it only adds efficiency in larger complex apps. Creating smaller or simpler apps by doing this may also help you reuse some code, nonetheless it adds a proportionately massive amount additional code and in all likelihood will not likely actually assist in saving anytime.

There is yet another option that will soon be a little more viable for commercial app development: other tools.

Third-Party Tools

Third party tools complete a simple promise: code once, and deploy on multiple platforms. Though technically true, this phrase should include a couple major asterisks and caveats.

There isn’t a tool which will develop a single “executable” that may focus on every major mobile platform, and finding cross-platform development ways for BlackBerry is especially challenging.To generate a code-once UI, it can seem foreign when compared to any Native UI. This means that be squandered anytime soon look like an apple iphone app about the iPhone, or perhaps Android app about the Android, etc. Will probably be something unique, but also foreign and unfamiliar when it comes to look and function. There isn’t a easy solution when an app doesn’t deploy properly with a platform or individual device. You might be stuck having spent your allowance, try not to possess a working product.There is absolutely no guarantee for any quality of an app, without any good solution should you have invested your financial allowance but try not to provide the quality of app you’re looking for whether it is deployed on multiple devices.

In short, while this software may provide some level of “code once, deploy several times,” this equipment continue to be in their infancy along with the capacity to deploy on multiple platforms continues to be somewhat incomplete. There are numerous caveats, and if you’re trying to find a “code once” solution, you will need to become prepared live within those caveats.

The best use for third-party tools like that is usually to understand their limitations. In many instances, these have the potential that can help together with the code layer, but will still require manual user interface customization.

One other challenge is the fact that despite the fact that you will discover multiple tools; there isn’t a single tool that can deploy on all platforms, extending its love to a restricted degree. Which means that one tool is able to do iPhone and Windows Phone 7 deployment, whereas you’d need another to undertake iPhone and Android. Which means even though tools may avoid wasting time on some platforms, there isnrrrt one magic solution for everything.

In order to produce Alternative party tools actually work for you, you will need powerful deployment plan into position and know very well what you are hoping to achieve. In most cases, Alternative party tools can be immensely helpful, however they will also be a hindrance if the expectations do not get together with their capabilities.

We highly recommend conversing with a skilled mobile app developer and setting up a multi-platform deployment plan. There are lots of options, with an experienced developer will let you find the right plan that will produce greatest results, and save time and cash at the same time.


Leave a Reply