Interview with Gluon App Contest Winners

Competition_1_prizesThe Gluon Mobile App Contest concluded just prior to JavaOne. We were overwhelmed by the volume and quality of entries into this contest, and we had a really hard time picking the winners, so much so that we decided to give two third prizes, as we had two very deserving entrants at that level.

The results of the contest were:

All winners also receive one year subscriptions to Gluon Mobile and Gluon CloudLink.

With the winners announced, we took the opportunity to ask them their honest opinions on a number of topics related to mobile development. The apps that they developed were all written in Java, and deployed to iOS and Android devices. This was made possible with Gluon Mobile. Read on to hear their thoughts.

You entered the Gluon Mobile App Contest and won – congratulations! Can you introduce yourself to the readers – who are you, who do you work for, what are your interests and hobbies?

Jens: My name is Jens, I work as a bartender based in Berlin and I started programming in Java in 2012.

Yiannos: I am a 31 year old Cypriot who studied Computer Science at the University of Manchester. My interest into computers started in a very early age, as my dad, literally, was bringing every new technology into the house. Computers like Commodore64, BBC, Intel 286, 386, 486 and first Pentium(s) were some of the computers that my brother and I had the chance to interact with. I still remember that Commodore… It was so slow in loading. Those radio tapes it was taking for media had to play for 30-60 minutes before you see a game starting. Well experience with programming did not come before I turned 16. Until that age every kid who had a computer was mainly using it for playing video games and chatting on IRC. Building simple applications in Visual Basic on the 5th grade of high school, made me realise the potential of computers for being more than just entertainment machines. The feeling of creating your own software and seeing it running on these machines has been great enthusiasm since then.

In order to keep the historical story short, Visual Basic was the king of my heart in my youth, but later at University, databases, Linux and Object-Oriented Java programming came to override it. With my return to Cyprus I worked for four years as an Oracle consultant, mainly supporting clients with Oracle Database Enterprise products. Last year I made a jump to the banking sector and since then I am employed as an Oracle Database Administrator in one of the largest banks of the country. Since my work is not related with programming, I keep Java programming as one of my main hobbies. However, I do not spend all day on my computer anymore like in the old days. Now I have other hobbies like running, exercising, dancing, and go to the local football stadium to watch my favourite team.

Aniket: My name is Aniket Joshi and I am a 17-year old student in Texas. I have been learning to program for the last 4 years and designing apps is one of my hobbies.

Yannick: I’m Yannick Van Godtsenhoven, I work for PlayPass, a Belgian startup that has its own product for access control and cashless payments on festivals and events worldwide. I’ve been an Android developer for the past 4 years. Next to spending time with my wife and kids, I play ice hockey, try to go running a few times a week and keep up to date about mobile development.

Out of all the entries yours were most impressive to the judging panel at Gluon. What motivated you to enter the competition, and what motivated you to create the entry that you made?

Jens: The main reason for taking part in the contest was to test Gluon Mobile for several additional apps that I have in mind, and to receive feedback for my app.

Since I love doing sports, mostly swimming and running, and because I realized that there is virtually no running app which allows to track lap times and race against the best lap time, I decided to build a custom-made solution. In order to test and showcase as much functionality of Gluon Mobile as possible, the idea of the basic running app was further developed into the orienteering app.

Yiannos: Well, it all started through a question in stack overflow. I was experiencing some bad performance with scrolling on an application I was creating with javafxports on my mobile device. The solution came from Jose Pereda [Gluon Note: Jose is a software engineer at Gluon working on Gluon Mobile, and also provides training and consultancy work to our customers] who also urged me to enter this contest. After a day of thought, I said “why not?”. There was enough time to create something good, but not complex, even in my free time. This contest was an opportunity to make a neglected dream to come into reality. I always wanted to create a game and I am pretty sure that every programmer imagines making a game at least once in his lifetime. BlackJackFX was my first ever created game.

Aniket: As a student, being able to code on-the-go, wherever I am increases my learning capabilities and how fast I can learn. To fill this gap, my app ScriptFx, allows students to program directly from their phone or tablet.

