January 24, 2020
Mobile application or apps in general are applications that runs on a mobile device such as phone or tablet. Since the launch of the smartphone and the App Store, the mobile application market has growing exponentially with millions of apps and billions of users worldwide. Today, there are many categories of application available for download including shopping, games, business, education, lifestyle, entertainment, etc. Some of the popular mobile apps include Pandora, YouTube, Facebook, Instagram, Twitter, Gmail, Google Maps, SnapChat, etc. As per Statista.com (2018), there are 2.8 million apps available in Google Play. Apple’s app store remains the second largest app store with 2 million apps.
Even though we call all the apps as mobile apps, there are different types including native or custom, hybrid and progressive web apps.
Native or customer apps are application written for a specific platform such as iOS, Android or Windows. Each platform has unique features, and the native apps are written to take full advantage of the features providing rich user experience. For example, features such as FaceTime, Siri are unique to Apple’s platform. Similarly, an Android native app can take advantage of unique android features such as Google assistant, hangouts, drive, etc.
The hybrid apps are written in common language that runs in multiple platform including iOS and Android. The purpose of the hybrid is to develop once and deploy in different platforms thus reducing overall maintenance and ownership cost. However, there are restrictions is some of the features supported. The frameworks such as React Native, Ionic, PhoneGap, Onsen UI provides necessary features to build hybrid mobile apps.
The progressive or hosted web apps are web applications that runs on a container and provides user experience like the native applications. The PWAs are gaining in popularity as they are supported by many popular browsers, and runs in multiple devices including mobile phone, tablet and game console. The PWAs are searchable through the search engines and downloadable through the app stores. PWAs provide a quick transition from web to mobile leveraging the existing assets thus reducing the cost and effort. Microsoft PWA builder takes a web site link and generates progressive web app in minutes that can be deployed in the Windows store.
Developing mobile apps involves many steps from having proper requirements, choosing appropriate platform, framework, design, development, testing and deployment. The mobile app development is mature with many platforms, processes, methodologies, frameworks, programing languages, tools and techniques, design patterns, and deployment options. Even though iOS, Android, React Native and Windows platforms are common, there are many other platforms available to develop, test and deploy mobile apps. The mobile application development involves:
A modern mobile development typically use multiple layers including presentation or user interface layer, service layer and data layer. Customers mainly interacts with apps through the user interface, and hence, a good designer is critical for success. Depending on the size and complexity, one or more mobile developers may be required. The team should have a mobile tester with experience testing mobile apps in the targeted platform. Based on the technical architecture, may need an experienced deployment engineer.
Plan, organize and control the project tasks. Works closely with the project owners in understanding the scope of work, assign/select project resources, and facilitate completion of work. The other activities may include monitor and resolve issues, mitigate risks and provide regular status updates.
The mobile architect is one who demonstrates proficiency in the technical architecture that underlies the mobile platform, IT resources and solutions, and has mastered the hands-on application of design patterns, principles, and practices used to engineer and evolve the solution.
Designer is one who brings an idea or concept into a visually appealing artifacts. Over the years, designer – a generic role has branched into many specialized roles such as graphic design, user interface design, web design, mobile design, etc. Designers are proficient using various design tools, create prototypes, design, develop, test and deploy design artifacts.
Developer is one who translates the design artifacts into software components. Developers are focused on design, develop, test and deploy software components using the recommended technology, architecture, processes and frameworks. They also work closely with other members ensuring successful completion of the work.
Deployment engineers are focused on deploying application from development to various environment including testing, staging and production.
Software testers are focused on the quality assurance stage ensuring the product meets it both functional and system requirements. Testers perform different levels and types of testing, ensuring the product matches the requirements.
Disclaimer: The details provided in this page for information purpose only. Please use the details at your discretion. We will continue to interview experts and improve the content of this page.