NUIG Android application

fullfattruckΚινητά – Ασύρματες Τεχνολογίες

10 Δεκ 2013 (πριν από 3 χρόνια και 7 μήνες)

87 εμφανίσεις






toda

NUIG Android
application

Carly Bennett, Luke Feeney, Marek Mazur, Domnick Sharkey


3/23/2012


Abstract

Our group project was to build an application for the
Android mobile platform
. We decided
on the subject NUIG. This application was built with the student in mind; new students can
use it to find their way around college. Existing students can also use it to find information
such as lecturer numbers, emails e
tc or doctor information and more. We have achieved
everything we set out to do in our project proposal. This report will go more in depth into
the technologies we used and the application itself.




















Contents

Acknowledgements

Introduction

Application description

Application design

Technical Reviews

Methodology

Conclusions

Appendices



















Acknowledgements

We would like to thank the entire lecturing staff in the IT department in NUIG for providing
us with the knowledge to
complete our project.

We would also like to thank Dr Des Chambers for being a supportive supervisor to our group
project.























Introduction

We have created an application designed especially for students attending NUIG. We had a
number of
ideas to start with such as:



A

shooting augmented reality game similar to the
NUIG assassin

(1)

game. Students
would be able to see targets in the area and gain scores if they shoot people.



An application that could locate
objects such as keys when they have been lost.

We decided not to do the shooting game, as we were unsure how to locate other player

s
phones
. We could have used the wifi network but then every student would have to be
connected to the same wifi in order to

play the game.

The application for finding things was not picked as we would have had to have a GPS
locator on the object maybe by sticker or key ring. These were quite expensive so we
decided to think up some more ideas.

In the end we thought up the NUIG

idea. As some members of the group were new to NUIG
they voiced their concerns as a new student trying to navigate through NUIG or find
information easily. This led us to our final project ideas. We researched other apps by
universities including the univ
ersity of Limerick

(2)

and
UCD

(3)
. These applications where
very informative but we thought we could improve on their applications with our own.

We will explain our application and all of its
features in more depth in the next section.












Application description

Ma
in

Section

The main

Screen is a dashboard layout with four buttons, one for
each section. Each section is explained in more details below. The
application follows the same design throughout. After the user
clicks the NUIG icon in their menu this is the first screen they are
taken to. Within 3
-
4 clicks the user should be in the exact section of
the application they are looking for.




Map Section

(
Unfortunately there were some problems getting a screenshot of Mixare running on the
phone. The image below is representative of ho
w it actually looks.
)


Here is the standard layout for the Mixare environment for the map
section. On the top left is a radar which tells a user what direction the
points are on a map relative to their position. It also displays a
compass bearing.

Points
are shown as red circles (in our map the circles are white) with
the point name underneath. If the user clicks the men
u button on
their phone they have the

option
to view the points on a map from
Google Maps and also to change the zoom level

i.e how many p
oints
show up on the map from a distance defined by changing the slider).

Finally there is a list of all the points on the map currently being shown selectable by
pressing the list view button.






Information

Section

In the about section we have another

dashboard style layout

similar
to the main screen. In this section we have four options also.

The search options allow the user to search for either lecturers or
societies. The course information allow the user to search for a
course and view the course
details, they also have an option to view
the course online on the NUIG website.

The Useful contacts screen gives the user details to important
contacts such as the doctor or fees office. The book a service screen
allows the user to book a room through the

NUIG website or view it
rooms that are free also through the website.






Search option
s


This
is the main screen in the search options
section. It allows the
user to search for lecturers or societies. I will show below how the
search lecturer section w
orks as the societies is the same.







Here we start with the

search bar, this asks for the lecturers
surname to be input. Once the user clicks into the search box the
keyboard pops up to allow for input. If cancel is clicked the search
box is cleared, if search is clicked the search is performed, if nothing
is in t
he text box the search will retrieve all lecturers in the database as in the following
screenshot.


As you see here all the lecturers are displayed. The user can now
scroll down the list and find the lecturer they want. Once the
lecturer is clicked on
,

a
new screen opens up to show that lecturers
details
.





This screen shows how the details appear. When the call lecturer
button is clicked the phone will call the lecturers phone number.
After the call is finished the user can simply click the back button

on
their phone to return to this screen.


Search for a course

This section is very similar to the search
lecturer and societies sections except the
user can view the
PDF

timetables of the course as well as a
web view of the
course on the
NUIG

website thi
s is shown
below in the screen
shots.










Useful contacts

