You are on page 1of 8

Ganbold 1

Itgel Ganbold
Professor Deby Dagher
UWRT 1102-400
April 08, 2015
I Want to Discover ?
I am someone who is fascinated with mobile app development because mobile apps make
life easier. I cannot live without a smartphone! Have you ever heard or said that statement?
The average person can survive three minutes without air, three days without water, and forty
days without food. How long can you survive without a smartphone?
Since the smartphone is one of the most popular electronic devices in the world, what
makes it so special in popularity? Is it the way you can place and receive phone calls with it?
This is what makes it a phone. However, this is not what makes it a smartphone as special as it is.
The apps that can be downloaded onto smartphones make it truly special. Todays most mobile
apps use Internet connection in order to run and execute some certain tasks. So, my question is
How to develop a mobile app with server based technology? This essay is targeted toward
Computer Science students and Mobile app developers who want to develop mobile apps with
server-based technology.
To find an answer for my question is complicated because to develop a mobile app with
server side technology is not one thing. It is a whole complex thing but I do not know how
complex it is and how to start. It took a few hours, and I have surfed over the Internet to find out
where to start. Eventually, I found a really interesting peer reviewed article, which is related to
my question. In this article, RESTful (Representational State Transfer) Web Services improve
the efficiency of data transfer of a whole-farm simulator accessed by Android smartphones,

Ganbold 2
showed me the three core things about an app with server-based technology. Database, Server
side and Client side are three core principles that I need to understand to develop apps. What is a
Database Management System (DBMS)? What kind of technology do I need use on the server
side? These are the questions it raised for me.
Margaret Rouse who writes for and manages WhatIs.com, TechTargets IT encyclopedia
and learning center has said about DBMS If the database is a file of information, then the
DBMS is the file folders, the file labels and the file cabinet. From my perspective, database is a
place where we can store data, and DBMS is a collection of software, which we can work with
databases. I have found an amazing book about databases. The name of the book is Expert
MySQL. I have explored following things from this book.
Structured Query Language (SQL) is used for databases. By using this language, every
application stores their data on database. The databases could be anywhere in the world. There
are two types of databases. One is centralized database. Another one is distributed database. The
basic difference between these two is the number of databases. A centralized database has one
database but it is slow because the whole network traffic is focused on one network. On the other
side, distributed database has two or more databases that separates network traffic but those
databases take time to synchronize their data with each other. Now, lets talk a little more about
DBMS. There are four types of DBMS: Navigational DBMS, Network DBMS, Relational
DBMS and Object Oriented Relational DBMS. First, Navigational DBMS is based on hierarchy
that is similar to tree but this type of DBMS is barely used nowadays. Second, Network DBMS
supports many to many relationships that usually result in complex database structures. Third,
Relational DBMS defines database relationships the form of tables. This is the most popular
DBMS in the world. The last one is an Object Oriented Relational DBMS that stores data in the

Ganbold 3
form of object that require attributes. Based on what I learned, I designed the database for my
app. While I was scheming, I learned about database normalization, which reduces the data
redundancy from a book named Pro MySQL by Michael Kruckenberg and Jay Pipes.
What kind of technology do I need to use on the server side? I went to Mohamed Shehab
who is an associate professor of software and information systems to find an answer for my
question. He said I had better to use RESTful API, which is a really convenient way to transfer
and share data between client and server. This raised more questions. How can one make a
connection between a server and database? What is RESTful API and how I use it? Professor
Shehab guided me to the right direction. At that time, we did not have time to cover all of those
concepts. He said I need to learn about JDBC to connect database with server and JSON to
produce and consume data on the server side. It brought up again more questions. What are
JDBC and JSON?
Here is a description about JDBC in Oracle web site The JDBC API is a Java API that
can access any kind of tabular data, especially data stored in a Relational Database. Now it
makes more sense, and it seems JDBC is just a connector to Relational Database. However, there
are still more questions. I have not found any good resource about RESTful API and JSON yet.
A peer reviewed article by AUTHOR, said The Materials Project RESTful API allows
users to directly access Materials Project data via the Hypertext Transfer Protocol (HTTP), and
provides an efficient way for users to programmatically query for materials information instead
of relying on browser-based interfaces. This is what I think about RESTful API. It seems
RESTful API is nothing special and it is just web service which is really easy to use. After I have
read the whole article, I understood better about RESTful API and JSON. This is what I
understood. Materials API changes the way of communication between applications. In this

