Está en la página 1de 34

UNIVERSITY OF MARIBOR

Internship Report
Android application development
Author : Thomas OSTROWSKI
Mentor : Mr. Domen Verber

Maribor, June 2014

University of Lille 1 Academic Year 2013/2014


ACKNOLEDGEMENT

I would first like to thank the University of Lille I, and all the international office that allow us
to go abroad to realize our internship and being part of this amazing experience which is Erasmus.
I also want to thank the University of Maribor which has welcomed and helped me throughout my
internship.
Finally, my special thanks to my mentor here Mr. Domen Verber and his colleague Mr.
Damijan Novak who leaded and assisted me for the application I had to achieve and to my French
mentor M. Patrick Lebgue, who followed me from France.
TABLE OF CONTENTS

Acknowledgement
Introduction ..............................................................................................................................................1
1. Presentation of the place and the project .........................................................................................2
1.1 Slovenia .............................................................................................................................................2
1.1.1 Geographical Location ....................................................................................................................2
1.1.2 A bit of History................................................................................................................................3
1.1.3 Maribor ............................................................................................................................................4
1.2 The University...................................................................................................................................5
1.2.1 The University of Maribor...............................................................................................................5
1.2.2 FERI ................................................................................................................................................6
1.2.3 The Computer Science laboratory ...................................................................................................7
1.3 The Project ........................................................................................................................................7
1.3.1 The conference ...............................................................................................................................7
1.3.2 The interest of doing an application ................................................................................................8
1.3.3 A few simple features ......................................................................................................................9
1.4 Conclusion .......................................................................................................................................10
2. Missions accomplished .....................................................................................................................10
2.1 Analysis ...........................................................................................................................................10
2.1.1 Understanding the need ................................................................................................................10
2.1.2 Brainstorming ................................................................................................................................11
2.1.3 Data Modeling ...............................................................................................................................12
2.2 Database .........................................................................................................................................13
2.2.1 Integration in Android development platform ..............................................................................13
2.2.2 Testing with local data ..................................................................................................................14
2.2.3 Data retrieval from the server ........................................................................................................15
2.3 Development ...................................................................................................................................16
2.3.1 A simple user interface ..................................................................................................................16
2.3.2 Management of the database .........................................................................................................17
2.3.3 Parsing data ...................................................................................................................................18
2.4 Conclusion .......................................................................................................................................18
3. Technical and Human review ..........................................................................................................19
3.1 Technical review .............................................................................................................................19
3.1.1 Links with my previous classes .....................................................................................................19
3.1.2 New skills ......................................................................................................................................20
3.1.3 Possible improvements ..................................................................................................................20
3.2 Human review .................................................................................................................................21
3.2.1 The Erasmus Experience ...............................................................................................................21
3.2.2 Maturity and Autonomy improvements ........................................................................................22
3.3 Conclusion .......................................................................................................................................22
Conclusion .............................................................................................................................................23
References ..............................................................................................................................................24
Appendices .............................................................................................................................................25
Appendix 1: Original search of features .................................................................................................26
Appendix 2: DatabaseHelper class .........................................................................................................27
Appendix 3: onCreate method of the MainActivity class ......................................................................28
Appendix 4: News table creation requests .............................................................................................29
INTRODUCTION

As part of my second year of a computer science degree from the University of Lille I, I had to
realize a 3 month-internship and I have decided to do it abroad, at the University of Maribor in
Slovenia.
The internship took place from the 1st of April until the 23rd of June and I was specifically at FERI
(Fakulteta Elektrotehniko Raunalnitvo Informatiko) which is the part of the University of Maribor
where they teach computer science and electrical engineering.
There, I had to develop an Android application about a Conference that will be presented next year in
a Hotel in Maribor.

It was the first time that I had to manage such a big project on my own, so a few problems
appear:
- How to manage such an amount of data?
- How to connect the application to the server to transfer the data?
- How to use Android functionalities to make everything work?

The first step was a deep analysis. I had to think about what kind of data will be needed, and
start to write a CDM (Conceptual Data Model) and all the links between the entities.
Then, I had to create tables using SQL and more specifically SQLite which is one the easiest way to
deal with databases on Android. And I finally had to create the link between the database and the
application and find a way to manage the data as required using JAVA.

In a first part, I will make a presentation of Slovenia, with information about the country and
then I will talk about Maribor and its university, the computer science laboratory where I worked
And I will finish by giving more details about the project I had to realize. Later, in a second part, I will
be more specific about the tasks I had to accomplish including the database and the JAVA
programming.
To finish, in a last part, I will do a technical and human review which will present all the skills that I
learnt during my internship and the links with the classes I had in my university as well.