This section shows six different buttons in the dashboard layout
style. Each section is a similair layout allowing the user to view
information that may be important to them as a student.
The
screenshots below show more.





This is the details screen for the careers section. All other sections are
laid out the same with the ability to call the relevant number needed.






Book a service

This screen shows the booking options. Two options are available. The
book room screen brings you to the NUIG website page for booking
rooms. The free it rooms brings you to the NUIG website to view the free rooms.






Student U
nion

s
ection

The Student U
nion section shows six icons/buttons in the dashboard
layout style. From this dashboard
the
user
can easliy find and pick a

sub
-
section that he/she is interested in. The sub
-
sections are decribed
in detail

below:






About

T
he first sub
-
sect
ion from the
SU dashboard shows basic

information
about the NUIG Student Union. On the top of the page is a logo of the
SU and below it
there is a short description of the Student U
nion with
details of its office and opening hours.





Services

This screen shows
a
description of the services provi
ded by the Student
Union. In this

description a user can find a list of the
services provided
by the SU and a
short explanation
of
how and why t
he services are run
.





News

The news sub
-
section shows the actua
l news from

the SU. The news is

download
ed

each time this page is open. When
the
user opens it, a bar
shows a progress of the downloading
,

based on the bytes of the news
file. The file is kept on the server. The format of the
file is .txt. It

can be
eas
il
y updated by

a
member of the SU or the ap
plication administrator,
who has

access to the server.

After clicking on the
title of the news, the user will get
a
full view of it.




My SU card

This section

allow
s a

student to take a picture of a bar code of the SU
card, which they can give to scan instead of the card (it

will save space
in the wallet or pocket of a

student).

When thi
s sub
-
section is opened
for the first time
, a user can take the photo using the mobi
le
built
-
in
camera.
The n
ext time when he/she opens this sub
-
section, the picture
will be displayed on the screen.




Facebook contacts

Knowing the power and popularity of social media in current time, the
SU section has

a link to the SU profile on

Facebo
ok. The user can view it
from the application, read it or ‘like it’.






My SU account

After clicking on the ‘My SU account’ button

the user will be redirected
to

the SU
login page. After log
ging

in
,

the student can view his/her
account details and check
a summary of their

student union card
points.






Blackboard Section

The blackboard section of this project consists of an android webview,
which redirects a user to the university’s blackboard pag
e. The link for
this section comes from the blackboard button on the main dashboard
screen. This shows a user the login screen, where the user can enter their
personal login details in order to get access to blackboard.




This screen shows the main page

after logging in, showing them the most recent
announcements relating to their courses.





Scrolling to the side will show the user a list of the courses they are
registered for. This shows the nature of the screen in a webview.
Zooming out will allow m
ore data to be shown on the screen, but at a
much lower resolution.





This screen shows the homepage for a selected course, where the
announcements, course details and lecture notes can be accessed at a
user’s ease.






Users can select whichever
notes and documents they want and the
device will download them into a downloads folder, which can be viewed
at any stage, as long as the proper software is installed on the phone to
allow for document viewing.






Application design

We wanted the applica
tion to look as clean and authentic as possible. We used the NUIG
brand book for the colours

(4)

and logo styles of our application
. Originally the application
main layout was a series of rectangular buttons which had to be
scrolled through down the
page. We decided this wasn’t a very nice look for our application so we explored more
layout designs. We found a nice tutorial for how to make a dashboard layout

(5)
. The code
was nicely laid out and ea
sy to understand which made it very easy for us to adapt it to
what we wanted our application to look like.

Each button on our dashboard layout has a main picture as well as a picture for when the
button is pressed; these were all made using Adobe
Photosho
p
.

For the sub sections that only had a few options we used normal rectangular buttons. We
found a nice site that showed a nice gradient button with text that had a drop shadow effect
to it.

(6)

We tried to make the design con
sistent throughout the application by using similar layouts,
colour schemes and also the title and footer bar are the same.







Technical reviews

In this section we will explain some of the technical uses of our application. A lot of android
mobile
integration was used, connecting our application with the uses already existing on
the android mobile phones.

Augmented Reality Applications

Augmented reality (AR) has slowly been gaining popularity in mobile applications especially
ones which include directions or map information(such as the Wikitude Open Browser

(7)
).
Several different applications allow developers
to create their own augmented reality
environments. Layar and wikitude are the main applications used to develop augmented
reality but for the Android platform, Layar
Player is not available yet
(8)
. I decided to use
something o
ther than wikitude to see what the other options were in augmented reality. By
researching the different applications I came across Mixare. It is an open source AR engine
which allows developers to create the
ir own data files (in .json
(9)

format) to be used to
create points on a map and dynamically recreates these points on the screen showing
visually where the point is. It seemed like it would be simple and robust enough for what we
needed it for.

