Mobile Application Development

Mobile application development is a process of building mobile solutions for your customers, and users. The term mobile development is often confused with the development of Android or iOS or Windows Mobile application development, but it is a lot more than that. A mobile solution is also a solution for smartwatches, for holographic devices, and for PDA devices if someone uses them anymore. This is the reason why mobile application development is one of the most important skillset that a computer programmer can capture for himself.

Mobile Applications

Mobile applications are software packages, which are developed for and deployed to mobile devices, which are low on power, computing capacity and screen size. Although some tablets or phablets do have a large screen, but as compared to a desktop they do not have much resources to compute complex tasks, and to show a large amount of data such as user interface controls, or data sets for processing. Since most mobile devices are manufacturers and they are business leaders, thus they often install their custom made software applications in the mobile device. Samsung, HTC etc. all do this on their Android based mobile devices. But mobile applications can be developed and deployed later on, through the use of mobile markets.

Mobile applications are of different types, and categories. Note that I am not talking about the system software, such as Android or Windows Mobile. But instead the software applications, that a user can use for their own purpose,

  1. Games
  2. GPS tracking applications
  3. Email and communication software.
  4. Productivity software.

There are many other categories of software applications available to mobile platforms. Provided the high demand of mobile apps, and the ability of mobile devices to have a lot more compute resources compared to the last decade, all of the desktop applications are also coming to mobile platforms and this is why there is a huge demand of mobile app developers in the software industry.

Mobile Application Development

The mobile application development procedure takes into account the ability of a team to build software application for mobile devices, where (as mentioned already) the compute power, storage amount and battery power is less. Mobile application development is not the process of only bringing desktop applications to mobile phone, but to fine tune them also to ensure they are friendly for CPU, battery and user's storage device.

Every mobile platform has its own programming framework, and a different application development strategy is used to build softwares for mobile devices. All of the application development related stuff and material will be covered in the chapters for mobile platforms — which I am interested in at the moment — and then I will move onwards with the programming languages, frameworks and services that you can use in each of the platform. For example, you cannot send an SMS in Windows Mobile unless you are a network provider, and you cannot use Windows Store in Android platform, and much more.

Application Development Strategies

Mobile application developers use different strategies to develop the mobile application software. Most of these approaches include but are not limited to native application development, whereas some consider cross-platform development a better approach. Each one of these techniques has its own benefits and some have their own downfalls.

  1. Native approach.
    • This approach takes a team of mobile application developers to build an app for a particular platform. For example, an Android application cannot be installed on a Windows Mobile, and vice versa. This has best performance output, but takes multiple teams to write software for other platforms.
  2. Hybrid applications.
    • These are solutions written in HTML, CSS and JavaScript. They are similar to our web applications, and sometimes they run on a WebView control on the mobile device. But they require a single team of developers to write the software and the web application.
  3. Cross-platform solutions.
    • This solution requires a team of app developers, who write the software in a particular framework, where that framework maps the application to native applications for each of the platforms. Microsoft' Xamarin platform is such a platform, where you write programs in C# programming language and it compiles that application to all platforms which are supported.

Depending on the need of the software application, or the software development team, each of these approaches can have their own benefit and can have their own problems. Thus, this is a opinion based answer and I would consider not-responding to it here.

Mobile Markets

Almost every mobile operating system has the marketplace where users can search for more software applications to download and use. A marketplace makes a mobile platform extensible and appropriate for users to consider and try. There were times when there were no marketplaces, and users had to stick to the shipped software only. However, now almost every mobile platform provides a market place from where users can download the software packages that suits their needs and requirements.

  1. Android's Play Store by Google.
  2. Windows Store by Microsoft.
  3. App Store by Apple.
  4. Firefox marketplace
  5. Ubuntu Software Center

These are the marketplaces provided by the most used platforms (yes, they are not sorted that way), and there are many other stores out there that provide free and paid offerings for mobile phones.

And if you were expecting to hear something about market shares of each of the operating system, then that is a dynamic topic and ever changing which I will not be able to update myself with. However, you can read this Wikipedia article that covers mobile operating systems somewhat in detail.

CMD

Cross-Platform Mobile Development

Cross platform mobile development allows mobile developers to write their apps once, and run on as many platforms as they want, such as Android, iOS, Windows and other platforms.

AAD

Android App Development

Android application development is the most common form of mobile application development, with Android Studio.

W1M

Windows 10 Mobile App Development

Windows 10 Mobile is the mobile edition of Windows 10, and a counterpart of UWP platform for mobile devices running Windows 10.