0% found this document useful (0 votes)
62 views

Mobile Application Development

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
62 views

Mobile Application Development

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

Mobile Application Development

• Mobile application development is the


process of developing software applications
for mobile devices, including mobile phones
and tablets.
• A typical mobile application relies on a
network connection to work with remote
computing resources.
• During the mobile app development process,
we need to create installable software
bundles (including code, binaries, assets,
etc.), deploy backend services, and test the
application on its target devices.
Mobile Device Platforms
• Android is developed by Google and is used not
only by Google devices but also by many other
OEMs that manufacture their own mobile devices.
• Each of them involves different software
development kits (SDKs) and development tool
chain.
• iOS platform is created by Apple. Apple
exclusively uses iOS for its own devices, whereas
Google's Android is available for other companies
as long as they meet the platform's requirements.
• Developers can develop mobile apps for millions
of devices on these two platforms.
Methods for Building Mobile Apps
1. Native Mobile Applications
2. Cross-Platform Native Mobile Applications
3. Hybrid Mobile Applications
4. Progressive Web Applications

When considering mobile app development


approaches, we need to look at the desired user
experience, the computing resources and native
features required by the app, the budget,
timeline, time constraints, and resources
available to maintain the app.
Methods for Building Mobile Apps
Native Applications
Native mobile applications are written by the
programming language and frameworks provided by
the platform owner. A native app runs directly on the
operating system of the device such as iOS and
Android.
Pros
Best performance in terms of runtime
Direct access to the device’s APIs
Cons
Higher costs for developing and maintaining apps
Various code bases for each platform
Methods for Building Mobile Apps
Cross-Platform Applications
Cross-platform applications can be written in various
programming languages and frameworks. But they
are bundled into a native application that would run
on the operating system of the device.
Pros
Single code base for multiple platforms
Easy to develop and maintain
Cons
Relying on on bridges and libraries for native features
Performance limitations due to bridging
Methods for Building Mobile Apps
What is a hybrid app?

A hybrid app is essentially a web app, but it’s given a lightweight native
app “container” that allows it to leverage certain native platform
features and device hardware (e.g., a device’s camera, calendar, push
notifications, and pinch and spread functionality) that a web application
cannot access.

Like applications on the web, hybrid apps are built with commonly used
front-end development technologies and languages like JavaScript,
HTML5, and CSS, giving them a cross-platform functionality.

Hybrid apps are available via app stores, can access hardware on your
phone, and are installed on your device, just like a native app. But how
do they stack up against native and web apps, and what are their
benefits?
Methods for Building Mobile Apps
Examples of high performing hybrid apps include:
Gmail
most popular email client is technically a hybrid app. The platform
uses JavaScript, AJAX, jQuery, and Vue.js on the front end.

Twitter
Twitter boasts a front-end stack of Node.js, Express, and React
Native. To be more specific, it’s technically a progressive web app
(PWA), a type of next-gen mobile website that delivers superior UI
performance through progressive loading of UI layers which
ensures the core content of your app is available to users on poor
connections.
Methods for Building Mobile Apps
Instagram
Instagram’s timeline is technically a webview, which places
it firmly in the hybrid app camp. The image-focused social
media platform is built with React Native.
Uber
Uber uses Base, a web React UI framework for the front-
end of its mobile apps which basically run on m.uber.com to
provide a webview on your phone.
Untappd
The famous beer-rating app runs on Ruby on Rails and
other web technologies. Not surprisingly it also uses React
Native for that cross-platform compatibility.
Advantages of hybrid apps
Cross-platform compatibility
Hybrid app frameworks allow developers to use a common
codebase across both Android and iOS devices.
Shorter development time
Increased code reuse cuts development time that would be
needed to build native apps for different operating systems.
Scalability
A single codebase and cloud-native web technologies makes it
easier for developers to build scalability into their apps.
Cost effective
Save development costs on building multiple versions of the
same app for different operating systems.
Disadvantages of hybrid apps
Performance
While hybrid apps now have work-arounds (such as compiling to
machine code via React Native) there technically exists a layer
between the operating system and the source code that might
bottleneck performance for resource-intensive applications.
Test complexity
Hybrid apps may share a lot of code between platforms, but some of
that code is often native in practice to take advantage of the
underlying hardware.
Easier to mess up the UI/UX
Whether hybrid or native, it’s on the developers to ensure their app
UI delivers a consistent UX. Hybrid app development offers a lot of
flexibility, and if you don’t know what you are doing it’s easier to mess
up. Poor internet connectivity might lead to an inconsistent UX if you
don’t practice progressive web design.
Popular tools for building hybrid
apps
Hybrid mobile app frameworks make quick work
of programming apps, just like traditional web
application programming frameworks. They
contain libraries of code, APIs, and other features
to make coding your app faster and easier.