Ganbold 4
view, MongoDB, NoSQL or MySQL, which are databases that store all the data in the back end.
The Materials API uses REST which is an architectural style that makes API simple to use for
other client side apps. HTTP has methods POST, GET and so on, which are used to retrieve and
create the data. In this case, data could be called media. There are several media types that are
XML, JavaScript Object Notation (JSON) and so on. JSON is more readable for humans, which
is simple to understand because XML is more readable for machines. Based on what I
discovered, I attempted to consume and produce JSON on the server side by using RESTful
architecture. I had spent fourteen days because it was hard to execute and implement theories in
real life. Here is the link for my RESTful API:
http://api-studentcenter.rhcloud.com/REST/V1/recordService/get.
After I had finished server side, more questions came to my mind. How do I get JSON
media from RESTful API onto mobile app? I surfed over the Internet to find some information
from the search engine but those information were so confusing to understand for me. Then, I
went to meet with Professor Shehab, and he recommended me to read Dave MacLeans Expert
Android book. In this book, author elaborated further on many good topics. I found my answer
in chapter four. The writer describes and teaches about how get JSON media. The author also
describes five types of android storage. Every one of them has own pros and cons. In addition, I
need GSON library to convert JSON to java object and back. GSON is one of Googles projects,
which is really easy to use. MacLean said, GSON improves the efficiency of android apps, which
work with APIs. Because of simple usage, GSON is very popular among Java and Android
developers. It leads me to another question. How to load JSON media faster and safer? Since
Google owns Android, I decided to look through their developer page. Here is Googles new
networking library for Android called Volley. Volley developers team said Volley is a library

Ganbold 5
that makes networking for Android apps easier and most importantly, faster. From my
perspective, Volley library is not for downloading huge data but it seems suitable for small app
like mine, which does not need to download huge amounts of data. After I read, I planned to use
it on my project. It was really easier to use than AsyncTask, which is for android threading.

It is not possible to write every single step that I did to explore and learn these things.
There were huge coding and configuration parts to finish my project. If you are more curious
about coding and configuration parts, you are able to find these information from reference
section.
The most significant answer for my question How to develop a mobile app with server
based technology? is to understand three main concepts that are a database, a server and a
client. These three principles are very broad to explore. It is hard to develop mobile app without
understanding one of these three main concepts. I know that sounds complicated and hard but
once you start something that matters based on your passion, you will not see difficulties because
you love it.
To explore things based on my passion is amazing. At the very beginning, I was not
expecting to explore, learn and understand what I have gotten today. I understood a few
significant things, which are effective in my life. The one of them is how to think critically. I
changed my purpose that why I go to university from learning to training my mind to think.
Another crucial thing that I understood is how important it is to start what I want to do. Most
people do not start because of procrastination. When is your one day to start?
About my research, if I had my more time to explore, I would like to explore about
Parse.com and Bluemix.net. These websites provide services so that developers do not have to

Ganbold 6
worry about database and server instead developers can spend more time on their apps to
develop. I would definitely to continue to explore more things when I get leisure time.

Ganbold 7
Works Cited
Bell, Charles A. Expert Mysql. Berkeley, CA: Apress, 2012. Internet resource.
Developers.google.com. 'Google I/O 2013: Volley: Easy, Fast Networking For Android'. N. p.
2015.
Enck, W, M Ongtang, and P McDaniel. "Understanding Android Security." Ieee
Security & Privacy Magazine. 7.1 (2009)
Inoue, T, H Sato, N Takahashi, H Asakura, and Y Uematsu. "Web Api Database
Systems for Rapid Web Application Development." Ieice Transactions on
Information and Systems. (2010)

JDBC Introduction (The Java Tutorials > JDBC(TM) Database Access)'. N. p. 2015.
Kalali, Masoud, and Bhakti Mehta. Developing Restful Services with Jax-Rs 2.0, Websockets,
and Json. Birmingham: Packt Publishing, 2013.
Komatineni, Satya, and Dave MacLean. Expert Android. , 2013.

Kruckenberg, Michael, and Jay Pipes. Pro Mysql. Berkeley, CA: Apress, 2005.
Jackson, Wallace. Pro Android Ui. New York: Apress, 2014.

Mateos, C, A Zunino, M Arroqui, and C Machado. "Restful Web Services Improve the
Efficiency of Data Transfer of a Whole-Farm Simulator Accessed by Android
Smartphones." Computers and Electronics in Agriculture. 87 (2012)
Ong, Shyue P, Shreyas Cholia, Anubhav Jain, Miriam Brafman, Dan Gunter, Gerbrand Ceder,
and Kristin A. Persson. "The Materials Application Programming Interface (api): a
Simple, Flexible and Efficient Api for Materials Data Based on Representational State
Transfer (rest) Principles." Computational Materials Science. 97 (2015)
SearchSQLServer. 'What Is Database Management System (DBMS)? - Definition From
Whatis.Com'. N. p. 2015.

Ganbold 8

You might also like