Jaipur Bus Finder-An Android-based Application

Through this document, we have introduced the Android platform and its features, provided with a detailed description of the Android app framework from what developers will use and further develop. We have introduced a simple public transport application to show the basic applications and features of Android app items. Jaipur Bus Finder is a public transport application. It is an Android application to make the process of finding a local bus within the city of Jaipur, Rajasthan hassle-free, so that just by entering the details of source location and destination, a user can board the best available bus in order to reach his/her destination in the shortest possible ETA. We have used Android Studio 4.1 to build this application. Android Studio is an official integrated development tool or environment for Google’s Android operating system. It is built on JetBrains’ IntelliJ IDEA software. This paper guides the reader about the working of our project, other Android features and what future Android holds. Keywords— Android, application, framework, operating system.


INTRODUCTION
Android is an all-encompassing open source platform designed for mobile devices. There is no uncertainty, Android is transforming the mobile space. For the first time, it is truly an open platform that detaches the hardware from the software that runs on it. This allows for a much larger number of devices to run the same applications and form a much richer ecosystem for developers and consumers.
The purpose of this document is to provide the technical, functional and non-functional features required to develop an Android-based mobile application. The entire application is designed to provide user flexibility for finding the most suitable bus in order to reach the desired destination. This document will outline all the necessary information to start the development regarding the application.
This application allows user to input locations by typing in the addresses, as one would do in Google maps (maps.google.com).
The user will be aided with the predictive text while entering the locations to further simplify and optimize the process. The output produced is a list of buses, along with their type and number which are operational within the user-specified locations.

User classes and characteristics
Mobile application for Jaipur Bus finder should cater to the following user classes: • Primary User -It defines an individual who wishes to visit one specific location from another via a lowfloor or mini bus.
• Developer -The role of a developer is to maintain the application. It is assumed that he/she is adept in Google Maps API, Android, XML and Java.

Operating Environment
The application will run on the Android operating system version 8.1 and above. All devices, that support this version or above of the Android operating system will be able to successfully run the application. The application is developed using Android Studio version 4.1.

Design and Implementation Constraints
Some of the significant constraints of Jaipur Bus Finder are: • Need to use a device with a RAM of 4GB or above • Need to use a device with a ROM of 1GB or above • Need to use a device with Android version 8 or above

II. SOFTWARE DEVELOPMENT KIT
The Android Software Development Kit (SDK) is all we need to create applications for Android. The SDK comes with a set of tools as well as a platform to run it and see it all function. Android SDK comes packed with Android Studio, Google's official Integrated Development Environment (IDE) for the Android operating system.
In our project, all major functionalities could be implemented with the help of the SDK which includes all the tools and libraries required to code and develop application programs from scratch and even test them. These tools deliver a smooth flow of the development process from developing and debugging, throughout packaging.
Every time Google releases a new version of Android or an update, a related SDK is also released which developers must download and install. The Android SDK is compatible with Windows, macOS, and Linux. The suppleness and improved functionalities of Android applications have refurbished businesses across multiple industries [1].

Setting up Environment
This phase includes installing Android Studio and configuring basic application requirements.
For example: Here, we will create our public transport application, "Jaipur Bus Finder". The aim of this application is to provide hassle free bus commute guide in city of Jaipur, Rajasthan (INDIA).

Write out Application
Now we can get to the main task. Android Studio includes a variety of tools and intelligence which help in working faster, writing quality code, designing a UI, and creating resources for different device types.
For example: We have written resource files for Jaipur Bus Finder which contains information about available buses in the city and all the available bus stops. This information is stored in XML resource files. There is also one "Strings" resource file, that includes all the text information that the Android application displays like "FAQs". All the backend code is written in Java programming language.

Build and Run
Throughout this phase, we build our project into an APK package that we can install and run on an emulator or an Android-powered device.