Google Maps

The Google Maps AP
I is one of the most popular ways to provide static map information to
an android application. The API allows the embedding of maps from Google Maps into the
application itself. Mixare uses this to generate a static map depending on the current
location of

the user and what points are located near to him/her.

Mixare also uses two other sources to get loca
tion information. OpenStreet

maps and
Wikipedia information are both used to find points of interest (or POI’s) local to the user
and also give information

about the points using Wikipedia.

The API itself is simply used to provide the user with option to view their position on a
Google map interface and also to see where the local POI’s are located on the same map
with the press of a button.

GPS

GPS has bec
ome a massive part of how modern smartphones improve user interactions with
the device. It is used in countless applications to find a user’s location so as to provide
information about local services, map information for the locality and other location ba
sed
services.

GPS works by trilateration. This is the process whereby the GPS locates four or more
satellites (from a group of 25 or so satellites orbiting the earth), figures out the distance to
each and uses thi
s to find its own location.
(10)


Determini
ng location is easily the most important part of the augmented reality map. Since
most modern phones have GPS in some form, Mixare takes advantage of this by using the
GPS data to find location on Google Maps and also to find the GPS of the current positio
n
the user is in so that it can display POI’s at the correct place grabbed from a .json file relative
to the phone.

Accelerometer

An accelerometer works by
measuring the amount of static acceleration due to gravity

acting on the phone. From this, you

c
an
find out the angle the phone

is tilted at with respect
to the earth.
(11)

Using this information allows the data output on the screen to be automatically adjusted
depending on the orientation of the screen. Mixare automatically fixes to a horizontal view
s
o by moving up and down the accelerometer can tell Mixare what angle the phone is at
and shows only data to the screen (using GPS and a .json file) what information is in that
direction. Since this data is height relative, points on the map may be below th
e camera’s
view or above so by pointing up or down the accelerometer can adjust for this and show
these points.


Call intents

An intent is an abstract description of an operation to be performed. It can be used
with
startActivity

to launch an

Activity
,

broadcastIntent

to send it to any
interested
BroadcastReceiver

components, and

startService(Intent)

or

bindService(Intent,
ServiceConnection, int)

to communicate with a background Service.

An Intent provides a facility for performing late runtime binding be
tween the code in
different applications. Its most significant use is in the launching of activities, where it can be
thought of as the glue between activities. It is basically a passive data structure holding an
abstract description of an action to be per
formed. The primary pieces of information in an
intent are:



action

The general action to be performed, such as ACTION_VIEW, ACTION_EDIT, ACTION_MAIN,
etc.



data

The data to operate on, such as a person record in the contacts database, expressed as a Uri.

(12)

The call intent for android uses the ACTION_CALL which launches android’s calling
functionality from within the application.
It takes a string input, in our application I have
taken this string from our database of phone
numbers.

Databases

SQLite is an Open Source Database which is embedded into Android. SQLite supports
standard relational database features like SQL syntax, transactions and prepared
statements. In addition it requires only little memory at runtime (approx.

250 KByte).

SQLite supports the data types

TEXT

(similar to String in Java),

INTEGER

(similar to long in
Java) and

REAL

(similar to double in Java). All other types must be converted into one of
these fields before saving them in the database. SQLite itse
lf does not validate if the types
written to the columns are actually of the defined type, e.g. you can write an integer into a
string column and vice versa.

More information about SQLite can be found on the SQLite website:

http://www.sqlite.org
.

SQLite is available on every Android device. Using an SQLite database in Android does not
require any database setup or administration.

You only have to define the SQL statements for creating and updating the
database.
Afterwards the database is automatically managed for you by the Android platform.

(13)

Most SQLite tutorials on the internet show you how to build your own database by ‘hard
-
coding’ the database. i.e building the data
base through sql statements in an activity. Our
application however would have ended up very large and slow if we had done it this way.
This is because every time the app is loaded the database is built which seems inefficient.
Our database was built separ
ately and then connected to through an adapter.


Web browser

The android webView class allows developers to display online content in a mobile device.
On the creation of an android activity, a new instance of the webView class can be created
and urls

and be loaded from them in order to display content on the browser. Additional
settings on webView objects include the zoom function which allows a user to zoom in and
out as desired, and the ability to go back through pages using the back button.