1
1. Presentation of the place and the project

Firstly, I choose to realize my internship abroad because I thought that it was a good
opportunity to discover another way to live and think. I had to choose between several
destinations, at first I was looking for a country where English is spoken by everyone as native
language but there was only one country available and it was very claimed by all the students.
I finally choose Slovenia, because it seemed to be a very beautiful country and I heard a lot of
good things about it, about the weather, the Erasmus network etc...
Plus, I went to Croatia a few times for vacation, over the past years and I loved it, and I started
to learn some words of Croatian language which is a bit similar to the Slovenian language.

1.1 Slovenia

Slovenia is a small European country of 20,273 km populated by two million people of


whom a big part is ethnic Slovenes. Most of the people live in the cities and towns but there
is also a large countryside where many people live. Slovenia is a green country; there are a lot
of free spaces, trees, forests. More than a third of the countrys area is protected.
Because of its mountainous relief, Slovenia is called the Balkans Switzerland. Slovenes are
known as diligent, hard-working nation and that is why it is the wealthiest country of the new
European Union members. Given their small number, Slovenes also learn foreign languages
from a very early age so they can be understood by the large majority of people. Most of
them can speak good English and a bit of German.

1.1.1 Geographical Location

Slovenia is located in southern Central Europe at the crossroads of main European cultural
and trade routes. It borders Austria to the north, Hungary to the northeast, Croatia to the
south and southeast and Italy to the west.

Slovenias (Dark green) location in Europe

2
Ljubljana is the capital and the largest city of Slovenia. The city is located in the middle of the
country, right in a trade route between the northern Adriatic Sea and the Danube region. With
about three hundred thousand people living there, it is the most populated city of the country.
It used to be a historical capital of the Carniola which is a Slovene-inhabited part of Austria-
Hungary. Independent since 1991, it is now the cultural, educational, economic, political and
administrative center of Slovenia. Thanks to its central position in the country, it is also a hub
for transport connections; the city has an international airport and an international train station
which make it easily accessible for everyone. Its large concentration of industry, scientific and
research institutions and cultural tradition are the main elements that make its leading position
unquestionable.

Map of Slovenia

1.1.2 A bit of History

Historically, the current territory of Slovenia has been impacted by several historical
events. Slovenia has not always been an independent state, indeed the country was part of
many different state formations, like Roman Empire or Austro-Hungarian Empire.
In October 1918, with the force of self-determination, Slovenes co-founded the
internationally unrecognized State of Slovenes, Croats and Serbs which merged with
Kingdom of Serbia in December. The name changed to Kingdom of Serbs, Croats and
Slovenes. And it is only in 1929 that the name became the Kingdom Of Yugoslavia.
During World War II, Slovenia was occupied and annexed by Germany, Italy, Croatia and
Hungary. It was a founding member of the Federal People's Republic of Yugoslavia which
became the Socialist Federal Republic of Yugoslavia.
In June 1991, after the establishment of multi-party representative democracy, Slovenia
split from Yugoslavia and became an independent state.
Slovenia entered NATO (North Atlantic Treaty Organization) and European Union in
2004. In 2007, it became the first former Communist country to join the Eurozone.

3
Finally, Slovenia joined in 2010 the OECD (Organization of Economic Co-operation and
Development) which is a global association of high-income developed countries.

Yugoslavias flag

Map of the ex-Yugoslavia

1.1.3 Maribor

With about one hundred and twenty thousand people, Maribor is the second largest city of
Slovenia. It is also the largest city of the traditional region of Lower Styria and the seat of
the City Municipality of Maribor. The city is crossed by the Drava River. It received the
Alpine Town of the Year award in 2000.
In 2012, the city was the European Capital of Culture which brought a lot of cultural
events and building restorations. Plus, Maribor held the title of European Capital of Youth
for the year 2013. All these prizes show that Maribor is a very active city and deserve to
shine more, and be known by more European people than now.
Actually, the name Maribor has two connotations, mar meaning eagerness and
carefulness and bor, which stands for fighting. The poet and politician Lovro Toman
eternalized the name in the poem Mar i bor (eagerness/carefulness and fight).
Thanks to his favorable geographical location, with only 18 kilometers to the Austrian
border, Maribor is a gateway to Slovenia and to the Balkans area as well. His position, on
the juncture of roads connecting Central Europe with Southern Europe and Western
Europe with the Pannonian plain, makes the city a cultural and economic center of the
north-eastern Slovenia.