Yannick: In some cases, developing a different native app for all mobile platforms is not an option, so I always keep an eye out for interesting cross-platform technologies. I played around with JavaFX in the past, so Gluon was already on my list to try out and see if its a valid alternative. When I read about the contest, this seemed like a good reason to take action. I had already developed the idea of iniDial into a native Android app some time ago, but it was ready to be updated. That’s why I decided to rewrite it from scratch and develop it in a cross-platform technology to also get it to work on iOS.

What was your impression of working with Gluon Mobile? Did it make building cross-device mobile applications easier and quicker? What did you like, and what do our engineers need to work on next?

Jens: Although I was really looking forward to programming in Android it was a huge disappointment. Very cumbersome, overly time-consuming and apparently each build version requires a special treatment. Gluon Mobile has been a great help in solving these difficulties, the library as well as the fast responses to questions on, and it simplified the development of mobile applications tremendously. Moreover, the examples and open source libraries provided a great deal of inspiration.

What I like most about Gluon Mobile is the fact that you are able to build an app with just a minimum amount of mobile code. Even if you need to access mobile specific resources Gluon Charm Down can handle that for you in a lot of cases.

Another huge advantage is the possibility to test an app on desktop, which is much faster than testing it on a mobile device, where you have to go through the time-consuming process of installing and reinstalling the app on a device.

What I strongly miss is the possibility to use .aar libraries and some more UI controls like TabPane or Pager, with the possibility to easier customize their look [Gluon Note: Improved native library support is now available in Gluon Charm Down 3.0.0. TabPane and Pagination functionality are both already available in Gluon Mobile through the standard JavaFX APIs].

Yiannos: Gluon Mobile has almost reached the concept of Write Once Run Anywhere. It is amazing how easily you can write code and run it on both Android and iOS platforms. People with JavaFX experience can start making mobile apps and deploy it on devices in a matter of minutes. Even Desktop applications can be turned into mobile platforms by just redesigning the GUI to fit into the mobile architecture. However, the tricky part comes when you need to use some of the native components of the device. There a bit of research is needed to find out about parameters that need to be set and how they are set on these two different mobile platforms. I am seeking for a framework where the same library will be able to handle the use of camera, locations, notifications, sounds, etc. on both mobile architectures without the need of any additional work from programmer’s side [Gluon Note: This is precisely what is offered through Gluon Charm Down – access to native services without platform-specific code]. Currently JavaFX performance on iOS devices is way better than Android’s. I hope that Gluon VM will soon be released and change this with a better performance on Android and iOS, replacing the discontinued RoboVM on iOS [Gluon Note: Indeed, performance is set to get much better with Gluon VM].

Aniket: I have been working with Gluon Mobile since almost the very beginning, before Gluon Mobile even existed, and when Javafxports was the only way to get my JavaFX code on mobile devices. Gluon Mobile has made huge strides since then and it is a lot of fun to be able to see my work come to fruition on my personal device. Gluon Mobile has made the process so simple and fast and easy to use. I especially like the user interface elements. I wish that the team would work more on improving speed and performance as well as improving the spread of device compatibility by perhaps adding functionality for Apple Watch and Android Wear as well.

Yannick: Generally I was impressed by how easy it was to write a Gluon mobile application. After getting used to JavaFX again, developing screens went faster because Gluon Mobile has already a lot of components available for you. Also hooking into native, which I used for retrieving the contacts from the device is not hard. What I think should be improved is the performance. Performance is ok, but on mobile devices, users expect more than just ok. Clicking a button should respond immediately, not after a small delay. Animations should go smoothly, which is not always the case. It was the first thing that people mentioned, when showing them the app, so I think some efforts should be made in that area [Gluon Note: Gluon has huge performance plans in the works, starting with Gluon VM]. For now the UI of the Gluon framework is very much Material Design based. This makes that a Gluon app really feels at home on an Android device, but on iOS devices, it feels out of place.

