Module 1: Foundations of Mobile Application Development
This module introduces students to the fundamental concepts, technologies, and methodologies involved in mobile application development. It provides an overview of the mobile ecosystem, development frameworks, and key considerations for building mobile apps.
3. Mobile Application
3.1. TYPES OF MOBILE APPLICATIONS BASED ON THE WAY THEY ARE DEVELOPED.
TYPES OF MOBILE APPLICATIONS BASED ON THE WAY THEY ARE DEVELOPED.
Three types of mobile apps drive app development – native, web, or hybrid. And while each one has a different structure and takes a different approach to code, they also overlap in several ways. There are three basic types of mobile apps if we categorize them by the technology used to code them or There are three main ways that mobile applications are developed.
1. Native mobile apps
Native app development serves a single operating system or platform. And they use a programming language that’s specific to that platform or operating system. This is usually a choice of iOS, Android, or Windows Phone. And in practice, that means a native app will use the specific features of a platform’s native API but also rely on its ecosystem to support things such as app distribution. So, a native app built for Android will use the codebase for the Google Play store, for example. But because by customizing to the functionalities of specific operating systems, native apps can offer enhanced user experiences.
Native apps run straight from devices. As a result, they can support strong performance, high levels of security, and advanced features ‘native’ to the specific operating system. This also means there are likely to be fewer bugs to fix and greater performance capabilities. Some of the most common codebases seen across the three operating systems for different types of mobile apps include the following:
• iOS: Programming languages include Swift, Python, and Objective-C
• Android: Programming languages include Kotlin and Java
• Windows Phone: Programming languages include C# and .NET
Gaming apps often take a native app approach. And by building these types of mobile apps in a native form, on either iOS or Android, gamers can expect faster access times while accessing device systems and cameras. Native gaming apps also offer the advantage of better security and compliance, a stable and satisfying player experience, and the opportunity to scale and boost ROI fast. Because they’re built for just one platform, you cannot mix and match – say, use a Blackberry app on an Android phone or use an iOS app on a Windows phone.
Examples of Native Mobile App
iOS Native Apps:
1. Instagram
Description: Photo and video sharing social network.
2. Apple Maps
Description: Navigation and map service by Apple.
3. Safari
Description: Web browser developed by Apple.
4. GarageBand
Description: Music creation studio for iOS.
5. Health
Description: App to track health and fitness metrics.
6. iMessage
Description: Messaging app by Apple
Android Native Apps:
1. Google Maps
Description: Navigation and mapping service by Google.
2. WhatsApp
Description: Messaging and calling app.
3. Spotify
Description: Music streaming service.
4. Google Photos
Description: Photo storage and sharing service.
5. Snapchat
Description: Photo and video messaging app.
6. Google Drive
Description: Cloud storage and file sharing service.
Technology Used: Native apps are coded using a variety of programming languages. Some examples include: Java, Kotlin, Python, Swift, Objective-C, C++, and React.
Pros (Advantages): Because of their singular focus, native apps have the advantage of being faster and more reliable in terms of performance. They’re generally more efficient with the device’s resources than other types of mobile apps. Native apps utilize the native device UI, giving users a more optimized customer experience.
And because native apps connect with the device’s hardware directly, they have access to a broad choice of device features like Bluetooth, phonebook contacts, camera roll, NFC, and more.
Cons (Disadvantages): However, the problem with native apps lies in the fact that if you start developing them, you have to duplicate efforts for each of the different platforms. The code you create for one platform cannot be reused on another. This drives up costs. Not to mention the effort needed to maintain and update the codebase for each version.
And then, every time there’s an update to the app, the user has to download the new file and reinstall it. This also means that native apps do take up precious space in the device’s storage