4
The Maribor City Logo

Map of Slovenia with Maribors location

1.2 The University

To realize my internship, I had to go to a university where there are Computer Science


lessons and teachers available to help me to do my project. It was also important for me to
have a good infrastructure to work.
I did not have to find the university by myself, my university in France have a partnership
with the University of Maribor, so I was sure to go somewhere where the conditions will be
perfect.

1.2.1 The University of Maribor

The University of Maribor (original name: Univerza v Mariboru) is the second university
of Slovenia, behind the University of Ljubljana. It was founded in 1975 in Maribor.
Presently, it is composed of seventeen different faculties, and around 18,000 students
study there which makes Maribor a very living student city. It has a budget of around 85
million euros.
Among the seventeen faculties, not all of them are in Maribor; a few faculties are located
in other parts of Slovenia. In Maribor you can study Education, Arts, Law, Economics and
Business, Medicine, Chemistry, Electrical engineering and Computer Science
All these faculties make the University of Maribor a true regional developer.
Internationalization plays an important role for the University which encourages students
and staff mobility to participate to international associations, networks and programs like
Erasmus program. As Slovenia is a small country, this international approach also permits
to promote and protect Slovenian language, national identity, heritage and culture.
According to "Ranking Web of World Universities", the University of Maribor is in the
top 15 of Top Central and Eastern Europe Universities". In 2014, it holds the 431th

5
position (out of about 12,000 other universities) which ranks it among the top 4% of
universities in the world.

The Rectorate, seat of the University


of Maribor

Map of faculties at Maribor

1.2.2 FERI

FERI (Fakulteta Elektrotehniko Raunalnitvo Informatiko) is the faculty of Electrical


Engineering and Computer Science at the University of Maribor. The faculty is divided in
8 Institutes where students and teachers are working about their specific field.
The 8 Institutes are about Automation, Electronics and Telecommunications, Power
Engineering, Robotics, Computer Science, Informatics, Mathematics and Physics and
Media Communication.
Research is a really important matter for the Faculty; with the great variety of study fields
there are a lot of professors, assistants and researchers that have to follow the latest
scientific events in the world to be as effective as possible and to develop their own
scientific research work.
The vision of the faculty is to provide international recognized knowledge to the students,
so they can work easily in Slovenia or abroad.
The building is very beautiful; it must have been renovated a few years ago, and all the
installations you could need for research or realize project are available. It is very pleasant
to go study there.

6
Faculty of Electrical Engineering and Computer Science

1.2.3 The Computer Science Laboratory

Personally, I was part of the Institute of Computer Science, I did not have classes, and I
just had to realize my project.
To do it, I had full access to the Computer Laboratory, which is open Monday to Friday
from 9:00 a.m. to 4:00 p.m.
In the laboratory, there is always at least one person who is working, so the door is usually
open. In here, there is a very good wireless connection, and I had access to 8 computers.
The thing is that the computers are a bit old to use Android developing platform
efficiently and effectively, so I had to bring my own computer which is way faster than
those in the Laboratory.
Actually, I had the choice to work whether in the lab or at home. As I had to use my own
computer and that I had a very good internet connection, I usually chose to work at home
because the hours were more flexible and it was more convenient for me.

1.3 The project

To start, I needed to find a mentor before having any kind of subject. As I said earlier, my
University helped me to find a place to realize my work placement, and they helped me to
contact potential mentors as well.
The two international relations offices did a great job and managed to find the most suitable
solution for everyone.

1.3.1 The Conference

I heard about the subject of my project pretty fast, actually as soon as my mentor
contacted me, we almost immediately talk about what I wanted to do. He gave me the
choice, whether I chose a subject myself or he told me about a conference that will occur
in Maribor in a few months. I instantly liked the idea of doing something that is going to
be really useful to someone, which is very different from the other projects I could have

7
done before with my University. It was also a big challenge for me to start a project from
the very beginning but I found that it was a very interesting idea. There, we only had the
idea of doing something and I was not very used to it.
The conference named CESCIT will be held in the City Hotel which is a 4-star Hotel
located in the center of Maribor. This is a very convenient place to host such an event
thanks to its location and to the services proposed.
It will take place from 22 to 24 June 2015 and the 5 main topics of the presentations are
Computer control systems; Computational intelligence methods in modelling, systems
identification and control; Telematics (control via communication networks);
Applications, industrial projects, case studies, related topics and Common CC3
(Campaign Cartographer 3) topics.