In the
android developing environment, certain permissions must be allowed in order to
allow for application functionality. In relation to the webView used in displaying online
content, the application must have internet access. In android application development
, the
manifest must include permission for internet access, so that the app can connect to the
internet.

For the purposes of this project, the ability to view pdf and ppt file formats was discussed,
as lecture notes and course documentation usually come in

one of these two forms. A
drawback was discovered in the android development kit in that it does not incorporate a
built
-
in pdf and ppt viewer. We therefore needed to find a way to allow users to view their
notes, and effort was put into developing a way
around this problem. A

potential solution
came in the form of Google Docs, which allows users pass a url into a program that allows
users to view their documents online, without the need for additional software. The
provision on this method was that the ur
l must be filtered to the file formats pdf and ppt.

It was discovered in the testing of the webView capabilities that a long click on a
downloadable link or file prompted a download menu in which a user could choose to
download the file to a local download
s folder. This feature proved useful in the functionality
of our application as downloaded files could be stored on the mobile device and accessed or
transferred at a user’s will.


SD Card

Every Android
-
compatible device supports a shared "external storag
e" that you can use to
save files. This can be a
n internal (non
-
removable) storage or

removable storage m
edia
(such as an SD card)
. Files saved to the external storage are world
-
readable and can be
modified
or adapted
by the user when they enable USB mass
storage to transfer files on a
computer.

The NUIG application is using an external storage


which is
the SD card
used
to store the
news file
, which is

downloaded from the internet each time the user opens the news
section
,

and to store a picture of the s
tudent card barcode.

In order to permit the application to write to the SD Card, we must add
'android.permission.write_external_storage' to the AndroidManifest.xml file. In
the
next
step we need to specify the root of the SD card. This is done in the FileU
tils.java file. We use
the 'getExternalStorageDirectory' method and in the settings of the application we give a
name to the folder that will contain the application files (in
our

application case the folder
name is 'Nuig').

In this folder each time
the
us
er opens the news section in the application

there will be a

text file
stored
with the news download
ed

from the server. Also the folder
will store a picture of the barcode of the student card.


Server downloads

To download a news file from the server, we used in our application a UI thread with
Android public class: AsyncTask. In the NewsActivity.java file we created subclasses and
methods that control the download

of the file and display at the

same time
a
download
ing

progress bar based on the bytes downloaded. The downloading starts automatically aft
er
opening the news section. To

be able to download a file from the
internet/server we need
to add also

'android.permission.INTERNET' to the AndroidManifest.xml
.

The AsyncTask class enables proper and easy use of the User Interface thre
ad. This class
allows

background operations
to perform and publishes

results on the UI thread without
having to mani
pulate threads and/or handlers.

An asynchronous task is defined
by a computation that runs on a background thread and
whose result is published on the UI thread. An asynchronous task is defined by 3 generic
types, called Params, Progress and Result, and 4 steps, called onPreExecute,
doInBackground, onProgressUpdate and

onPostExecute.

When an asynchronous task is executed,

the task goes through 4 steps:

1.

onPreExecute(), invoked on the UI thread immediately after the task is executed. This
step is normally used to setup the task, for instance by showing a progress bar in t
he
user interface.

2.

doInBackground(Params...), invoked on the background thread immediately after
onPreExecute() finishes executing. This step is used to perform background
computation that can take a long time. The parameters of the asynchronous task are
p
assed to this step. The result of the computation must be returned by this step and
will be passed back to the last step. This step can also use
publishProgress(Progress...) to publish one or more units of progress. These values
are published on the UI thr
ead, in the onProgressUpdate(Progress...) step.

3.

onProgressUpdate(Progress...), invoked on the UI thread after a call to
publishProgress(Progress...). The timing of the execution is undefined. This method is
used to display any form of progress in the user
interface while the background
computation is still executing. For instance, it can be used to animate a progress bar
or show logs in a text field.

4.

onPostExecute(Result), invoked on the UI thread after the background computation
finishes. The result of the

background computation is passed to this step as a
parameter.

(14)




Camera

Android allows the developer

to use the built in camera application in his
/her

own projects.
This ability is used in our application to
capture a photo

of a student

card barcode. The
photo is kept in our application and the user can use the picture stored on the SD card
instead
of a
plastic student card. The camera usage is controlled by classes and methods in
the MyCardActivity.java file. On the top on
the file, we give a name to the picture which will
be taken by the camera and
also
set the directory where it will be stored.


Methodology

