Mobile Technologies: Chapter-1
Mobile Technologies: Chapter-1
Mobile Technologies: Chapter-1
1. MOBILE TECHNOLOGIES
1.1 Introduction
Mobile technology is the technology used for cellular communication. Since the start of this
millennium, a standard mobile device has gone from being no more than a simple two-way
pager to being a mobile phone, GPS navigation device, an embedded web browser and instant
messaging client, and a handheld game console. Many types of mobile operating systems are
available for smart phones, including Android, BlackBerry OS, iOS, Symbian, Windows
Mobile and Bada.
1.2 Android
Android is an operating system based on Linux with a Java programming interface. Android is
a mobile operating system (OS) developed by Google. Android is the first completely open
source mobile OS. Building on the contributions of the open-source Linux community and
more than 300 hardware, software, and carrier partners, Android has rapidly become the fastest-
growing mobile OS.
The smart phone has come a long way since the first iPhone launched in 2007. While Apple’s
iOS is arguably the world’s first smart phone operating system, Google’s Android is by far the
most popular. Android has evolved significantly since its inception, first being released on an
HTC-made T-Mobile device back in 2008. Some might not know, however, that Android’s
history dates back before it was available on smart phones. In fact, Android was first created in
2003 by Andy Rubin, who first started developing the OS for digital cameras. Soon, he realized
that the market for digital camera operating systems perhaps wasn’t all that big, and Android,
Inc. diverted its attention toward smart phones.
It wasn’t until 2005 that Google purchased Android, Inc., and while not much about Android was
known at the time, many took it as a signal that Google would use the platform to enter the
phone business. Eventually, Google did enter the smart phone business — but not as a hardware
manufacturer. Instead, it marketed Android to other manufacturers, first catching the eye of
HTC, who used the platform for the first Android phone, the HTC Dream, in 2008.
Figure 1: Android Versions
A mobile application (or mobile app) is a software application designed to run on smart phones,
tablet computers and other mobile devices. Mobile apps were originally offered for general
productivity and information retrieval, including email, calendar, contacts, and stock market
and weather information.
XAMPP is a free and open-source cross-platform web server solution stack package developed by
Apache Friends, consisting mainly of the Apache HTTP Server, MariaDB database, and interpreters
for scripts written in the PHP and Perl programming languages. Since most actual web server
deployments use the same components as XAMPP, it makes transitioning from a local test server to a
live server possible.
XAMPP's ease of deployment means a WAMP or LAMP stack can be installed quickly and simply
on an operating system by a developer, with the advantage a number of common add-in applications
such as Wordpress and Joomla. It can also be installed with similar ease using Bitnami .
XAMPP is regularly updated to the latest releases of Apache, MariaDB, PHP and Perl. It also comes
with a number of other modules including OpenSSL, phpMyAdmin, MediaWiki, Joomla, WordPress
and more. Self-contained, multiple instances of XAMPP can exist on a single computer, and any
given instance can be copied from one computer to another. XAMPP is offered in both a full and a
standard version.
2. INTRODUCTION TO ANDROID
Android operating system is a stack of software components which is roughly divided into five
sections and four main layers as shown below in the architecture diagram.
At the bottom of the layers is Linux - Linux 3.6 with approximately 115 patches. This provides
a level of abstraction between the device hardware and it contains all the essential hardware
drivers like camera, keypad, display etc. Also, the kernel handles all the things that Linux is
really good at such as networking and a vast array of device drivers, which take the pain out of
interfacing to peripheral hardware.
2.1.2 Libraries
On top of Linux kernel there is a set of libraries including open-source Web browser engine
WebKit, well known library libc, SQLite database which is a useful repository for storage and
sharing of application data, libraries to play and record audio and video, SSL libraries
responsible for Internet security etc.
This category encompasses those Java-based libraries that are specific to Android development.
Examples of libraries in this category include the application framework libraries in addition to
those that facilitate user interface building, graphics drawing and database access. A summary of
some key core Android libraries available to the Android developer is as follows −
• android.app − Provides access to the application model and is the cornerstone of all
Android applications.
• android.content − Facilitates content access, publishing and messaging between
applications and application components.
• android.database − Used to access data published by content providers and includes
SQLite database management classes.
• android.opengl − A Java interface to the OpenGL ES 3D graphics rendering API.
• android.os − Provides applications with access to standard operating system services
including messages, system services and inter-process communication.
• android.text − Used to render and manipulate text on a device display.
• android.view − The fundamental building block of application user interfaces.
• android.widget − A rich collection of pre-built user interface components such as
buttons, labels, list views, layout managers, radio buttons etc.
• android.webkit − A set of classes intended to allow web-browsing capabilities to be
built into applications. Having covered the Java-based core libraries in the Android
runtime, it is now time to turn our attention to the C/C++ based libraries contained in
this layer of the Android software stack.
This is the third section of the architecture and available on the second layer from the bottom.
This section provides a key component called Dalvik Virtual Machine which is a kind of Java
Virtual Machine specially designed and optimized for Android. The Dalvik VM makes use of
Linux core features like memory management and multithreading, which is intrinsic in the Java
language.
The Dalvik VM enables every Android application to run in its own process, with its own
instance of the Dalvik virtual machine. The Android runtime also provides a set of core libraries
which enable Android application developers to write Android applications using standard Java
programming language.
2.1.5 Applications
You will find all the Android application at the top layer. You will write your application to be
installed on this layer only. Examples of such applications are Contacts Books, Browser, and
Games etc.
XAMPP is regularly updated to the latest releases of Apache, MariaDB, PHP and Perl. It also
comes with a number of other modules including OpenSSL, phpMyAdmin, MediaWiki, Joomla,
WordPress and more. Self-contained, multiple instances of XAMPP can exist on a single
computer, and any given instance can be copied from one computer to another. XAMPP is
offered in both a full and a standard version.
The most obvious characteristic of XAMPP is the ease at which a WAMP webserver stack can
be deployed and instantiated. Later some common packaged applications that could be easily
installed were provided by Bitnami.
Officially, XAMPP's designers intended it for use only as a development tool, to allow website
designers and programmers to test their work on their own computers without any access to the
Internet. To make this as easy as possible, many important security features are disabled by
default. XAMPP has the ability to serve web pages on the World Wide Web. A special tool is
provided to password-protect the most important parts of the package.
XAMPP also provides support for creating and manipulating databases in MariaDB and SQLite
among others.
Once XAMPP is installed, it is possible to treat a localhost like a remote host by connecting
using an FTP client. Using a program like FileZilla has many advantages when installing a
content management system (CMS) like Joomla or WordPress[further explanation needed]. It is
also possible to connect to localhost via FTP with an HTML editor.
CHAPTER-3
Each building block is a different point through which the system can enter your application. Not
all components are actual entry points for the user and some depend on each other, but each one
exists as its own entity and plays a specific role—each one is a unique building block that helps
define your application's overall behaviour.
3.1 Activities
An activity is an application component that provides a screen with which users can interact in
order to do something, such as dial the phone, take a photo, send an email, or view a map. Each
activity is given a window in which to draw its user interface. The window typically fills the
screen, but may be smaller than the screen and float on top of other windows. An application
usually consists of multiple activities that are loosely bound to each other.
Typically, one activity in an application is specified as the "main" activity, which is presented to the
user when launching the application for the first time. Each activity can then start another activity in
order to perform different actions. Each time a new activity starts, the previous activity is stopped,
but the system preserves the activity in a stack (the "back stack").
When a new activity starts, it is pushed onto the back stack and takes user focus. The back stack
abides to the basic "last in, first out" stack mechanism, so, when the user is done with the current
activity and presses the Back button, it is popped from the stack (and destroyed) and the previous
activity resumes. When an activity is stopped because a new activity starts, it is notified of this
change in state through the activity's lifecycle callback methods. There are several callback methods
that an activity might receive, due to a change in its state whether the system is creating it, stopping
it, resuming it, or destroying it and each callback provides you the opportunity to perform
specific work that's appropriate to that state change.
For instance, when stopped, your activity should release any large objects, such as network or
database connections. When the activity resumes, you can reacquire the necessary resources and
resume actions that were interrupted. These state transitions are all part of the activity lifecycle.
Figure 3: Transition between Activities
Android apps — more specifically Android activities — go through a number of stages from
when they’re first loaded to when they get closed down. These are handled as “events” inside
your code when the user changes your app’s state in some way: by launching it, pausing it,
closing it, and so on. Events run in methods (sequences of instructions inside curly brackets) and
this means that we can then hijack those methods and decide what we want to happen at each
stage. This is where the line @Override comes from: it means we’re using a method that isn’t
brand new, but rather one that would always have executed (usually inherited from the
superclass, which will be explained below) and we’re just hopping on and adding some tweaks.
• onCreate
• onStart
• onResume
• onPause
• onStop
• onDestroy
Figure 4: Lifecycle of an Activity
3.2 Services
A service is an application component that can perform long-running operations in the background,
and it does not provide a user interface. Another application component can start a service, and it
continues to run in the background even if the user switches to another application. Additionally, a
component can bind to a service to interact with it and even perform inter process communication
(IPC). For example, a service can handle network transactions, play music, perform file I/O, or
interact with a content provider, all from the background.
A content provider manages a shared set of application data. You can store the data in the file
system, an SQLite database, on the web, or any other persistent storage location your application
can access. A content provider provides a structured interface to application data. Via a content
provider your application can share data with other applications. Android contains an SQLite
database which is frequently used in conjunction with a content provider.
Broadcast Receivers simply respond to broadcast messages from other applications or from the
system itself. These messages are sometime called events or intents. For example, applications
can also initiate broadcasts to let other applications know that some data has been downloaded to
the device and is available for them to use, so this is broadcast receiver who will intercept this
communication and will initiate appropriate action.
3.5 Intent
Intents are asynchronous messages which allow the application to request functionality from
other Android components, e.g. from services or activities. An application can call a component
directly (explicit Intent) or ask the Android system to evaluate registered components based on
the intent data (implicit intents). For example the application could implement sharing of data
via an intent and all components which allow sharing of data would be available for the user to
select. Applications register themselves to an intent via an intent. Filter Intents allow an Android
application to start and to interact with components from other Android applications.
• You can start an activity (or give it something new to do) by passing Intent to
startActivity() or startActivityForResult() .
• You can start a service (or give new instructions to an ongoing service) by passing
an Intent tostartService(). Or you can bind to the service by passing an Intent to
bindService().
• You can initiate a broadcast by passing an Intent to methods like sendBroadcast(),
sendOrderedBroadcast(), or sendStickyBroadcast().
CHAPTER-4
The Firebase Realtime Database lets you build rich, collaborative applications by allowing secure
access to the database directly from client-side code. Data is persisted locally, and even while offline,
realtime events continue to fire, giving the end user a responsive experience. When the device
regains connection, the Realtime Database synchronizes the local data changes with the remote
updates that occurred while the client was offline, merging any conflicts automatically.
The Realtime Database provides a flexible, expression-based rules language, called Firebase
Realtime Database Security Rules, to define how your data should be structured and when data
can be read from or written to. When integrated with Firebase Authentication, developers can
define who has access to what data, and how they can access it.
The Realtime Database is a NoSQL database and as such has different optimizations and
functionality compared to a relational database. The Realtime Database API is designed to only
allow operations that can be executed quickly. This enables you to build a great realtime
experience that can serve millions of users without compromising on responsiveness. Because of
this, it is important to think about how users need to access your data and then structure it
accordingly. Some key capabilities are: -
• Realtime - Instead of typical HTTP requests, the Firebase Realtime Database uses
data synchronization—every time data changes, any connected device receives that
update within milliseconds. Provide collaborative and immersive experiences without
thinking about networking code.
• Offline - Firebase apps remain responsive even when offline because the Firebase
Realtime Database SDK persists your data to disk. Once connectivity is reestablished, the
client device receives any changes it missed, synchronizing it with the current server
state.
• Accessible from Client Devices - The Firebase Realtime Database can be accessed
directly from a mobile device or web browser; there’s no need for an application
server.
Security and data validation are available through the Firebase Realtime Database
Security Rules, expression-based rules that are executed when data is read or written.
• Scale across multiple databases - With Firebase Realtime Database on the Blaze
pricing plan, you can support your app's data needs at scale by splitting your data
across multiple database instances in the same Firebase project. Streamline
authentication with Firebase Authentication on your project and authenticate users
across your database instances.
Control access to the data in each database with custom Firebase Realtime Database
Rules for each database instance.
Permissions to read and write database as default are:
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
Permissions when read and write is allowed to users are given as:
{
"rules": {
".read": true,
".write": true
}
4.2 Authentication
Most apps need to know the identity of a user. Knowing a user's identity allows an app to
securely save user data in the cloud and provide the same personalized experience across all of
the user's devices.
Firebase Authentication provides backend services, easy-to-use SDKs, and ready-made UI
libraries to authenticate users to your app. It supports authentication using passwords, phone
numbers, popular federated identity providers like Google, Facebook and Twitter, and more.
To sign a user into your app, you first get authentication credentials from the user. These
credentials can be the user's email address and password, or an OAuth token from a federated
identity provider. Then, you pass these credentials to the Firebase Authentication SDK. Our
backend services will then verify those credentials and return a response to the client.
After a successful sign in, you can access the user's basic profile information, and you can
control the user's access to data stored in other Firebase products.
You can also use the provided authentication token to verify the identity of users in your own
backend services. Some key features are: -
• Integrates tightly with other Firebase features.
• Uses industry standards such as OAuth 2.0 and OpenID Connect, so it can be easily
integrated with your custom backend.
• Offers two development options either FirebaseUI as a complete drop-in
authentication solution or the Firebase Authentication SDK to manually integrate one
or several sign-in methods into your app.
• Provides secure authentication that makes sign in easy for your users using their
Google account, which they already use with Gmail, Google Play, Google+, and other
Google services. It also supports authentication using passwords and popular
federated identity providers such as Facebook and Twitter.
• Enables a seamless app experience across devices and into your website, securely
from a one-time consent. This will help keep your users engaged, no matter what
device they pick up or sit down at.
• Connects users securely with Google services. Share with Google contacts, save
files to Drive, add events to Calendar, and more.
• Lets users pay with their Google Wallet. Simplifies in-app purchases by providing
users with the ability to pay with their Google Wallet.
Cloud Storage is built for app developers who need to store and serve user-generated content,
such as photos or videos. Cloud Storage for Firebase is a powerful, simple, and cost-effective
object storage service built for Google scale. The Firebase SDKs for Cloud Storage add Google
security to file uploads and downloads for your Firebase apps, regardless of network quality.
You can use our SDKs to store images, audio, video, or other user-generated content. On the
server, you can use Google Cloud Storage, to access the same files.
Developers use the Firebase SDKs for Cloud Storage to upload and download files directly from
clients. If the network connection is poor, the client is able to retry the operation right where it
left off, saving your users time and bandwidth.
Cloud Storage stores your files in a Google Cloud Storage bucket, making them accessible
through both Firebase and Google Cloud. This allows you the flexibility to upload and download
files from mobile clients via the Firebase SDKs, and do server-side processing such as image
filtering or video transcoding using Google Cloud Platform. Cloud Storage scales automatically,
meaning that there's no need to migrate to any other provider. Learn more about all the benefits
of our integration with Google Cloud Platform.
The Firebase SDKs for Cloud Storage integrate seamlessly with Firebase Authentication to
identify users, and we provide a declarative security language that lets you set access controls on
individual files or groups of files, so you can make files as public or private as you want.
Google Analytics for Firebase is a free app measurement solutions that provides insight on app
usage and user engagement.
At the heart of Firebase is Google Analytics for Firebase, a free and unlimited analytics solution.
Analytics integrates across Firebase features and provides you with unlimited reporting for up to
500 distinct events that you can define using the Firebase SDK. Analytics reports help you
understand clearly how your users behave, which enables you to make informed decisions
regarding app marketing and performance optimizations.
Google Analytics for Firebase helps you understand how people use your iOS or Android app.
The SDK automatically captures a number of events and user properties and also allows you to
define your own custom events to measure the things that uniquely matter to your business. Once
the data is captured, it's available in a dashboard through the Firebase console.
This dashboard provides detailed insights about your data — from summary data such as active
users and demographics, to more detailed data such as identifying your most purchased items.
Analytics also integrates with a number of other Firebase features. For example, it automatically
logs events that correspond to notification messages sent via the Notifications composer and
provides reporting on the impact of each campaign.
Analytics helps you understand how your users behave, so you can make informed decisions
about how to market your app. See the performance of your campaigns across organic and paid
channels to understand which methods are most effective at driving high-value users. If you need
to perform custom analysis or join your data with other sources you can link your Analytics data
to BigQuery, which allows for more complex analysis like querying large data sets and joining
multiple data sources.
Use our flexible, scalable NoSQL cloud database to store and sync data for client and server side
development. Cloud Firestore is a flexible, scalable database for mobile, web, and server
development from Firebase and Google Cloud Platform. Like Firebase Realtime Database, it
keeps your data in sync across client apps through realtime listeners and offers offline support
for mobile and web so you can build responsive apps that work regardless of network latency or
Internet connectivity. Cloud Firestore also offers seamless integration with other Firebase and
Google Cloud Platform products, including Cloud Functions.
Cloud Firestore is a cloud-hosted, NoSQL database that your iOS, Android, and web apps can
access directly via native SDKs. Cloud Firestore is also available in native Node.js, Java, Python,
and Go SDKs, in addition to REST and RPC APIs.
Following Cloud Firestore's NoSQL data model, you store data in documents that contain fields
mapping to values. These documents are stored in collections, which are containers for your
documents that you can use to organize your data and build queries. Documents support many
different data types, from simple strings and numbers, to complex, nested objects. You can also
create subcollections within documents and build hierarchical data structures that scale as your
database grows. The Cloud Firestore data model supports whatever data structure works best for
your app.
Additionally, querying in Cloud Firestore is expressive, efficient, and flexible. Create shallow
queries to retrieve data at the document level without needing to retrieve the entire collection, or
any nested subcollections. Add sorting, filtering, and limits to your queries or cursors to paginate
your results. To keep data in your apps current, without retrieving your entire database each time
an update happens, add realtime listeners. Adding realtime listeners to your app notifies you with
a data snapshot whenever the data your client apps are listening to changes, retrieving only the
new changes.
Protect access to your data in Cloud Firestore with Firebase Authentication and Cloud Firestore
Security Rules for Android, iOS, and JavaScript, or Identity and Access Management (IAM) for
server-side languages.
Key capabilities are: -
• Flexibility - The Cloud Firestore data model supports flexible, hierarchical data
structures. Store your data in documents, organized into collections. Documents can
contain complex nested objects in addition to subcollections.
• Expressive querying - In Cloud Firestore, you can use queries to retrieve individual,
specific documents or to retrieve all the documents in a collection that match your
query parameters. Your queries can include multiple, chained filters and combine
filtering and sorting. They're also indexed by default, so query performance is
proportional to the size of your result set, not your data set.
• Realtime updates - Like Realtime Database, Cloud Firestore uses data
synchronization to update data on any connected device. However, it's also designed
to make simple, one-time fetch queries efficiently.
• Offline support - Cloud Firestore caches data that your app is actively using, so
the app can write, read, listen to, and query data even if the device is offline.
When the device comes back online, Cloud Firestore synchronizes any local
changes back to Cloud Firestore.
• Designed to scale - Cloud Firestore brings you the best of Google Cloud
Platform's powerful infrastructure: automatic multi-region data replication, strong
consistency guarantees, atomic batch operations, and real transaction support.
We've designed Cloud
Firestore to handle the toughest database workloads from the world's biggest
apps.
Firebase Test Lab for Android provides cloud-based infrastructure for testing Android apps.
With one operation, you can initiate testing of your app across a wide variety of devices and
device configurations. Test results—including logs, videos, and screenshots—are made available
in your project in the Firebase console. Even if you haven't written any test code for your app,
Test Lab can exercise your app automatically, looking for crashes.
Test Lab uses devices running in a Google data center to test your app. The devices used for
testing are real production devices that are flashed with updated Android API levels or locale
settings that you specify so that you can road-test your app against a real-world collection of real
devices and device configurations.
Test Lab lets you run Espresso and UI Automator 2.0 instrumentation tests written to exercise
your app from the Firebase console, Android Studio, or the gcloud command line interface. You
can also use Robo test to automatically exercise your app from the Firebase console or the
gcloud command line.
Robo test captures logs, creates an "activity map" that shows a related set of annotated screenshots,
and creates a video from a sequence of screenshots to show you the simulated user operations that it
performed.
CHAPTER-5
5. ANDROID UI DESIGN
Frame layouts are one of the simplest layout types used to organize controls within the user interface of an
Android application. They are used less often than some other layouts, simply because they are generally
used to display only one view, or views which overlap. The efficiency of a frame layout makes it a good
choice for screens containing few view controls (home screens, game screens with a single canvas, and the
like). Sometimes other inefficient layout designs can be reduced to a frame layout design that is more
efficient, while other times a more specialized layout type is appropriate. Frame layouts are the normal
layout of choice when you want to overlap views.
Linear layouts are one of the simplest and most common types of layouts used by Android developers to
organize controls within their user interfaces. The linear layout works much as its name implies: it organizes
controls linearly in either a vertical or horizontal fashion. When the layout’s orientation is set to vertical, all
child controls within it are organized in a single column; when the layout’s orientation is set to horizontal, all
child controls within it are organized in a single row. Some of the most important attributes you’ll use with
linear layouts include:
The relative layout works much as its name implies: it organizes controls relative to one another, or to
the parent control itself. It means that child controls, such as ImageView, TextView, and Button
controls, can be placed above, below, to the left or right, of one another. Child controls can also be
placed in relation to the parent (the relative layout container); including placement of controls aligned to
the top, bottom, left or right edges of the layout.
Some specific attributes apply to relative layouts-namely the child rules, including:
• Rules for child control centering within the parent layout, including: center horizontally,
center vertically, or both.
• Rules for child control alignment within the parent layout, including: align with top, bottom,
left or right edge of another control.
• Rules for child control alignment in relation to other child controls, including: align with top,
bottom, left or right edge.
A table layout is exactly what you might expect: a grid of made up of rows and columns, where a cell
can display a view control. From a user interface design perspective, a TableLayout is comprised of
TableRow controls—one for each row in your table. The contents of a TableRow are simply the view
controls that will go in each “cell” of the table grid. Although table layouts can be used to design entire
user interfaces, they usually aren’t the best tool for doing so, as they are derived from LinearLayout and
not the most efficient of layout controls. However, for data that is already in a format suitable for a table,
such as spreadsheet data, table layout may be a reasonable choice.
• Text View
• Edit Text
• List View
• Spinner
• Button
• Check Box
• Radio Button
• Scroll View
5.3 Menus
The options menu is the primary collection of menu items for an activity. It's where you should place
actions that have a global impact on the app, such as “Search”, “Compose email”, and “Settings”. On
Android 3.0 and higher, items from the options menu are presented by the action bar as a combination
of on-screen action items and overflow options. Beginning with Android 3.0, the Menu button is
deprecated (some devices don't have one), so you should migrate toward using the action bar to provide
access to actions and other options.
A context menu is a floating menu that appears when the user performs a long-click on an element. It
provides actions that affect the selected content or context frame. A contextual menu offers actions that
affect a specific item or context frame in the UI. You can provide a context menu for any view, but they
are most often used for items in a ListView, GridView, or other view collections in which the user can
perform direct actions on each item.
A popup menu displays a list of items in a vertical list that's anchored to the view that invoked the
menu. It's good for providing an overflow of actions that relate to specific content or to provide options
for a second part of a command.
A dialog is a small window that prompts the user to make a decision or enter additional information. A
dialog does not fill the screen and is normally used for modal events that require users to take an action
before they can proceed.
5.5 Toast
A toast provides simple feedback about an operation in a small popup. It only fills the amount of space
required for the message and the current activity remains visible and interactive.
5.6 Adapters
An Adapter acts as a bridge between a ListView and the underlying data for that view. The Adapter
provides access to the data items. The Adapter is also responsible for making a View for each item in
the data set.
Array Adapter is a concrete Base Adapter that is backed by an array of arbitrary objects. By default this
class expects that the provided resource id references a single TextView. If you want to use a more
complex layout, use the constructor that also takes a field id. That field id should reference a TextView
in the larger layout resource.
A notification is a message you can display to the user outside of your application's normal UI. When
you tell the system to issue a notification, it first appears as an icon in the notification area. To see the
details of the notification, the user opens the notification drawer. Notification Manager Class is used to
notify the user of events that happen.
This is how you tell the user that something has happened in the background. Notifications can take
different forms:
• A persistent icon that goes in the status bar and is accessible through the launcher, (when the
user selects it, a designated Intent can be launched).
• Turning on or flashing LEDs on the device.
• Alerting the user by flashing the backlight, playing a sound, or vibrating.
`
CHAPTER-6
6.1 INTRODUCTION
6.1.1 Purpose
Disaster Risk Reduction and Resource Management System- Android Application is an application to
help officials of Lakhimpur(Assam) to communicate with each other during disasters, especially Floods.
It consists of information about various resources present in Lakhimpur, which can be used during
disasters and also provides a message communication platform. The complete database is stored in
phpMyAdmin.
6.1.2 Scope
Software interface: This application will be made using the IDE Android Studio with Java and XML. It uses
PhpmyAdmin at the database level to store details. It requires Android API 21.
Communication interface: The user shall interact with the application with the help of graphical screens.
The user can login and select the locations according to their need and can view resources available in
the location and their details. The application can also be used for reporting an incident and upload
pictures of the incident as well.
The application uses various applications such as Gallery, Camera, GPS, and File Manager etc.
Figure 7: Viewing Resources
• The user shall login with the details when the application is downloaded for the first time and
remains logged in thereafter.
• The user shall choose the location according to requirement.
• The user select the resource type.
• User can view details of the resources.
• It can also be used for incident reporting.
The user should know how to operate a smart phone with android OS and he should be familiar with the
functioning of android applications. He should know how to input data and select options.
6.2.4 Constraints
• It is multi-user application.
• The user can expect more features or want to gather more information.
Figure 7.1: Incident Reporting
Use-case
Primary Actor: User
The performance and efficiency depends upon the RAM of the mobile and Internet.
The android app shall use the database made using Firestore and storage of Firebase. The database will
consist of tables containing user details.
• Portability- The application is made in java so it is portable on all android versions above
JellyBean.
• Reliability- The android application shall provide reliable and authenticated information.
• Security- The user data shall be stored securely in the database.
CHAPTER-7
7. CONCLUSION
Android Smartphone are in hype in the 21st century. The scope of android applications is increasing day
by day. Its development has become an essential part of today’s programming curriculum. The project is
Disaster Risk Reduction and Resource Management System, an android app that incorporates everything
from UI design to database. Its utility and efficiency is also very high. More such android apps can be
developed using similar concepts and tools. The society has a dearth of ideas. These ideas can be most
effectively implemented by developing user-friendly android applications. Through this project, we got
to learn a lot, including, database connectivity using Firebase. Being new to app development, we came
to know a lot about developing an android application from scratch.
Disaster Risk Reduction and Resource Management System is an application to help officials of
Lakhimpur(Assam) to communicate with each other during disasters, especially Floods. It consists of
information about various resources present in Lakhimpur, which can be used during disasters and also
provides a message communication platform. The complete database is stored in phpMyAdmin.
CHAPTER-8
8. REFERENCES
1) https://developer.android.com
3) stackoverflow.com
4) www.quora.com