I’m Francesco Galgani, a developer and a Codename One enthusiast.
Few days ago I published the first version of an Italian free preliminary course for mobile cross-platform development with Java + Codename One. I’ll probably write other articles, however the first module is complete. This course is intended for people interested in app development, but have no prior programming experience. That’s why my first article has no code, it’s preparatory to understand the magic and challenges of development.
In this course I tried to share my experience. The reader is gradually introduced to the first lines of Java code, that solve a simple math problem. After that, the same problem is used to see how to write the first app with Codename One. Finally, there is a lot of “homework” to learn Codename One.
Currently, there are seven articles.
The first is about Codename One, it’s a short introduction: I describe why I consider it the best tool for cross-platform development. I invite to spread the word about it.
In the second I discuss why it’s so difficult to find a good learning path in the chaotic and unstable world of software development. I explain why the real challenge is to find good indications that will last over time: about that, I report concrete examples of wrong paths. I indicate JAVA + Codename One + Spring Boot as a good direction.
The third is an introduction to the “algorithm” concept. I discuss what we need to know about the hardware and what are the programmable machines that we use every day (smart-phone, smart-tv, smart-car, etc.). I included an introduction to programming languages, written by me, as downloadable pdf slides. After that, I describe why software debugging is the longest, most difficult and most expensive part of software development. I conclude with the concepts of “device-agnostic”, “IDE-agnostic” and “language-agnostic”.
In the fourth I introduce a simple math problem (the linear motion of a car) that I use to describe the first lines of Java code and to show a good way to decompose a problem in algorithms. I suggest to use a Java online compiler to test the code examples. Then I describe why algorithms depend on the tools we have and on the logic of the chosen programming language. I suggest what we can try to do when the chosen programming language doesn’t have the functionality what we need, with examples.
In the fifth I deeply describe what we need about software, hardware and cloud services to do cross-platform development. After that, I suggest which chapters of a specific Java 8 learning book should be studied. I also include a Java introduction written by me, as downloadable pdf. Then I list several links about Codename One learning tools, documentation, technical support.
The sixth revisits the same math problem of the car in an Objected-Oriented Programming perspective. I guide the reader to write the first Codename One app to solve that problem. This article ends with a list of coding exercises to learn Codename One.
In the seventh I summarize sixteen points what I think are the best software engineering practices for managing complexity in a software project.
I hope you or your friends will find this guide helpful and useful.