Draft

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

Ganbold 1

Itgel Ganbold
Professor Deby Dagher
UWRT 1102-400
April 08, 2015
I Want to Discover ?
I cannot live without 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 smartphone?
Since the smartphone is one of the most popular electronic devices in the world, what
makes it so special in popularity? Is the way you can place and receive phone calls with it? This
is the thing that make it a phone. However, this is not what make a smart phone as special as it is.
The apps that people can download onto smartphones make it truly special. So, my question is
How to develop a mobile app 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 a one thing. It is a whole complex thing but I do not know how
complex it is and how to start. Last a few hours, I have surfed over the internet to find out where
to start. Finally, I get really interesting peer reviewed article which is related to my question. In
this article, the author elaborate RESTful Web Services improve the efficiency of data transfer
of a whole-farm simulator accessed by Android smartphones. The article shows 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 app. What is Database Management
System (DBMS)? What kind of technology do I need use on the server side? These are the
questions it raises for me.

Ganbold 2

Here is what this person whose name is Margaret Rouse have 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
database. The name of the book is Expert MySQL. I have explored following things from this
book.
Database uses Structured Query Language (SQL). By using this language, every
application stores their data on database. Database could be anywhere in the world. Database has
two different types. One is centralized database. Another one is distributed database. Basic
difference between these two is number of databases. Centralized database has one database but
it is slow because whole network traffic 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 further about DBMS. There are
four types of DBMS that are Navigational DBMS, Network DBMS, Relational DBMS and
Object Oriented Relational DBMS. First, Navigational DMBS is based on hierarchical that is
similar to tree but this type of DBMS barely uses nowadays. Second, Network DBMS supports
many to many relationships that usually results complex database structures. Third, Relational
DBMS defines database relationships in forms of tables. This is the most popular DBMS in the
world. Last one is Object Oriented Relational DBMS that stores data in form of object that has to
have attributes. Based on what I learnt, I designed the database for my app. While I was
scheming, I figure out about database normalization which reduces the data redundancy from the
book named Pro MySQL by Michael Kruckenberg and Jay Pipes.

Ganbold 3

What kind of technology do I need use on the server side? I went to Mohamed Shehab
who is 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 really convenient way to transfer and
share data between client and server. It raises me another questions. How to make a connection
between server and database? What is RESTful API and how to use it? Professor Shehab guided
me to the right direction. At that time, we did not have time to talk about all of those things. He
said I need to learn about JDBC to connect database with server and JSON to produce and
consumer data on the server side. It raises me 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.
Here is a peer reviewed article about RESTful API. The 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 view, MongoDB, NoSQL or MySQL which are databases store all the data
in the back end. The Materials API uses Representational State Transfer (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 use to retrieve and create the data. In this case, data could be called

Ganbold 4

media. There are several of media types that are XML, JavaScript Object Notation (JSON) and
so on. JSON is more readable for human 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://apistudentcenter.rhcloud.com/REST/V1/recordService/get.
After I had finished server side, more questions come to my mind. How 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 recommend me to read Dave MacLeans Expert Android
book. In this book, author elaborated further many good topics. I found my answer in chapter
four. Writer describes and teaches about how get JSON media. Author also describes five types
android storage. Everyone 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. Author said, GSON improves the efficiency of android apps which work with APIs. Because
of simple usage, GSON is very popular among the java and android developers. It leads me for
another question. How to load JSON media faster and safer? Since, Google owes Android, I
decided to look through their developer page. Here is Googles new networking library for
Android that called Volley. Volley developers team said Volley is a library 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 as like as mine which
does not need to download huge data. After I read, I planned to use it on my project. It was really
easy to use than AsyncTask which is for android threading.

Ganbold 5

It is not possible to write every single steps that I did to explore and learn these things.
There were huge codding and configuration parts to finish my project. If you are more curious
about codding 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
understating 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
expect to explore, learn and understand that I have gotten today. I understood a few significant
things which are effect on my life. The one of them is how to think critically. I changed my
purpose that why I go to university from learning to train my mind to think. Another crucial thing
that I understood is how important to start what I want to do. Because, most people do not start
even they can instead of that people usually think that I will start one day. When is your one day
to start?

References

Ganbold 6
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): 14-18. Print.
Bell, Charles A. Expert Mysql. Berkeley, CA: Apress, 2012. Internet resource.
SearchSQLServer,. 'What Is Database Management System (DBMS)? - Definition From Whatis.Com'. N. p., 2015.
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): 209215. Print.
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. Internet resource.
Kruckenberg, Michael, and Jay Pipes. Pro Mysql. Berkeley, CA: Apress, 2005.
Developers.google.com,. 'Google I/O 2013: Volley: Easy, Fast Networking For Android'. N. p., 2015.

You might also like