SlideShare una empresa de Scribd logo
1 de 72
Descargar para leer sin conexión
MOBILE RESTAURANT TRACKER
( LunchList )
BY
MOB13-03
(MOBILE APPLICATION)
A Project Report submitted to the Department of Computer Science for the
Study Leading to a Project Proposal in Partial Fulfillment of the Requirements
for the Award of the Bachelor of Science in Computer Science of Gulu University.
Supervisor
Mr Kaye Milton
Department of Computer Science
Gulu University
MAY 2014
Declaration
I, Mubarak Haruna, declare that this report is original and has not been
published and submitted by any other person for any award to any university
and other higher institutions of learning.
Membership
S/N NAME REGISTRATION NUMBER SIGNITURE
1 MUBARAK HARUNA 11/U/211/GCS
Approval
This project report has been submitted for examination with approval of the
following supervisor
. . . ......................................... . . . ...............................
Mr. Kaye Milton Date
Department of Computer
Science Gulu University
i
Dedication
I dedicate this piece of work to Almighty Allah and my parents and
benefactors without whom i would not have progressed. Special thanks goes to
all those who willingly responded when i consulted.
ii
Abstract
The restaurant industry is an area such as Gulu and Uganda at large, which
has remained behind mobile technical advances in location tracking until re-
cently, when the mobile restaurant tracking systems started being used to im-
prove location tracking services and to increase awareness to the customers.
To answer the research question ‘how can a prototype of mobile restaurant
tracker on android plateforms be developed for the casual location tracking in
the restaurant industry to meet the information gap’, this dissertation employed
a case study approach at restaurants in the current geographical Area (Gulu
northern uganda).
The research was conducted based on qualitative empirical research to gather
information and business requirements by direct observation and interviews in-
volving the restaurant owners and managers, to develop a prototype using Rapid
Application Development (RAD) methodology, to collect data by group inter-
views, and finally to analyse data by content analysis.
The mobile restaurant tracker enables users to locate a list of restaurants
based on the location, map services, feeds services, The user not only finds all
the restaurants in the current city, but also he can make a choice of the best
restaurant based on the type of restaurant. The user can also map the location
of the restaurant on Google Maps rendered to the user on the phone & find the
path from his current location or from any other location to the restaurant, the
user has the facility to make a call directly to the restaurant and can also obtain
the detailed review of the restaurant he chooses on the mobile interface.
iii
Contents
1 Introduction 1
1.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Problem statement . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.1 Main Objective . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.2 Specific objectives . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5 Significance/ outcomes . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Litrature Review 4
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 State of Art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2.1 Mobile application development on iOS or Android de-
vices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2.2 Mobile Technology . . . . . . . . . . . . . . . . . . . . . . 6
2.2.3 Software usability and Human-Computer Interaction (HCI)
7
2.2.4 Location Based Services . . . . . . . . . . . . . . . . . . 8
2.2.5 GPS and Google Maps . . . . . . . . . . . . . . . . . . . 8
2.3 State of Practice . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.1 Electronic menu (e-menu) for restaurants . . . . . . . . . 8
2.3.2 PMR: Personalized Mobile Restaurant system . . . . . . . 9
2.3.3 Automated Food Ordering System w ith Real - Time Cus-
tomer Feedback . . . . . . . . . . . . . . . . . . . . . . . . 9
3 Methodology 10
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 Data Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.1 Document Reviews . . . . . . . . . . . . . . . . . . . . . 10
3.2.2 Focus Interaction . . . . . . . . . . . . . . . . . . . . . . . 10
3.3 Data Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.4 System Development . . . . . . . . . . . . . . . . . . . . . . . . 11
3.5 Validation and System Testing . . . . . . . . . . . . . . . . . . . 11
iv
4 System design and implementation 12
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2 System Study . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2.1 Problem with the Current System . . . . . . . . . . . . . 12
4.3 System Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.4 Feasibility studies: . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.4.1 Technology and system feasibility . . . . . . . . . . . . . . 13
4.4.2 Economic feasibility . . . . . . . . . . . . . . . . . . . . . 13
4.4.3 Operational feasibility . . . . . . . . . . . . . . . . . . . . 14
4.5 Requirement Documentation . . . . . . . . . . . . . . . . . . . . 14
4.5.1 User requirements . . . . . . . . . . . . . . . . . . . . . . 14
4.5.2 System requirements . . . . . . . . . . . . . . . . . . . . . 15
4.5.2.1 Functional Requirements . . . . . . . . . . . . . 15
4.5.2.2 Non-Functional Requirements . . . . . . . . . . 15
4.6 System Architeture . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.6.1 Android platform . . . . . . . . . . . . . . . . . . . . . . . 18
4.6.1.1 AndroidManifest.xml file . . . . . . . . . . . . . 18
4.6.1.2 Activities . . . . . . . . . . . . . . . . . . . . . 18
4.6.1.3 Services . . . . . . . . . . . . . . . . . . . . . . . 19
4.6.1.4 Intents, Intent filters and receivers . . . . . . . 19
4.6.2 System Design . . . . . . . . . . . . . . . . . . . . . . . . 22
4.6.2.1 Conceptual System Design . . . . . . . . . . . . 22
4.6.2.2 Use Case Diagram . . . . . . . . . . . . . . . . 24
4.6.2.3 Class Diagram . . . . . . . . . . . . . . . . . . . 26
4.6.3 Data dicionary . . . . . . . . . . . . . . . . . . . . . . . . 28
4.7 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.7.1 JAVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.7.2 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.7.3 MySQLite/ MySQL . . . . . . . . . . . . . . . . . . . . . 32
5 Presentation and Discussion of results 35
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.2 Graphical User Interface . . . . . . . . . . . . . . . . . . . . . . 35
5.2.1 Home screen . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.2.2 Precise system menu . . . . . . . . . . . . . . . . . . . . . 37
5.2.3 System settings . . . . . . . . . . . . . . . . . . . . . . . . 38
5.2.4 Help page . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.2.5 Add button to capture details of a restaurant . . . . . . . 41
5.2.6 List of captured restaurant details . . . . . . . . . . . . . 42
5.2.7 Detailed system menu . . . . . . . . . . . . . . . . . . . . 43
5.2.8 saves curent location of the application user . . . . . . . . 44
5.2.9 Distance , route and time it takes to move to a specific
restaurant . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.2.10 Navigation from the current location of the user to a spec-
ified restaurant. . . . . . . . . . . . . . . . . . . . . . . . . 46
5.2.11 Compatibility Testing . . . . . . . . . . . . . . . . . . . . 49
v
5.2.11.1 Portrait mode . . . . . . . . . . . . . . . . . . . 49
5.2.11.2 Landscape mode . . . . . . . . . . . . . . . . . . 50
6 Conclusions ,Future work and Recommendation 51
6.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6.2 Recomendation and Future Work . . . . . . . . . . . . . . . . . . 51
7 References 52
8 Appendix 55
8.1 android manifest.xml . . . . . . . . . . . . . . . . . . . . . . . . . 55
8.2 layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8.2.1 map.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8.2.2 main.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8.2.3 detail form.xml . . . . . . . . . . . . . . . . . . . . . . . . 57
8.2.4 detail activity.xml . . . . . . . . . . . . . . . . . . . . . . 58
8.2.5 row.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.2.6 help.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.2.7 alarm.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.2.8 widget row.xml . . . . . . . . . . . . . . . . . . . . . . . . 60
8.2.9 widget.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 60
vi
List of Acronyms
API Application personal indentity
ADT Android Development Tools
E-Menu Electronic Menu
GUI Graphical User Interface
HCI Human Computer Interaction
OS Operating System
RAD Rapid Application Development
SQLite Structured Query Language
UML Unified Modelling Language
XML Extensible Markup Language
RAD Rapid Application Development
JNI Java Native Interface
DDMS Dalvik Debug Monitor Server
UI User Interface
IDE Integrated development environment
PDA Portable Digital Assistant
PC Personal Computer
SDK Software development Kit
RDBMS Relational database management system
OOP Object Oriented Programming
GIS Geographical Information System
LBS Location Based Service
GPS Geographical position Service
GIS Geographical Information System
RAM Random Acess Memory
RSS Rich site service
vii
List of Tables
2.1 Comparison of mobile development platforms on iOS and An-
droid (Ray 2012; Lee 2012; Goadrich and Rogers 2011) . . . . . . 5
2.2 Cross-platform communication using Web services Adopted from
Microsoft ASP.Net Team (2009) and Lee (2012) . . . . . . . . . . 6
4.1 Minimium system requirements . . . . . . . . . . . . . . . . . . 16
4.2 Database schema . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
viii
List of Figures
4.1 Android Architecture showing the major components of Android
OS (Android Wiki, 2010) . . . . . . . . . . . . . . . . . . . . . . 17
4.2 Life cycle graph of an Activity. The graph for a Service is similar 20
4.3 Meaning of symbols used . . . . . . . . . . . . . . . . . . . . . . 22
4.4 Conceptual diagram . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.5 Use Case diagram . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.6 class diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.1 screen at the launch of the application . . . . . . . . . . . . . . . 36
5.2 precise system menu . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.3 user’s preference settings . . . . . . . . . . . . . . . . . . . . . . . 39
5.4 Help page on how to use the googgle map functionalities . . . . 40
5.5 Add details of a new restaurant . . . . . . . . . . . . . . . . . . . 41
5.6 Captured list of restaurants . . . . . . . . . . . . . . . . . . . . . 42
5.7 Detailed system menu . . . . . . . . . . . . . . . . . . . . . . . . 43
5.8 save location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.9 Distance , route and time it takes to move to a specific restaurant 45
5.10 Navigation Functionality from the current location to a specified
restaurant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.11 continuation : navigation . . . . . . . . . . . . . . . . . . . . . . 48
5.12 continuation : navigation . . . . . . . . . . . . . . . . . . . . . . 49
5.13 The Portrait mode compatibility of the application . . . . . . . 50
5.14 The Landscape mode compatibility of the application . . . . . . 50
ix
Acknowledgements
This Final year project would not have been completed without the support
of my supervisor, the administrative and technical support staff of the depart-
ment of computer science, my friends and family. Firstly, Mr. Kaye Milton,
my supervisor, was the most important person, who provided me with valuable
guidance and great support. Secondly, without support from the restaurant
owners, manager and staff, my case study dissertation would have been impos-
sible.
Thirdly ,My special thanks to my brothers. Abdallah Haruna and Sebit
Haruna for providing me with the Android devices for testing of my project.
I would like to express my deep appreciation to my friends and family. They
have always support me strongly both in my academic studies and also with my
personal problems during my study.
Finally, I would like to thank the administrative and technical support staff
of the department of computer science, faculty of science for their support
throughout my graduate study.
x
Chapter 1
Introduction
Mobile applications can be one of the best ways to keep consumers engaged
with a brand as they are on the move. With the increase in demand for smart-
phones and efficiency of wireless networks, the demand for mobile applications
has increased incredibly. Android is one of the most popular open source plat-
forms that offer the developers’ full access to the framework API’s so as to
build innovative applications. Restaurant tracker (lunchList )is an Android ap-
plication that helps the users to find the restaurants according to their type
and taste,locate a list of restaurants based on the location, map services, feeds
services, entered by the user. The user not only finds all the restaurants in
the current city, but also he can make a choice of the best restaurant based on
the type of restaurant. The user can also map the location of the restaurant
on Google Maps rendered to the user on the phone and find the path from his
current location or from any other location to the restaurant, the user has the
facility to make a call directly to the restaurant and can also obtain the detailed
review of the restaurant he chooses.
1.1 Background
Modern hand held devices such as smart phones and PDAs have become increas-
ingly powerful in recent years. Dramatic breakthroughs in processing power
along with the number of extra features included in these devices have opened
the doors to a wide range of commercial possibilities. In particular, most cell
phones regularly include cameras, processors comparable to PCs from only a
few years ago, and internet access. However, even with all these added abili-
ties, there are few applications that allow much passing of the environmental
information and location based services.
The current system of tracking a location of a restaurant reguires ,The user
to search physically and collect the required information about the location of a
restaurant or find out from friends and The new customer has no idea of where
the restaurant is located because of information gap and the shortest route to
1
take to reach a specific restaurant because the users lack source of information
about the route and exact location of the restaurant.
in justification of the
1.2 Problem statement
Ideally ,Tracking restaurant in a specified location and according to the specified
tastes of the customers, requires the customers to search physically and collect
the required information about their taste or find out from friends.
1.3 Objective
1.3.1 Main Objective
The main aim of the project is to develop an application that provide the users
an easy to use application that helps them to track restaurants according to
their tastes and convenience, locate a list of restaurants based on the location,
map services, Rich site services, entered by the user.
2
1.3.2 Specific objectives
ˆ To design a mobile restaurant tracker for android phones.
ˆ To investigate system requirements and develop a Mobile restaurant tracker
prototype
ˆ To test and validate the application with real data.
ˆ To evaluate users’ perceptions on the mobile restaurant tracker
1.4 Scope
This study focused on location tracking of restaurants in Gulu Northern Uganda
1.5 Significance/ outcomes
The significances of this study are as follows:
ˆ The Mobile Restaurant Tracker for Android phones offers numerous op-
portunities for users to accomplish their tasks of locating/tracking the
best restaurant in the vicinity more quickly and efficiently.
ˆ Introduce a new concept in the tracking system which enables users to
access its services any where and any time using the android phone.
ˆ The prototype utilizes the existing mobile interface and database infras-
tructures, thus Mobile Restaurant Tracker does not require extra cost to
take advantage of the mobile technology.
3
Chapter 2
Litrature Review
2.1 Introduction
This literature review explores potential information to identify current knowl-
edge and key issues relating to development of a prototype of a Mobile Restauar-
ant Tracker application for the casual restaurant industry to meet business re-
quirements, which are divided into five sections: Tracker for restaurants, Soft-
ware usability and human-computer interaction (HCI), and Software develop-
ment methodology, prototyping techniques, and Mobile application development
for Mobile Restaurant Tracker on Android devices.
2.2 State of Art
2.2.1 Mobile application development on iOS or Android
devices
Ordering food and drinks at a dining table using an e-menu or tablet computer,
such as iPad and Samsung Galaxy, is an easy and effective method. The build-in
wireless feature enables the tablets to connect a network and the Internet eas-
ily, and multi-touch screen and its interfaces greatly enhance responsiveness and
usability (Ray, 2012). With their slim size, the tablets are easier to install than
personal computers used for table side touch screen e-menu, and their screen
size is bigger than one on a general smart phone. This allows diners to view the
e-menu at their convenience and place their order when they are ready to do
so (John 2012). These days, the majority of applications on tablets are based
on Apple’s iOS and Google’s Android platform because of their popularity and
divergent approaches (Tracy, 2012). As can be seen in table 2.1, the iOS plat-
form only supports Apple devices, for instance, iPad and iPhone. In contrast,
Android is an open-source platform owned by Google, who distributes Android
operating system to several mobile manufacturers including Samsung, HTC and
LG, to install on their devices. Furthermore, Android applications use mainly
4
Table 2.1: Comparison of mobile development platforms on iOS and Android
(Ray 2012; Lee 2012; Goadrich and Rogers 2011)
Java as a programming language. Developers can use open various source de-
veloping tools, such as Google Inventor, IBM Eclipse and NetBeans, whereas
the iOS platform uses Objective-C language, which prefers one particular tool,
namely Xcode.
Although Android applications can run with a range of hardware, Goadrich
and Rogers (2011) and Shackles (2012) similarly mention that developing ap-
plications on Android devices is more difficult than that on the iOS platform
in terms of user interface design because Android devices support a variety of
tablet appliances, which all have varying screen sizes and hardware specifica-
tions. As a result, developers find it hard to design an application, especially
user interfaces that fit with those multiple devices. Both iOS and Android have
advantages and drawbacks. However, using Web services is a good solution to
support iPad and Android devices because they can both communicate with
iOS and Android platforms. Web services also enable developers to reduce the
complexity of coding on mobile devices (Gossweiler 2011).
As can be seen in Figure 2.2, accessing databases and business process
functionalities can be implemented by other platforms such as .Net and Java,
whereas managing user interfaces or presentations can be developed separately
on iOS and Android devices (Lee 2012; Microsoft ASP.Net Team 2009).
5
Table 2.2: Cross-platform communication using Web services Adopted from
Microsoft ASP.Net Team (2009) and Lee (2012)
2.2.2 Mobile Technology
According to Turban, Leidner, McLean and Wetherbe (2007), Mobile technolo-
gies potentially create a wide variety of uses and limitations that differ signif-
icantly from desktop and laptop technologies. Dankers, Garefalakis, Schaffel-
hofer & Wright (2002), found that today most people are equipped with mobile
devices and most of them already have good knowledge and experiences in using
mobile devices to access internet applications. Veksttrend (2002), realised that
the total number of remote workers in European Union (EU) has grown from
six to thirteen percent in the period from 1999 to 2002.
Schei and Fritzner (2002), found that the number of subscribers of mobile
phones has also increased in the same period in Norway. Even though, the
number of subscribers was already substantial, it grew approximately 30 percent.
In 2001, 3,201,554 people were mobile phone subscribers. That is 71% of the
population, with comparison, only approximately 30% of the population in the
USA has mobile subscription. Chen and Kinshuk (2005), found that China
has 206 million subscribers in 2002, which is 16.19% of China’s population.
One reason for this growth can be the expansion of mobile devices like smart
phones, personal digital assistants (PDAs) and mobile phones in the market.
Chen and Kinshuk (2005), Nilas, Sueset, and Muguruma (2004), Schei and
Fritzner (2002), stated that smart phone is a mobile device with both PDA
and mobile phone capabilities. It is a handheld computing device that contains
applications like word processor, calculation program, calendar and perhaps
some communication possibilities (What-Is.Net, 2006). The number of mobile
phones has increased rabidly.
Schei & Fritzner (2002), found that in Norway, 78,000 PDAs were sold in
6
2000 and 60,000 in 2001. McDonough (2002), also noted that in 2002, the sales
were much lower Worldwide in 2001, 13.1 million units were sold and Deshpande
and Keskar (2002) noted that according to Intel Developer Update Magazine in
2002, there were approximately 1 billion cellular phones used, with 1.8 billion
in 2006. Market penetration is approaching 50 percent in the U.S., and has
reached 70 percent in Western Europe, Japan and Korea.
2.2.3 Software usability and Human-Computer Interac-
tion (HCI)
In a software engineering perspective, the usability has been recognized as an
essential key factor to evaluate software quality (Gulati and Dubey 2012). Majid
(2011) similarly describes that effectiveness of software can be measured based
on its usability in terms of a HCI design and users’ experience in using the
software. Therefore, consideration of HCI is an essential factor in delivering
high quality software following business needs. In addition, because HCI deals
with the way that people interact with information on electronic devices, a HCI
design should help non-IT proficient users to use the software without specialized
IT knowledge (Edexcel 2010). For example, effective graphical user interfaces
(GUIs) on Mobile Restaurant Tracker should be easy to use without a user
manual or long instruction by a waiting staff. Therefore, to answer the research
question, HCI design should be considered and evaluated by both users and
developers in all development processes to produce the quality of the software
prototype (Adikari 2009). The key quality components of HCI design suggested
by Norman and Nielsen (2011), and Nielsen (1993) can be used to enhance
usability of the prototype developed in this project as follows;
ˆ Visibility: The application allows users to know the result of each opera-
tion.
ˆ Feedback: The application allows users to return to a previous screen.
Memorability: Users are easily able to recognize when they return to use
software again. The application should contain consistent user interfaces.
ˆ Learnability: Users find it easy to accomplish basic tasks the first time.
ˆ Efficiency: Users are quickly able to learn and perform tasks.
ˆ Satisfaction: users are pleasant to use software.
However, Hussain. (2012) and (Gulati and Dubey 2012) similarly suggest that
successful software development is not only associated with HCI and software
usability, but is also dependent on how software development processes fit so-
lutions into problem areas required by customers or businesses. The software
development methodology is reviewed in the following section.
7
2.2.4 Location Based Services
Location Based Service (LBS) LBS is mobile service that has the capability to
provide real time information based on the user’s location,Amit kushwah(2011)..
Geographical Information System (GIS) has been the heart of LBS in order to
provide all the functionaliti es in LBS. First, we may send location information
to remote parties. This set of services are commonly used today, e.g., in location
tracking applications. Second, use location information to make communication
decisions, e.g., a user agent may automatica lly disable instant messaging when
driving.
Third, location changes can trigger communication actions, e.g., when a
person’s user agent gets a location notification indicating the person enters a
room, the user agent may automatically turn on the light of the room. Sending
location information to remote parties for location tracking Locations are usually
represented in geospatial coordinates or civil addresses for tracking. By enabling
to upload real time location and to create the content “on the spot”, we can
expect more variety of location - based services
2.2.5 GPS and Google Maps
With location positioning system such as GPS becoming popular, there is a
growing demand for location - based applications. Priyanka,Ruta, Neha(2012)
.It is easier, these days to utilize map information by connecting GPS receiver
to PC and PDA. Corresponding to this momentum, GPS receivers are now
embedded into mobile phones and applications using the location of t he user
in real - time are widely available.
GPS chips are now included in many devices to analyse satellite signals and
determine the user’s location with high accuracy. In a large social event, such
as a big conference, since people come to communicate wit h each other, they
are more likely to release their location information and the location privacy is
not an essential concern. In addition, people usually need to register to join a
conference so a location server can easily get the participants’ profiles. Hence,
the server - centric mode is an economic way to handle location detection for
big conferences. One of the key technological advances for the development of
location - based applications is the use and availability of positioning systems.
2.3 State of Practice
2.3.1 Electronic menu (e-menu) for restaurants
E-menu is a new technology for restaurant ordering solutions. The system in-
cludes touch-screen devices installed with a piece of software to show a restau-
rant menu with actual photos of the dishes (Emenunyy 2012). The touch-screen
devices are not only used to display the list of food and beverages, but also to
process the restaurant services, from ordering to payment (Jenie 2011). In gen-
8
eral, an e-menu is used in three different ways: tablet e-menu, table side touch
screen e-menu and a touch screen menu for waiting areas,
However, Chen, Lin, and Yen (2011) indicate that interactive restaurant
tabletop e-menus can also be implemented by using interactive surface technol-
ogy to enlarge the size of menus and increase customer attraction.
2.3.2 PMR: Personalized Mobile Restaurant system
Personalized mobile restaurant system(Daraghmi, E.Y, Shyan-Ming Yuan(2013))
involve deploying the existing technologies to accommodate the differences be-
tween individuals. The existing applications have undertaken with the price
and the location factors in mind. They show the same results regardless the
personal special needs of consumers. The realization of the next generation of
personalized systems will be a challenging task. For our research purpose, the
personal special needs are defined as: (Religions, Cultures, Allergies, Health
Condition, Diet, Preferences and Dislikes) needs that affect many aspects of a
consumer life. In general there is no shortage of the restaurant apps available in
the App Store, However, many of these apps are based on regular factors such
as price and location. They are not a great choice for consumers with personal
special needs.
2.3.3 Automated Food Ordering System w ith Real - Time
Customer Feedback
Automated Food Ordering System w ith Real - Time Customer Feedback. S
hweta Shashikant Tanpure, Priyanka R. Shidankar,Madhura M. Joshi(2013)
,this system, implements wireless data access to servers. The android appli-
cation on user’s mobile will have all the menu details. The order details from
customer’s mobile are wirelessly updated in central database and subsequently
sent to kitchen and cashier respectively. The restaurant owner can manage the
menu modifications easily. The wireless application on mobile devices provide
a means of convenience, improving efficiency and accuracy for restaurants by
saving time, reducing human errors and real - time customer feedback. This
system successfully over comes the drawbacks in earlier PDA based food order-
ing system and is less expensive and more effective than the multi - touchable
restaurant management systems.
9
Chapter 3
Methodology
3.1 Introduction
This chapter discusses the various methods that were used to gather relevant
and essential data used to conduct research. It considers the languages, tools
and materials that were used in processing data and developing interfaces and
database for Agricultural Advisory System.
3.2 Data Collection
Various data collection methods mainly interview others includes document re-
view and Focus interaction were used.
3.2.1 Document Reviews
This has been achieved through General literature on internet on tracking sys-
tems and technology. i was able to browse for all related information on Restau-
rant especially management.
3.2.2 Focus Interaction
Through interviews, I was able to engage the restaurant managers, waiters and
waitress and some customers, The data they willingly provided were later used
in the system.
3.3 Data Analysis
All the entities for example: Restaurant name ,address and the contacts were
identified along with other entities and processes involved in the system.
10
3.4 System Development
Mobile Restaurant Tracker application was developed using XML to create front
end user interfaces and JAVA and MySQL were used to create the database back
end.
3.5 Validation and System Testing
ˆ System testing was done by feeding sample data into the system example
Restaurant name , Restaurant address, the contacts and the exact location
GPS coordinates of each restuarant is tracked from the specific restaurant
dummy data for abstracts and other fields.
ˆ System validation was achieved leaving some fields empty. Warning feed
back messages such as sorry, there is no internet, location saved were noted
as a result. And consequently no further actions can be performed unless
their is internet connectivity.
11
Chapter 4
System design and
implementation
4.1 Introduction
This chapter was primarily paying attention to the study of the current existing
system; analysis of the intended system and the use of requirements obtained
to design and implement the proposed or intended system.
4.2 System Study
My study focused on tracking of restaurants on the google map , and use the
google map functionalities to help the application user to reach to a destined
restaurant, As such the necessary extensions to specifically map restaurants in
Gulu were identified and knowledge obtained from this study was used as a
foundation for the development of the proposed system.
4.2.1 Problem with the Current System
The current system of tracking a location of a restaurant on the map requires:-
ˆ The user to search physically and collect the required information about
their taste or find out from friends.
ˆ The user has no idea of where the restaurant is located and the shortest
route to take to reach a specific restaurant.
4.3 System Objectives
ˆ To design a mobile restaurant tracker for android phones.
12
ˆ To investigate system requirements and develop a Mobile restaurant tracker
prototype
ˆ To test and validate the application with real data.
ˆ To evaluate users’ perceptions on the mobile restaurant tracker
4.4 Feasibility studies:
A feasibility study describes whether or not the proposed system is worthwhile
A short focused study that checks
ˆ If the system contributes to organizational objectives.
ˆ If the system can be engineered using technology and within budget.
ˆ If the system can be integrated with other systems that are used.
Facts considered in the feasibility analysis were.
ˆ Technical Feasibility
ˆ Economic Feasibility
ˆ Behavioural Feasibility
4.4.1 Technology and system feasibility
The assessment is based on an outline design of system requirements in terms
of Input, Processes, Output, Fields, Programs, and Procedures.
This can be quantified in terms of volumes of data, trends, frequency of
updating, etc. in order to estimate whether the new system will perform ade-
quately or not. Considering my project if is technically feasible. Mobile Restau-
rant Tracker using Android which is a latest idea and the mobile applications
here are developed in JAVA ADT which contains all SDK’s of the Android OS
and supports android applications. This software is technically well and high in
performance. It has got many features like buttons, layouts, designs etc.,
4.4.2 Economic feasibility
Economic analysis is the most frequently used method for evaluating the ef-
fectiveness of a new system. More commonly known as cost/benefit analysis,
the procedure is to determine the benefits and savings that are expected from
a candidate system and compare them with costs. If benefits outweigh costs,
then the decision is made to design and implement the system. Considering my
project the android is one of the best operating system in mobile phones used
to develop the applications which runs on the mobile platform, which serves
people a good scope of development in the software field and also it attracts the
users. Android mobiles weigh low cost than i-Phones and other mobile operating
system.
13
4.4.3 Operational feasibility
Operational feasibility is a measure of how well a proposed system solves the
problems, and takes advantage of the opportunities identified during scope def-
inition and how it satisfies the requirements identified in the requirements anal-
ysis phase of system development. Proposed system here is being developed
basing on the Java language using the Android software development kit (SDK).
The SDK includes a comprehensive set of development tools, including a debug-
ger, software libraries, a handset emulator based on QEMU, documentation,
sample code, and tutorials. The officially supported integrated development
environment (IDE) is Eclipse using the Android Development Tools (ADT)
plugin. Other development tools are available, including a Native Development
Kit for applications or extensions in C or C++, Google App Inventor, a vi-
sual environment for novice programmers, and various cross platform mobile
web applications frameworks such as xml and SQLite as a Relational database
management system(RDBMS).
4.5 Requirement Documentation
Under this, requirements are broadly categorized into:
ˆ User requirements.
ˆ System requirements.
4.5.1 User requirements
The requirements for application users has been centered to what the application
user is required to do as specified below.
ˆ The application user should be able to Capture, store and process details
about a specific restaurant .
ˆ The application user should also be able view the details of restaurants
captured in the database
ˆ The application user should be able to save into the database the GPS
coordinates at a specific point of a restaurant.
ˆ The application user should be able to get informed by entering the RSS
feed-url of the restaurant and be aware of new events and latest updates
from a specific restaurant .
ˆ The application user should be able to use the functionalities of the google
map through the help function.
ˆ The application user should be able to directly contact the restaurant
management by using the call function embaded in the application based
on the restaurant contacts captured in the database.
14
ˆ Finally ,the application user should be able to set a media alarm to re-
mind him or her about lunch time and view the notification when the
appropriate time set by the user comes.
4.5.2 System requirements
This section ruminates on the services or functionality that a system should
provide to users and some of the operational constraints under which the sys-
tem should operate. It has been segmented into functional and non-functional
requirements as seen below:
4.5.2.1 Functional Requirements
This describes the application’s capabilities and the activities that the applica-
tion should carry out. Mobile Restaurant Tracker has the following capabilities
to offer.
ˆ Capture, store and process details about a specific restaurant .
ˆ Allows the application user to view the details of restaurants captured in
the database
ˆ Allows the application user to save his or her GPS coordinates to help him
or her navigate from his or her current location to a restaurant of his or
her choice .
ˆ Allows the application user to get informed by entering the RSS feed-url
of the restaurant and be aware of new events and latest updates from a
specific restaurant .
ˆ Provides the application user an ease to use the functionalities of the
google map through the help function.
ˆ Allows the application user to directly contact the restaurant manage-
ment by using the call function embedded in the application based on the
restaurant contacts captured in the database.
ˆ Allows the application user to set a media alarm to remind him or her
about lunch time.
4.5.2.2 Non-Functional Requirements
This refers to the limitations and constraints of the application. They are as
seen below
ˆ The application runs on devices that support Android OS of version 3.2
or later
ˆ The application also requires Wi-fi internet
15
Minimium system requirements
Operating system Android Operating system
Android version 3.2 and later versions
Internal storage space 4GB
External memory(SD card) 4GB
RAM 1GB
Kernel version 3.4.2 and later versions
Table 4.1: Minimium system requirements
ˆ The application uses the GPS Technology and therefore the device Must
be a GPS enabled phone.
ˆ The application also has a funcitionality of call dialing and therefore ,the
device Must support dial calls.
ˆ The application uses an alarm system to remind the users about time for
lunch, therefore the device Must support audio media functionality.
ˆ The application user must register the android device with google by cre-
ating an account or using an existing google account to access the google
map.
Note: Upgrade of RAM and External and internal memory size and space
of the device will improve the performance of the application especially when
running multiple applications and programs on the device at the same instances.
4.6 System Architeture
The figure [3.1] shows the diagram of Android architecture. Android OS is
basically a software stack with various layers with each layer offering different
services to the layer above it. The layers include a Linux Kernel which is
responsible for interaction with the hardware. Libraries are written in C or
C++ and are specific to the hardware of the system.
Android Runtime consists of Dalvik Virtual machine and Core Java libraries
responsible for running the applications. It is the Application Framework that
our application interacts withAndroid Framework Components.
The kernel in use is a Linux 2.6 series kernel, modified for special needs in
power management, memory management and the runtime environment. Right
above the kernel run some Linux typical daemons like bluez for Bluetooth sup-
port and wpa supplicant for WiFi encryption. As Android is supposed to run
on devices with little main memory and low powered CPUs, the libraries for
CPU and GPU intensive tasks are compiled to device optimized native code.
Basic libraries like the libc or libm were developed especially for low memory
consumption and because of licensing issues on Android. In this layer the sur-
face manager handles screen access for the window manager from the framework
16
Figure 4.1: Android Architecture showing the major components of Android
OS (Android Wiki, 2010)
17
layer. Opposing to other frameworks, the media framework resides in this layer,
as it includes audio and video codecs that have to be heavily optimized. The
Android Runtime consists of the Dalvik virtual machine and the Java core li-
braries. The Dalvik virtual machine is an interpreter for byte code that has
been transformed from Java byte code to Dalvik byte code. Dalvik itself is
compiled to native code whereas the the core libraries are written in Java, thus
interpreted by Dalvik.
Frameworks in the Application Framework layer are written in Java and
provide abstractions of the underlying native libraries and Dalvik capabilities
to applications. Android applications run in their own sandboxed Dalvik VM
and can consist of multiple components: Activities, services, broadcast receivers
and content providers. Components can interact with other components of the
same or a different application via intents.
4.6.1 Android platform
In this section, the various components of an android application such as activ-
ity, intent and so on, are discussed
4.6.1.1 AndroidManifest.xml file
Every android application must have an AndroidManifest.xml file in its root
directory. This document is used by various facilities in the system to ob-
tain administrative and organizational information about the application.In the
manifest file 23 predefined element types are allowed to specify among other
things the application name, the components of the application, permissions,
needed libraries and filters for intents and broadcasts. During development the
manifest file holds the control information for instrumentation support. It also
lists out all the activities, intents, intent-filters, permissions etc the application
user.
4.6.1.2 Activities
An Activity is a single screen of an application like a browser window or a
settings page. It contains the visual elements that present data (like an image)
or allow user interaction (like a button). Each application can have multiple
activities whereat the transition between the different activities is initiated via
intents. All activities are subclasses from android.app.Activity and their life
cycle is controlled by the on DetailFragment() methods. This concept is needed
by Android’s way of handling multitasking and helps dealing with low memory
situations. The main functions are:
onCreate() The initial method to set up an Activity.
onDestroy() The counterpart to onCreate().
onResume() This method is called if the Activity is visible in the foreground
and ready to get and process user input.
18
onPause() The method has to quickly save uncommitted data and stop CPU
intensive work to prepare the Activity to lose the focus and going to background.
onRestart() This method has to restore a previously saved state of the Ac-
tivity, as it is called after an activity was completely stopped and is needed
again.
An activity provides a means of interaction to the user. It provides a win-
dow where the UI can be designed according to the window. Almost all activ-
ities interact with the users. This application has the following activities: De-
tailForm, EditPreferences, FeedActivity,RestaurantMap, AlarmActivity, Help-
Page, Kakanyero,Coffee hut, BomahHotel, FreeZone,GoldenGate, HavannaHo-
tel, KspHotel, PearlAfrique, SunSet, Kamah, HappyNest,Churchill.
4.6.1.3 Services
For a service, the lifetime is simpler than the one of an activity, as the onRe-
sume(), onPause() and onStop() hooks do not exist. For interactive services,
there are the onBind(), onUnbind() and onRebind() hooks that are called to
start, stop and restart a service. The process type alters between foreground
at creation and deletion time and service at run time. Broadcast receivers only
have the onReceive() hook which runs at foreground process importance. If an
activity needs to save it’s state to present the user the same exact state the
activity was in when it was left, the onSaveInstanceState() method can be used
for this purpose. This hook is called before the onPause() hook is called and
allows to save the dynamic data as key-value pairs in a Bundle. The saved state
object can be passed to onCreate() and onRestoreInstanceState() to restore the
state of the activity.
4.6.1.4 Intents, Intent filters and receivers
Intent filters and receivers Unlike Content Providers, the other three component
types of an application (activities, broadcast receivers and services) are activated
through intents. An Intent is an asynchronously sent message object including
the message that should be transported. The contained message either holds
the name of the action that should be performed, or the name of the action
being announced. The former applies to activities and services, the latter to
broadcast receivers. The Intent class has some actions like ACTION EDIT and
ACTION VIEW or for broadcasts ACTION TIME TICK included already. In
addition to the action, the RSSfeed contains an Uniform Resource Identifier
(URI) that specifies the data used for the given action. Optionally the Intent
object can hold a category, a type, a component name, extra data and flags.
Android utilizes different hooks in the application components to deliver the
intents. For an activity, it’s OnHandleIntent() method is called, at a service
the FeedService() method is called. Broadcast actions can be announced using
Context.sendBroadcast() or similar methods. Android sends the Intent to the
onReceive() method of all matching registered receivers. Intents can be filtered
by an application to specify which intents can be processed by the application’s
19
Figure 4.2: Life cycle graph of an Activity. The graph for a Service is similar
20
components. The list of filters is set in the application’s manifest file, thus
Android can determine the allowed intents before starting an application.
<intent-filter> <action android:name=”android.intent.action.MAIN” />
<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>
21
Figure 4.3: Meaning of symbols used
4.6.2 System Design
This phase is concerned with modeling the proposed system based on the user
and system requirements obtained therefore designing the new aspect of the
System. Below are the meaning of some standard symbols used:
4.6.2.1 Conceptual System Design
This section is concerned with the basic function of the system and relationship
among the entities. It gives conceptual (theoretical) design of how the system
is functioning.
22
Figure 4.4: Conceptual diagram
23
4.6.2.2 Use Case Diagram
A use case diagram captures the actors and the role they perform in a system.
It depicts the roles performed by each actor. The two actors for this project is
an application user.
24
Figure 4.5: Use Case diagram
25
4.6.2.3 Class Diagram
The class diagram below represents the important classes implemented for the
application with their operations and return types. The diagram also shows
how each class is associated with other classes in the system. Each activity is
represented as a class and the attributes.
26
Figure 4.6: class diagram
27
Field Name Data type Field size
id Integer P.K Autoincreament
Name Text 120
Address Text 100
Feed Text 90
Lat double 50
Lon double 50
phone long 15
Table 4.2: Database schema
4.6.3 Data dicionary
The Data dictionary in Table [4.2] represents the tables, attributes and corre-
sponding data types implemented for the database of application.
Table: Restaurants
28
4.7 Implementation
The Mobile Restaurant Tracker application was designed from a user point of
view. The user friendly design helps the users in accomplishing their task with
ease. Attempts have been made to keep the design simple and understandable.
The screens were designed in XML and the logical aspect was written in Java.
The database used is MySQLite where all the information related to restaurants
and the GPS coordinates of restaurants locations is stored. The web service
used to connect to the help page and the RSS feed service designed in HTML5.
Google Maps API has been used to make it easy for the user to figure out the
Locationof the restaurants and to find the route to a particular restaurant.
Debugging of the application throughout the development was done using
Dalvik Debug Monitor Server (DDMS). DDMS provides port-forwarding ser-
vices, screen capture on the device, thread and heap information on the device,
logcat, process, and radio state information, incoming call and SMS spoofing,
location data spoofing . DDMS is also used to verify the location based services
implemented in the application.
4.7.1 JAVA
Java technology is an object-oriented,high-level programming language, platform-
independent, multithreaded programming environment.
The Java programming language is a that can be characterized by all of the
following :
ˆ Simple
ˆ Architecture neutral
ˆ Object oriented
ˆ Portable
ˆ Distributed
ˆ High performance
ˆ Multithreaded
ˆ Robust
ˆ Dynamic
Secure Java is a programming language originally developed by James Gosling
at Sun Microsystems (which is now a subsidiary of Oracle Corporation) and
released in 1995 as a core component of Sun Microsystems’ Java platform.
The language derives much of its syntax from C and C++ but has a sim-
pler object model and fewer low-level facilities. Java applications are typically
compiled to byte code (class file) that can run on any Java Virtual Machine
29
(JVM) regardless of computer architecture. Java is a general-purpose, concur-
rent, class-based, object-oriented language that is specifically designed to have
as few implementation dependencies as possible. It is intended to let application
developers ”write once, run anywhere”. Java is currently one of the most popu-
lar programming languages in use, and is widely used from application software
to web applications.
ˆ Automatic memory management
Java uses an automatic garbage collector to manage memory in the object life-
cycle. The programmer determines when objects are created, and the Java
runtime is responsible for recovering the memory once objects are no longer in
use. Once no references to an object remain, the unreachable memory becomes
eligible to be freed automatically by the garbage collector. Something similar
to a memory leak may still occur if a programmer’s code holds a reference to
an object that is no longer needed, typically when objects that are no longer
needed are stored in containers that are still in use. If methods for a nonexistent
object are called, a ”null pointer exception” is thrown.
ˆ Syntax
The syntax of Java is largely derived from C++. Unlike C++, which combines
the syntax for structured, generic, and object-oriented programming, Java was
built almost exclusively as an object-oriented language. All code is written
inside a class, and everything is an object, with the exception of the primitive
data types (integers, floating-point numbers, boolean values, and characters),
which are not classes for performance reasons. Java uses similar commenting
methods to C++. There are three different styles of comment:
ˆ A single line style marked with two slashes (//),
ˆ A multiple line style opened with a slash asterisk (/*) and
ˆ Closed with an asterisk slash (*/), and
theJavadoc commenting style opened with
ˆ A slash and two asterisks (/**) and
ˆ Closed with an asterisk slash (*/).
The Javadoc style of commenting allows the user to run the Javadoc executable
to compile documentation for the program.
Example: publicclassHelloWorld {
publicstaticvoid main(String[] args)
{
System.out.println(”Hello, world!”);
}
}
Editions:
30
Sun has defined and supports four editions of Java targeting different ap-
plication environments and segmented many of its APIs so that they belong to
one of the platforms.
The platforms are:
ˆ Java Card for smartcards.
ˆ Java ADT(Android Development tool)
ˆ Java Platform, Micro Edition (Java ME) — targeting environments with
limited resources.
ˆ Java Platform, Standard Edition (Java SE) — targeting workstation en-
vironments.
ˆ Java Platform, Enterprise Edition (Java EE) — targeting large distributed
enterprise or Internet environment. 3.1.2
4.7.2 XML
ˆ Extensible Markup Language (XML) is a set of rules for encoding docu-
ments in machine-readable form. It is defined in the XML 1.0 Specification
produced by the W3C, and several other related specifications, all gratis
open standards.
ˆ XML’s design goals emphasize simplicity, generality, and usability over
the Internet. It is a textual data format with strong support via Unicode
for the languages of the world. Although the design of XML focuses
on documents, it is widely used for the representation of arbitrary data
structures, for example in web services.
Key terminology:
ˆ The material in this section is based on the XML Specification. This
is not an exhaustive list of all the constructs which appear in XML; it
provides an introduction to the key constructs most often encountered in
day-to-day use.
ˆ Character: By definition, an XML document is a string of characters.
Almost every legal Unicode character may appear in an XML document.
Processor and Application: The processor analyzes the markup and passes
structured information to an application. The specification places require-
ments on what an XML processor must do and not do, but the application
is outside its scope. The processor (as the specification calls it) is often
referred to colloquially as an XML parser. Markup and Content: The
characters which make up an XML document are divided into markup
and content. Markup and content may be distinguished by the applica-
tion of simple syntactic rules. All strings which constitute markup either
31
begin with the character ”<” and end with a ”>”, or begin with the char-
acter ”&” and end with a ”;”. Strings of characters which are not markup
are content.
ˆ Tag: A markup construct that begins with ”<” and ends with ”>”. Tags
come in three flavors: start-tags, for example <section>, end-tags, for
example </section>, and empty-element tags, for example <line-break
/>.
ˆ Element: A logical component of a document which either begins with a
start-tag and ends with a matching end-tag, or consists only of an empty-
element tag. The characters between the start- and end-tags, if any, are
theelement’s content, and may contain markup, including other elements,
which are called child elements. An example for child element is
1. <Greeting>Hello, world.</Greeting> Another is <line-break />.
ˆ Attribute: A markup construct consisting of a name/value pair that exists
within a start-tag or empty-tag element tag.In the example (belowthe
element img has two attributes, src and alt:
1. <img src=”appicon.png” alt=’lunchlist, by Mubarak’ />.
2. Another example would be <step number=”3”>Connect A to B.</step>
3. where the name of the attribute is ”number” and the value is ”3”.
XML
ˆ Declaration: XML documents may begin by declaring some information
about themselves, as in the following example. <? xmlversion=”1.0”encoding=”UTF-
8”?>
4.7.3 MySQLite/ MySQL
MySQLite is a relational database management system (RDBMS) that runs as
a server providing multi-user access to a number of databases. It is named after
developer Michael Widenius’ daughter, my.
The SQL phrase stands for Structured Query Language. The MySQL de-
velopment project has made its source code available under the terms of the
GNU General Public License, as well as under a variety of proprietary agree-
ments. MySQLite was owned and sponsored by a single for-profit firm, the
Swedish company MySQLite AB, now owned by Oracle Corporation. Free-
software projects that require a full-featured database management system of-
ten use MySQLiteite. For commercial use, several paid editions are available,
and offer additional functionality. Some free software project examples: Joomla,
WordPress, MyBB, phpBB, Drupal and other software built on the LAMP soft-
ware stack. MySQLite is also used in many high-profile, large-scale World Wide
Web products, including Wikipedia, Google and Face book. Uses: MySQLite
is a popular choice of database for use in web applications, and is a central
32
component of the widely used LAMP web application software stack—LAMP
is an acronym for ”Linux, Apache, MySQLite, Perl/PHP/Python”.
MySQLite is used in some of the most frequently visited web sites on the
Internet, including Flicker,Nokia.com, YouTube and as previously mentioned;
Wikipedia, Google and Face book.
ˆ Platforms and interfaces
MySQLite is written in C and C++. Its SQL parser is written in yacc, and
a home-brewed lexical analyzer named sql lex.cc. MySQLite works on many
different system platforms, including AIX, BSDi, FreeBSD, HP-UX, eComSta-
tion, i5/OS, IRIX, Linux, Mac OS X, Microsoft Windows, NetBSD, Novell Net-
Ware, OpenBSD, OpenSolaris, OS/2 Warp, QNX, Solaris, Symbian, SunOS,
SCO OpenServer, SCO UnixWare, Sanos and Tru64. A port of MySQLite to
OpenVMS also exists. Many programming languages with language-specific
APIs include libraries for accessing MySQLite databases.
These include MySQLite Connector/Net for integration with Microsoft’s Vi-
sual Studio (languages such as C# and VB are most commonly used) and the
ODBC driver for Java.
In addition, an ODBC interface called MyODBC allows additional pro-
gramming languages that support the ODBC interface to communicate with
a MySQLite database, such as ASP or ColdFusion. The HTSQL - URL based
query method also ships with a MySQLite adapter, allowing direct interaction
between a MySQLite database and any web client via structured URLs. The
MySQLite server and official libraries are mostly implemented in ANSI C/ANSI
C++.
Features:
ˆ For storing historical data in little space
ˆ Transactions with the InnoDB, BDB and Cluster storage engines; save
points with InnoDBSSL support As of April 2009,
MySQLite offered MySQLite 5.1 in two different variants: the open source
MySQLite Community Server and the commercial Enterprise Server.
MySQLite 5.5 is offered under the same licences.
They have a common code base and include the following features:
ˆ A broad subset of ANSI SQL 99, as well as extensions
ˆ Cross-platform support
ˆ Stored procedures
ˆ Triggers
ˆ Cursors
ˆ Updatable Views
33
ˆ True Varchar support
ˆ Information schema
ˆ Strict mode
ˆ X/Open XAdistributed transaction processing (DTP) support; two phase
commit as part of this, using Oracle’s InnoDB engine
ˆ Independent storage engines (MyISAM for read speed, InnoDB for trans-
actions and referential integrity, MySQLite Archive
ˆ Query caching
ˆ Sub-SELECTs (i.e. nested SELECTs)
ˆ Replication support (i.e. Master-Master Replication & Master-Slave Repli-
cation) with one master per slave, many slaves per master, no automatic
support for multiple masters per slave.
ˆ Full-text indexing and searching using MyISAM engine
ˆ Embedded database library
34
Chapter 5
Presentation and Discussion
of results
5.1 Introduction
This chapter discusses the outcome of the project. Introduced in this chapter
are the performance; analysis and benefits of Mobile Restaurant tracker.
5.2 Graphical User Interface
The user interface is kept simple and understandable. The user need not take
any additional effort to understand the functionality and navigation in the ap-
plication. The view are chosen in such a way that user can easily understand
where the input has to be given. Hints are given to help the user in giving the
correct input.
The following are the main screens and features in this application.
35
Figure 5.1: screen at the launch of the application
5.2.1 Home screen
the interface in figure [5.1] shows a brief system menu with the fuctionality of
application settings , help and the add button at the left top corner.
36
Figure 5.2: precise system menu
5.2.2 Precise system menu
The interface in figure [5.2] is achieved by touching the system menu button on
the phone ,it enables the user get help related to the use of the application and
do some settings to their preferences.
37
5.2.3 System settings
The interface in figure [5.3] is the preference setting to sort order of the captured
restaurant, sound a lunch alarm, use a notification and choose an alarm ringtone
38
Figure 5.3: user’s preference settings
39
Figure 5.4: Help page on how to use the googgle map functionalities
5.2.4 Help page
The Interface in figure [5.4] is a web page that help the application user on how
to use the map in acomplishing the task of navigation and other google map
functionalities
40
Figure 5.5: Add details of a new restaurant
5.2.5 Add button to capture details of a restaurant
The interface in figure [5.5 ] is an interface to view, edit and add a new detail
about a restaurant
41
Figure 5.6: Captured list of restaurants
5.2.6 List of captured restaurant details
The interface in figure [5.6] shows a list of restaurants saved in the database.
42
Figure 5.7: Detailed system menu
5.2.7 Detailed system menu
the interface in figure [5.7] is generated by touching the system menu on the right
side, the system menu is what the application performs ,such as Rss Feed, Save
location, show the saved restaurants on google map and moreso the extended
google map functionalities such as navigation.
43
Figure 5.8: save location
5.2.8 saves curent location of the application user
the interface in figure [5.8] shows a text feedback (“location saved”) after touch-
ing on save loction from the system menue
44
Figure 5.9: Distance , route and time it takes to move to a specific restaurant
5.2.9 Distance , route and time it takes to move to a spe-
cific restaurant
45
5.2.10 Navigation from the current location of the user to
a specified restaurant.
the interfaces in figure [5.9-5.11] shows a sequence of steps in navigating from
the users current location when the option to show the restaurant on map is
choosen from the application menu.
46
Figure 5.10: Navigation Functionality from the current location to a specified
restaurant
47
Figure 5.11: continuation : navigation
48
Figure 5.12: continuation : navigation
5.2.11 Compatibility Testing
This application was mainly designed for android phones as it helps the users
find the restaurants when they are on the move. Generally they try to carry
something handy like cell phones with them and not the tablets. Different
android phones have different screen sizes and resolution. The application has
been tested for its compatibility with different screen sizes on the emulator.
5.2.11.1 Portrait mode
the interface in figure [5.12] shows the compatibility of the application in a
portrait view.
49
Figure 5.13: The Portrait mode compatibility of the application
5.2.11.2 Landscape mode
the interface in figure [5.13] shows the compatibility of the application in a
landscape view.
Figure 5.14: The Landscape mode compatibility of the application
50
Chapter 6
Conclusions ,Future work
and Recommendation
6.1 Conclusion
This is my first attempt in developing a mobile application which gave me a
basic understanding of development and challenges of mobile application devel-
opment. The main aim of the project is to provide an easy to use application
for tracking the restaurants. The application has been implemented and tested
on real devices.
6.2 Recomendation and Future Work
The application can be improved in many ways and can be extended to support
more devices like the tablets and iOS devices.
Following are some of the possible extensions:
ˆ The application can be extended to provide a more advanced tracking by
taking the zip code as the input.
ˆ The application can be extended to provide a more advanced tracking for
restaurants in the whole world in various parts of the world.
ˆ The application can be extended to show the Top 5 restaurants present in
the current city using the Google Maps API.
ˆ The application can be extended to makes it easy for the user to send
out invitations to his/her friends/colleagues for meetings, dinner and also
mark the events in their calendar.
ˆ Finally, The application can be extended to make users give their opinions
about the restaurants by giving a rating and writing a review.
51
Chapter 7
References
1. Emenunyy (2012). Restaurant menu software ‘eMenu’ Ready to wave
goodbye to traditional paper menus. [online]. Last accessed 1 April 2012
at: http://your-story.org/restaurant-menu-software-emenu-ready-towave-
goodbye-to-traditional-paper-menus-298620.
2. Hussain, Zahid (2012). Practical Usability in XP Software Development
Processes. In: The Fifth International Conference on Advances in Computer-
Human Interactions, Spain, 30 January 2012. Valencia, IARIA, 208-217.
Article from Think mind last accessed 21 April 2012 at: http://www.thinkmind.org/index.php?view=artic
3. Studentwebstaff (2009). Use of E-Menus in the Restaurant Industry. [on-
line]. Last accessed 1 April 2012 at: http://www.studentwebstuff.com/mis/showthread.php?t=8049.
4. Michael Rogers, Mark Goadrich (2011 ). A hands-on comparison of iOS
vs. android, ACM New York,NY,USA ©2012 ,ISBN: 978-1-4503-1098-7
Order Number: 457120 Pages 663-663
5. Emenu USA (2011). eMenu Pictures. [online]. Last accessed 21 April
2012 at: http://www.emenuny.com/pictures.html.
6. Chirang (2012). E-Menu. [online]. Last accessed 21 April 2012 at:
http://e-menuchr. blogspot.co.uk/2012 02 01 archive.html.
7. Chen, Ting-Han, LIN, Hsin-Hou and YEN, Yi-Di (2011). Mojo iCui-
sine: The design and implementation of an interactive restaurant tabletop
menu. [online]. Human-computer Interaction, 6763, 185-194. Article from
SpringerLink last accessed 23 April 2012 at: http://www.springerlink.com/content/m307510134401751/fu
8. Crowston, Kevin, Rubleske, Joseph and Howison, James (2006). Coor-
dination Theory: A Ten-Year Retrospective. [online]. Last accessed 22
March 2012 at: http://crowston.syr.edu/system/files/CT%20Review%20to%20distribute.pdf.
52
9. Gutali, Anubha and Dubey, Sanjay Kumar (2012). Critical Analysis on
Usability Evaluation Techniques. [online]. International Journal of En-
gineering Science and Technology (IJEST), 4(3), 990-997. Article from
IJEST last accessed 21 April 2012 at: http://www.ijest.info/docs/IJEST12-
04-03-118.pdf.
10. Edexcel(2010). Human ComputerInteraction [online]. Last accessed 21
March 2012 at: http://www.edexcel.com/migrationdocuments/BTEC%20Nationals%20from%202010/Un
23-Human- Computer-Interaction.pdf.
11. Conceptic (no date). iPad eMenu for restaurant. [online]. Last accessed
22 March 2012 at: http://www.emenu-international.com/iPad-menu-for-
restaurants.
12. Jenie, Renan Prasta.(2011). Designing user interface e-menu based on An-
droid platform.[online]. Last accessed 21 March 2012 at: http://ict.binus.edu/metamorph/file/research/Jo
%20Android%20Komodo%202.pdf.
13. Adikari, Sisira (2009). Little design up-front: A design science approach
to integrating usability in Agile requirements engineering. [online]. Infor-
mation Systems Journal, 5610, 549-558. Article from Mendeley last ac-
cessed 1 April 2012 at: http://www.mendeley.com/research/little-design-
upfront-a-design-scienceapproach- to-integrating-usability-into-Agile-requirements-
engineering-1.
14. Turban, E., Leidner, D., McLean, E., & Wetherbe, J. (2007). Information
Technology for Management: Transforming Organizations in the Digital
Economy (6th ed.): John Wiley & Sons.
15. Dankers, J., Garefalakis, T., Schaffelhofer, R., & Wright, T. (2002). Public
key infrastructure in mobile systems. Electronics and Communication
Engineering Journal
16. Carlsson, C., Carlsson, J., & Walden, P. (2005). Mobile Services For
The Hospitality Industry. Paper presented at the Thirteenth European
Conference on Information Systems, Regensburg, Germany.
17. Schei, E., & Fritzner, T. C. (2002). MOWAHS: A Study of Applications
for Mobile Work.
18. Dankers, J., Garefalakis, T., Schaffelhofer, R., & Wright, T. (2002). Public
key infrastructure in mobile systems. Electronics and Communication
Engineering Journal .
19. T.P. Liang (2007), ”Adoption of mobile technology in business - a fitvia-
bility model”, Industrial Management & data systems, vol . 107, pp. 1154
- 1169, 2007.
20. K. Kamarudin(2009), “The Applictaion of Wireless Food Ordering Sys-
tem”, MASAUM Journal of Computing, vol. 1,pp. 178 - 184.
53
21. J. Mustafa, “Touch & Dine : A multi - touchable dining system”, UAEE
International Journal of Computer Science and its Applications, vol 1,
issue 1.ISSN 2250 - 376
22. XU Hongzhen(2009) , ”Wireless Food Ordering System Based on Web -
services”, Second international Conference on Int elligent Computation
Technology and Automation.
23. J. Purnama(16 June 2007),“Application of Order Management System
in Restaurants”, Semi nar Nasional Aplikasi Teknologi Informasi 2007 ,
Yogyakarta, (SNATI 2007) ISSN: 1907 - 5022 .
24. Emenu USA( 2011). Conceptic on date Restaurant e-menu solutions .
25. H.Kulkarni, S.Dascalu, F.Harris “Software Development Aspects of a Mo-
bile Food Ordering System.”
26. What-Is.Net (2006). What is a PDA Retrieved May 1, 2007, from http://www.what-
isnet. info/what-is-a-pda.html?gclid=CJ2toePA-4sCFQmJTAod3SWnYA
27. Priyanka Shah , Ruta Gadgil , Neha Tamhankar .Location Based Re-
minder Using GPS For Mobile (Android) , (May 2012), VOL. 2 , NO. 4
,ISSN 2225 - 7217.
28. Amit Kushwah (March 2011)., “Location Based Services Using Android
Mobile Operating System”, International Journal of Advances in Engi-
neering & Technology, . (IJAET) ISSN: 2231 - 1963
29. Shweta Shashikant Tanpure, Priyanka R. Shidankar,Madhura M. Joshi(
February 2013).Automated Food Ordering System w ith Real - Time Cus-
tomer Feedback,Volume 3 , Issue 2 ,ISSN: 2277 128X
30. Walter Binder and Volker Roth.(March 2002) Secure mobile agent systems
using Java – where are we heading? In Proc. 17th ACM Symposium on
Applied Computing, Special Track on Agents, Interactions, Mobility, and
Systems (SAC/AIMS), Madrid, Spain, ACM.
54
Chapter 8
Appendix
8.1 android manifest.xml
This file is responsible for providing all the information about the application
to the Android system. It also has the minimum SDK version needed to run the
application. The permissions to access the internet, The permission to access
network state, the permission to access the fine location and permission to call
phone.
<?xml version=”1.0” encoding=”utf-8”?>
<manifest android:versionCode=”1”
android:versionName=”1.0”
package=”apt.restaurant”
xmlns:android=”http://schemas.android.com/apk/res/android”>
<uses-sdk android:minSdkVersion=”11” android:targetSdkVersion=”19” />
<uses-permission android:name=”android.permission.INTERNET” />
<uses-permission android:name=”android.permission.ACCESS NETWORK STATE”
/>
<uses-permission android:name=”android.permission.ACCESS FINE LOCATION”
/>
<uses-permission android:name=”android.permission.RECEIVE BOOT COMPLETED”
/>
<uses-permission android:name=”android.permission.CALL PHONE” />
<uses-feature android:name=”android.hardware.telephony” android:required=”false”
/>
<supports-screens android:largeScreens=”true” android:normalScreens=”true”
android:smallScreens=”false” />
<application
android:label=”@string/app name”
android:icon=”@drawable/appicon”
android:allowBackup=”true”>
<uses-library android:name=”com.google.android.maps” />
55
<activity android:label=”@string/app name” android:name=”apt.restaurant.LunchList”>
<intent-filter> <action android:name=”android.intent.action.MAIN” />
<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter> </activity> <activity android:name=”apt.restaurant.DetailForm”></activity>
<activity android:name=”apt.restaurant.EditPreferences”></activity>
<activity android:name=”apt.restaurant.FeedActivity”></activity>
<activity android:name=”apt.restaurant.RestaurantMap”></activity>
<activity android:name=”apt.restaurant.AlarmActivity”></activity>
<activity android:name=”apt.restaurant.HelpPage”></activity>
<activity android:name=”apt.restaurant.Kakanyero”></activity>
<activity android:name=”apt.restaurant.Coffee hut”></activity>
<activity android:name=”apt.restaurant.BomahHotel”></activity>
<activity android:name=”apt.restaurant.FreeZone”></activity>
<activity android:name=”apt.restaurant.GoldenGate”></activity>
<activity android:name=”apt.restaurant.HavannaHotel”></activity>
<activity android:name=”apt.restaurant.KspHotel”></activity>
<activity android:name=”apt.restaurant.PearlAfrique”></activity>
<activity android:name=”apt.restaurant.SunSet”></activity>
<activity android:name=”apt.restaurant.Kamah”></activity>
<activity android:name=”apt.restaurant.HappyNest”></activity>
<activity android:name=”apt.restaurant.Churchill”></activity>
<service android:name=”apt.restaurant.FeedService”></service>
<service android:name=”apt.restaurant.WidgetService”></service>
<service android:name=”apt.restaurant.ListWidgetService”
android:permission=”android.permission.BIND REMOTEVIEWS”> </ser-
vice>
<receiver android:enabled=”false” android:name=”apt.restaurant.OnBootReceiver”>
<intent-filter> <action android:name=”android.intent.action.BOOT COMPLETED”
/>
</intent-filter> </receiver>
<receiver android:name=”apt.restaurant.OnAlarmReceiver”></receiver>
<receiver android:icon=”@drawable/icon”
android:label=”@string/app name”
android:name=”apt.restaurant.AppWidget”>
<intent-filter> <action android:name=”android.appwidget.action.APPWIDGET UPDATE”
/> </intent-filter>
<meta-data android:name=”android.appwidget.provider”
android:resource=”@xml/widget provider” />
</receiver>
</application>
</manifest>
Since the application uses Google Maps API to show the restaurants on the
map and to show the route to a particular restaurant, the library has been
mentioned.
56
8.2 layouts
8.2.1 map.xml
<?xml version=”1.0” encoding=”utf-8”?>
<com.google.android.maps.MapView
xmlns:android=”http://schemas.android.com/apk/res/android”
android:id=”@+id/map”
android:layout width=”match parent”
android:layout height=”match parent”
android:apiKey=”AIzaSyAQhmT 9WL1Zw6iU0HKpJ8NBV5hpP5kCTo”
android:clickable=”true”
/>
8.2.2 main.xml
<?xml version=”1.0” encoding=”utf-8”?>
<fragment xmlns:android=”http://schemas.android.com/apk/res/android”
class=”apt.restaurant.LunchFragment”
android:id=”@+id/lunch”
android:layout width=”match parent”
android:layout height=”match parent”
android:name=”com.google.android.gms.maps.SupportMapFragment” />
8.2.3 detail form.xml
<ScrollView xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout width=”match parent”
android:layout height=”wrap content”>
<TableLayout android:layout width=”match parent”
android:layout height=”wrap content” android:stretchColumns=”1”
android:shrinkColumns=”1” >
<Button android:id=”@+id/track”
android:layout width=”fill parent”
android:layout height=”wrap content”
android:text=”Track the details of the Restaurants” />
<TableRow>
<TextView android:text=”Restaurant Name:” />
<EditText android:id=”@+id/name” /> </TableRow>
<TableRow> <TextView android:text=”Restaurant Address:” />
<EditText android:id=”@+id/addr” /> </TableRow> <TableRow>
<TextView android:text=”Restaurant Phone contact:” />
<EditText android:id=”@+id/phone” android:inputType=”phone” />
</TableRow> <TableRow> <TextView android:text=”Resturant Type:”
/>
<RadioGroup android:id=”@+id/types”>
57
<RadioButton
android:id=”@+id/take out”
android:text=”Take-Out”
android:checked=”true” />
<RadioButton android:id=”@+id/sit down”
android:text=”Sit-Down” /> <RadioButton
android:id=”@+id/delivery”
android:text=”Delivery” />
</RadioGroup>
</TableRow>
<TableRow> <TextView android:text=”Location:” />
<TextView android:id=”@+id/location”
android:text=”(not set)” />
</TableRow>
<EditText android:id=”@+id/notes”
android:inputType=”textMultiLine”
android:gravity=”top”
android:lines=”2”
android:scrollHorizontally=”false”
android:maxLines=”2”
android:layout span=”2”
android:hint=”Notes”
android:layout marginTop=”4dip” />
<EditText android:id=”@+id/feed”
android:layout span=”2”
android:hint=”Feed URL” />
<TableRow
android:id=”@+id/tableRow1”
android:layout width=”wrap content”
android:layout height=”wrap content” >
</TableRow>
<Button android:id=”@+id/save”
android:layout width=”fill parent”
android:layout height=”wrap content”
android:text=”Save” />
<Button android:id=”@+id/copyright”
android:layout width=”fill parent”
android:layout height=”wrap content”
android:text=”Developed by [ Mubarak Haruna ] Bcs G-Univ” />
</TableLayout>
</ScrollView>
8.2.4 detail activity.xml
<?xml version=”1.0” encoding=”utf-8”?>
<fragment xmlns:android=”http://schemas.android.com/apk/res/android”
58
class=”apt.restaurant.DetailFragment”
android:id=”@+id/details”
android:layout width=”match parent”
android:layout height=”match parent” />
8.2.5 row.xml
<LinearLayout
xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout width=”match parent”
android:layout height=”wrap content”
android:orientation=”horizontal”
android:padding=”4dip” >
<ImageView android:id=”@+id/icon”
android:layout width=”wrap content”
android:layout height=”match parent”
android:layout alignParentTop=”true”
android:layout alignParentBottom=”true”
android:layout marginRight=”4dip”
android:contentDescription=”TODO”/>
<LinearLayout
android:layout width=”match parent”
android:layout height=”wrap content”
android:orientation=”vertical” >
<TextView
android:id=”@+id/title”
android:layout width=”match parent”
android:layout height=”wrap content”
android:layout weight=”1”
android:gravity=”center vertical”
android:textStyle=”bold”
android:maxLines=”1”
android:ellipsize=”end” />
<TextView android:id=”@+id/address”
android:layout width=”match parent”
android:layout height=”wrap content”
android:layout weight=”1”
android:gravity=”center vertical” android:maxLines=”1”
android:ellipsize=”end” />
</LinearLayout>
</LinearLayout>
59
8.2.6 help.xml
<?xml version=”1.0” encoding=”utf-8”?>
<WebView xmlns:android=”http://schemas.android.com/apk/res/android”
android:id=”@+id/webkit”
android:layout width=”fill parent”
android:layout height=”fill parent” />
8.2.7 alarm.xml
<?xml version=”1.0” encoding=”utf-8”?>
<TextView xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout width=”wrap content”
android:layout height=”wrap content”
android:text=”It’s time for lunch!”
android:textSize=”30sp” android:textStyle=”bold” />
8.2.8 widget row.xml
<?xml version=”1.0” encoding=”utf-8”?>
<TextView
xmlns:android=”http://schemas.android.com/apk/res/android”
android:id=”@android:id/text1”
android:layout width=”match parent”
android:layout height=”wrap content”
android:textAppearance=”?android:attr/textAppearanceLarge”
android:gravity=”center vertical” android:paddingLeft=”6dip”
android:minHeight=”?android:attr/listPreferredItemHeight”
/>
8.2.9 widget.xml
<?xml version=”1.0” encoding=”utf-8”?>
<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout width=”match parent” android:layout height=”match parent”
android:background=”@drawable/widget frame” >
<TextView android:id=”@+id/name”
android:layout width=”wrap content”
android:layout height=”wrap content”
android:layout centerVertical=”true”
android:layout alignParentLeft=”true”
android:layout toLeftOf=”@+id/next”
android:textSize=”10pt”
android:textColor=”#FFFFFFFF” />
<ImageButton
android:id=”@id/next”
60
android:layout width=”wrap content”
android:layout height=”wrap content”
android:layout centerVertical=”true”
android:layout alignParentRight=”true”
android:src=”@drawable/ff” />
</RelativeLayout>
61

Más contenido relacionado

La actualidad más candente

iGUARD: An Intelligent Way To Secure - Report
iGUARD: An Intelligent Way To Secure - ReportiGUARD: An Intelligent Way To Secure - Report
iGUARD: An Intelligent Way To Secure - ReportNandu B Rajan
 
Deployment guide series ibm total storage productivity center for data sg247140
Deployment guide series ibm total storage productivity center for data sg247140Deployment guide series ibm total storage productivity center for data sg247140
Deployment guide series ibm total storage productivity center for data sg247140Banking at Ho Chi Minh city
 
BOOK - IBM Implementing ibm system directory 6.1
BOOK - IBM Implementing ibm system directory 6.1BOOK - IBM Implementing ibm system directory 6.1
BOOK - IBM Implementing ibm system directory 6.1Satya Harish
 
Master_Thesis_2015_by_Sanjeev_Laha_21229267
Master_Thesis_2015_by_Sanjeev_Laha_21229267Master_Thesis_2015_by_Sanjeev_Laha_21229267
Master_Thesis_2015_by_Sanjeev_Laha_21229267Sanjeev Laha
 
Deployment guide series ibm tivoli usage and accounting manager v7.1 sg247569
Deployment guide series ibm tivoli usage and accounting manager v7.1 sg247569Deployment guide series ibm tivoli usage and accounting manager v7.1 sg247569
Deployment guide series ibm tivoli usage and accounting manager v7.1 sg247569Banking at Ho Chi Minh city
 
Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...Banking at Ho Chi Minh city
 
Certification study guide ibm tivoli access manager for e business 6.0 sg247202
Certification study guide ibm tivoli access manager for e business 6.0 sg247202Certification study guide ibm tivoli access manager for e business 6.0 sg247202
Certification study guide ibm tivoli access manager for e business 6.0 sg247202Banking at Ho Chi Minh city
 
Program Directory For CBPDO Installation and ServerPac Reference z/OS
Program Directory For CBPDO Installation and ServerPac Reference z/OSProgram Directory For CBPDO Installation and ServerPac Reference z/OS
Program Directory For CBPDO Installation and ServerPac Reference z/OSIBM India Smarter Computing
 
I Series System Security Guide
I Series System Security GuideI Series System Security Guide
I Series System Security GuideSJeffrey23
 
Design and implementation of a Virtual Reality application for Computational ...
Design and implementation of a Virtual Reality application for Computational ...Design and implementation of a Virtual Reality application for Computational ...
Design and implementation of a Virtual Reality application for Computational ...Lorenzo D'Eri
 
Tivoli data warehouse version 1.3 planning and implementation sg246343
Tivoli data warehouse version 1.3 planning and implementation sg246343Tivoli data warehouse version 1.3 planning and implementation sg246343
Tivoli data warehouse version 1.3 planning and implementation sg246343Banking at Ho Chi Minh city
 
Arduino bộ vi điều khiển cho tất cả chúng ta part 1
Arduino bộ vi điều khiển cho tất cả chúng ta part 1Arduino bộ vi điều khiển cho tất cả chúng ta part 1
Arduino bộ vi điều khiển cho tất cả chúng ta part 1tungdientu
 
ubc_2014_spring_dewancker_ian (9)
ubc_2014_spring_dewancker_ian (9)ubc_2014_spring_dewancker_ian (9)
ubc_2014_spring_dewancker_ian (9)Ian Dewancker
 
Machine_translation_for_low_resource_Indian_Languages_thesis_report
Machine_translation_for_low_resource_Indian_Languages_thesis_reportMachine_translation_for_low_resource_Indian_Languages_thesis_report
Machine_translation_for_low_resource_Indian_Languages_thesis_reportTrushita Redij
 
IBM enterprise Content Management
IBM enterprise Content ManagementIBM enterprise Content Management
IBM enterprise Content Managementwardell henley
 

La actualidad más candente (19)

iGUARD: An Intelligent Way To Secure - Report
iGUARD: An Intelligent Way To Secure - ReportiGUARD: An Intelligent Way To Secure - Report
iGUARD: An Intelligent Way To Secure - Report
 
Deployment guide series ibm total storage productivity center for data sg247140
Deployment guide series ibm total storage productivity center for data sg247140Deployment guide series ibm total storage productivity center for data sg247140
Deployment guide series ibm total storage productivity center for data sg247140
 
BOOK - IBM Implementing ibm system directory 6.1
BOOK - IBM Implementing ibm system directory 6.1BOOK - IBM Implementing ibm system directory 6.1
BOOK - IBM Implementing ibm system directory 6.1
 
Master_Thesis_2015_by_Sanjeev_Laha_21229267
Master_Thesis_2015_by_Sanjeev_Laha_21229267Master_Thesis_2015_by_Sanjeev_Laha_21229267
Master_Thesis_2015_by_Sanjeev_Laha_21229267
 
Deployment guide series ibm tivoli usage and accounting manager v7.1 sg247569
Deployment guide series ibm tivoli usage and accounting manager v7.1 sg247569Deployment guide series ibm tivoli usage and accounting manager v7.1 sg247569
Deployment guide series ibm tivoli usage and accounting manager v7.1 sg247569
 
Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...
 
Certification study guide ibm tivoli access manager for e business 6.0 sg247202
Certification study guide ibm tivoli access manager for e business 6.0 sg247202Certification study guide ibm tivoli access manager for e business 6.0 sg247202
Certification study guide ibm tivoli access manager for e business 6.0 sg247202
 
Program Directory For CBPDO Installation and ServerPac Reference z/OS
Program Directory For CBPDO Installation and ServerPac Reference z/OSProgram Directory For CBPDO Installation and ServerPac Reference z/OS
Program Directory For CBPDO Installation and ServerPac Reference z/OS
 
I Series System Security Guide
I Series System Security GuideI Series System Security Guide
I Series System Security Guide
 
BA1_Breitenfellner_RC4
BA1_Breitenfellner_RC4BA1_Breitenfellner_RC4
BA1_Breitenfellner_RC4
 
Design and implementation of a Virtual Reality application for Computational ...
Design and implementation of a Virtual Reality application for Computational ...Design and implementation of a Virtual Reality application for Computational ...
Design and implementation of a Virtual Reality application for Computational ...
 
Tivoli data warehouse version 1.3 planning and implementation sg246343
Tivoli data warehouse version 1.3 planning and implementation sg246343Tivoli data warehouse version 1.3 planning and implementation sg246343
Tivoli data warehouse version 1.3 planning and implementation sg246343
 
Access Tutorial
Access TutorialAccess Tutorial
Access Tutorial
 
iPDC User Manual
iPDC User ManualiPDC User Manual
iPDC User Manual
 
Arduino bộ vi điều khiển cho tất cả chúng ta part 1
Arduino bộ vi điều khiển cho tất cả chúng ta part 1Arduino bộ vi điều khiển cho tất cả chúng ta part 1
Arduino bộ vi điều khiển cho tất cả chúng ta part 1
 
ubc_2014_spring_dewancker_ian (9)
ubc_2014_spring_dewancker_ian (9)ubc_2014_spring_dewancker_ian (9)
ubc_2014_spring_dewancker_ian (9)
 
Tesi v.d.cuccaro
Tesi v.d.cuccaroTesi v.d.cuccaro
Tesi v.d.cuccaro
 
Machine_translation_for_low_resource_Indian_Languages_thesis_report
Machine_translation_for_low_resource_Indian_Languages_thesis_reportMachine_translation_for_low_resource_Indian_Languages_thesis_report
Machine_translation_for_low_resource_Indian_Languages_thesis_report
 
IBM enterprise Content Management
IBM enterprise Content ManagementIBM enterprise Content Management
IBM enterprise Content Management
 

Similar a report

Report on e-Notice App (An Android Application)
Report on e-Notice App (An Android Application)Report on e-Notice App (An Android Application)
Report on e-Notice App (An Android Application)Priyanka Kapoor
 
Work Measurement Application - Ghent Internship Report - Adel Belasker
Work Measurement Application - Ghent Internship Report - Adel BelaskerWork Measurement Application - Ghent Internship Report - Adel Belasker
Work Measurement Application - Ghent Internship Report - Adel BelaskerAdel Belasker
 
AUGUMENTED REALITY FOR SPACE.pdf
AUGUMENTED REALITY FOR SPACE.pdfAUGUMENTED REALITY FOR SPACE.pdf
AUGUMENTED REALITY FOR SPACE.pdfjeevanbasnyat1
 
Smart Street System
Smart Street SystemSmart Street System
Smart Street SystemLibin Thomas
 
Where tonight mobile application.pdf
Where tonight  mobile application.pdfWhere tonight  mobile application.pdf
Where tonight mobile application.pdfokorisolo
 
Enabling mobile apps with ibm worklight application center red
Enabling mobile apps with ibm worklight application center redEnabling mobile apps with ibm worklight application center red
Enabling mobile apps with ibm worklight application center redbupbechanhgmail
 
Interactive Filtering Algorithm - George Jenkins 2014
Interactive Filtering Algorithm - George Jenkins 2014Interactive Filtering Algorithm - George Jenkins 2014
Interactive Filtering Algorithm - George Jenkins 2014George Jenkins
 
Distributed Mobile Graphics
Distributed Mobile GraphicsDistributed Mobile Graphics
Distributed Mobile GraphicsJiri Danihelka
 
Smart attendance system using facial recognition
Smart attendance system using facial recognitionSmart attendance system using facial recognition
Smart attendance system using facial recognitionVigneshLakshmanan8
 
digiinfo website project report
digiinfo website project reportdigiinfo website project report
digiinfo website project reportABHIJEET KHIRE
 
project Report on LAN Security Manager
project Report on LAN Security Managerproject Report on LAN Security Manager
project Report on LAN Security ManagerShahrikh Khan
 
Automatic Detection of Performance Design and Deployment Antipatterns in Comp...
Automatic Detection of Performance Design and Deployment Antipatterns in Comp...Automatic Detection of Performance Design and Deployment Antipatterns in Comp...
Automatic Detection of Performance Design and Deployment Antipatterns in Comp...Trevor Parsons
 
Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...Banking at Ho Chi Minh city
 

Similar a report (20)

Report on e-Notice App (An Android Application)
Report on e-Notice App (An Android Application)Report on e-Notice App (An Android Application)
Report on e-Notice App (An Android Application)
 
Work Measurement Application - Ghent Internship Report - Adel Belasker
Work Measurement Application - Ghent Internship Report - Adel BelaskerWork Measurement Application - Ghent Internship Report - Adel Belasker
Work Measurement Application - Ghent Internship Report - Adel Belasker
 
Report-V1.5_with_comments
Report-V1.5_with_commentsReport-V1.5_with_comments
Report-V1.5_with_comments
 
Srs
SrsSrs
Srs
 
Live chat srs
Live chat srsLive chat srs
Live chat srs
 
MSc_Thesis
MSc_ThesisMSc_Thesis
MSc_Thesis
 
document
documentdocument
document
 
AUGUMENTED REALITY FOR SPACE.pdf
AUGUMENTED REALITY FOR SPACE.pdfAUGUMENTED REALITY FOR SPACE.pdf
AUGUMENTED REALITY FOR SPACE.pdf
 
Smart Street System
Smart Street SystemSmart Street System
Smart Street System
 
Where tonight mobile application.pdf
Where tonight  mobile application.pdfWhere tonight  mobile application.pdf
Where tonight mobile application.pdf
 
Enabling mobile apps with ibm worklight application center red
Enabling mobile apps with ibm worklight application center redEnabling mobile apps with ibm worklight application center red
Enabling mobile apps with ibm worklight application center red
 
E.M._Poot
E.M._PootE.M._Poot
E.M._Poot
 
Interactive Filtering Algorithm - George Jenkins 2014
Interactive Filtering Algorithm - George Jenkins 2014Interactive Filtering Algorithm - George Jenkins 2014
Interactive Filtering Algorithm - George Jenkins 2014
 
Distributed Mobile Graphics
Distributed Mobile GraphicsDistributed Mobile Graphics
Distributed Mobile Graphics
 
Smart attendance system using facial recognition
Smart attendance system using facial recognitionSmart attendance system using facial recognition
Smart attendance system using facial recognition
 
Milan_thesis.pdf
Milan_thesis.pdfMilan_thesis.pdf
Milan_thesis.pdf
 
digiinfo website project report
digiinfo website project reportdigiinfo website project report
digiinfo website project report
 
project Report on LAN Security Manager
project Report on LAN Security Managerproject Report on LAN Security Manager
project Report on LAN Security Manager
 
Automatic Detection of Performance Design and Deployment Antipatterns in Comp...
Automatic Detection of Performance Design and Deployment Antipatterns in Comp...Automatic Detection of Performance Design and Deployment Antipatterns in Comp...
Automatic Detection of Performance Design and Deployment Antipatterns in Comp...
 
Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...Deployment guide series ibm tivoli composite application manager for web reso...
Deployment guide series ibm tivoli composite application manager for web reso...
 

report

  • 1. MOBILE RESTAURANT TRACKER ( LunchList ) BY MOB13-03 (MOBILE APPLICATION) A Project Report submitted to the Department of Computer Science for the Study Leading to a Project Proposal in Partial Fulfillment of the Requirements for the Award of the Bachelor of Science in Computer Science of Gulu University. Supervisor Mr Kaye Milton Department of Computer Science Gulu University MAY 2014
  • 2. Declaration I, Mubarak Haruna, declare that this report is original and has not been published and submitted by any other person for any award to any university and other higher institutions of learning. Membership S/N NAME REGISTRATION NUMBER SIGNITURE 1 MUBARAK HARUNA 11/U/211/GCS Approval This project report has been submitted for examination with approval of the following supervisor . . . ......................................... . . . ............................... Mr. Kaye Milton Date Department of Computer Science Gulu University i
  • 3. Dedication I dedicate this piece of work to Almighty Allah and my parents and benefactors without whom i would not have progressed. Special thanks goes to all those who willingly responded when i consulted. ii
  • 4. Abstract The restaurant industry is an area such as Gulu and Uganda at large, which has remained behind mobile technical advances in location tracking until re- cently, when the mobile restaurant tracking systems started being used to im- prove location tracking services and to increase awareness to the customers. To answer the research question ‘how can a prototype of mobile restaurant tracker on android plateforms be developed for the casual location tracking in the restaurant industry to meet the information gap’, this dissertation employed a case study approach at restaurants in the current geographical Area (Gulu northern uganda). The research was conducted based on qualitative empirical research to gather information and business requirements by direct observation and interviews in- volving the restaurant owners and managers, to develop a prototype using Rapid Application Development (RAD) methodology, to collect data by group inter- views, and finally to analyse data by content analysis. The mobile restaurant tracker enables users to locate a list of restaurants based on the location, map services, feeds services, The user not only finds all the restaurants in the current city, but also he can make a choice of the best restaurant based on the type of restaurant. The user can also map the location of the restaurant on Google Maps rendered to the user on the phone & find the path from his current location or from any other location to the restaurant, the user has the facility to make a call directly to the restaurant and can also obtain the detailed review of the restaurant he chooses on the mobile interface. iii
  • 5. Contents 1 Introduction 1 1.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Problem statement . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3.1 Main Objective . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3.2 Specific objectives . . . . . . . . . . . . . . . . . . . . . . 3 1.4 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.5 Significance/ outcomes . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Litrature Review 4 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 State of Art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2.1 Mobile application development on iOS or Android de- vices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2.2 Mobile Technology . . . . . . . . . . . . . . . . . . . . . . 6 2.2.3 Software usability and Human-Computer Interaction (HCI) 7 2.2.4 Location Based Services . . . . . . . . . . . . . . . . . . 8 2.2.5 GPS and Google Maps . . . . . . . . . . . . . . . . . . . 8 2.3 State of Practice . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3.1 Electronic menu (e-menu) for restaurants . . . . . . . . . 8 2.3.2 PMR: Personalized Mobile Restaurant system . . . . . . . 9 2.3.3 Automated Food Ordering System w ith Real - Time Cus- tomer Feedback . . . . . . . . . . . . . . . . . . . . . . . . 9 3 Methodology 10 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2 Data Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2.1 Document Reviews . . . . . . . . . . . . . . . . . . . . . 10 3.2.2 Focus Interaction . . . . . . . . . . . . . . . . . . . . . . . 10 3.3 Data Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.4 System Development . . . . . . . . . . . . . . . . . . . . . . . . 11 3.5 Validation and System Testing . . . . . . . . . . . . . . . . . . . 11 iv
  • 6. 4 System design and implementation 12 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.2 System Study . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.2.1 Problem with the Current System . . . . . . . . . . . . . 12 4.3 System Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.4 Feasibility studies: . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.4.1 Technology and system feasibility . . . . . . . . . . . . . . 13 4.4.2 Economic feasibility . . . . . . . . . . . . . . . . . . . . . 13 4.4.3 Operational feasibility . . . . . . . . . . . . . . . . . . . . 14 4.5 Requirement Documentation . . . . . . . . . . . . . . . . . . . . 14 4.5.1 User requirements . . . . . . . . . . . . . . . . . . . . . . 14 4.5.2 System requirements . . . . . . . . . . . . . . . . . . . . . 15 4.5.2.1 Functional Requirements . . . . . . . . . . . . . 15 4.5.2.2 Non-Functional Requirements . . . . . . . . . . 15 4.6 System Architeture . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.6.1 Android platform . . . . . . . . . . . . . . . . . . . . . . . 18 4.6.1.1 AndroidManifest.xml file . . . . . . . . . . . . . 18 4.6.1.2 Activities . . . . . . . . . . . . . . . . . . . . . 18 4.6.1.3 Services . . . . . . . . . . . . . . . . . . . . . . . 19 4.6.1.4 Intents, Intent filters and receivers . . . . . . . 19 4.6.2 System Design . . . . . . . . . . . . . . . . . . . . . . . . 22 4.6.2.1 Conceptual System Design . . . . . . . . . . . . 22 4.6.2.2 Use Case Diagram . . . . . . . . . . . . . . . . 24 4.6.2.3 Class Diagram . . . . . . . . . . . . . . . . . . . 26 4.6.3 Data dicionary . . . . . . . . . . . . . . . . . . . . . . . . 28 4.7 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.7.1 JAVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.7.2 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.7.3 MySQLite/ MySQL . . . . . . . . . . . . . . . . . . . . . 32 5 Presentation and Discussion of results 35 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.2 Graphical User Interface . . . . . . . . . . . . . . . . . . . . . . 35 5.2.1 Home screen . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.2.2 Precise system menu . . . . . . . . . . . . . . . . . . . . . 37 5.2.3 System settings . . . . . . . . . . . . . . . . . . . . . . . . 38 5.2.4 Help page . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 5.2.5 Add button to capture details of a restaurant . . . . . . . 41 5.2.6 List of captured restaurant details . . . . . . . . . . . . . 42 5.2.7 Detailed system menu . . . . . . . . . . . . . . . . . . . . 43 5.2.8 saves curent location of the application user . . . . . . . . 44 5.2.9 Distance , route and time it takes to move to a specific restaurant . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.2.10 Navigation from the current location of the user to a spec- ified restaurant. . . . . . . . . . . . . . . . . . . . . . . . . 46 5.2.11 Compatibility Testing . . . . . . . . . . . . . . . . . . . . 49 v
  • 7. 5.2.11.1 Portrait mode . . . . . . . . . . . . . . . . . . . 49 5.2.11.2 Landscape mode . . . . . . . . . . . . . . . . . . 50 6 Conclusions ,Future work and Recommendation 51 6.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 6.2 Recomendation and Future Work . . . . . . . . . . . . . . . . . . 51 7 References 52 8 Appendix 55 8.1 android manifest.xml . . . . . . . . . . . . . . . . . . . . . . . . . 55 8.2 layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 8.2.1 map.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 8.2.2 main.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 8.2.3 detail form.xml . . . . . . . . . . . . . . . . . . . . . . . . 57 8.2.4 detail activity.xml . . . . . . . . . . . . . . . . . . . . . . 58 8.2.5 row.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 8.2.6 help.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 8.2.7 alarm.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 8.2.8 widget row.xml . . . . . . . . . . . . . . . . . . . . . . . . 60 8.2.9 widget.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 60 vi
  • 8. List of Acronyms API Application personal indentity ADT Android Development Tools E-Menu Electronic Menu GUI Graphical User Interface HCI Human Computer Interaction OS Operating System RAD Rapid Application Development SQLite Structured Query Language UML Unified Modelling Language XML Extensible Markup Language RAD Rapid Application Development JNI Java Native Interface DDMS Dalvik Debug Monitor Server UI User Interface IDE Integrated development environment PDA Portable Digital Assistant PC Personal Computer SDK Software development Kit RDBMS Relational database management system OOP Object Oriented Programming GIS Geographical Information System LBS Location Based Service GPS Geographical position Service GIS Geographical Information System RAM Random Acess Memory RSS Rich site service vii
  • 9. List of Tables 2.1 Comparison of mobile development platforms on iOS and An- droid (Ray 2012; Lee 2012; Goadrich and Rogers 2011) . . . . . . 5 2.2 Cross-platform communication using Web services Adopted from Microsoft ASP.Net Team (2009) and Lee (2012) . . . . . . . . . . 6 4.1 Minimium system requirements . . . . . . . . . . . . . . . . . . 16 4.2 Database schema . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 viii
  • 10. List of Figures 4.1 Android Architecture showing the major components of Android OS (Android Wiki, 2010) . . . . . . . . . . . . . . . . . . . . . . 17 4.2 Life cycle graph of an Activity. The graph for a Service is similar 20 4.3 Meaning of symbols used . . . . . . . . . . . . . . . . . . . . . . 22 4.4 Conceptual diagram . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.5 Use Case diagram . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.6 class diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.1 screen at the launch of the application . . . . . . . . . . . . . . . 36 5.2 precise system menu . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.3 user’s preference settings . . . . . . . . . . . . . . . . . . . . . . . 39 5.4 Help page on how to use the googgle map functionalities . . . . 40 5.5 Add details of a new restaurant . . . . . . . . . . . . . . . . . . . 41 5.6 Captured list of restaurants . . . . . . . . . . . . . . . . . . . . . 42 5.7 Detailed system menu . . . . . . . . . . . . . . . . . . . . . . . . 43 5.8 save location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.9 Distance , route and time it takes to move to a specific restaurant 45 5.10 Navigation Functionality from the current location to a specified restaurant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.11 continuation : navigation . . . . . . . . . . . . . . . . . . . . . . 48 5.12 continuation : navigation . . . . . . . . . . . . . . . . . . . . . . 49 5.13 The Portrait mode compatibility of the application . . . . . . . 50 5.14 The Landscape mode compatibility of the application . . . . . . 50 ix
  • 11. Acknowledgements This Final year project would not have been completed without the support of my supervisor, the administrative and technical support staff of the depart- ment of computer science, my friends and family. Firstly, Mr. Kaye Milton, my supervisor, was the most important person, who provided me with valuable guidance and great support. Secondly, without support from the restaurant owners, manager and staff, my case study dissertation would have been impos- sible. Thirdly ,My special thanks to my brothers. Abdallah Haruna and Sebit Haruna for providing me with the Android devices for testing of my project. I would like to express my deep appreciation to my friends and family. They have always support me strongly both in my academic studies and also with my personal problems during my study. Finally, I would like to thank the administrative and technical support staff of the department of computer science, faculty of science for their support throughout my graduate study. x
  • 12. Chapter 1 Introduction Mobile applications can be one of the best ways to keep consumers engaged with a brand as they are on the move. With the increase in demand for smart- phones and efficiency of wireless networks, the demand for mobile applications has increased incredibly. Android is one of the most popular open source plat- forms that offer the developers’ full access to the framework API’s so as to build innovative applications. Restaurant tracker (lunchList )is an Android ap- plication that helps the users to find the restaurants according to their type and taste,locate a list of restaurants based on the location, map services, feeds services, entered by the user. The user not only finds all the restaurants in the current city, but also he can make a choice of the best restaurant based on the type of restaurant. The user can also map the location of the restaurant on Google Maps rendered to the user on the phone and find the path from his current location or from any other location to the restaurant, the user has the facility to make a call directly to the restaurant and can also obtain the detailed review of the restaurant he chooses. 1.1 Background Modern hand held devices such as smart phones and PDAs have become increas- ingly powerful in recent years. Dramatic breakthroughs in processing power along with the number of extra features included in these devices have opened the doors to a wide range of commercial possibilities. In particular, most cell phones regularly include cameras, processors comparable to PCs from only a few years ago, and internet access. However, even with all these added abili- ties, there are few applications that allow much passing of the environmental information and location based services. The current system of tracking a location of a restaurant reguires ,The user to search physically and collect the required information about the location of a restaurant or find out from friends and The new customer has no idea of where the restaurant is located because of information gap and the shortest route to 1
  • 13. take to reach a specific restaurant because the users lack source of information about the route and exact location of the restaurant. in justification of the 1.2 Problem statement Ideally ,Tracking restaurant in a specified location and according to the specified tastes of the customers, requires the customers to search physically and collect the required information about their taste or find out from friends. 1.3 Objective 1.3.1 Main Objective The main aim of the project is to develop an application that provide the users an easy to use application that helps them to track restaurants according to their tastes and convenience, locate a list of restaurants based on the location, map services, Rich site services, entered by the user. 2
  • 14. 1.3.2 Specific objectives ˆ To design a mobile restaurant tracker for android phones. ˆ To investigate system requirements and develop a Mobile restaurant tracker prototype ˆ To test and validate the application with real data. ˆ To evaluate users’ perceptions on the mobile restaurant tracker 1.4 Scope This study focused on location tracking of restaurants in Gulu Northern Uganda 1.5 Significance/ outcomes The significances of this study are as follows: ˆ The Mobile Restaurant Tracker for Android phones offers numerous op- portunities for users to accomplish their tasks of locating/tracking the best restaurant in the vicinity more quickly and efficiently. ˆ Introduce a new concept in the tracking system which enables users to access its services any where and any time using the android phone. ˆ The prototype utilizes the existing mobile interface and database infras- tructures, thus Mobile Restaurant Tracker does not require extra cost to take advantage of the mobile technology. 3
  • 15. Chapter 2 Litrature Review 2.1 Introduction This literature review explores potential information to identify current knowl- edge and key issues relating to development of a prototype of a Mobile Restauar- ant Tracker application for the casual restaurant industry to meet business re- quirements, which are divided into five sections: Tracker for restaurants, Soft- ware usability and human-computer interaction (HCI), and Software develop- ment methodology, prototyping techniques, and Mobile application development for Mobile Restaurant Tracker on Android devices. 2.2 State of Art 2.2.1 Mobile application development on iOS or Android devices Ordering food and drinks at a dining table using an e-menu or tablet computer, such as iPad and Samsung Galaxy, is an easy and effective method. The build-in wireless feature enables the tablets to connect a network and the Internet eas- ily, and multi-touch screen and its interfaces greatly enhance responsiveness and usability (Ray, 2012). With their slim size, the tablets are easier to install than personal computers used for table side touch screen e-menu, and their screen size is bigger than one on a general smart phone. This allows diners to view the e-menu at their convenience and place their order when they are ready to do so (John 2012). These days, the majority of applications on tablets are based on Apple’s iOS and Google’s Android platform because of their popularity and divergent approaches (Tracy, 2012). As can be seen in table 2.1, the iOS plat- form only supports Apple devices, for instance, iPad and iPhone. In contrast, Android is an open-source platform owned by Google, who distributes Android operating system to several mobile manufacturers including Samsung, HTC and LG, to install on their devices. Furthermore, Android applications use mainly 4
  • 16. Table 2.1: Comparison of mobile development platforms on iOS and Android (Ray 2012; Lee 2012; Goadrich and Rogers 2011) Java as a programming language. Developers can use open various source de- veloping tools, such as Google Inventor, IBM Eclipse and NetBeans, whereas the iOS platform uses Objective-C language, which prefers one particular tool, namely Xcode. Although Android applications can run with a range of hardware, Goadrich and Rogers (2011) and Shackles (2012) similarly mention that developing ap- plications on Android devices is more difficult than that on the iOS platform in terms of user interface design because Android devices support a variety of tablet appliances, which all have varying screen sizes and hardware specifica- tions. As a result, developers find it hard to design an application, especially user interfaces that fit with those multiple devices. Both iOS and Android have advantages and drawbacks. However, using Web services is a good solution to support iPad and Android devices because they can both communicate with iOS and Android platforms. Web services also enable developers to reduce the complexity of coding on mobile devices (Gossweiler 2011). As can be seen in Figure 2.2, accessing databases and business process functionalities can be implemented by other platforms such as .Net and Java, whereas managing user interfaces or presentations can be developed separately on iOS and Android devices (Lee 2012; Microsoft ASP.Net Team 2009). 5
  • 17. Table 2.2: Cross-platform communication using Web services Adopted from Microsoft ASP.Net Team (2009) and Lee (2012) 2.2.2 Mobile Technology According to Turban, Leidner, McLean and Wetherbe (2007), Mobile technolo- gies potentially create a wide variety of uses and limitations that differ signif- icantly from desktop and laptop technologies. Dankers, Garefalakis, Schaffel- hofer & Wright (2002), found that today most people are equipped with mobile devices and most of them already have good knowledge and experiences in using mobile devices to access internet applications. Veksttrend (2002), realised that the total number of remote workers in European Union (EU) has grown from six to thirteen percent in the period from 1999 to 2002. Schei and Fritzner (2002), found that the number of subscribers of mobile phones has also increased in the same period in Norway. Even though, the number of subscribers was already substantial, it grew approximately 30 percent. In 2001, 3,201,554 people were mobile phone subscribers. That is 71% of the population, with comparison, only approximately 30% of the population in the USA has mobile subscription. Chen and Kinshuk (2005), found that China has 206 million subscribers in 2002, which is 16.19% of China’s population. One reason for this growth can be the expansion of mobile devices like smart phones, personal digital assistants (PDAs) and mobile phones in the market. Chen and Kinshuk (2005), Nilas, Sueset, and Muguruma (2004), Schei and Fritzner (2002), stated that smart phone is a mobile device with both PDA and mobile phone capabilities. It is a handheld computing device that contains applications like word processor, calculation program, calendar and perhaps some communication possibilities (What-Is.Net, 2006). The number of mobile phones has increased rabidly. Schei & Fritzner (2002), found that in Norway, 78,000 PDAs were sold in 6
  • 18. 2000 and 60,000 in 2001. McDonough (2002), also noted that in 2002, the sales were much lower Worldwide in 2001, 13.1 million units were sold and Deshpande and Keskar (2002) noted that according to Intel Developer Update Magazine in 2002, there were approximately 1 billion cellular phones used, with 1.8 billion in 2006. Market penetration is approaching 50 percent in the U.S., and has reached 70 percent in Western Europe, Japan and Korea. 2.2.3 Software usability and Human-Computer Interac- tion (HCI) In a software engineering perspective, the usability has been recognized as an essential key factor to evaluate software quality (Gulati and Dubey 2012). Majid (2011) similarly describes that effectiveness of software can be measured based on its usability in terms of a HCI design and users’ experience in using the software. Therefore, consideration of HCI is an essential factor in delivering high quality software following business needs. In addition, because HCI deals with the way that people interact with information on electronic devices, a HCI design should help non-IT proficient users to use the software without specialized IT knowledge (Edexcel 2010). For example, effective graphical user interfaces (GUIs) on Mobile Restaurant Tracker should be easy to use without a user manual or long instruction by a waiting staff. Therefore, to answer the research question, HCI design should be considered and evaluated by both users and developers in all development processes to produce the quality of the software prototype (Adikari 2009). The key quality components of HCI design suggested by Norman and Nielsen (2011), and Nielsen (1993) can be used to enhance usability of the prototype developed in this project as follows; ˆ Visibility: The application allows users to know the result of each opera- tion. ˆ Feedback: The application allows users to return to a previous screen. Memorability: Users are easily able to recognize when they return to use software again. The application should contain consistent user interfaces. ˆ Learnability: Users find it easy to accomplish basic tasks the first time. ˆ Efficiency: Users are quickly able to learn and perform tasks. ˆ Satisfaction: users are pleasant to use software. However, Hussain. (2012) and (Gulati and Dubey 2012) similarly suggest that successful software development is not only associated with HCI and software usability, but is also dependent on how software development processes fit so- lutions into problem areas required by customers or businesses. The software development methodology is reviewed in the following section. 7
  • 19. 2.2.4 Location Based Services Location Based Service (LBS) LBS is mobile service that has the capability to provide real time information based on the user’s location,Amit kushwah(2011).. Geographical Information System (GIS) has been the heart of LBS in order to provide all the functionaliti es in LBS. First, we may send location information to remote parties. This set of services are commonly used today, e.g., in location tracking applications. Second, use location information to make communication decisions, e.g., a user agent may automatica lly disable instant messaging when driving. Third, location changes can trigger communication actions, e.g., when a person’s user agent gets a location notification indicating the person enters a room, the user agent may automatically turn on the light of the room. Sending location information to remote parties for location tracking Locations are usually represented in geospatial coordinates or civil addresses for tracking. By enabling to upload real time location and to create the content “on the spot”, we can expect more variety of location - based services 2.2.5 GPS and Google Maps With location positioning system such as GPS becoming popular, there is a growing demand for location - based applications. Priyanka,Ruta, Neha(2012) .It is easier, these days to utilize map information by connecting GPS receiver to PC and PDA. Corresponding to this momentum, GPS receivers are now embedded into mobile phones and applications using the location of t he user in real - time are widely available. GPS chips are now included in many devices to analyse satellite signals and determine the user’s location with high accuracy. In a large social event, such as a big conference, since people come to communicate wit h each other, they are more likely to release their location information and the location privacy is not an essential concern. In addition, people usually need to register to join a conference so a location server can easily get the participants’ profiles. Hence, the server - centric mode is an economic way to handle location detection for big conferences. One of the key technological advances for the development of location - based applications is the use and availability of positioning systems. 2.3 State of Practice 2.3.1 Electronic menu (e-menu) for restaurants E-menu is a new technology for restaurant ordering solutions. The system in- cludes touch-screen devices installed with a piece of software to show a restau- rant menu with actual photos of the dishes (Emenunyy 2012). The touch-screen devices are not only used to display the list of food and beverages, but also to process the restaurant services, from ordering to payment (Jenie 2011). In gen- 8
  • 20. eral, an e-menu is used in three different ways: tablet e-menu, table side touch screen e-menu and a touch screen menu for waiting areas, However, Chen, Lin, and Yen (2011) indicate that interactive restaurant tabletop e-menus can also be implemented by using interactive surface technol- ogy to enlarge the size of menus and increase customer attraction. 2.3.2 PMR: Personalized Mobile Restaurant system Personalized mobile restaurant system(Daraghmi, E.Y, Shyan-Ming Yuan(2013)) involve deploying the existing technologies to accommodate the differences be- tween individuals. The existing applications have undertaken with the price and the location factors in mind. They show the same results regardless the personal special needs of consumers. The realization of the next generation of personalized systems will be a challenging task. For our research purpose, the personal special needs are defined as: (Religions, Cultures, Allergies, Health Condition, Diet, Preferences and Dislikes) needs that affect many aspects of a consumer life. In general there is no shortage of the restaurant apps available in the App Store, However, many of these apps are based on regular factors such as price and location. They are not a great choice for consumers with personal special needs. 2.3.3 Automated Food Ordering System w ith Real - Time Customer Feedback Automated Food Ordering System w ith Real - Time Customer Feedback. S hweta Shashikant Tanpure, Priyanka R. Shidankar,Madhura M. Joshi(2013) ,this system, implements wireless data access to servers. The android appli- cation on user’s mobile will have all the menu details. The order details from customer’s mobile are wirelessly updated in central database and subsequently sent to kitchen and cashier respectively. The restaurant owner can manage the menu modifications easily. The wireless application on mobile devices provide a means of convenience, improving efficiency and accuracy for restaurants by saving time, reducing human errors and real - time customer feedback. This system successfully over comes the drawbacks in earlier PDA based food order- ing system and is less expensive and more effective than the multi - touchable restaurant management systems. 9
  • 21. Chapter 3 Methodology 3.1 Introduction This chapter discusses the various methods that were used to gather relevant and essential data used to conduct research. It considers the languages, tools and materials that were used in processing data and developing interfaces and database for Agricultural Advisory System. 3.2 Data Collection Various data collection methods mainly interview others includes document re- view and Focus interaction were used. 3.2.1 Document Reviews This has been achieved through General literature on internet on tracking sys- tems and technology. i was able to browse for all related information on Restau- rant especially management. 3.2.2 Focus Interaction Through interviews, I was able to engage the restaurant managers, waiters and waitress and some customers, The data they willingly provided were later used in the system. 3.3 Data Analysis All the entities for example: Restaurant name ,address and the contacts were identified along with other entities and processes involved in the system. 10
  • 22. 3.4 System Development Mobile Restaurant Tracker application was developed using XML to create front end user interfaces and JAVA and MySQL were used to create the database back end. 3.5 Validation and System Testing ˆ System testing was done by feeding sample data into the system example Restaurant name , Restaurant address, the contacts and the exact location GPS coordinates of each restuarant is tracked from the specific restaurant dummy data for abstracts and other fields. ˆ System validation was achieved leaving some fields empty. Warning feed back messages such as sorry, there is no internet, location saved were noted as a result. And consequently no further actions can be performed unless their is internet connectivity. 11
  • 23. Chapter 4 System design and implementation 4.1 Introduction This chapter was primarily paying attention to the study of the current existing system; analysis of the intended system and the use of requirements obtained to design and implement the proposed or intended system. 4.2 System Study My study focused on tracking of restaurants on the google map , and use the google map functionalities to help the application user to reach to a destined restaurant, As such the necessary extensions to specifically map restaurants in Gulu were identified and knowledge obtained from this study was used as a foundation for the development of the proposed system. 4.2.1 Problem with the Current System The current system of tracking a location of a restaurant on the map requires:- ˆ The user to search physically and collect the required information about their taste or find out from friends. ˆ The user has no idea of where the restaurant is located and the shortest route to take to reach a specific restaurant. 4.3 System Objectives ˆ To design a mobile restaurant tracker for android phones. 12
  • 24. ˆ To investigate system requirements and develop a Mobile restaurant tracker prototype ˆ To test and validate the application with real data. ˆ To evaluate users’ perceptions on the mobile restaurant tracker 4.4 Feasibility studies: A feasibility study describes whether or not the proposed system is worthwhile A short focused study that checks ˆ If the system contributes to organizational objectives. ˆ If the system can be engineered using technology and within budget. ˆ If the system can be integrated with other systems that are used. Facts considered in the feasibility analysis were. ˆ Technical Feasibility ˆ Economic Feasibility ˆ Behavioural Feasibility 4.4.1 Technology and system feasibility The assessment is based on an outline design of system requirements in terms of Input, Processes, Output, Fields, Programs, and Procedures. This can be quantified in terms of volumes of data, trends, frequency of updating, etc. in order to estimate whether the new system will perform ade- quately or not. Considering my project if is technically feasible. Mobile Restau- rant Tracker using Android which is a latest idea and the mobile applications here are developed in JAVA ADT which contains all SDK’s of the Android OS and supports android applications. This software is technically well and high in performance. It has got many features like buttons, layouts, designs etc., 4.4.2 Economic feasibility Economic analysis is the most frequently used method for evaluating the ef- fectiveness of a new system. More commonly known as cost/benefit analysis, the procedure is to determine the benefits and savings that are expected from a candidate system and compare them with costs. If benefits outweigh costs, then the decision is made to design and implement the system. Considering my project the android is one of the best operating system in mobile phones used to develop the applications which runs on the mobile platform, which serves people a good scope of development in the software field and also it attracts the users. Android mobiles weigh low cost than i-Phones and other mobile operating system. 13
  • 25. 4.4.3 Operational feasibility Operational feasibility is a measure of how well a proposed system solves the problems, and takes advantage of the opportunities identified during scope def- inition and how it satisfies the requirements identified in the requirements anal- ysis phase of system development. Proposed system here is being developed basing on the Java language using the Android software development kit (SDK). The SDK includes a comprehensive set of development tools, including a debug- ger, software libraries, a handset emulator based on QEMU, documentation, sample code, and tutorials. The officially supported integrated development environment (IDE) is Eclipse using the Android Development Tools (ADT) plugin. Other development tools are available, including a Native Development Kit for applications or extensions in C or C++, Google App Inventor, a vi- sual environment for novice programmers, and various cross platform mobile web applications frameworks such as xml and SQLite as a Relational database management system(RDBMS). 4.5 Requirement Documentation Under this, requirements are broadly categorized into: ˆ User requirements. ˆ System requirements. 4.5.1 User requirements The requirements for application users has been centered to what the application user is required to do as specified below. ˆ The application user should be able to Capture, store and process details about a specific restaurant . ˆ The application user should also be able view the details of restaurants captured in the database ˆ The application user should be able to save into the database the GPS coordinates at a specific point of a restaurant. ˆ The application user should be able to get informed by entering the RSS feed-url of the restaurant and be aware of new events and latest updates from a specific restaurant . ˆ The application user should be able to use the functionalities of the google map through the help function. ˆ The application user should be able to directly contact the restaurant management by using the call function embaded in the application based on the restaurant contacts captured in the database. 14
  • 26. ˆ Finally ,the application user should be able to set a media alarm to re- mind him or her about lunch time and view the notification when the appropriate time set by the user comes. 4.5.2 System requirements This section ruminates on the services or functionality that a system should provide to users and some of the operational constraints under which the sys- tem should operate. It has been segmented into functional and non-functional requirements as seen below: 4.5.2.1 Functional Requirements This describes the application’s capabilities and the activities that the applica- tion should carry out. Mobile Restaurant Tracker has the following capabilities to offer. ˆ Capture, store and process details about a specific restaurant . ˆ Allows the application user to view the details of restaurants captured in the database ˆ Allows the application user to save his or her GPS coordinates to help him or her navigate from his or her current location to a restaurant of his or her choice . ˆ Allows the application user to get informed by entering the RSS feed-url of the restaurant and be aware of new events and latest updates from a specific restaurant . ˆ Provides the application user an ease to use the functionalities of the google map through the help function. ˆ Allows the application user to directly contact the restaurant manage- ment by using the call function embedded in the application based on the restaurant contacts captured in the database. ˆ Allows the application user to set a media alarm to remind him or her about lunch time. 4.5.2.2 Non-Functional Requirements This refers to the limitations and constraints of the application. They are as seen below ˆ The application runs on devices that support Android OS of version 3.2 or later ˆ The application also requires Wi-fi internet 15
  • 27. Minimium system requirements Operating system Android Operating system Android version 3.2 and later versions Internal storage space 4GB External memory(SD card) 4GB RAM 1GB Kernel version 3.4.2 and later versions Table 4.1: Minimium system requirements ˆ The application uses the GPS Technology and therefore the device Must be a GPS enabled phone. ˆ The application also has a funcitionality of call dialing and therefore ,the device Must support dial calls. ˆ The application uses an alarm system to remind the users about time for lunch, therefore the device Must support audio media functionality. ˆ The application user must register the android device with google by cre- ating an account or using an existing google account to access the google map. Note: Upgrade of RAM and External and internal memory size and space of the device will improve the performance of the application especially when running multiple applications and programs on the device at the same instances. 4.6 System Architeture The figure [3.1] shows the diagram of Android architecture. Android OS is basically a software stack with various layers with each layer offering different services to the layer above it. The layers include a Linux Kernel which is responsible for interaction with the hardware. Libraries are written in C or C++ and are specific to the hardware of the system. Android Runtime consists of Dalvik Virtual machine and Core Java libraries responsible for running the applications. It is the Application Framework that our application interacts withAndroid Framework Components. The kernel in use is a Linux 2.6 series kernel, modified for special needs in power management, memory management and the runtime environment. Right above the kernel run some Linux typical daemons like bluez for Bluetooth sup- port and wpa supplicant for WiFi encryption. As Android is supposed to run on devices with little main memory and low powered CPUs, the libraries for CPU and GPU intensive tasks are compiled to device optimized native code. Basic libraries like the libc or libm were developed especially for low memory consumption and because of licensing issues on Android. In this layer the sur- face manager handles screen access for the window manager from the framework 16
  • 28. Figure 4.1: Android Architecture showing the major components of Android OS (Android Wiki, 2010) 17
  • 29. layer. Opposing to other frameworks, the media framework resides in this layer, as it includes audio and video codecs that have to be heavily optimized. The Android Runtime consists of the Dalvik virtual machine and the Java core li- braries. The Dalvik virtual machine is an interpreter for byte code that has been transformed from Java byte code to Dalvik byte code. Dalvik itself is compiled to native code whereas the the core libraries are written in Java, thus interpreted by Dalvik. Frameworks in the Application Framework layer are written in Java and provide abstractions of the underlying native libraries and Dalvik capabilities to applications. Android applications run in their own sandboxed Dalvik VM and can consist of multiple components: Activities, services, broadcast receivers and content providers. Components can interact with other components of the same or a different application via intents. 4.6.1 Android platform In this section, the various components of an android application such as activ- ity, intent and so on, are discussed 4.6.1.1 AndroidManifest.xml file Every android application must have an AndroidManifest.xml file in its root directory. This document is used by various facilities in the system to ob- tain administrative and organizational information about the application.In the manifest file 23 predefined element types are allowed to specify among other things the application name, the components of the application, permissions, needed libraries and filters for intents and broadcasts. During development the manifest file holds the control information for instrumentation support. It also lists out all the activities, intents, intent-filters, permissions etc the application user. 4.6.1.2 Activities An Activity is a single screen of an application like a browser window or a settings page. It contains the visual elements that present data (like an image) or allow user interaction (like a button). Each application can have multiple activities whereat the transition between the different activities is initiated via intents. All activities are subclasses from android.app.Activity and their life cycle is controlled by the on DetailFragment() methods. This concept is needed by Android’s way of handling multitasking and helps dealing with low memory situations. The main functions are: onCreate() The initial method to set up an Activity. onDestroy() The counterpart to onCreate(). onResume() This method is called if the Activity is visible in the foreground and ready to get and process user input. 18
  • 30. onPause() The method has to quickly save uncommitted data and stop CPU intensive work to prepare the Activity to lose the focus and going to background. onRestart() This method has to restore a previously saved state of the Ac- tivity, as it is called after an activity was completely stopped and is needed again. An activity provides a means of interaction to the user. It provides a win- dow where the UI can be designed according to the window. Almost all activ- ities interact with the users. This application has the following activities: De- tailForm, EditPreferences, FeedActivity,RestaurantMap, AlarmActivity, Help- Page, Kakanyero,Coffee hut, BomahHotel, FreeZone,GoldenGate, HavannaHo- tel, KspHotel, PearlAfrique, SunSet, Kamah, HappyNest,Churchill. 4.6.1.3 Services For a service, the lifetime is simpler than the one of an activity, as the onRe- sume(), onPause() and onStop() hooks do not exist. For interactive services, there are the onBind(), onUnbind() and onRebind() hooks that are called to start, stop and restart a service. The process type alters between foreground at creation and deletion time and service at run time. Broadcast receivers only have the onReceive() hook which runs at foreground process importance. If an activity needs to save it’s state to present the user the same exact state the activity was in when it was left, the onSaveInstanceState() method can be used for this purpose. This hook is called before the onPause() hook is called and allows to save the dynamic data as key-value pairs in a Bundle. The saved state object can be passed to onCreate() and onRestoreInstanceState() to restore the state of the activity. 4.6.1.4 Intents, Intent filters and receivers Intent filters and receivers Unlike Content Providers, the other three component types of an application (activities, broadcast receivers and services) are activated through intents. An Intent is an asynchronously sent message object including the message that should be transported. The contained message either holds the name of the action that should be performed, or the name of the action being announced. The former applies to activities and services, the latter to broadcast receivers. The Intent class has some actions like ACTION EDIT and ACTION VIEW or for broadcasts ACTION TIME TICK included already. In addition to the action, the RSSfeed contains an Uniform Resource Identifier (URI) that specifies the data used for the given action. Optionally the Intent object can hold a category, a type, a component name, extra data and flags. Android utilizes different hooks in the application components to deliver the intents. For an activity, it’s OnHandleIntent() method is called, at a service the FeedService() method is called. Broadcast actions can be announced using Context.sendBroadcast() or similar methods. Android sends the Intent to the onReceive() method of all matching registered receivers. Intents can be filtered by an application to specify which intents can be processed by the application’s 19
  • 31. Figure 4.2: Life cycle graph of an Activity. The graph for a Service is similar 20
  • 32. components. The list of filters is set in the application’s manifest file, thus Android can determine the allowed intents before starting an application. <intent-filter> <action android:name=”android.intent.action.MAIN” /> <category android:name=”android.intent.category.LAUNCHER” /> </intent-filter> 21
  • 33. Figure 4.3: Meaning of symbols used 4.6.2 System Design This phase is concerned with modeling the proposed system based on the user and system requirements obtained therefore designing the new aspect of the System. Below are the meaning of some standard symbols used: 4.6.2.1 Conceptual System Design This section is concerned with the basic function of the system and relationship among the entities. It gives conceptual (theoretical) design of how the system is functioning. 22
  • 35. 4.6.2.2 Use Case Diagram A use case diagram captures the actors and the role they perform in a system. It depicts the roles performed by each actor. The two actors for this project is an application user. 24
  • 36. Figure 4.5: Use Case diagram 25
  • 37. 4.6.2.3 Class Diagram The class diagram below represents the important classes implemented for the application with their operations and return types. The diagram also shows how each class is associated with other classes in the system. Each activity is represented as a class and the attributes. 26
  • 38. Figure 4.6: class diagram 27
  • 39. Field Name Data type Field size id Integer P.K Autoincreament Name Text 120 Address Text 100 Feed Text 90 Lat double 50 Lon double 50 phone long 15 Table 4.2: Database schema 4.6.3 Data dicionary The Data dictionary in Table [4.2] represents the tables, attributes and corre- sponding data types implemented for the database of application. Table: Restaurants 28
  • 40. 4.7 Implementation The Mobile Restaurant Tracker application was designed from a user point of view. The user friendly design helps the users in accomplishing their task with ease. Attempts have been made to keep the design simple and understandable. The screens were designed in XML and the logical aspect was written in Java. The database used is MySQLite where all the information related to restaurants and the GPS coordinates of restaurants locations is stored. The web service used to connect to the help page and the RSS feed service designed in HTML5. Google Maps API has been used to make it easy for the user to figure out the Locationof the restaurants and to find the route to a particular restaurant. Debugging of the application throughout the development was done using Dalvik Debug Monitor Server (DDMS). DDMS provides port-forwarding ser- vices, screen capture on the device, thread and heap information on the device, logcat, process, and radio state information, incoming call and SMS spoofing, location data spoofing . DDMS is also used to verify the location based services implemented in the application. 4.7.1 JAVA Java technology is an object-oriented,high-level programming language, platform- independent, multithreaded programming environment. The Java programming language is a that can be characterized by all of the following : ˆ Simple ˆ Architecture neutral ˆ Object oriented ˆ Portable ˆ Distributed ˆ High performance ˆ Multithreaded ˆ Robust ˆ Dynamic Secure Java is a programming language originally developed by James Gosling at Sun Microsystems (which is now a subsidiary of Oracle Corporation) and released in 1995 as a core component of Sun Microsystems’ Java platform. The language derives much of its syntax from C and C++ but has a sim- pler object model and fewer low-level facilities. Java applications are typically compiled to byte code (class file) that can run on any Java Virtual Machine 29
  • 41. (JVM) regardless of computer architecture. Java is a general-purpose, concur- rent, class-based, object-oriented language that is specifically designed to have as few implementation dependencies as possible. It is intended to let application developers ”write once, run anywhere”. Java is currently one of the most popu- lar programming languages in use, and is widely used from application software to web applications. ˆ Automatic memory management Java uses an automatic garbage collector to manage memory in the object life- cycle. The programmer determines when objects are created, and the Java runtime is responsible for recovering the memory once objects are no longer in use. Once no references to an object remain, the unreachable memory becomes eligible to be freed automatically by the garbage collector. Something similar to a memory leak may still occur if a programmer’s code holds a reference to an object that is no longer needed, typically when objects that are no longer needed are stored in containers that are still in use. If methods for a nonexistent object are called, a ”null pointer exception” is thrown. ˆ Syntax The syntax of Java is largely derived from C++. Unlike C++, which combines the syntax for structured, generic, and object-oriented programming, Java was built almost exclusively as an object-oriented language. All code is written inside a class, and everything is an object, with the exception of the primitive data types (integers, floating-point numbers, boolean values, and characters), which are not classes for performance reasons. Java uses similar commenting methods to C++. There are three different styles of comment: ˆ A single line style marked with two slashes (//), ˆ A multiple line style opened with a slash asterisk (/*) and ˆ Closed with an asterisk slash (*/), and theJavadoc commenting style opened with ˆ A slash and two asterisks (/**) and ˆ Closed with an asterisk slash (*/). The Javadoc style of commenting allows the user to run the Javadoc executable to compile documentation for the program. Example: publicclassHelloWorld { publicstaticvoid main(String[] args) { System.out.println(”Hello, world!”); } } Editions: 30
  • 42. Sun has defined and supports four editions of Java targeting different ap- plication environments and segmented many of its APIs so that they belong to one of the platforms. The platforms are: ˆ Java Card for smartcards. ˆ Java ADT(Android Development tool) ˆ Java Platform, Micro Edition (Java ME) — targeting environments with limited resources. ˆ Java Platform, Standard Edition (Java SE) — targeting workstation en- vironments. ˆ Java Platform, Enterprise Edition (Java EE) — targeting large distributed enterprise or Internet environment. 3.1.2 4.7.2 XML ˆ Extensible Markup Language (XML) is a set of rules for encoding docu- ments in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards. ˆ XML’s design goals emphasize simplicity, generality, and usability over the Internet. It is a textual data format with strong support via Unicode for the languages of the world. Although the design of XML focuses on documents, it is widely used for the representation of arbitrary data structures, for example in web services. Key terminology: ˆ The material in this section is based on the XML Specification. This is not an exhaustive list of all the constructs which appear in XML; it provides an introduction to the key constructs most often encountered in day-to-day use. ˆ Character: By definition, an XML document is a string of characters. Almost every legal Unicode character may appear in an XML document. Processor and Application: The processor analyzes the markup and passes structured information to an application. The specification places require- ments on what an XML processor must do and not do, but the application is outside its scope. The processor (as the specification calls it) is often referred to colloquially as an XML parser. Markup and Content: The characters which make up an XML document are divided into markup and content. Markup and content may be distinguished by the applica- tion of simple syntactic rules. All strings which constitute markup either 31
  • 43. begin with the character ”<” and end with a ”>”, or begin with the char- acter ”&” and end with a ”;”. Strings of characters which are not markup are content. ˆ Tag: A markup construct that begins with ”<” and ends with ”>”. Tags come in three flavors: start-tags, for example <section>, end-tags, for example </section>, and empty-element tags, for example <line-break />. ˆ Element: A logical component of a document which either begins with a start-tag and ends with a matching end-tag, or consists only of an empty- element tag. The characters between the start- and end-tags, if any, are theelement’s content, and may contain markup, including other elements, which are called child elements. An example for child element is 1. <Greeting>Hello, world.</Greeting> Another is <line-break />. ˆ Attribute: A markup construct consisting of a name/value pair that exists within a start-tag or empty-tag element tag.In the example (belowthe element img has two attributes, src and alt: 1. <img src=”appicon.png” alt=’lunchlist, by Mubarak’ />. 2. Another example would be <step number=”3”>Connect A to B.</step> 3. where the name of the attribute is ”number” and the value is ”3”. XML ˆ Declaration: XML documents may begin by declaring some information about themselves, as in the following example. <? xmlversion=”1.0”encoding=”UTF- 8”?> 4.7.3 MySQLite/ MySQL MySQLite is a relational database management system (RDBMS) that runs as a server providing multi-user access to a number of databases. It is named after developer Michael Widenius’ daughter, my. The SQL phrase stands for Structured Query Language. The MySQL de- velopment project has made its source code available under the terms of the GNU General Public License, as well as under a variety of proprietary agree- ments. MySQLite was owned and sponsored by a single for-profit firm, the Swedish company MySQLite AB, now owned by Oracle Corporation. Free- software projects that require a full-featured database management system of- ten use MySQLiteite. For commercial use, several paid editions are available, and offer additional functionality. Some free software project examples: Joomla, WordPress, MyBB, phpBB, Drupal and other software built on the LAMP soft- ware stack. MySQLite is also used in many high-profile, large-scale World Wide Web products, including Wikipedia, Google and Face book. Uses: MySQLite is a popular choice of database for use in web applications, and is a central 32
  • 44. component of the widely used LAMP web application software stack—LAMP is an acronym for ”Linux, Apache, MySQLite, Perl/PHP/Python”. MySQLite is used in some of the most frequently visited web sites on the Internet, including Flicker,Nokia.com, YouTube and as previously mentioned; Wikipedia, Google and Face book. ˆ Platforms and interfaces MySQLite is written in C and C++. Its SQL parser is written in yacc, and a home-brewed lexical analyzer named sql lex.cc. MySQLite works on many different system platforms, including AIX, BSDi, FreeBSD, HP-UX, eComSta- tion, i5/OS, IRIX, Linux, Mac OS X, Microsoft Windows, NetBSD, Novell Net- Ware, OpenBSD, OpenSolaris, OS/2 Warp, QNX, Solaris, Symbian, SunOS, SCO OpenServer, SCO UnixWare, Sanos and Tru64. A port of MySQLite to OpenVMS also exists. Many programming languages with language-specific APIs include libraries for accessing MySQLite databases. These include MySQLite Connector/Net for integration with Microsoft’s Vi- sual Studio (languages such as C# and VB are most commonly used) and the ODBC driver for Java. In addition, an ODBC interface called MyODBC allows additional pro- gramming languages that support the ODBC interface to communicate with a MySQLite database, such as ASP or ColdFusion. The HTSQL - URL based query method also ships with a MySQLite adapter, allowing direct interaction between a MySQLite database and any web client via structured URLs. The MySQLite server and official libraries are mostly implemented in ANSI C/ANSI C++. Features: ˆ For storing historical data in little space ˆ Transactions with the InnoDB, BDB and Cluster storage engines; save points with InnoDBSSL support As of April 2009, MySQLite offered MySQLite 5.1 in two different variants: the open source MySQLite Community Server and the commercial Enterprise Server. MySQLite 5.5 is offered under the same licences. They have a common code base and include the following features: ˆ A broad subset of ANSI SQL 99, as well as extensions ˆ Cross-platform support ˆ Stored procedures ˆ Triggers ˆ Cursors ˆ Updatable Views 33
  • 45. ˆ True Varchar support ˆ Information schema ˆ Strict mode ˆ X/Open XAdistributed transaction processing (DTP) support; two phase commit as part of this, using Oracle’s InnoDB engine ˆ Independent storage engines (MyISAM for read speed, InnoDB for trans- actions and referential integrity, MySQLite Archive ˆ Query caching ˆ Sub-SELECTs (i.e. nested SELECTs) ˆ Replication support (i.e. Master-Master Replication & Master-Slave Repli- cation) with one master per slave, many slaves per master, no automatic support for multiple masters per slave. ˆ Full-text indexing and searching using MyISAM engine ˆ Embedded database library 34
  • 46. Chapter 5 Presentation and Discussion of results 5.1 Introduction This chapter discusses the outcome of the project. Introduced in this chapter are the performance; analysis and benefits of Mobile Restaurant tracker. 5.2 Graphical User Interface The user interface is kept simple and understandable. The user need not take any additional effort to understand the functionality and navigation in the ap- plication. The view are chosen in such a way that user can easily understand where the input has to be given. Hints are given to help the user in giving the correct input. The following are the main screens and features in this application. 35
  • 47. Figure 5.1: screen at the launch of the application 5.2.1 Home screen the interface in figure [5.1] shows a brief system menu with the fuctionality of application settings , help and the add button at the left top corner. 36
  • 48. Figure 5.2: precise system menu 5.2.2 Precise system menu The interface in figure [5.2] is achieved by touching the system menu button on the phone ,it enables the user get help related to the use of the application and do some settings to their preferences. 37
  • 49. 5.2.3 System settings The interface in figure [5.3] is the preference setting to sort order of the captured restaurant, sound a lunch alarm, use a notification and choose an alarm ringtone 38
  • 50. Figure 5.3: user’s preference settings 39
  • 51. Figure 5.4: Help page on how to use the googgle map functionalities 5.2.4 Help page The Interface in figure [5.4] is a web page that help the application user on how to use the map in acomplishing the task of navigation and other google map functionalities 40
  • 52. Figure 5.5: Add details of a new restaurant 5.2.5 Add button to capture details of a restaurant The interface in figure [5.5 ] is an interface to view, edit and add a new detail about a restaurant 41
  • 53. Figure 5.6: Captured list of restaurants 5.2.6 List of captured restaurant details The interface in figure [5.6] shows a list of restaurants saved in the database. 42
  • 54. Figure 5.7: Detailed system menu 5.2.7 Detailed system menu the interface in figure [5.7] is generated by touching the system menu on the right side, the system menu is what the application performs ,such as Rss Feed, Save location, show the saved restaurants on google map and moreso the extended google map functionalities such as navigation. 43
  • 55. Figure 5.8: save location 5.2.8 saves curent location of the application user the interface in figure [5.8] shows a text feedback (“location saved”) after touch- ing on save loction from the system menue 44
  • 56. Figure 5.9: Distance , route and time it takes to move to a specific restaurant 5.2.9 Distance , route and time it takes to move to a spe- cific restaurant 45
  • 57. 5.2.10 Navigation from the current location of the user to a specified restaurant. the interfaces in figure [5.9-5.11] shows a sequence of steps in navigating from the users current location when the option to show the restaurant on map is choosen from the application menu. 46
  • 58. Figure 5.10: Navigation Functionality from the current location to a specified restaurant 47
  • 59. Figure 5.11: continuation : navigation 48
  • 60. Figure 5.12: continuation : navigation 5.2.11 Compatibility Testing This application was mainly designed for android phones as it helps the users find the restaurants when they are on the move. Generally they try to carry something handy like cell phones with them and not the tablets. Different android phones have different screen sizes and resolution. The application has been tested for its compatibility with different screen sizes on the emulator. 5.2.11.1 Portrait mode the interface in figure [5.12] shows the compatibility of the application in a portrait view. 49
  • 61. Figure 5.13: The Portrait mode compatibility of the application 5.2.11.2 Landscape mode the interface in figure [5.13] shows the compatibility of the application in a landscape view. Figure 5.14: The Landscape mode compatibility of the application 50
  • 62. Chapter 6 Conclusions ,Future work and Recommendation 6.1 Conclusion This is my first attempt in developing a mobile application which gave me a basic understanding of development and challenges of mobile application devel- opment. The main aim of the project is to provide an easy to use application for tracking the restaurants. The application has been implemented and tested on real devices. 6.2 Recomendation and Future Work The application can be improved in many ways and can be extended to support more devices like the tablets and iOS devices. Following are some of the possible extensions: ˆ The application can be extended to provide a more advanced tracking by taking the zip code as the input. ˆ The application can be extended to provide a more advanced tracking for restaurants in the whole world in various parts of the world. ˆ The application can be extended to show the Top 5 restaurants present in the current city using the Google Maps API. ˆ The application can be extended to makes it easy for the user to send out invitations to his/her friends/colleagues for meetings, dinner and also mark the events in their calendar. ˆ Finally, The application can be extended to make users give their opinions about the restaurants by giving a rating and writing a review. 51
  • 63. Chapter 7 References 1. Emenunyy (2012). Restaurant menu software ‘eMenu’ Ready to wave goodbye to traditional paper menus. [online]. Last accessed 1 April 2012 at: http://your-story.org/restaurant-menu-software-emenu-ready-towave- goodbye-to-traditional-paper-menus-298620. 2. Hussain, Zahid (2012). Practical Usability in XP Software Development Processes. In: The Fifth International Conference on Advances in Computer- Human Interactions, Spain, 30 January 2012. Valencia, IARIA, 208-217. Article from Think mind last accessed 21 April 2012 at: http://www.thinkmind.org/index.php?view=artic 3. Studentwebstaff (2009). Use of E-Menus in the Restaurant Industry. [on- line]. Last accessed 1 April 2012 at: http://www.studentwebstuff.com/mis/showthread.php?t=8049. 4. Michael Rogers, Mark Goadrich (2011 ). A hands-on comparison of iOS vs. android, ACM New York,NY,USA ©2012 ,ISBN: 978-1-4503-1098-7 Order Number: 457120 Pages 663-663 5. Emenu USA (2011). eMenu Pictures. [online]. Last accessed 21 April 2012 at: http://www.emenuny.com/pictures.html. 6. Chirang (2012). E-Menu. [online]. Last accessed 21 April 2012 at: http://e-menuchr. blogspot.co.uk/2012 02 01 archive.html. 7. Chen, Ting-Han, LIN, Hsin-Hou and YEN, Yi-Di (2011). Mojo iCui- sine: The design and implementation of an interactive restaurant tabletop menu. [online]. Human-computer Interaction, 6763, 185-194. Article from SpringerLink last accessed 23 April 2012 at: http://www.springerlink.com/content/m307510134401751/fu 8. Crowston, Kevin, Rubleske, Joseph and Howison, James (2006). Coor- dination Theory: A Ten-Year Retrospective. [online]. Last accessed 22 March 2012 at: http://crowston.syr.edu/system/files/CT%20Review%20to%20distribute.pdf. 52
  • 64. 9. Gutali, Anubha and Dubey, Sanjay Kumar (2012). Critical Analysis on Usability Evaluation Techniques. [online]. International Journal of En- gineering Science and Technology (IJEST), 4(3), 990-997. Article from IJEST last accessed 21 April 2012 at: http://www.ijest.info/docs/IJEST12- 04-03-118.pdf. 10. Edexcel(2010). Human ComputerInteraction [online]. Last accessed 21 March 2012 at: http://www.edexcel.com/migrationdocuments/BTEC%20Nationals%20from%202010/Un 23-Human- Computer-Interaction.pdf. 11. Conceptic (no date). iPad eMenu for restaurant. [online]. Last accessed 22 March 2012 at: http://www.emenu-international.com/iPad-menu-for- restaurants. 12. Jenie, Renan Prasta.(2011). Designing user interface e-menu based on An- droid platform.[online]. Last accessed 21 March 2012 at: http://ict.binus.edu/metamorph/file/research/Jo %20Android%20Komodo%202.pdf. 13. Adikari, Sisira (2009). Little design up-front: A design science approach to integrating usability in Agile requirements engineering. [online]. Infor- mation Systems Journal, 5610, 549-558. Article from Mendeley last ac- cessed 1 April 2012 at: http://www.mendeley.com/research/little-design- upfront-a-design-scienceapproach- to-integrating-usability-into-Agile-requirements- engineering-1. 14. Turban, E., Leidner, D., McLean, E., & Wetherbe, J. (2007). Information Technology for Management: Transforming Organizations in the Digital Economy (6th ed.): John Wiley & Sons. 15. Dankers, J., Garefalakis, T., Schaffelhofer, R., & Wright, T. (2002). Public key infrastructure in mobile systems. Electronics and Communication Engineering Journal 16. Carlsson, C., Carlsson, J., & Walden, P. (2005). Mobile Services For The Hospitality Industry. Paper presented at the Thirteenth European Conference on Information Systems, Regensburg, Germany. 17. Schei, E., & Fritzner, T. C. (2002). MOWAHS: A Study of Applications for Mobile Work. 18. Dankers, J., Garefalakis, T., Schaffelhofer, R., & Wright, T. (2002). Public key infrastructure in mobile systems. Electronics and Communication Engineering Journal . 19. T.P. Liang (2007), ”Adoption of mobile technology in business - a fitvia- bility model”, Industrial Management & data systems, vol . 107, pp. 1154 - 1169, 2007. 20. K. Kamarudin(2009), “The Applictaion of Wireless Food Ordering Sys- tem”, MASAUM Journal of Computing, vol. 1,pp. 178 - 184. 53
  • 65. 21. J. Mustafa, “Touch & Dine : A multi - touchable dining system”, UAEE International Journal of Computer Science and its Applications, vol 1, issue 1.ISSN 2250 - 376 22. XU Hongzhen(2009) , ”Wireless Food Ordering System Based on Web - services”, Second international Conference on Int elligent Computation Technology and Automation. 23. J. Purnama(16 June 2007),“Application of Order Management System in Restaurants”, Semi nar Nasional Aplikasi Teknologi Informasi 2007 , Yogyakarta, (SNATI 2007) ISSN: 1907 - 5022 . 24. Emenu USA( 2011). Conceptic on date Restaurant e-menu solutions . 25. H.Kulkarni, S.Dascalu, F.Harris “Software Development Aspects of a Mo- bile Food Ordering System.” 26. What-Is.Net (2006). What is a PDA Retrieved May 1, 2007, from http://www.what- isnet. info/what-is-a-pda.html?gclid=CJ2toePA-4sCFQmJTAod3SWnYA 27. Priyanka Shah , Ruta Gadgil , Neha Tamhankar .Location Based Re- minder Using GPS For Mobile (Android) , (May 2012), VOL. 2 , NO. 4 ,ISSN 2225 - 7217. 28. Amit Kushwah (March 2011)., “Location Based Services Using Android Mobile Operating System”, International Journal of Advances in Engi- neering & Technology, . (IJAET) ISSN: 2231 - 1963 29. Shweta Shashikant Tanpure, Priyanka R. Shidankar,Madhura M. Joshi( February 2013).Automated Food Ordering System w ith Real - Time Cus- tomer Feedback,Volume 3 , Issue 2 ,ISSN: 2277 128X 30. Walter Binder and Volker Roth.(March 2002) Secure mobile agent systems using Java – where are we heading? In Proc. 17th ACM Symposium on Applied Computing, Special Track on Agents, Interactions, Mobility, and Systems (SAC/AIMS), Madrid, Spain, ACM. 54
  • 66. Chapter 8 Appendix 8.1 android manifest.xml This file is responsible for providing all the information about the application to the Android system. It also has the minimum SDK version needed to run the application. The permissions to access the internet, The permission to access network state, the permission to access the fine location and permission to call phone. <?xml version=”1.0” encoding=”utf-8”?> <manifest android:versionCode=”1” android:versionName=”1.0” package=”apt.restaurant” xmlns:android=”http://schemas.android.com/apk/res/android”> <uses-sdk android:minSdkVersion=”11” android:targetSdkVersion=”19” /> <uses-permission android:name=”android.permission.INTERNET” /> <uses-permission android:name=”android.permission.ACCESS NETWORK STATE” /> <uses-permission android:name=”android.permission.ACCESS FINE LOCATION” /> <uses-permission android:name=”android.permission.RECEIVE BOOT COMPLETED” /> <uses-permission android:name=”android.permission.CALL PHONE” /> <uses-feature android:name=”android.hardware.telephony” android:required=”false” /> <supports-screens android:largeScreens=”true” android:normalScreens=”true” android:smallScreens=”false” /> <application android:label=”@string/app name” android:icon=”@drawable/appicon” android:allowBackup=”true”> <uses-library android:name=”com.google.android.maps” /> 55
  • 67. <activity android:label=”@string/app name” android:name=”apt.restaurant.LunchList”> <intent-filter> <action android:name=”android.intent.action.MAIN” /> <category android:name=”android.intent.category.LAUNCHER” /> </intent-filter> </activity> <activity android:name=”apt.restaurant.DetailForm”></activity> <activity android:name=”apt.restaurant.EditPreferences”></activity> <activity android:name=”apt.restaurant.FeedActivity”></activity> <activity android:name=”apt.restaurant.RestaurantMap”></activity> <activity android:name=”apt.restaurant.AlarmActivity”></activity> <activity android:name=”apt.restaurant.HelpPage”></activity> <activity android:name=”apt.restaurant.Kakanyero”></activity> <activity android:name=”apt.restaurant.Coffee hut”></activity> <activity android:name=”apt.restaurant.BomahHotel”></activity> <activity android:name=”apt.restaurant.FreeZone”></activity> <activity android:name=”apt.restaurant.GoldenGate”></activity> <activity android:name=”apt.restaurant.HavannaHotel”></activity> <activity android:name=”apt.restaurant.KspHotel”></activity> <activity android:name=”apt.restaurant.PearlAfrique”></activity> <activity android:name=”apt.restaurant.SunSet”></activity> <activity android:name=”apt.restaurant.Kamah”></activity> <activity android:name=”apt.restaurant.HappyNest”></activity> <activity android:name=”apt.restaurant.Churchill”></activity> <service android:name=”apt.restaurant.FeedService”></service> <service android:name=”apt.restaurant.WidgetService”></service> <service android:name=”apt.restaurant.ListWidgetService” android:permission=”android.permission.BIND REMOTEVIEWS”> </ser- vice> <receiver android:enabled=”false” android:name=”apt.restaurant.OnBootReceiver”> <intent-filter> <action android:name=”android.intent.action.BOOT COMPLETED” /> </intent-filter> </receiver> <receiver android:name=”apt.restaurant.OnAlarmReceiver”></receiver> <receiver android:icon=”@drawable/icon” android:label=”@string/app name” android:name=”apt.restaurant.AppWidget”> <intent-filter> <action android:name=”android.appwidget.action.APPWIDGET UPDATE” /> </intent-filter> <meta-data android:name=”android.appwidget.provider” android:resource=”@xml/widget provider” /> </receiver> </application> </manifest> Since the application uses Google Maps API to show the restaurants on the map and to show the route to a particular restaurant, the library has been mentioned. 56
  • 68. 8.2 layouts 8.2.1 map.xml <?xml version=”1.0” encoding=”utf-8”?> <com.google.android.maps.MapView xmlns:android=”http://schemas.android.com/apk/res/android” android:id=”@+id/map” android:layout width=”match parent” android:layout height=”match parent” android:apiKey=”AIzaSyAQhmT 9WL1Zw6iU0HKpJ8NBV5hpP5kCTo” android:clickable=”true” /> 8.2.2 main.xml <?xml version=”1.0” encoding=”utf-8”?> <fragment xmlns:android=”http://schemas.android.com/apk/res/android” class=”apt.restaurant.LunchFragment” android:id=”@+id/lunch” android:layout width=”match parent” android:layout height=”match parent” android:name=”com.google.android.gms.maps.SupportMapFragment” /> 8.2.3 detail form.xml <ScrollView xmlns:android=”http://schemas.android.com/apk/res/android” android:layout width=”match parent” android:layout height=”wrap content”> <TableLayout android:layout width=”match parent” android:layout height=”wrap content” android:stretchColumns=”1” android:shrinkColumns=”1” > <Button android:id=”@+id/track” android:layout width=”fill parent” android:layout height=”wrap content” android:text=”Track the details of the Restaurants” /> <TableRow> <TextView android:text=”Restaurant Name:” /> <EditText android:id=”@+id/name” /> </TableRow> <TableRow> <TextView android:text=”Restaurant Address:” /> <EditText android:id=”@+id/addr” /> </TableRow> <TableRow> <TextView android:text=”Restaurant Phone contact:” /> <EditText android:id=”@+id/phone” android:inputType=”phone” /> </TableRow> <TableRow> <TextView android:text=”Resturant Type:” /> <RadioGroup android:id=”@+id/types”> 57
  • 69. <RadioButton android:id=”@+id/take out” android:text=”Take-Out” android:checked=”true” /> <RadioButton android:id=”@+id/sit down” android:text=”Sit-Down” /> <RadioButton android:id=”@+id/delivery” android:text=”Delivery” /> </RadioGroup> </TableRow> <TableRow> <TextView android:text=”Location:” /> <TextView android:id=”@+id/location” android:text=”(not set)” /> </TableRow> <EditText android:id=”@+id/notes” android:inputType=”textMultiLine” android:gravity=”top” android:lines=”2” android:scrollHorizontally=”false” android:maxLines=”2” android:layout span=”2” android:hint=”Notes” android:layout marginTop=”4dip” /> <EditText android:id=”@+id/feed” android:layout span=”2” android:hint=”Feed URL” /> <TableRow android:id=”@+id/tableRow1” android:layout width=”wrap content” android:layout height=”wrap content” > </TableRow> <Button android:id=”@+id/save” android:layout width=”fill parent” android:layout height=”wrap content” android:text=”Save” /> <Button android:id=”@+id/copyright” android:layout width=”fill parent” android:layout height=”wrap content” android:text=”Developed by [ Mubarak Haruna ] Bcs G-Univ” /> </TableLayout> </ScrollView> 8.2.4 detail activity.xml <?xml version=”1.0” encoding=”utf-8”?> <fragment xmlns:android=”http://schemas.android.com/apk/res/android” 58
  • 70. class=”apt.restaurant.DetailFragment” android:id=”@+id/details” android:layout width=”match parent” android:layout height=”match parent” /> 8.2.5 row.xml <LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android” android:layout width=”match parent” android:layout height=”wrap content” android:orientation=”horizontal” android:padding=”4dip” > <ImageView android:id=”@+id/icon” android:layout width=”wrap content” android:layout height=”match parent” android:layout alignParentTop=”true” android:layout alignParentBottom=”true” android:layout marginRight=”4dip” android:contentDescription=”TODO”/> <LinearLayout android:layout width=”match parent” android:layout height=”wrap content” android:orientation=”vertical” > <TextView android:id=”@+id/title” android:layout width=”match parent” android:layout height=”wrap content” android:layout weight=”1” android:gravity=”center vertical” android:textStyle=”bold” android:maxLines=”1” android:ellipsize=”end” /> <TextView android:id=”@+id/address” android:layout width=”match parent” android:layout height=”wrap content” android:layout weight=”1” android:gravity=”center vertical” android:maxLines=”1” android:ellipsize=”end” /> </LinearLayout> </LinearLayout> 59
  • 71. 8.2.6 help.xml <?xml version=”1.0” encoding=”utf-8”?> <WebView xmlns:android=”http://schemas.android.com/apk/res/android” android:id=”@+id/webkit” android:layout width=”fill parent” android:layout height=”fill parent” /> 8.2.7 alarm.xml <?xml version=”1.0” encoding=”utf-8”?> <TextView xmlns:android=”http://schemas.android.com/apk/res/android” android:layout width=”wrap content” android:layout height=”wrap content” android:text=”It’s time for lunch!” android:textSize=”30sp” android:textStyle=”bold” /> 8.2.8 widget row.xml <?xml version=”1.0” encoding=”utf-8”?> <TextView xmlns:android=”http://schemas.android.com/apk/res/android” android:id=”@android:id/text1” android:layout width=”match parent” android:layout height=”wrap content” android:textAppearance=”?android:attr/textAppearanceLarge” android:gravity=”center vertical” android:paddingLeft=”6dip” android:minHeight=”?android:attr/listPreferredItemHeight” /> 8.2.9 widget.xml <?xml version=”1.0” encoding=”utf-8”?> <RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android” android:layout width=”match parent” android:layout height=”match parent” android:background=”@drawable/widget frame” > <TextView android:id=”@+id/name” android:layout width=”wrap content” android:layout height=”wrap content” android:layout centerVertical=”true” android:layout alignParentLeft=”true” android:layout toLeftOf=”@+id/next” android:textSize=”10pt” android:textColor=”#FFFFFFFF” /> <ImageButton android:id=”@id/next” 60
  • 72. android:layout width=”wrap content” android:layout height=”wrap content” android:layout centerVertical=”true” android:layout alignParentRight=”true” android:src=”@drawable/ff” /> </RelativeLayout> 61