You are on page 1of 28

BACHELOR OF SCIENCE IN COMPUTER SCIENCE

course: BSC 402: MOBILE PROGRAMMING TECHNOLOGIES

TOPIC:

Factors in developing mobile applications


Mobile Software engineering
Frameworks and Tools
Generics UI Development
Android User
Introduction
• The frameworks are the most important driving tools
for building any mobile or web application.
• The process of developing Applications for various
mobile platform using common source code with
little or no change to the common source.

• It must be remembered that every project or app has


a different requirement and so the choice of the
framework must be made carefully and after
ascertaining the other essential factors.
Types of Mobile App Dev
The mobile development frameworks fall under
the following types:

1. Native Mobile Apps


2. Cross Platform Mobile Apps
3. Hybrid partly Native partly Cross Platform

3
Native Mobile Apps

• A native application is a software program that is


developed for use on a particular platform or device.
• In the case of iOS, we have the iOS SDK(Software
Development Kit) customarily used with Xcode — an IDE.
• For native Android app development, the Android SDK is
used with Android Studio as the IDE of choice.
• The frameworks are contained in the SDKs, and they each
have the programming languages used with them. Swift or
Objective-C for iOS, and Kotlin or Java for Android.

4
Native Mobile Apps
Native Applications

• Utilize resources optimally


• New functionalities and features immediately available
• Advanced IDE
• Professional look and feel
• Access different hardware easily
• Greater reach amongst the users

5
Native Mobile Apps
Native Applications

• generally known to be fast.


• compatible with the device’s hardware and native features
like the camera, accelerometer, etc.
• quite expensive.

6
Native Mobile Apps
When To When Not To
• High Performance Apps • Performance is not the main
criteria
• Heavy on OS and Device • More or less Replicates
Feature Web Apps with few device
feature
• Only Few Platforms • Many Platforms

7
Cross Platform Mobile Apps
• Cross-platform mobile frameworks are created to develop
mobile apps for more than just one platform.
• Most, if not all of the popular cross-platform frameworks out
there support development for majorly Android and iOS.

8
Cross Platform Mobile Apps
When To When Not To
• Performance is not the • High Performance Apps
main criteria
• Heavy on OS and Device
• More or less Replicates Features
Web Apps with few device
feature
• Canvas based Apps
• Widget based apps
• Only Few Platforms
• Many Platforms

9
Hybrid Mobile Apps
When To Why To
• Fairly Simple UI • Some parts of app are common
• Rest parts are different
• Complex Backend • Use Cross Platform to develop
common part
• Quite few platforms • Use Native to develop the weight
lifting parts
• E.g ShareFile

• Recommended way - PhoneGap Plugin

10
Types of mobile development
frameworks

We will focus on the following


frameworks:
• Ionic
• Xamarin
• React Native
• Flutter

11
Mobile Angular UI
• The Mobile Angular UI combines the
implementation of the Bootstrap and
Angular framework. It simplifies the
process of development and you can
build the apps using HTML5

• The developers can also make use of