In this section we will explain in more detail how each section was created and any sources
we used to help will be r
eferenced.


Map Section

In
itial Setup and T
esting o
f the Mixare Augmented Reality E
nvironme
nt

As stated in the technical review, I choose Mixare as the augmented reality browser for this
application. The first step was downloading the source code from the
Mixare website [20]
and importing it in to Eclipse. The code requires the download of the Google Map API too
and this was downloaded for use with Android 2.2.

To test out the functionality of Mixare I first exported a .apk version of it and tested it on my

android enabled phone (a Sony Ericsson Xperia). As stated previously, Mixare uses both
OpenStreet Map and Wikipedia to display points and show data about points on a map. On
startup, the app pops up messages displaying which information is being loaded cu
rrently
(i.e. if using OpenStreet Map, the message reflects this).

Since this appeared to run fine without any major problems (I could see most of the
landmarks around Galway City from where I was and when the camera was pointed at
them, red circles appear
ed in front of the buildings with their names written underneath), I
set about trying to find information about adding my own points of information to the
application.

Creating the .json File and the Launcher Intent

Mixare uses the .json

format (which stores basic information about latitude, longitude,
elevation, etc. on a data point) to allow a developer to add their own map points to the
application. The layout for a point in the .json format is;

{


"status": "OK",


"num_results":

1,


"results": [


{


"id": "01",


"lat": "53.280014",


"lng": "
-
9.058635",


"elevation": "26.30",


"title": "IT Building",


"distance": "",


"has_detail_page": "1",



"webpage": ""


}

I grabbed a point from Google Maps and got its latitude and longitude and inserted into a
file named data.json.

The documentation from Mixare is slightly unclear on how this file mus
t be loaded on to the
phone
(15)
. Luckily, there is a good forum ran by Mixare where the problem had been
addressed by another developer

(16)
. I changed the path in
org.mixare.data/DataSourceList.java reserved for “Own Url” to read from t
he SD card.

However, this also requires creating a new intent to be launched as well. Again from the
documentation there is an intent given
(15)

but it’s not exactly clear where this must be put.

Searching through the files I

found an intent similar to the one in the documentation and
replaced it with the intent that was required. I placed the data.json file on the SD card and
the file launched without any errors and the test point showed up on screen.

From here I could now g
o about getting the actual points for the map.

Getting Points Of Interest (POI’s)

I decided to try a few different ways to get latitude, longitude and elevation details for a
map point. This was to make sure the accuracy of points collected was as close as

possible
to being accurate.

I used two test points this time, one from the second floor of the IT Building and the second
on the bottom floor of the IT Building in NUIG. I first got latitude, longitude and elevation
from an iPh
one app called My Elevation
(22)

(taken from inside since my phone had
problems connecting to the NUIG Wi
-
Fi network outside the building). To test if these two
points were correct, I entered the coordinates into Google Maps to see if the location
indeed matched where they were origi
nally taken from.

Unfortunately, they were both off a good 20 meters from where I had originally taken them.
The reason for this is one of the problems of using GPS indoors where the building itself
interferes with the signal being sent to the satellites
(much the same as if I had been
standing in a dense forest).

So I decided instead to use Google Maps and clicked on each location on the map and got
the latitude and longitude from this instead. At least that way if the user is outside the
building and has

a good GPS signal they will get the point in its accurate location.

In total 28
POI were taken around the colle
ge. I used the interactive map on the NUIG
website

to get all the main and important buildings around the college and als
o one out
outside the
college (
Dangan Sports Ground) to show that points greater than the locality can
be shown.

The POI’s when shown on screen show some odd behavior by floating about on screen and
if the zoom level is not set appropriately, points can sometimes clutter the sc
reen.

The floating POI problem was not solved. From researching the forum on Mixare I found
many users have this problem and while it does not seem to happen for POI’s generated
from OpenStreet Map it does for user generated .JSON files. There was also so
me slow load
up of the points and this is due to the fact that the application tries to load up OpenStreet
Map information first before opening any .json data. I tried deleting any reference to
OpenStreet Map in the java files but this made no difference.
I later reentered the
OpenStreet Map data again so if a user was not near the college, he/she could use the
Openstreet map data instead.


Information section

Design

During the Christmas break, I decided to start looking up any tutorials we made need for
bu
ilding this application. I also started to play around with the designs and layout for
applications. From looking at other example applications I decided the best design for our
application would be to make it look as authentic to NUIG as possible.

Origin
ally the layout had the title bar and a list of rectangular buttons which didn’t look very
clean from a user’s point of view.

I researched how other applications had their layouts and came across a tutorial for building
a dashboard style layout.

(5)

This was followed and adapted to mould it to our design needs.
Next job was to design out buttons which had to be simple but match our scheme.

Once the layout was complete we could start working on our individual sections.

Informatio
n section

The first thing I had to work on was how to implement our database. I researched SQLite
which is the main Android database. We had two options such as SQLite or mySQL

on a
server. I decided to go with SQLite. The reasoning behind this was as a student looking for
information such as the doctor or a lecturer, the student may need to get this information
on demand. If we had gone with an online database and pulled the in
formation the student
would have had to connect to the internet. Issues with connecting to the internet are, they
would have to log in, there may not be any internet connection available or maybe the
phone battery could be low which will be run down a lot
quicker with wifi connected on a
smartphone.

Whilst researching SQLite I found many tutorials where ‘hard
-
coding’ there databases. With
the information I needed in the database this was not a good option. I found a tutorial
showing how to connect a pre
-
po
pulated database with an android application. This is the
option I chose to use. To add this functionality I used 2 tutorials
(17)

(18)

To pull the data from the database and view it in a list I als
o found a good tutorial on
Y
outube.

(19)

To create the search, I simply added a text box and a search button. When the search
button is pressed it retrieves a cursor. Most of the work is done by the actual SQL
statement, this c
alls all information from the database where the argument typed into the
text box matches the information from the database. The results are then displayed in a list
view.

To call from the selected society/lecturer I used another tutorial to set up the cal
l intent

(20)
. This then had to be modified from using a ‘hard
-
coded’ string into using the
information from the phone number in the database. This was done by saving the phone
number string from the database cursor. I then add
ed a 0 to the string to get the correct
number. The variable holding the phone number string was used in the uri.parse to set the
data to call. This code was all added into the button click listener. This means when the user
clicks the call button the call

intent is called for that specific phone number.

The webview works on the same principles, only instead of calling the phone number in the
database;

I used a web intent and set the url to the url in the database.

The search societies, search lecturers, se
arch course and view important information
sections all work on the dame principles with minor changes depending on what each
section had to do.

The find a course section also shows timetables, there was a problem with being able to
view the timetables as
they were in PDF format. This was corrected by using Google docs in
the url.

The
book a service sections simply use a web intent linking to the correct websites on the
nuig website to book these services.


Student union section

During the first few meet
ings,

the group talked about what should be included in our
application. We decided that we would l
ike to make our application
mainly addressed to
students, especially those who are not familiar with the university and its structures.
Therefore we decided
to create an application section which i
nforms

students about the
news of college life and
introduce
s them to the Student Union organis
ati
on
.

I w
as responsible for the Student Union section. The first stage

consis
ted of conducting
research among students,
to assist in creating the contents needed in the section
. The next
step was to expand the

template with a new section. To keep the application in the same
style
,

I created a page with
similar
buttons
(bar buttons)
in the menu, which inc
luded links
to four
pages. At a later stage, the
se

butt
ons were replaced by icon buttons along with two
additional ones to make the navigation process easier for the user
.

The addition of two
extra buttons created shortcuts to specific functions of the application.

The news s
ection required the most time and effort. Firstly, considerable online research
was needed to examine different methods of adding and updating news into the
application. The most popular way needed an RSS channel on the website where the source
of the news

comes from. Unfortunately the Student Union news website did not have an
RSS channel.
There was a website
www.studentnews.ie

which had an RSS channel and the
news from NUI Galway but I decided to not use this website as a news source for our
application b
ecause the information on this website was not regularly updated. Therefore, I
searched for a different way of adding news into the application.


On the Android
developer’s

forum, I found a simple way of adding and updating news
using
a text file kept on the server and
the
parser class in the application. I decided to use this
method as the file is downloaded into
the
application ver
y fast. The downside of this
method is
that every time the news text file is updated, it must be sent to the server.

After developing the news
section, I

started

work
ing

on the func
tion that will allow a user

to

take a picture from the application and save it on the

SD card.
To develop this fu
nction, I
used mostly a tutorial from the
www.labs.makemachine.net/2010/03/simple
-
android
-
photo
-
capture

website.


During

developing
the photo capture and

news feature
I was using the
www.stackoverflow.com

forum as well.


At the end of my work, I tested t
h
e

features on different mobil
e phones. The result of my
test
s was that the news
was

not updating without the
Internet
connection
which is what I
was expecting
.
Also, the quality of photos taken in poor
light

sometimes did not allow
ed

them to
be
scan
ned

at

a checkout
.

However, this could be fixed by replacing the photo
feature with a bar code generator should someone wish to take our work further.

Blackboard section

Around November time, after the scope of the project was defined, I went to work in
research
ing everything I could about Blackboard. After consulting with various sites and
forums, I learned of a mobile app called Blackboard Mobile Learn. This app, developed by
Blackboard Inc, is part of a range of software packages that allows the use of an onli
ne
medium to store and display data and documents relating to specific educational institutes.
The institute could sign up for its use, and use it in order to help students and lectures keep
up to date with course work and notes etc.

On further investigati
on on the institutes that had already signed up to Blackboard mobile I
discovered that NUI Galway was not among the subscribers. I discovered that
even though
there

had been plans for NUI Galw
ay to sign up to it,
time constraints on our project left this
idea impractical. This caused us to alter the project slightly as we had originally planned to
use the Blackboard application as
an embedded app inside our own.

Since this idea was not ideal for the project, I look
ed into alternative solutions using the
technology available from android. It was discovered that android possessed its own
‘webKit’ which allowed developers to program their own web browser. Since blackboard for
NUI Galway was already available in a brows
er, this method was planned for
implementation instead.

A standard we
b
V
iew
class instance from the webKit
was programmed in order to allow a
user to view online content, but not before the android manifest had to be updated to allow
for permission for the
application to access the internet. The webView activity itself also
needed to be added to the manifest, in order for this section of the application to run. In the
programming of the webview, the home page would be the NUI Galway blackboard website,
www.n
uigalway.blackboard.com
. So long as the android device was connected to the
internet, the user could log onto blackboard and navigate as they wished. Additional pieces
of code allowed for advanced navigation, such as zooming on the screen and backtracking.

This provided the user with almost all the functionality required to fully navigate and
interact with blackboard from an online mobile device.

Using conditional logic and the webView class and methods, the addition of a prefix Google
Docs url could be add
ed to the url of a link to a pdf or ppt donument in order to view the
document online, and this was implemented into the blackboard activity in order to allow
users to view course notes etc. However it was discovered in the testing of this method that
even

though it worked for normal urls with the suffix pdf and ppt, it did not work properly
for the attached notes located inside the blackboard website.

To combat this drawback, more effort was put into the downloading of course notes onto
the device so that

they could be stored locally and accessed through a document viewing
application such as adobe reader for android, or through uploading the notes onto a
computer from the mobile device. Luckily, the android webview class allows for the
downloading of file
s and attachments to a local downloads folder. This method was agreed
upon because of android’s lack of document viewing capabilities and the ease of
downloading files from the webview.




Conclusions

Each write one paragraph about what we found if we met
our goals or not
.

For the Map section, Mixare is a workable application for the development of augmented
reality. Since it is an open source and freeware piece of code it is hard to criticize some of its
failings justifiably considering there is no cost in
volved. It is simple to use but some proper
documentation would not go amiss. Several bugs (such as floating POI’s and very slow load
up times) detract from the overall usefulness of the map but the fact that it works well in
the right conditions is impres
sive. We had set out for the map to be easy to use and to see
points clearly. For the most part it is quite easy to use but sometimes points can clutter up
the screen, so in that regard it is not entirely easy to see points clearly sometimes.

The blackboar
d section’s goals were to integrate the functionality of blackboard learn for
users to view their course content and have access to course materials on the mobile
application. Using the internet,
this was achieved quite well.

T
he webView homepage

is the
bl
ack
board login screen, which allow

users

to easily log on to blackboard
and use it for its
intended purposes. In his way, the goals set out on this section were achieved to a degree.
The only goal not strictly met is the actual viewing of course noted in t
he file format pdf and
ppt. While the application itself does not allow for this functionality, additional software can
be downloaded, such as adobe reader for android, to allow users to view the notes.

The main objective of
the
Student Union se
ction was to introduce
the
students studying at
NUIG
to an
organis
ation that supports them. This was achieved through the basic
information about the Student Union and the services
they offer
. Students with the
application can also track current events and

news. The purpose of the application is also to
encourage students to use the SU card, which benefits students as well as
the
SU. Each

user
can save the photo in their

card application and have easy access to it when making
payment
s
. The application also
allows you to open a website where a user can check the
status of your account.

Testing

(Domnick)Lol this ones up to you :D

Errors

Error: activity not found.

This error came up a lot in our application and the main problems where simple spelling
mistakes i
n the androidManifest.xml file. Other problems where forgetting to add a
permission or forgetting to add an activity to the manifest file.

Another error we came across was when we integrated the map into the rest of the project.
As the map uses Google maps the map would not the work. The way this was corrected was
to use the android 2.2 with Google API set in the project preferences. We also
had to use an
emulator that had Google maps incorporated. The manifest file had to be updated to use
Google libraries also.

We came across s
ome logic errors, in relation to the implementation of certain methods and
classes. This was put down to the learnin
g curve that was android development, and didn’t
cause much delay in project work as various resources and tutorials were consulted to help
with issues such as these.






Future work

In future we would like to update the database to include all of the information instead of
just for the IT department in NUIG.

Having the blackboard section to download notes would be good if we could add a feature
to create notes alongside the lecture s
lides, this would prevent student having to write
notes on a notepad or print many slides out for lectures.

Future work could also include the implementation of Blackboard mobile into the
application. As of 26/3/12, NUI Galway has access to Blackboard mobi
le functionality, and
having such an application embedded into our app would give users a richer experience in
relation to blackboard navigation, as opposed to the webView layout implemented here.

The current news section has a basic form. In the future th
e design of this section could be
improved by adding a picture to the

news


and
also a ‘
comments


feature. Adding the news
could be improved as well. At this moment, the person adding the news needs access to the
server and a FTP client to upload
the chan
ged news file. This can be improved by creating a
web
-
based feature that will allow
the administrator
to change the file without downloading
and updating it.
Ano
ther option is
to
implement a
n

RSS function on the current SU website
and change the applic
atio
n code to read the news through

the RSS reader.

More work could be done on Mixare where the POI’s shown on screen can be made
clickable (i.e. to open a webpage on a server by tapping the point on screen). This could be
extremely useful if a webpage set up

on a server could track computer suite availability and
room availability for each building.





















Appendices

References


1.
http://www.boards.sin.ie/viewtopic.php?f=65&t=19425&start=0.
[Online]
http://www.boards.sin.ie/viewtopic.php?f=65&t=19425&start=0.

2.
http://education.appdownloadreview.com/online/university
-
of
-
limerick.
[Online]

3.
http://www.ucd.ie/itservices/itsupport/ucdmobile/.
[Online]

4.
http://www.nuigalway.ie/vp/siea/internal/corp
.html#6.
[Online]

5.
http://www.androidhive.info/2011/12/android
-
dashboard
-
design
-
tutorial/.
[Online]

6.
http://www.dibbus.com/2011/02/gradient
-
buttons
-
for
-
android/.
[Online]

7. [Online] http://itunes.apple.com/ie/app/wikitude
-
augmented
-
reality/id329731
243?mt=8.

8. [Online] http://layar.com/player/.

9. [Online] http://www.json.org/.

10.

[Online] http://electronics.howstuffworks.com/gadgets/travel/gps.htm.

11.

[Online] http://www.dimensionengineering.com/accelerometers.htm.


12.
http://www.skill
-
guru.com/
blog/2011/01/18/how
-
to
-
move
-
from
-
one
-
screen
-
to
-
another
-
through
-
intent/.
[Online]

13.
http://www.vogella.de/articles/AndroidSQLite/article.html#overview.
[Online]

14. Android Developers. [Online]
http://developer.android.com/reference/android/os/AsyncTask
.html.

15. [Online] http://code.google.com/p/mixare/wiki/DisplayYourOwnData.

16. [Online] http://groups.google.com/group/mixare
-
development/browse_thread/thread/db862a8aa5e33248/f331e3ec30b70943?hl=en&lnk=gst&q=mi
xare+sd+card#f331e3ec30b70943.

17.
http://www.reigndesign.com/blog/using
-
your
-
own
-
sqlite
-
database
-
in
-
android
-
applications/.
[Online]

18.
http://www.youtube.com/watch?v=A
-
cIZoSa5bA&list=UUubLHJktculMCJgUBsct9uQ&index=14&feature=plcp.
[Online]

19.
http://www.youtube.com/watch?v=Awu7Rlsez_k&
feature=mfu_in_order&list=UL.
[Online]

20.
http://www.helloandroid.com/tutorials/how
-
make
-
phone
-
call
-
your
-
application.
[Online]

21.
http://www.skill
-
guru.com/blog/2011/01/18/how
-
to
-
move
-
from
-
one
-
screen
-
to
-
another
-
through
-
intent/.
[Online]

22.
http://itunes.apple.com/ie/app/my
-
elevation/id435023711?mt=8