Mobile Application Development
Mobile Application Development
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.
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
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.