Android and iOS Mobile Application Development (Part 1): Introduction to the tools and technologies used
When we talk about Mobile Application Development, we are generally given three choices - going with native development, using third-party tools such as Xamarin/ Apache Cordova, or, simply writing a web application running in the context of a mobile device's browser. How we choose often depends on the business requirements of the mobile application, and how much time and money we wish to spend to maintain it going forward.
Native Development
Going with Native Development means we develop the Mobile Application using the tools and software development kit (SDK) provided by the mobile platform. In the case of Android, it would be the Android SDK and in the case of iOS, it would be the XCode SDK. Given the fact that the platform and programming languages are different, it would be difficult to share a common codebase, and so, it would typically require separate development efforts. This is a great choice if we care about performance, and specific features required for our mobile application to work, or, if we choose to support a specific platform only, because most of our users are on that specific platform.
Third Party Tools
The next level of choice is to use tools such as Xamarin or Apache Cordova which are basically wrappers around the native frameworks. The advantage of this approach is that it makes it easier for us as developers to write a common codebase (up to a certain level as there would still be some differences) and share it on the different platforms. To be clear, Xamarin itself does provide choices where we can achieve performance which is close to what native development can achieve according to the documentation on their website. However, I have to stop here because I have not personally worked or developed using Xamarin. For me, I am more interested to learn more about Apache Cordova given that it is free to use. This is not to say we should not consider Xamarin. I am purely choosing Apache Cordova to get started for my own learning purposes which is what I will be talking more about next.
Web Application running in Mobile Device's Browser
The last choice here is to create a web application that has support for mobile friendly user interface - that is, the size of the web application should be rendered to meet the size of the mobile device compared to that of a desktop version - as an example. This is the most cost efficient and the fastest to develop, but we do lose some in terms of what hooks we can write to utilize on what the mobile device hardware offers. There are many Javascript frameworks out there today that will allow you to write a web application that will look almost like an actual mobile device application. However, the performance of the web application is hard to control since most resources would have to be downloaded and cache locally initially.
Tools and technologies used
With Visual Studio 2015 (and Visual Studio 2013 with some setup), having support for mobile application development, specifically using Apache Cordova in our case - opens up the possibilities of using tools that we are familiar with to code, debug and deploy our mobile application. In this series, I plan to describe how we can use Visual Studio 2015 to develop a mobile application that has a Web API backend hosted on Azure Website - which, of course, is secured by Azure Active Directory (AD) using OAuth.
Part 2: Securing our Web API application with Azure Active Directory OAuth
In the second part of this series, we will learn about why we chose Azure AD/ OAuth. We will also do some configuration work in Azure AD to setup our applications and users in Active directory. We will learn about the what is required to be configured for OAuth to work and apply those settings in our Web API application.
Part 3: Creating our first Mobile Application in Visual Studio 2015 using Apache Cordova
In the third part of this series, we will piece together the mobile application with different frameworks. From a high level, we plan to use a CSS component called Ratchet for the user interface, and AngularJs as the Single Page Application (SPA) framework to orchestrate the logic between our views and logical parts (MVVM). We will be writing our very own AngularJs authentication service that will help us with the OAUth dance. We will be testing and debugging using the default Google Android emulator.
Part 4: Testing and deploying our Mobile Application onto an actual Android or iOS device
In the fourth and last part of this series, we will focus on testing and deployment via tools such as Android debugging bridge for deploying to an Android device. We will also take a look at RemoteBuild, which is a service hosted on a MAC. RemoteBuild allows us to run either an iOS device simulator or deploy to an actual iOS device.
One interesting thing to note here, is that, the latest version of XCode will allow us to deploy to an actual iOS device for free (previously we will have the join the Apple developer's program and pay a fee). We do still have to join the Apple developer's program in order to distribute our iOS Mobile Application. But at least now, we can test on an actual physical device.
I hope you have enjoyed the first part of the series on Android and iOS Mobile Application Development. Stay tuned for part 2!
Comments
Post a Comment