There are web-based frameworks, which use


front-end technology like HTML, JavaScript, and
CSS, and cross-platform frameworks, which take a
programming language and actually convert the
code into native code for the device.
Hybrid app frameworks
React Native
There’s a reason many of the largest most
successful hybrid apps use React Native in their
front-end technology stacks. Developed by
Facebook
React Native compiles codebase into native
code. That means we have the option to use
native views instead of the traditional web
view of most hybrid app frameworks.
Hybrid app frameworks
Ionic
Ionic is one of the most popular hybrid app
development frameworks. It uses the traditional
web view approach to hybrid app development,
where web-based source code is encapsulated
within a web view that can interface with certain
exposed native APIs via plugins.
Cordova
Apache Cordova is a veteran in the hybrid app
development space. You run a single-page
application (SPA) within an integrated mobile web
browser, basically a web view. Plugins allow you to
access native features as needed.
Hybrid app frameworks
Xamarin
Xamarin is Microsoft’s hybrid app development frameworks. You
can write your apps in C# and gain full access to the perks of the
.NET development ecosystem.

Flutter
Flutter is a relative newcomer to the hybrid app development
scene. It uses Dart programming language which combines the
faster development cycles of dynamic languages which use just-in-
time (JIT) compilation with the stability and execution speeds of
static languages which use ahead-of-time (AOT) compilation. The
result is a flexible framework that can achieve native performance
with AOT and web interoperability with JIT.
Methods for Building Mobile Apps
Progressive Web Applications
Progressive Web Applications is an alternative approach to
traditional mobile app development, where app store delivery
and app installations are skipped. PWAs are technically web
applications that utilize browser capabilities - such as working
offline, running background processes, and adding a link to the
device home screen - to provide an 'app-like' user experience.
Pros
Same app is available for both web and mobile
No installation required, accessible through a URL
Cons
Limited support for native device features
App capabilities depending on the browser
Differences between Native vs.
Hybrid Mobile Applications
Native Hybrid

Platform specific Cross-platform

Compiled Language Scripting / Compiled

Access to Device Hardware Plugins / Native Modules

Platform Frameworks Web Frameworks


