Chapter Two
Factors in Developing Mobile Applications
2/13/2024 MAD 1
Outlines
✓ Important Factors to Consider in Mobile Application Development
✓ Mobile application development
✓ Types of mobile application
✓ Generic UI Development
✓ Multimodal UI
✓ Factors should be considered in design right UI
✓ Mobile application development frameworks
✓ Challenges with creating application development
✓ Successful Mobile application Development
2/13/2024 MAD 2
Mobile Application Development – Important Factors to Consider
• Multiple Platforms and Devices: The mobile phone is much more
fragmented, so it is better to consider platforms (Android, iOS, Windows
and BlackBerry) that are continually evolving.
• Accordingly, building mobile applications requires more factors to
consider when planning, including which device platform to build first,
what mobile technology option to choose, what capabilities should the
mobile phone support.
2/13/2024 MAD 3
Cont.…
• In contrast to traditional Windows-based desktop development,
mobile developers need to think about creating application for
multiple platforms.
• Integration with Phone Functions: mobile platforms open up new
opportunities that traditional desktops cannot provide. For example,
integration with phone functions such as direct calling and text
messaging, GPS.
2/13/2024 MAD 4
Cont.…
• User Interaction Instead of a mouse and keyboard, there is a quite
different mode for user input: touch. Even a single touch can involve a
variety of interactions, including single-tap, double-tap, long touch,
move and fling.
• Scalability Issues: As applications become more popular, the number
of users and data will increase exponentially.
2/13/2024 MAD 5
Cont.…
• In the initial developmental stages itself, developers need to incorporate a
design that will support a scalable system to handle the load of many
users.
• Security Challenges: A security testing can help uncover vulnerabilities of
data leakage during the transmission and working of the application.
• The application must meet the authorization policies and other security
standards set, to ensure that the user data is protected.
2/13/2024 MAD 6
Mobile application development
• Mobile application development is the set of processes and procedures involved in writing
software for small, wireless computing devices, such as smartphones and other hand-held
devices.
There are three broad types of mobile apps:
Native:
✓App is developed for a specific platform using the platform's native APIs.
✓It's therefore performant and has full access to device capabilities.
✓The platform's ecosystem, such as an app store, helps in distributing the app.
✓Code cannot be reused for other platforms. Examples are iOS (Swift or Objective- C), Android
(Kotlin
2/13/2024
or Java), Windows Phone (C# .NET). MAD 7
Cont.…
Hybrid:
✓App is developed using web technologies but is wrapped inside a native app.
✓Code can be reused across platforms.
✓App can also access native APIs. Examples are Ionic.
Mobile Web:
✓App is developed with web technologies and delivered via a web browser.
✓Typically, these are web apps with responsive design so that they display well on smaller
devices as well.
✓Business logic is on the server and only a single codebase needs to be maintained.
✓There's no need to install anything from app stores.
2/13/2024 MAD 8
Native mobile app development
• In native Android application development Java or Kotlin
programming language will be used.
• For developing native iOS applications, Objective-C or Swift
programming language will be used.
2/13/2024 MAD 9
Native app tools
✓In addition to having operating system-specific
✓Software development kits (SDKs),
✓Native mobile development requires an integrated development
environment (IDE).
✓Android Studio or IntelliJ IDEA for android .
✓Use Xcode or AppCode as IDE for iOS apps, these tools work only
on macOS.
2/13/2024 MAD 10
Pros of native mobile application platforms
✓Better performance: helps to create and optimize native apps for a specific
platform, the program also compile them using the platform’s core
programming language and APIs, makes the app fast, and responsive to
users’ actions.
✓Tight security: Native apps can enhance the security of user’s data. They
have access to platform-specific built-in security features.
✓Quality User experience: Native apps have a smoother experience with
regard to user input and output.
2/13/2024 MAD 11
Cont.…
• They follow design guides for the specific OS, making the flow of the
app feel more natural.
• Full feature set access: Native mobile apps can access all features and
functionalities of the device.
• It also gain access to services like push notifications, which are key to
driving user engagement.
2/13/2024 MAD 12
Cons of native mobile applications
• Native mobile applications are usually costly to deploy. separate
teams developers for the specific platforms are required.
• For example, you need developers proficient in Java or Kotlin to
create a native Android app, You will also need extra
Swift/Objective-C developers for native iOS.
2/13/2024 MAD 13
Cont.…
• Development time: Separate teams working on similar apps for
separate platforms take time.
• Maintenance and enhancements also require a lot of effort.
• Lack of code reusability: You have to create and keep code in
separate projects to target different mobile operating systems.
2/13/2024 MAD 14
Cross-platform mobile application development
• This strategy is to create cross-platform mobile applications from a single
codebase.
• The goal of cross-platform app development is to target different
operating systems with one project.
• These apps will be created using cross-platform frameworks, which use
platform-specific SDKs (Android SDKs and iOS SDKs) from a unified
API, this enables to easily access different platform SDKs and libraries.
2/13/2024 MAD 15
Cross-platform tools
• React Native mobile apps: VS Code, Android Studio, WebStorm,
Xcode, and Atom.
• Flutter mobile apps: VS Code, Android Studio, and IntelliJ.
• Xamarin mobile apps: Visual Studio.
2/13/2024 MAD 16
Pros of cross-platform mobile applications
• Low costs: Cross-platform mobile development needs only a single
team of developers have knowledgeable in the chosen framework.
• The app reaches a wider audience to testing the market.
• Code reusability: Cross-platform frameworks allow to use a single
codebase. This ensures consistency in the business logic used.
2/13/2024 MAD 17
Cont.…
• Rapid development: Cross-platform frameworks have also
optimized the process of app testing during development.
• Easier maintenance: Updating a cross-platform app is easier.
• This is because it uses single codebase.
• Builds based on different platforms use the same code, ensuring
consistency.
2/13/2024 MAD 18
Cont.…
• Larger digital footprint: Cross-platform apps are usually larger. It need
to pay attention to the mobile optimization options available.
• Difficult integrations: Cross-platform frameworks do not integrate all
platform-specific features. Some hardware-specific integrations like
using GPUs might need skills in native app development.
2/13/2024 MAD 19
Cont.…
• Lower performance: Cross-platform frameworks usually bundle a
custom runtime to run the app.
• It is responsible for communicating with platform-specific
services.
• This adds another layer of computation, leading to lower
performance.
2/13/2024 MAD 20
Generic UI Development
• The reason for building a generic user interface for mobile
systems is the wide variety of devices and user interfaces that an
application might need to support.
• The idea here is to layer the different parts of the user interface,
build a generic user interface, and then specialize it to a given
device or type of user interface
2/13/2024 MAD 21
Universal UI Development
• Based on the studies in design UI for apps they suggest using “text
to speech” services to assist with low vision / blind users.
• A text to speech service acts as a screen reader, it reads whatever is
on the screen with a clear and loud voice.
2/13/2024 MAD 22
Multimodal UI
• Multimodal user interfaces are using different kind of modalities,
such as voice or gesture can be according to the user needs or
constraints.
• Multimodality is seen as the combination of multiple input and/or
output modalities in the same user interface
2/13/2024 MAD 23
Factors should be considered in design right UI
• User interfaces should be intuitive: The first time a user uses an
application, should be able to navigate through without too much
trouble, assuming a reasonable amount of familiarity with the
application domain.
2/13/2024 MAD 24
Cont.…
• Consistency: A software application should present user interface
components that are consistent with each other and consistent
with their operating environments.
• Learnability: The user should be able to learn how to use the user
interface within the first few times of using it and remember how
to use it without having to refer to manuals.
2/13/2024 MAD 25
Cont.…
• Accommodating Expert Users: A good user interface provides
shortcuts for the expert users. Applications should be efficient and
fast to use for expert users.
• User should learns how to use the system better to access the
information and perform the tasks faster.
2/13/2024 MAD 26
Cont.…
• Trustable: The user interface should be predictable, trustable, and easily
understood.
• Robustness: A good user interface should gracefully recover from user
errors (e.g., display the proper dialogue boxes to guide the user when an
error happens).
• Should convey the relation to the application logic easily to the user.
2/13/2024 MAD 27
Mobile application development frameworks
• Mobile app framework is a software creation platform that
includes tools and software, compilers, debugging tools, and
programming interfaces etc.
• Some development frameworks, these can be helpful for both
android and iOS users includes.
2/13/2024 MAD 28
Mobile application development frameworks
React Native
• React Native, built and supported by Facebook, is an accessible,
cross-platform application development framework.
• It facilitates the development of Android and iOS mobile
applications. Common examples of this react native platform apps
are like Tesla, Airbnb, Skype, or Amazon Prime.
2/13/2024 MAD 29
Cont.…
Flutter
• Flutter is an open and free frameworks of Google that allows to
create both Android and iOS applications.
• It’s an unrivaled and dependable smartphone UI framework for
swiftly developing attractive apps by accelerating development.
2/13/2024 MAD 30
Cont…
Xamarin
• Xamarin is an alternative cross-platform application development
framework that supports both IOS and Android..
• It uses C# programming language.
• As a result, the process of coding is quicker and it allows to transfer
the scripts across other systems, such as Windows and macOS.
2/13/2024 MAD 31
Cont.…
Swiftic
• It is amongst the highly flexible mobile application development
frameworks as it offers pretty smooth user experience, and
straightforward strategies.
• It simplifies app development by allowing programmers to integrate
current material from the internet rather starting fresh.
• Push alerts, app advertising, and other technological advances are all
incorporated within the framework.
2/13/2024 MAD 32
Challenges with creating application development
• Creating a universal graphical user interface: Regardless from the
actual design itself, every mobile platform provides its own way
for developers to address user interface requirements and
manipulating in to developer’s needs.
• A good start would be to cope with the variety screen sizes and
resolutions of different smartphones and tablets.
2/13/2024 MAD 33
Cont.…
• Android for instance is very flexible with this aspect as it gives
developers more flexibility when dealing with screens with
different sizes and resolutions.
• Unlike Apple which seems to be very rigid in this aspect.
• IOS applications are restricted in size and resolution based on the
specific iPhone/iPad models that are targeted.
• Thus, a unified user interface design is a bit of a challenge for
developers to implement across different platforms.
2/13/2024 MAD 34
Cont.…
• Issues within a single platform: Within a single platform, internal
challenges may arise that could make development even more
difficult.
• Wide variety of android operating system flavors co-exist in the
market each have their own skin on top of the android operating
system which sometimes leads to incompatibilities with certain
parts of applications.
2/13/2024 MAD 35
Cont.
• Changes in requirement : Whether it is a desktop application or a
mobile application, if the client changes or modifies some
requirements during the initial stage of development, these
modifications can be considered and finally it my lead to whole
development process would need to be restarted.
2/13/2024 MAD 36
Cont.…
• The importance of testing during development: Testing is a very
important part of the development process; its aim is to find and
correct the errors that are present in the application.
• But small organizations my not really afford to allocate resources
to testing
2/13/2024 MAD 37
Cont.…
• Adapting old APIs to support new features: Another big challenge
that faces developers when trying to make an app is whether or not
it supports supporting old software and old hardware because most
of the app users will not have access to the latest resources so this
has to be put in mind
2/13/2024 MAD 38
Successful Mobile Development
✓To create a successful mobile application, you need to follow a systematic
approach to the mobile app development lifecycle.
✓We have summarized 10 steps to create a successful mobile application to
help you out in this process.
Step 1: A successful mobile app starts with an app idea
✓To create a successful mobile application, the first thing you need to keep
in mind is:
✓Identify a problem which can be resolved by your app
✓Decide the features of your app.
2/13/2024 MAD 39
Cont..
Step 2: Identification / Clarification
✓To create a successful mobile application, you need to identify or be clear
about:
✓Application target users – An app should always be developed keeping in
✓mind the target users of an application.
✓Mobile platforms and devices to be supported – Mobile platforms and
devices should be selected keeping in mind hardware performance, battery
life, ruggedness and required peripherals.
2/13/2024 MAD 40
Cont..
Step 3: Designing your app: Designing your app is yet another
significant factor responsible for success of an app in the market.
Step 4: Identify approach to develop the app – native, web or hybrid.
2/13/2024 MAD 41
Cont.…
Step 5: Make an app prototype.
Step 6: Integrate an appropriate analytics tool.
Step 7: Identify your testers: Listen to them and incorporate relevant
feedback.
Step 8: Release/Deploy the app.
Step 9: Capture the metrics
Step 10: Upgrade your app with improvements and new features.
2/13/2024 MAD 42
Chapter summery
1. Discus about the factors of mobile computing?
2. Briefly explain types of mobile development?
3. What are the challenges of application development?
4. Discus about Mobile application development frameworks?
2/13/2024 MAD 43
Cont.…
2/13/2024 MAD 44