Mobile Applications Basics

Current Context

Current days, mobile applications became more and more popular than other applications like desktop applications and web applications. The reason is portability and usability. Technology trend of current days quickly moving to smart devices like tablets pcs, smartphones etc.



The popularity of desktop pcs and laptop pcs becoming decreasing day by day. When we considering the people in current days, most of them have at least one smartphone. And the hardware specifications are also becoming increasing and they got more powerful.

What about web applications

As the reason of improvement in the mobile industry, software developers tend to develop web applications since they are more flexible and can be made to meet requirements for desktop pcs and at the same time they can fulfill the requirements for mobile devices. With the improvements of CSS technologies and CSS frameworks like Bootstrap, web applications can adapt to the screen size of the device that currently running (Mobile Responsive Web Applications). So web applications could fill that gap of serving services to mobile devices.
But, there is a problem in web applications also. As we all know, web applications need a web browser to run on a device. It can fully depend on the web browser or partially dependent on the web browser (Client-server web apps). As a result of web browser usage, there is a performance bottleneck happen. Since web apps cannot access resources like sensors directly and within the browser, the app cannot run smoothly.

This is why mobile apps comes into play. Mobile apps can access resources in the device directly. So the possibility of performance issue will become less.

What are types of mobile applications

There are two types of mobile applications available in current days. Each of them has advantages and also some disadvantages. Those are two types of mobile applications.
  • Native Mobile Apps
  • Cross-Platform Mobile Apps
As the name in the sense, native mobile apps are natively developed to a targeted platform. There are several mobile platforms available these days. Most famous platforms are Android, Apple IOS and Windows Mobile. There are predefined programming languages available to develop for each mobile platform.
  • Android - Java, and Kotlin
  • IOS - Swift and Objective C (Objective C is now becoming deprecated and Apple pushes developers to work in Swift)
  • Windows Mobile - C# .NET
There is a problem in native applications when it comes to supporting multiple mobile platforms. Since mobile devices, users can use either Android device, Apple device, Windows device or any other device. Think like we develop a mobile application for Android devices and published in google play store. Then it can be used by Android users. But what about apple users and windows users?. They cannot use the mobile application we developed. If we use native mobile application development, we have to develop the same android application for IOS and Windows. That is actually rewriting the same code using different programming languages. So there are so many extra works involved within that,
  • Either we have to learn Swift and C# or
  • Hire mobile app developers with knowledge of Swift and C#
  • Time wastage to the re-writing process.
  • Maintenance time is another nightmare since needs to consider multiple versions of the same application at same time.
Cross-platform mobile applications are mainly coming to solve that problem. With that approach, we don't need to develop multiple applications for each platform instead develop a single application and deploy on all platforms. Sounds Good :-)

Currently, there are some technologies available to create cross-platform mobile applications. Most famous technologies are

https://visualstudio.microsoft.com/xamarin/
Xamarin is Microsoft based company and developers can develop cross-platform mobile apps using C# .NET and User Interface can be developed using XAML (Extended Application Markup Language). Xamarin can be used to develop mobile applications for Android, IOS and Windows Mobile devices. Microsoft Visual Studio is the IDE (Integrated Development Environment) used to develop Xamarin apps. Xamarin will support all emulators and simulators which available in native app development in android and ios.
But there is a problem for windows users in IOS app development. Because IOS simulator cannot run in windows pcs. There should be a Mac to run IOS simulator. But it is ok if you have IOS device since you can test your app directly within your device instead of the simulator.


Apache Cordova is another cross-platform development technology maintained by Apache foundation. With the Cordova, we can create cross-platform mobile apps using HTML, CSS, and Javascript.

But there are some disadvantages also in this cross-platform app development.
  • Development of User Interface to match all platforms.
    • Each platform, there are some conventions in designing the user interface. For example, Tabs in Android apps will be on top of the screen. But in IOS tabs will usually show in the bottom of the screen.
  • Some limitations in each platform
    • There are different different limitations on each platform. Some of them are related to some security concerns. In that case, one platform will support some task to be done easily. But another platform will prevent or no support to do that. In that case, developer needs to find another ways to overcome the problem. That is a very annoying thing.
  • Less functionality when compared to native apps
    • Due to some limitations, cross-platform apps can be limited to some set of features of the mobile device. But native apps can access every feature.

Conclusion

By considering all the above reasons, we can say mobile apps are the most ideal solution for mobile devices. But when selecting the type of mobile application, we should have a better feasibility study about what is the most relevant type and technology for the app by considering specifications of each type.

I hope this will help someone to understand the basics of mobile applications. If there are any modifications of suggestions for this post, please let me know in the comment section.

Thank You

Comments

Popular posts from this blog

CSRF Defence - Synchronizer Token Pattern Demo

Lets read emails in gmail using oAuth 2.0 (Application demo)

CSRF Defence - Double Submit Cookie Pattern Demo