There are a number of options when building mobile applications – native iOS / Android coding, hybrid (Xamarin (C#) and Gluon (Java)), or JavaScript-based like Apache Cordova. How do you feel Gluon fits into this ecosystem? What do you prefer – one codebase in Java (or JavaScript) for multiple platforms, or writing different applications for each platform? What motivated you to use Gluon Mobile?

Jens: For me, who is only programming in Java, Gluon is a great solution for building mobile applications. It takes away the pain of programming in Android, and makes it straightforward and hassle-free. Having one codebase for multiple platforms further simplifies the development process.

Yiannos: Each option has its supporters and its difficult to say if one is the greatest of all the others. Both Xamarin and Gluon offers one codebase for multiple platforms, but the choice between the two is made strictly on which language you feel more comfortable to code with. I am developing apps in Java for almost 10 years now and I never thought of learning any other programming language. Therefore, Xamarin was not an option for me and thanks to Gluon I am now able to develop mobile apps using the same knowledge I gained all these years. Of course, there is a great benefit of writing one codebase and making it available on all platforms, but native iOS / Android coding is still the only solution when you want to reach maximum performance.

Aniket: I have tried each of the different cross-platform technologies and I personally like Gluon the best because it uses the first language I learned and the language I know the best, Java. Gluon also has the simplest and easiest startup time of all of them.

Yannick: For me, the choice really depends on the application itself. If its an app with special requirements for graphics or native integration, it’s probably best to go with native. For more “regular” apps, a cross platform framework can be a valid option. I’ve also played around with Xamarin and Ionic 2 and they all have their pros and cons. I’m not such a big fan of Ionic because the I don’t feel at home in the whole Javascript eco system. It evolves so quickly that I have the feeling that I’m constantly updating and fixing things instead of getting on with development. Xamarin works really well, because it compiles to native bytecode, so no performance loss there. I decided to use Gluon because I’ve been developing in Java my whole professional life, so having a cross-platform mobile development environment in Java is awesome! I think this is also where the power of Gluon lies, offering a mobile development environment on multiple platforms for people and companies who are already fully into Java.

Now that you all have Gluon Mobile and Gluon CloudLink licenses for your personal projects – what do you think you’ll be working on? Do you plan to put anything else into the app stores?

Jens: I submitted my first app Energy Cost Manager some time ago to the Google Play Store. It was also my first app built with Gluon Mobile.
There are also some other simple apps in my mind, e.g. the running app I mentioned, and especially one complex app I am already working on for some time. It is a beverage inventory application consisting of a main controller part which is running on desktop and a simple controller part, running on mobile. The desktop controller’s main purpose is to create reports of the flow of goods, and to handle administrative tasks, while the mobile controller is intended for the collection of data.

The apps I’ve built so far were all created in preparation for this application. Another reason for creating Orienteering was to test a cloud backend, which is crucial for the inventory system. Obviously I would have preferred to use Gluon CloudLink, but unfortunately the free tier doesn’t contain the Cloudlink Dashboard, which was important for me in order to understand how to structure json data, so I decided to use Firebase as backend.

There are still some key questions that need to be answered, mainly which cloud backend to eventually use (how much storage, data transfer volume, etc. will be needed), and how to handle monthly subscriptions. Once these questions have been resolved, there is definitely more to come on the Play Store.

Yiannos: I have already started a project a year ago, which I postponed to enter this competition. It was initially named “eBay Watchdog” (which will possibly change), and its purpose is to find the greatest deals on eBay on things you are seeking to have and on the price you are seeking to pay. Once you set your preferences, just sit back and relax, and wait for the watchdog to notify you when there is something. All my friends and I are currently using the iOS beta version, and we are always the first to grab the deal. It’s amazing what you can find and on what prices. The performance on iOS is quite good, but I am a bit frustrated from the corresponding performance on Android. My code is not perfect, therefore, a lot of this slowness may be fixed with the support I won from this contest.

Aniket: Right now I do not have any new projects in consideration, but I will definitely begin to work with Gluon Cloud to see how I can implement connectivity in my apps.

Yannick: I’ll first start by updating iniDial itself, and probably also release an iOS version now that I have a license. I’m working on a next project that I started in Ionic 2, but I’m thinking of moving that away from hybrid to another technology. I haven’t decided yet on what it will be 🙂

Gluon wishes to conclude by thanking all entrants to the Gluon Mobile App Contest, and to congratulate the four winners above. We appreciate all of your feedback and we strive every day to ensure that we meet our users expectations. We have a lot of software coming out in the coming months, and we look forward to bringing you the very best Java Mobile developer experience, as well as the APIs for you to create the very best user experience for your users. Keep an eye on our Twitter stream for the latest updates.