1.3.2 The interest of doing an Application

In fact, while my mentor contacted me for the first time, he was not in Slovenia. I was
attending the GPU (Graphics Processing Unit) Technology Conference of NVIDIA which
occurred from March 24, to March 27 in San Jose, California.
For this conference, NVIDIA developed an Android application to give useful information
to the attenders, like the schedule of the presentations, the maps of the place, or nearby
restaurants It was a really good idea to improve the experience of the conference.
Everybody can have access to every updates or program modifications directly from their
phone and/or tablet. I think that my mentor found it very clever and useful and that is why
he wanted to realize a similar application for the conference in Slovenia. Of course, he
was aware that I will not be able to do an application as complete as the one that NVIDIA
developed, especially on my own and in such a short notice but implementing the very
basics features of the application was more conceivable and could be a good help for the
attenders anyway.

The GTC mobile application The GTC mobile applications menu

8
1.3.3 A few simple features

As I said before, the GTC mobile application that I had as a model was far too large and
complicated to reproduce as it was and I do not have the means and the skills of the
NVIDIA developers.
So, during our firsts meetings with my mentor, we discussed about what features were
really essential and truly needed to be implemented for the application.
He told me right away that I did not need to take care of the graphical aspect of the
application because some other people were working on it, so I only needed to carry out
the technical job.
The first feature we talked about, which is in a way, the heart of the application is the
feature of Schedule. The schedule gives all the information you could need about the
presentations of the conference. It gives what presentation will happen, the date and the
time, where it is going to occur precisely, which articles will be presented and who is
going to be the presenters. This is the most important feature of the application and it was
also the most complicated to realize.
Then, there are other features. One of them is News. As its name suggests News allows
the user to have access to a news feed. The news are sorted by date, in the first screen, you
have the date and a short description of the news and when you click on it, you have more
details about the news you have selected. The news section is very useful to inform the
users about any schedule update or about special events that could happen during the
conference.
Another feature is the feature Maps; it provides simple pictures of the plan of the
buildings where the conference is supposed to occur. It helps the users to find the
entrance, the auditoriums and all the other rooms they could need to look for.
Finally, there is a last feature, which is General Information; it only gives a short
abstract about the conference, where it happens, the precise dates and a few others general
information that attenders may need to know.

A very basic menu for the application

9
1.4 Conclusion

To conclude this part, thanks to my internship I discovered a very beautiful country which is
overflowing with history and became the wealthiest country of the new European Union
members: Slovenia.
I also had perfect conditions to work at the University of Maribor, which is the second largest
university of the country. I had the opportunity to take part in an interesting project which
was an Android application development about a conference that will take place in a few
months in Maribor.

2. Missions accomplished

During my internship, I had to realize an Andoid application from the very beginning. At first,
we only had the idea of realizing the application. It was a new thing for me, because with my
previous projects I was really helped to start the work.
So, the first step I had to realize was the analysis part, to determine the needs and the main
structure of the application. Then, I had to deal with the database which was really big; it was
the first time I had to manage such an important database, so it was quite hard at first. And
finally, I started the developing part, the real interface of the application and the work to
include the all database into the program.

2.1 Analysis
The analysis was the start of the project, I needed to look for all the data that were essential for
the application and find how it may be related. It is a very important in a project and it has to
be carried out carefully.

2.1.1 Understanding the needs

The first thing to do was to understand well the application to find the functionality that
really should be implemented. I had the GTC Mobile application as an example and it
was very useful even if it was composed of a lot of complicated features. With the help of
my mentor, we chose only 4 basic features which were News, Schedule, Maps and
General Info (See Appendix 1). Once I knew what features were really going to be
implemented I was able to start to think about what kind of data I was going to need.
Quickly, I realized that they were a lot of different type of data and that I needed to create
a big database with a few tables. About the application itself, I immediately thought of
using a simple list view for the main menu. All the 4 features are in a list and the user can
choose which feature he wants to launch. It is a very basic interface but it is also very
clear and effective.

10
First thoughts about the tables Example of a listView

2.1.2 Brainstorming

