Optional Module Application Development (using Java)

by ustroetz

We do it everyday, almost every second: Using apps. New apps pop up daily. We have apps for text editing, for cooking our meals, for keeping track of our workouts, for everything. Just in time for the big app boom, UNIGIS released the optional module “Application Development (using Java)”. It fit right into my programming focused GIS path, after I finished the OSM and Python modules. So I went ahead and selected the module.

The module was structured in 13 lessons and four assignments.

It started out with a broad introduction to different application types and different use cases, which was also the first assignment. We were given three different use cases and we had to identify the proper programming language. Two examples were about general geo-processing and one was about an iPhone app. Since I do Python geo-processing on a daily basis, it wasn’t to difficult to figure that out. The answer to the iPhone app was delivered by a quick Google search. I was surprised: I thought all that stuff is written in JavaScript, but iPhone apps are actually written in Objective-C, and can be ‘translated’ from Javascript.

Javascript was then also the topic of the next lesson and assignment. We had to modify a OpenLayers Javascript code and pep up the HTML a little bit. This was nothing new since I learned that extensively during the Web Mapping Applications Summer School in Girona last year.

Lesson and Assignment three were then about the other end of the game: Server-side scripting! We were given a PHP query and had to explain what it does.

After that was a long stretch of lessons without assignments. The topics covered were: system architecture, object-oriented programming, and programming environment.

Finally we touched Java itself. The following seven lectures covered everything necessary to build an actual Java app which was the last assignment. All of that was new to me. We used Eclipse to build the app. The app is supposed to receive data from a GPS device and bring it to a server, which eventually will publish the information. The conceptual model (from the UNIGIS lectures) below illustrates the individual steps.
Our task was to develop the receiving, processing, validating, and triggering parts of the app – the server component. It was quite tricky, but very well documented and we received detailed step by step instructions. Eventually we could test our app with a set up server from the instructor.

Developing the app was definitely the hardest and most time consuming part of the module. Though I learned a lot: starting from learning some Java to actually understanding what steps are necessary to receive data and bring it to a server.

The module was well structured and managed, going from a general app introduction all the way to developing a Java app without losing or boring the student.