Cross platform mobile development

So, you have a great idea for an idea for a game or an app that you think could be a massive hit, perhaps make an impact on the industry and possibly make you rich.

You have the coding skills and you have the team and resources. Now all that’s left is to choose the platform you want to target. While we try not to talk about it, it turns out that Android isn’t the only operating system in the world!

If it’s a mobile app you’re making, then the big decision will likely come down to whether you wish to develop for iOS or Android. Each has advantages and disadvantages for developers; while Android has a larger user base, iOS users actually tend to spend more on their apps (both to download the app itself and when making in-app purchases).

But beyond that you might also choose to create an app for a Windows device. Perhaps you want to target Surface users through the Windows store? Or if it’s a game, you might be considering releasing it on Steam and GoG as an indie title – or even on home consoles! There are plenty of games like Limbo and Downwell that have been big hits on multiple platforms including Android.

The ideal scenario? To target every platform that might provide you with an audience, thereby maximizing your impact and your sales. So is that possible? How does cross platform development differ from developing solely for Android? And what’s the easiest way to go about it?

Challenges faced during cross platform development

If you were to set out to make a purely Android-focused app, then chances are that you would use Android Studio to code your app in Java using the Android SDK.

Now, if you were creating an app for iOS, you would do so using the Xcode IDE and likely choose Swift as the programming language, using the iOS SDK.

If you then subsequently decide that you want to ‘port’ your app from one platform to the other, then you’ll need to rewrite all of that code. Depending on the nature of your app, this might be a small job or it might be a huge job. You’d then need to set up the project in the new IDE and rearrange all the layouts, add all the images etc.

But at least you’d be able to use the same design specifications and graphics, right? Well… not exactly. Unfortunately, the design language used in iOS is rather different from the design language of Android. Android is well known for its Material Design approach, whereas iOS has a completely different look and feel. The hardware that runs iOS and Android will vary too. Android developers might be used to dealing with fragmentation and multiple different screen sizes and resolutions, but now you need to consider the lack of back button and the way that users are accustomed to interacting with their apps too.

If you’re adding your app to the Windows Store, or Windows 10 Mobile (sure, why not?), then you’ll need to consider even more factors.

In other words? It’s a headache. So the answer is ideally to set out to build something cross platform from the start and to let that

Choosing a cross platform IDE

Fortunately, this frustration hasn’t gone unnoticed and there are many IDEs created specifically to target the problem of cross platform mobile development. An IDE is an ‘integrated development environment’ that lets you organize your project, run your code and more. Android Studio and Xcode IDE are examples of IDEs for example.

 There are many IDEs created specifically to target the problem of cross platform mobile development

But there are other IDEs out there that use different programming languages, have different features and target different devices. Several have been born specifically to solve the issue of cross platform development.

Here are some of the best for any type of app:

Xamarin

Xamarin is a perhaps the most popular choice for cross platform development outside of games and has a large community, lots of support, and many useful features. Xamarin comes bundled with Visual Studio (Microsoft’s IDE) and lets you code with C#, which some developers may prefer to Java.

B4A

I’ve made no secret of my love for B4A from Anywhere Software. This is what got me started in Android Development and I still use it to this day when I want to get something up and running as quickly as possible. B4A allows you to develop Android Apps using a language called BASIC (hence the ‘B’) which is particularly simple to read and write. It also has a number of features designed to help speed up the process of creating your apps.

PhoneGap

Both Xamarin and B4A will allow developers to create native apps. That means they will run just as though they had been built using the official IDEs and will have access to all the hardware and software features of the devices they’re running on.

PhoneGap is an example of a different approach. This is a tool for building apps using HTML, CSS, and JavaScript – languages typically used in web development. In other words, apps can run as though they were webpages meaning they will work with pretty much any modern device. This isn’t ‘native’ development though and you’ll lose a fair amount of functionality as a result. You certainly wouldn’t want to go this route for building a game, unless it was noughts and crosses or hangman. That said, you can still access many phone features such as the camera, the compass, media etc. and if your vision is for something fairly basic, then this should suffice. For example, if you were looking to build a business app with minimal financial investment, then you could create a static app with some information and a map this way.

And many more…

There are plenty more options out there for getting started with cross platform mobile development. Popular choices include CordovaIonicCoronaAppcelerator and Sencha Touch. Do some research and see which one appeals to you.

And keep in mind that you’ll likely need multiple machines (you’ll need a Mac to develop for iOS in most cases, as well as an iOS device), lots of SDKs and lots of testers if you’re going to go cross-platform. It’s still slightly more challenging than targeting a single platform then, so make certain you know precisely who you’re targeting before you start out! Once you have a concrete plan of action in place, you can go about selecting the right IDE and outline the differences between your separate versions.

Originally posted by,

Adam Sinicki

#TeamVishwakarma

Leave a Reply

Your email address will not be published. Required fields are marked *