My first thoughts about the tables were not that good. So, my mentor and I decided to
change the tables. First, we agreed to use SQLite to manage the database because it was
the easiest way to deal with database and the Android development platform.
The most important table is the Presentation table, which gathers all the information about
each event which is going to happen. In this table, there is the date and the time and an
abstract of the presentation.
Then, there is the Presenter table, which gathers information about the presenters, their
name, email, address, country
Another table is the Article table, which brings together the information about one article
of a presentation; It gives information about the name of the article and a short abstract of
what it is about.
At this time, I just thought about the table and what will be needed in each table but I was
aware that the most difficult thing was to link the tables with each other. That is why I
also created the Presenters-Articles table.
Next, there is the Auditorium table which is composed of information about the
auditoriums, their name and location
Finally, my mentor asked me to create a news feed, to give fresh information to the users
of the application so I had to create a News table with the date of the news, a title and
content. Another feature has been requested about the news; we wanted to know if a user
has or has not read a news. It is in this perspective that I created another table named
ReadNews.
It is after a careful reflection that I ended up with those tables. I thought that we can do
every feature with them, but the most difficult part was to establish the relations between
the tables. That is why analysis was not over yet, I needed to do something else: Data
Modeling.

11
Final list of tables

2.1.3 Data Modeling

The Data Modeling is a very important part of the analysis, because all the decisions that
have been made at this part will directly impact how the application is going to run.
Once I thought that I had all the tables I needed to realize the application, I had to start to
connect all those tables together to make something consistent.
To achieve this goal, I tried to create a CDM (Conceptual Data Model) on a paper. It was
not easy because I had to have a very precise idea of all the concept of the application in
mind.
The first link I established is the relation between the Presenter table and the Article table
(that is why I created the Presenters-Articles table in the first place). So, I needed to make
sure that a Presenter could be related to many articles or to no article at all. At the same
time, I had to ensure that an article has at least one to many presenters. Because it would
have been a serious design problem if an article has not any presenter.
At first, my mentor asked me to link the articles with keywords, so I had to think about
another table that would be related to the Article table. Therefore I thought about creating
a Keywords table which would have none to many relations with the Article table.

CDM Draft

12
I needed to carry out of another relation between the tables I wanted to create. It is about
the News table and the functionality of knowing if the user has or has not read a news. To
realize this, each news has to be related with the ReadNews table which has a specific
variable that changes when the user has read a specific news.

Relation between News and ReadNews

2.2 Database

The analysis was a really big essential part of the project because it laid the foundation that
will be used to build everything around.
Another very important thing is the Database. It is the heart of the application, every data that
will be used has to be correctly stored in the database in order for the program to work
effectively.

2.2.1 Integration in Android development platform

As I previously said, my mentor and I chose SQLite to manage the database of the
application. SQLite is a relational database management system which has the
particularity of not using the usual pattern client/server. The database is directly integrated
to the program so it was very convenient for this application.
The first thing I had to do was to initialize the database into the program. To do it, I
created a class named DatabaseHelper where I instantiated a SQLiteDatabase variable.
In this class, I implemented a method called onCreate which is automatically called when
the database is created, it allows us to execute SQL requests when the application is
launched (table creation for example).
Actually, I created another class in the DatabaseHelper called DBManager, this class is
the one which really initializes the database, and it also allows us to manage it. I wrote
methods to open and close the database, to add/delete/modify data to each table created
(see Appendix 2).
Once this work was done, I still needed to instantiate a DatabaseHelper in the right place
and the right place is in the MainActivity class which is the class launched when the
application starts. The DatabaseHelper needed to be declared as a static variable so we
could be sure that there is only one database. And it is on the onCreate method of the
MainActivity class that the database is opened and ready for operation.

13
DatabaseHelper declaration

DatabaseHelper instantiation

2.2.2 Testing with local data

When the database was apparently functional I needed to make sure that everything was
working as it was supposed to work. So, I had to start to test the database.
I started to create one table, and to add some data in it. I added the data on the creation of
the database (onCreate method of the DatabaseHelper class) and it worked well.
Therefore, I tried to create 2 tables at the same time, and this is when the problems started.
I had an error, which said that one of the two tables did not exist. I lost a lot of time with
this error but I finally found what was wrong. Actually, I needed to separate the two
creation requests with a ; because if I did not, the two creation requests were
concatenated as one request, so the database was only executed the first request of the two
and that is why the second table was not created.
Once this problem was resolved, I tried to test the database differently. I wanted to create
an external file and extract the data from it.
So, the first step was to create and fill the external file it was not very difficult. Then, I had
to implement the all mechanism to retrieve the data from the file.
First, I had to create a parser (a NewsParser for example) to parse the data from the file
which means take every precise part of the file which matches with the variables of a
class. Next, I needed to instantiate an object (here News) with the data from the file and
then adding it to the table.
The last step was the creation of an Adapter, which allows us to print the data that were
added to the table.
This all system was quite complicated to set up, but when it worked, it was going to be
useful for all classes and even to retrieve data from a server because there are a lot of
things in common between the two.
After a few errors, I was finally able to add data from my external files.

