Archive for April, 2013

Off Topic: Looking for Java/Scala Developers in Berlin

Written by sven. Posted in off-topic

First of all: This is com­plete­ly off top­ic and has noth­ing to do with Good­News or uPod or even Android at all. This being said I want­ed to let you know that I am look­ing for a few Java/S­cala-Devel­op­ers to join my team at Beta Sys­tems in Berlin. We will devel­op the next gen­er­a­tion Web UI for our enter­prise appli­ca­tions. So if you are a devel­op­er and you are look­ing for a new chal­lenge or if you know some­one how might be inter­est­ed, please read the full job offer and learn how to apply.

The uPod Service

Written by sven. Posted in preview

Though the first release of the uPod app is still far away, I want­ed to use the oppor­tu­ni­ty to let you know about the progress I am mak­ing. As I’ve already have a quite com­plete idea of how the user inter­face will look and work like I’ve decid­ed to devel­op the app bot­tom up — mean­ing I start with the stor­age and syn­chro­niza­tion stuff, so that I can use real data when work­ing on the user inter­face. This also implies, that it will take some time until I can pro­vide you the first screen­shots of the app.

Today I want to tell you a lit­tle bit about the uPod ser­vice. Though you will nev­er see it when using the app, it is a very impor­tant part of uPod. As a for­mer user of Google read­er and an own­er of an Android phone and tablet I want to have full syn­chro­niza­tion across all my devices right from the begin­ning. For exam­ple at home in the evening I want to use the big screen of my Nexus 10 to scan through new pod­cast episodes and add them to my library and playlist and when I am on my way in the morn­ing I want to lis­ten to this playlist on my Galaxy Nexus.

To make this pos­si­ble my sub­scrip­tions, episode library and playlist need to be stored in the cloud and my devices need to syn­chro­nize with this stored infor­ma­tion. And this is where the uPod ser­vice comes on to the scene — it will be run­ning in the cloud and store all the infor­ma­tion required by my devices includ­ing my sub­scrip­tions, my library, playlist (includ­ing episode order­ing) play­back posi­tions and gen­er­al lis­ten pref­er­ences. The ser­vice is also respon­si­ble for check­ing the sub­scrip­tions of all users for new episodes and push­ing them to our uPod inbox­es. Keep­ing this log­ic on the serv­er helps to reduce the syn­chro­niza­tion log­ic and the amount of data to be trans­ferred dur­ing a sync on the mobile device. Final­ly the uPod ser­vice pro­vides a web ser­vice API which is used by the uPod app to access all the required infor­ma­tion and push back changes.

Now you may ask how the authen­ti­ca­tion against the uPod ser­vice works? That’s sim­ple: When start­ing the uPod app for the first time you will get an account pick­er pro­vid­ing you all your google accounts. Sim­ply select one of them and all your uPod infor­ma­tion will be linked to your google account — no need to cre­ate anoth­er account and select anoth­er user­name and pass­word.

The good news is that the imple­men­ta­tion of the ser­vice is near­ly fin­ished and it is work­ing well. For the devel­op­ers among you who are inter­est­ed in the tech­ni­cal details: The uPod ser­vice pro­vides a REST like web ser­vice API and is imple­ment­ed using the pro­gram­ming lan­guage Scala and the Play 2.1 frame­work. Mon­goDB serves as the stor­age back­end for the ser­vice.

Next I will start work­ing on the uPod app, start­ing with it’s stor­age and syn­chro­niza­tion lay­er. I guess it will require a com­pa­ra­ble effort like imple­ment­ing the uPod ser­vice. Stay tuned!