Why Choose the Hybrid/Cross-
platform Approach?
• Native mobile application development
requires highly specialized skillsets, which
typically is a problem.
• Most developers today are familiar with C
and Java - the two most popular languages
for native development.
• However, not everyone is experienced in the
platform-specific versions of those languages
and their respective IDEs. That’s why native
apps developers are always in high demand.
How Hybrid and Cross-platform
Frameworks Work?
• When it comes to hybrid apps, developers can
use web languages (HTML5/CSS/JavaScript).
They then encapsulate those web applications in
a container that enables the web application to
function as a native application on the device.
• Since hybrid mobile apps are basically web apps
running on a browser, most of the code from a
web app can be used to build a mobile app.
• The rendering and runtime performance of
mobile browsers are ever-growing, making it
possible for developers to use a hybrid
environment to build mobile apps.
Mobile App Development
Approaches
Requirements Phase:
Define and document the specific features, functionalities, and
design requirements of the mobile app.
Example: Suppose a client wants a mobile app for e-commerce with
features like product browsing, shopping cart, and secure payment.
Design Phase:
Create a detailed design for the mobile app, including user interface
(UI) design, database structure, and overall architecture.Example:
Design the navigation flow, screen layouts, and database schema for
the e-commerce app.
Implementation (Coding) Phase:
Develop the mobile app code based on the finalized design and
requirements.
Example: Write the code for the e-commerce app using the chosen
programming languages (Swift for iOS or Kotlin for Android).
Mobile App Development
Testing Phase:
Approaches
Conduct thorough testing to identify and fix bugs or issues in the mobile app.
This includes functional testing, usability testing, and performance testing.
Example: Test the e-commerce app to ensure that users can browse products,
add them to the cart, and complete a secure checkout without errors.
Deployment (or Installation) Phase:
Deploy the finalized and tested mobile app to the app stores or distribution
platforms.
Example: Release the e-commerce app on the Apple App Store and Google Play
Store for users to download and install on their devices.
Maintenance Phase:
Address any post-deployment issues, bugs, or updates that may arise. Provide
ongoing support and maintenance as needed.
Example: Receive user feedback on the e-commerce app and release updates to
improve performance or add new features based on customer requests.
Mobile App Development
Approaches
Waterfall model
The waterfall model is a linear and sequential
approach where each phase must be completed
before moving on to the next one. The development
process follows a predefined set of phases such as
requirements, design, implementation, testing,
deployment, and maintenance.
The major drawback of this methodology is that there
would be no turning back. The waterfall is predefined
from start to end. Changes could only be made in the
maintenance phase, which takes place after product
launch.
Mobile App Development Approaches
Prototype methodology
Prototype methodology focuses on creating a preliminary model
of the application to showcase its functionality and design. This
model, or prototype, is used to gather feedback from
stakeholders and end-users. It allows for early visualization of
the product, helping to identify design flaws and improvements
before full-scale development begins. Prototyping can be done
through low-fidelity sketches, wireframes, or interactive mock-
ups.
Characteristics:
Quick development of a working model.
Continuous iteration based on user feedback.
Emphasis on user experience and design.
Mobile App Development Approaches
Prototype methodology

Advantages:
Early identification of design flaws.
User involvement from the beginning.
Disadvantages:
May not capture all aspects of the final product.
Time-consuming to create detailed prototypes.
Mobile App Development Approaches
Spiral Methodology:
Description: The Spiral methodology combines
elements of both waterfall and prototyping
methodologies. It is an iterative approach that
emphasizes risk assessment and management
throughout the development process.
The project progresses through a series of cycles
or spirals, with each cycle involving planning, risk
analysis, engineering, testing, and evaluation. This
methodology allows for flexibility and
accommodates changes while addressing
potential risks early.
Mobile App Development Approaches
Characteristics:
Iterative cycles with risk analysis.
Continuous refinement of the product.
Flexibility for changes during development.
Advantages:
Risk management is integrated.
Continuous improvement and refinement.
Disadvantages:
Complex and may require experienced project
managers.
Higher cost due to repeated cycles of development.
Mobile App Development Approaches
Agile Methodology:
Description: Agile is an iterative and flexible
approach that emphasizes collaboration,
customer feedback, and the delivery of
functional software. Development is divided
into short cycles known as sprints, usually
lasting two to four weeks, where a set of
features is developed, tested, and delivered.
Agile promotes adaptability to changing
requirements, constant communication among
team members, and a focus on delivering a
minimum viable product quickly.
Mobile App Development
Approaches
Characteristics:
Iterative development in short cycles.
Continuous collaboration and communication.
Emphasis on delivering customer value.
Advantages:
Flexibility to accommodate changes.
Continuous delivery of functional features.
Close collaboration between developers and
stakeholders.
Disadvantages:
Requires active involvement from all stakeholders.
Less predictability in terms of timelines.
Mobile App Development Approaches
Example Scenario: E-Commerce Mobile App
Development
Requirements: Document requirements for an e-
commerce app, specifying features like product
listings, user accounts, and secure payments.
Design: Create detailed UI/UX designs, plan the
database structure, and design the flow of the app.
Implementation: Develop the app's code according
to the design and requirements, ensuring
functionality for browsing, cart management, and
payment processing.
Mobile App Development Approaches
Testing: Conduct extensive testing to identify
and fix any issues, ensuring a bug-free and
user-friendly experience.
Deployment: Release the e-commerce app on
app stores for users to download and install.
Maintenance: Address any post-launch issues,
gather user feedback, and release updates to
enhance the app's performance and add new
features.

You might also like