14
News external file

2.2.3 Data retrieval from the server

Unfortunately, I did not have time to retrieve the data from the server but as I said before
the system to realize is quite similar to the system with an external file.
The only difference is with the parser, you do not open an asset which is locally stocked
but you use a URL from the internet which becomes the source of the parser. The system
is the same, the parser is looking for the name of the variables and it stocks them.
Then, the Adapter is doing the same job as he does with an external file. He adapts the
data which are in the tables to print them in the application.
I am disappointed to not have reached this part of the project because I think that it would
have been very interesting but I was stuck with minor problems before so that is why I
could not go further.

Parser with external file

Parser with server

15
2.3 Development

Once I managed the initialization of the database I had to start the developing part of my
project. First, I needed to create the user interface because it was an essential step of the work
and then I built all the other features around the main menu. The most important part was the
management of the database; I needed to find a way to correctly use the data.

2.3.1 A simple user interface

As I previously said, I did not need to take care about the graphical aspect so I chose to
realize a very sober but efficient user interface.
For the development phase I used Eclipse IDE (Integrated Development Environment)
and most specifically its Android plugin which is very useful and efficient to develop
Android applications.
When you start to program an Android application, you need to code the first class,
usually named MainActivity, which is the class that is being launched when the user
opens the application. So, it is in this class that I initialized the main menu of the
application that gives the chance to the user to choose between all the features available
with the application.
Therefore this is where I created the menu, which is a simple list view, and I also had to
code the mechanism that redirects the user to the functionality he requests. In fact, this
mechanism is just formed with a few conditions that can say on which item the user
clicks, I used an item click listener which permits to know what item is pressed and then I
only needed to redirect to the good activity (See Appendix 3).
To redirect the user to the activity he chose I used the object Intent which is able to move
from an activity to another one. We just have to give the name of the current activity and
the name of the one you want to launch in parameter and it works.

Declaration of the main menu

Creation of the list

16
2.3.2 Management of the database

Once a basic user interface was created I moved on to start to take care of the management
of the database in the program.
I started by creating a Constants class where I put a lot of static data and requests about
the database. Thanks to this, I won a lot of time because I did not need to type the same
requests again and again and plus I was sure that I was using the same syntax every time.
In this class, I first set the name of all the tables I wanted to create and then, I set the
column names of each table. At this point in time I had all the information I needed to
build the table creation requests so that is what I did. I used the Constants information I set
before and I had to carry out of the SQL syntax as well.

News table column names

News table creation request

Later, when I finished my Constants class I had to do the methods that allow me to
interact with the database and the tables I wanted to create. So I decided to realize all
those methods in my DatabaseHelper class, I needed all the basic SQL requests for each
table (See Appendix 4).
First, I had to start by creating insert requests. To do it I used ContentValues which are
some kind of very convenient tables to add data to the database. I only needed to fill the
content value with the values of the line I wanted to add to the table and then I used the
insert method of the database with the content value in parameter.
Another request I had to do was the delete request. It was just a line, I used the delete
method of the database and I had to give in parameter the table name and the condition of
deletion that usually was the ID of the line you want to delete.
Then, there is the update request, for this request you have to give in parameter the ID of
the line you want to modify and all the new values of the columns. Like I did before for
the insert request, I used ContentValues, so I stocked the new values in a ContentValues
and I executed it via the update method of the database that takes the table name, the
content value and a condition about the ID of the line as parameters.
Finally, there is a classic select request that selects the line by its ID number. It gives all
the information about the line you want.

17
2.3.3 Parsing data

As I said in the database part, I did not have the time to parse the data from a server, so I
set up a system to parse data from an external file.
This system is composed by two classes by table. The first class is a Parser, at first I had
to create the external file with the data I wanted to add to the table. Then, I needed to open
this file as an input stream and declare it as an input source. After, the XMLReader is used
to read the file (See 2.2.3).
The second and very important part of the Parser is the place where the data is really
parsed, the parser is looking for the key word marker and if he finds a match then a new
object is declared and the data from the external file are assigned to this object. Finally,
the object is added to the table.
The second class is an Adapter that initializes a text view and fills it with the information
of the next line of the table.

News parsing system

2.4 Conclusion