1) Connect to a Device or an Emulator:
For proper visualization as if how our application might display in android devices, we connect a physical android phone or we can use an exceptionally great feature of android studio, i.e., Android Emulator. The Android Emulator simulates Android devices on our computer so that we can test our application on a variety of devices and Android API levels without requiring to have a physical device. The emulator provides almost all of the facilities of a real Android device [1] [2].
2) Customize your Build: The Android build system compiles app resources and source code, and packages them into APKs that we can test, deploy, and distribute. Android Studio uses Gradle, an unconventional build toolkit, to automate and manage the build process, while letting us to define flexible custom build configurations. Each build configuration can outline its own set of code and resources, while reusing the parts shared to all versions of our app [2].

Iterate
Debug, Profile, and Test is the iterative phase in which we continue writing our app but with our concentration on eliminating bugs and enhancing app performance. Initial tests will help us in those endeavors.

Publish
When we're ready to release our app to users, there are just a few more things to ponder, such as versioning our app and signing it with a key.

IV. FIRST STEP OF SOFTWARE DEVELOPMENT
Before developing any software application on Android or on any platform according to its needs, it is fairly essential to analyze the requirements of the application. Following are the examples of Jaipur Bus Finder Analyses Models that were predesigned to begin development. After all the Analysis models are designed the development phase begins, which we have already discussed in heading III, Application Development.
Analysis Model is a technical illustration of the system. It acts as a connection between system description and design model. In Analysis Modeling, information, behavior and functions of the system are defined and translated into the architecture, component and interface level design in the design modeling. These analysis models must fulfill basic objectives like, it must depict a way of creation of software design; it must define requirements of customer; it must define a set of requirements which can be validated, once software is built [3].

V. FUTURE OF ANDROID
When picking a mobile platform for making their business apps many companies prefer Android. Android devices comprise 72.7% of the world's mobile market. This allows businesses to get hold of widespread target audience and grow their brand awareness.
Android operating platform fame isn't determined only by its extensive availability and app variety that can be found on the Google Play Store. It allows integrating the most cutting-edge technologies into Android mobile apps and Android tools to make the development process quicker and more efficient. All these aspects make Android apps the correct choice for many businesses [4].

AI and Machine Learning
Artificial Intelligence (AI) and Machine Learning (ML) technologies are extensively used for Android development. They reinforce such digital solutions like, voice assistants and chat bots, Big Data processing, analytics, automation, and numerous others. Implementation of AI and ML in Android apps aid businesses to improve their customers' experience.

Internet of Things
The two mobile app development fashions in 2021 are 5G and Internet of Things (IoT) technologies. 5G is predicted to give an intense rise to IoT, endorsing its spread from smart houses to smart cities.
Besides the bright projections in the future, many businesses are already gaining considerable benefits from embedding IoT technology in their mobile applications.

Augmented Reality and Virtual Reality Technology
Virtual Reality and Augmented Reality aren't new technologies in Android development. While enacting AR/VR technologies in their mobile apps, companies take their customer experiences to a modernistic level. For example, IKEA launched its Place app that empowers consumers to see if the furniture they would like to purchase fits in their homes. Google Maps has an AR advancement that helps to better navigate around a city by inserting a virtual map over real street views [5].
In 2021, there'll be more companies that will research with AR/VR technologies and successfully include them in their apps. They will become more diverse around various roles and industries such as real estate, travel and tourism, education, e-commerce, entertainment, and retail.

On-Demand Apps
On-demand apps were very popular in the Corona-Virus epoch in 2020 and will remain to be regularly used in 2021. These are the apps that provide rapid services like pizza delivery service or cab booking service.
On-demand apps are used in several niches such as food delivery, retail, grocery, healthcare, and many others. They helped many businesses to keep their customer flow elevated throughout the lockdowns and few of them even increased their profits by reaching every customer.
These apps will maintain their popularity in 2021 as they benefit their users by performing daily tasks in a fast and appropriate manner.

VI. CONCLUSION
Through this document we aim to provide the technical and functional features required to develop an Androidbased mobile application. The entire application is designed to provide user flexibility for finding the most suitable bus in order to reach the desired destination. Upon entering valid source and destination locations, the application yields out a list of buses along with their type and number which are functional along the designated route.