Hello Codename One community, my name is Sergey Gerashenko. I’m a junior software developer at Codename One. My journey here began 3 months ago when I passed my first interview at Codename One and my first task was to learn Java within 2 weeks.
I knew a few programming languages like Python, C and C++ but was unfamiliar with Java or managed languages beforehand.
Learning a completely new language in just two weeks seemed like an impossible task at first because it took me around five months to learn C++.
I joined this Java course on Udemy and started learning immediately.
My first impression of Java was great. It reminded me of C++ but much easier to understand and work with. After two weeks I felt confident with Java and started my work at Codename One.
My first task was to update the Kitchen Sink cross-platform demo application to demonstrate all the main usages of Codename One framework.
The First Week
My first week at the new job was a mess. The problem was that I came from the Real Time and Embedded background. I had never used Codename One or any other UI tools before and had a knowledge gap.
I tried learning by watching tutorial videos on Codename One Academy but it was a bit difficult for someone without UI development experience.
In the beginning, I didn’t understand some common terms and jargons and I had to Google my way around in order to get a good grasp of things. At the end of the first week, I was asked to show my progress.
I barely wrote 100 lines of code (not the best ones). Even worst than that, I felt like I didn’t learn enough in the past week. In the second week, I decided to start from scratch. Now that I knew the basics, things became much easier.
What Really Helped?
I found the Codename One developer guide to be the best learning resource. It’s great for learning your way around the tool and understanding its components.
In the How Do I section I found some very helpful video tutorials that also helped a lot with learning common use cases, like the Layout basics video, and the How to convert a PSD Design into a Native Mobile App.
At that point, I was comfortable enough with a good foundation level knowledge and my work seemed much smoother and stress-free.
I started to enjoy the process of building apps, and everything else in between. When my app was ready, I was asked to write the Kitchen Sink in Kotlin to demonstrate our Kotlin support.
My first impression of Kotlin wasn’t that great just as my first impression of Java. Kotlin syntax was a little bit different from those languages that I knew so far, but when I studied it more I started to see its real beauty.
Kotlin reminds me of Java but it seems more concise and readable after you get used to it. I spent the next two weeks on learning and writing the same Kitchen Sink app in Kotlin.
The process wasn’t too hard as Kotlin has great tools to convert Java code to Kotlin. Though it was far from perfect and I spent a lot of time to review the code and make the necessary changes.
After two months of hard work, learning and just enjoying the process, my app was ready for deployment and I was ready for my next challenge.
The Codename One Kitchen Sink app is a great tool for those who want to start developing applications with Codename One tools.
It explains all the basic components of Codename One and demonstrates the most common uses of them. It also demonstrates more complicated uses of Codename One like the low-level graphics possibilities with a gorgeous Clock demo and the use of GoogleMaps lib.
And even better, the app contains links to the source code of the project, so anyone can just download the code, see how they can use specific components, play with them and experiment.
But more importantly, users can see and learn about the application structure and how it needs to be written.