During my internship, I had the opportunity to realize a computer science project from the
very beginning. It was a bit special to be alone to do it because IT project are usually realized
by a team but it was a really good experience.
I had to learn how to manage my time and see what the priorities were. First, I had to go
through the Analysis phase and then the developing phase. It was the first time that I had to
manage such a database in an Android application.
I have learnt a lot, and I am proud of what I did even if I wish I could have done even more.

18
3. Technical and Human review

Throughout my internship and my stay abroad, I have learnt a lot professionally and
personally. In this part, I will first make a technical review and then I will do a human review.

3.1 Technical Review

To realize my internship, I needed to use my previous knowledge that I learnt at my


University. But of course, this basic knowledge was not enough for me to be able to deal with
such a project so I had to improve my previous skills on the field.
That is why I have learnt a lot and that it was a great experience.

3.1.1 Links with my previous classes

First of all, I had a class about Analysis, it lasts 8 weeks and we had 4 hours per week. A
professional were giving us the classes and we studied the MERISE method. It was a very
practical class because we usually only had a text with the description of an IT need. With
this text we first had to create a Conceptual Communication Model (CCM) which is some
sort of flow diagram. Then we learnt how to do Conceptual Treatment Model (CTM) and
finally an Organizational Model of Treatment (OMT). It was a very interesting class that
was completing the knowledge I had from my database class about the Conceptual Data
Models (CDM) and the Logical Data Model (LDM). So, those two classes really helped
me to realize the analysis part of my project.
Secondly, I had a class about Android development; it was an optional class that I chose
during my fourth semester. It lasts 7 weeks and we had 3 hours per week. During every
class we had to realize a mini-project that was showing us another aspect of the Android
development platform. My final exam was a 2-week project, in this project I had to
manage a small database of only one table. The project was about the bicycle sharing
system in my city: Lille. This class showed me the very basic aspects of the Android
development that were very useful for the project.

Android class final project

19
3.1.2 New Skills

Thanks to my internship I have been able to improve the previous skills I was talking
about. I did not have so many Android classes before, so when I came here I only had a
quick look at the things that we can do with the Android development platform.
Here I learnt, with difficulty, how to manage a database with several tables on the same
time and to manage this database in the features of the application.
I also had to manage my time, because I had never realized such a project like this on my
own before. I usually was with one or two other people. So, it was a complete different
approach.
Even if I was working with the University, it was my first professional experience in IT; I
did not have any classes but I had to face small responsibilities because I had never done
something that will be truly useful to someone before. I also had a professional
relationship with my mentor and his co-workers.
English is the main language of the IT world, and I was already familiar with it but doing
a complete project in English helped me and I am now feeling much more comfortable
with the idea of working in English.

3.1.3 Possible improvements

Unfortunately, I have not been able to completely finish this project. So, there are a few
possible improvements that can be done.
The major possible improvement is about the data of the application. In fact, the data that
are in the application right now are fake data, I added them through an external file and
there are static. The improvement possible is to link the application with the official server
of the Conference, to get the official data that will be automatically updated. I do not
know if this server is already active, because the Conference is one year from now and I
do not think that all the presentations and presenters are already set now.
Another thing that could be improved is the graphical aspect, I heard that some students
were working on it and that is a good thing because the application is not very attractive
now, there is a lot of black and white, and it is very sober.
The main menu could be improved as well, it is just a list and it is very effective but I
think that it could be more beautiful.
I did not have the time to carry out of the functionality that can know if the user has or has
not read a news, so it could be a plus for the application if this functionality worked.
Some kind of geographical localization could be added to help the user to go to the Hotel
where the conference will occur or to help him to find a place to eat and/or sleep.

20
3.2 Human Review

This internship has not only been a very good professional experience it was also a very good
human experience. I had the chance of being part of the incredible Erasmus experience with
all the events and meetings organized. It was also a challenge for me to live in an unknown
foreign country for 3 months but I think that it helped me to be more independent and
autonomous.

3.2.1 The Erasmus Experience

The Erasmus program (European Community Action Scheme for the Mobility of
University Students) is a European Union exchange program which started in 1987. In his
first academic year (1987-1988) 3,244 students benefited the program to go study abroad
and ever since the number just keeps on growing. Over 150,000 took part of the exchange
program in 2006 which represents almost 1% of the European student population.
In the past 20 years, over 2 million students have benefited from Erasmus grants to help
them in their mobility.
Here, in Maribor, for this summer semester we were about 150 students from all over
Europe, studying different fields of study. Humanly, this is something everybody should
live. You meet a lot of people coming from a lot a different country. You learn how they
think, how they speak, how they live and it made me want to travel all over Europe and all
over the world even more than before.
Moreover, when you are an exchange student, you have to discover the new country
where you live. When I came here, I did not know a lot about Slovenia, so I discovered a
very beautiful country that should be better known by people.
In Maribor, we have the chance of having a very developed ESN (Erasmus Student
Network) that organized a lot of events for Erasmus people. They organize cultural
evenings, parties and trips to nearby countries. So if you are a minimum involved you can
never get bored.