fastclick.js and overthrow.js offering a
seamless experience. This is a free
framework.
JQuery Mobile
• The jQuery is an HTML5 based development
framework. One of the facts that make it unique is
that it can run across all the devices with just a single
code version.
• You can use this framework to built both mobile
apps as well as websites and get extensive supports
for all types of operating systems including Windows,
Mac OS, Blackberry, Firefox, and Kindle etc.
• You can download the jQuery version in two
variants; as a customized framework or the latest
stable version. This readily shows that its popularity
and demand is surging higher with faster app
development in combination with the plugins
Corona SDK
• Corona SDK is quicker as compared to the
other mobile development frameworks. One
of the important aspects is that is supported
by Lua, a light-weight programming language
that offers speed, ease of usage and flexibility
to develop apps.
• So, if you have to code at a good speed
without comprising the app quality, then this
is your choice. Moreover, it is also free and
supports Windows and Mac OS as well.
Ionic
• Ionic is a cross-platform framework built with
Angular and Apache Cordova;
• it gives one the ability to develop apps for more
than just one mobile platform.
• Apps developed on the Ionic cross-platform
framework can run on iOS and Android.
• Ionic apps are developed with regular web
technologies like HTML, CSS, and Angular and are
designed like web apps.
• But Cordova, which it depends on, allows it to
make use of the device’s native features.
Ionic
Pros
• As a business owner, not only do you not have
to hire two sets of software engineers to
develop a mobile app for your audience, you
can make use of your existing web
development team.
• Using Ionic as a development framework
saves time and cost.
• Ionic makes use of web technologies, so it’s
easy to work with.
Ionic
Cons
• Ionic apps are less performant when
compared to native apps.
• Ionic is not the best solution for building apps
with high graphics processing requirements.
Xamarin
• Software Giant Microsoft introduced Xamarin,
which is based in San Francisco.
• For making the best use of the Xamarin, the
developers must learn to carry out the C#
codebase and develop useful apps for
Android, iOS, and Windows.
• it allows the benefit of code sharing, the
developers can save a lot of their time.
Xamarin
Pros
• Apps developed using Xamarin can achieve
near-native app performance with little or no
difference.
• Xamarin allows you to create rich experiences
using native UI elements.
• Xamarin also lets you share about 90% of the
codebase across all platforms with you only
having to design the UI for each platform
separately.
• You can design a uniform UI across all platforms
using Xamarin.Forms.
Xamarin
Cons
• Apps developed with Xamarin tend to have very large
app sizes. A simple “Hello World” Android app could
take about 16mb of space.
• Xamarin developers still need to have a little
knowledge of native languages. Swift/Objective-C in
the case of iOS and Kotlin/Java for Android.
• Although Xamarin itself is free, for enterprises, the IDE
used for development can be quite expensive.
• There are sometimes issues integrating third-party
libraries with Xamarin. Although Xamarin’s tools and
libraries offer full support for native technologies, a
vendor might not provide support for Xamarin.
React Native
• React Native is a mobile framework designed by
Facebook for building mobile apps.
• It is based on ReactJS and Javascript. Unlike hybrid
apps that also make use of web technologies, React
Native actually uses native components internally; it
does not make use of web views.
• It makes use of actual Android or iOS components
when building user interfaces. It has an XML-like
language called JSX(Javascript-XML) used for building
the UI.
• React Native then invokes the native rendering APIs in
the platform-specific language i.e Swift and Java to
render the app on the screen.
React Native
Pros
• Developing apps with React Native saves you time. Asides
the fact that you are going cross-platform, React Native has
a feature called “Hot Reloading” that allows you to
immediately see the changes you make in your code on
your phone.
• Just like with Ionic, you do not have to hire a new set of
developers. Your existing web developers can transition
easily to developing mobile apps with React Native since
they make use of similar technologies.
• There are a lot of ready-made components that can be used
for development without needing to create them from
scratch.
• Apps built with React Native are fast and can be compared
with native app performance as it compiles down to native
code.
React Native
Cons
• As with most cross-platform apps, the performance
just isn’t like that of native apps. Simple apps would
have no problems. But apps requiring advance
functionalities would develop problems.
• Because of its Javascript background, apps built with
React Native might have memory management issues.
• Asides ready-made components made by the React
Native team, there are third-party component
providers. But most times, components developed by
them tend to be subpar. They sometimes contain a lot
of bugs and glitches.
Adobe PhoneGap
• If there is any alternation or change in the mobile app
development, you can view it instinctively with the
PhoneGap.
• This is yet again a cross-platform app development
framework using which the developers can develop apps in
JavaScript, HTML5, and CSS. In case, you are planning to
develop a hybrid app, it should top your priority list.
• This amazing framework is not only offering best-in-class
performance but also offers the freedom to the developers
so that they can work without any hardware restrictions.
• It can develop apps for almost all the major Operating
systems in addition to Android and iOS. You also have the
leverage to add more functionality with the addition of
plugins.
Flutter
• Flutter is a mobile UI framework developed by Google
to create beautiful and immersive UI that takes a
completely different approach to cross-platform
development from the others.
• Unlike hybrid apps that make use of web views, or
React Native apps that use native components, Flutter
apps fully compile to native code.
• This compilation to native ARM code means there’s no
layer between the framework and the CPU which gives
apps built with Flutter a completely native feel.
• Flutter is able to achieve this by making use of its own
graphics engine called Skia — a popular 2D graphics
engine also owned by Google.
• Flutter is built using Dart an object-oriented
programming language.
Flutter
• Pros
• Flutter apps are very fast
• As usual, a single codebase means time and
money is saved.
• As with React Native above, Flutter also gives you
the ability to see changes you make in your code
the instance you make them on your mobile
hardware, emulator or simulator. This also makes
debugging the app much easier.
• Flutter is open source. So is its graphics engine —
Skia.
Flutter
Cons
• Developers have to learn a new language as
Flutter doesn’t make use of any previously
known language. Although Dart is fairly easy
to pick and this isn’t really an issue.
• Games and apps that require a lot of
device-specific functions are better off not
developed with flutter.
Conclusion
• Knowing the right framework to choose
depends on a number of things.
• If you intend developing a game or an app
requiring a lot of device-specific functions,
going native is probably the best for you.
• But if your mobile app is going to be a
relatively simple one, going cross-platform is
the better option as it saves you time and
money.

You might also like