ESN Maribor logo

Trip to Italy 9.4

21
3.2.2 Maturity and Autonomy improvements

Actually, I wanted to leave in a foreign country for a long time. The thing is I never took
the plane before I went here. I use to go home every weekend when I study in France, so
leaving for 3 months at 1,500km from home was a very new thing for me and my family. I
did not have the choice; I had to take care about everything here, the accommodation, the
food, the laundry When you are alone abroad, you cannot be shy or do not dare to ask
what you need to know because if you do not, nobody is going to do it for you. So I think
that those 3 months really helped me to grow up in a good way and to discover the reality
of life.
Slovene is a very complicated language for me because I never learnt Slavic language
before so it seems so different of all the language I could have talked. Of course I learnt a
few words in Slovene but I am still not able to have a conversation. That is why I had to
speak English a lot here, with the exchange students of course but with Slovenian people
as well. I think that I improved my English during the past three months and that now I am
feeling more confident to speak English with other people than I used to be.
Now that I met so many people from so many other countries I have a different vision of
the world and I really want to discover how people live and think in the other parts of the
world.

3.3 Conclusion

This 3-month internship was incredible for me. I used the knowledge gained from my
university to be able to realize something even more difficult. So, I learnt a lot thanks to
my project. It was really nice to feel helpful by creating an application that will be used in
the future. I wish I could do more about my project but it was very complicated and I
needed more time and more information to finish it all.
Plus, I had the chance to experience the Erasmus life which was really great. Meeting all
those people coming from Europe chatting and partying with them was one of the best
things I have done in my entire life. Moreover, this mobility made me more responsible
and autonomous than I used to be and it really helped me to be more open minded about
traveling and discovering other way of life.

22
CONCLUSION

To conclude this report, when I first heard that I could realize my internship abroad I did not
hesitate for a moment. I wanted to go abroad for a while so I asked to go. Thanks to this opportunity I
discovered a wonderful country: Slovenia. I almost did not know anything about this country before I
decided to go there, and I found a green mountainous country where life is very peaceful.

I was there to realize a 3-month internship at the University of Maribor which is the second
largest university (and city) of Slovenia. My internship was about the creation of an Android
application that will be used for a conference in June 2015. This application is created to help the user
to get the essential information he could need during the conference: Schedule of the presentations,
maps of the place, some news

I had to realize this application from the very beginning that means that I had to do the analysis
part to figure out what is going to be needed and how to organize everything to make it works. I learnt
a lot about analysis and especially about database because it was the first time that I had to manage
such a big database so I had some problems but solving them was a good experience.

I also had to create a user interface for the application; I chose a very simple main menu which
is just a list, and the user can choose what feature he wants to launch. The trickiest thing I had to do in
my project was to fill the database of the application with the real data. I set a system to fill the
database but I unfortunately did not have the time to get the real data from a server.

Thanks to this exchange I took part of the amazing Erasmus life, so I met a lot of people
coming from all Europe. It helped me to improve my English and to be more comfortable to speak
with other people.

To sum-up, this 3-month internship was a really good experience as professionally as


personally, I really love Slovenia which is a very beautiful country and I had the perfect conditions to
work on an interesting project at the University of Maribor. I do not regret at all to have left abroad
and I would recommend it to all my friends.

23
REFERENCES

http://en.wikipedia.org/wiki/Slovenia

http://www.slovenia.info/

http://en.wikipedia.org/wiki/Ljubljana

http://en.wikipedia.org/wiki/Maribor

http://www.maribor.si/

http://www.um.si/en/

http://en.wikipedia.org/wiki/University_of_Maribor

http://www.feri.uni-mb.si/podrocje.aspx?podrocjeID=0&LangID=1033

http://en.wikipedia.org/wiki/SQLite

http://www.cityhotel-mb.si/en/

http://en.wikipedia.org/wiki/Erasmus_Programme

24
APPENDICES

25
Appendix 1: Original search of features

26
Appendix 2: DatabaseHelper class

27
Appendix 3: onCreate method of the MainActivity class

28
Appendix 4: News table SQL requests

29

También podría gustarte