JavaFX Used in Vancouver Olympics

I am not sure if this is the first web site that uses JavaFX for production, the official web site of the Vancouver Winter Olympics 2010 is using JavaFX for displaying the medal history of the Winter Olympics Games. In this winter, Vancouver is probably hot for Olympics, so is JavaFX. ( Check it out here: http://www.vancouver2010.com/olympic-medals/geo-view/ )

This is a very cool demo (oh, I should say real world application) of the JavaFX visualization technologies. Overall, it works well except for some animations were not so smooth. Though the same effects can be achieved by Flash, I would say this is a good start for JavaFX going into practical use. Hope to see more and more such applications in JavaFX.

Other Links:
Games in JavaFX
JavaFX Resources
British Citizenship Test: Life in the United Kingdom Test for settlement and Citizenship

UK Citizenship Test on iPhone

Review on the Book “Essential JavaFX”

It has been a year since the official release of JavaFX. JavaFX had gone through 3 major releases and now the current version is 1.2.1. There are a few books out there on JavaFX. Today I would introduce the book “Essential JavaFX” by Gail Anderson and Paul Anderson. The book is also available in Chinese and it was translated by Sun Asian Globalization Center. You can read my review in Chinese.

Gail and Paul are the founders of Anderson Software Group, Inc. They are both experienced software professionals and instructors. They have coauthored a few textbooks. “Essential JavaFX” is their latest book for people to learn the JavaFX script language. The JavaFX team at Sun had provided technical guidance for the book. The content conformed the JavaFX 1.2 SDK. For this reason, the book can serve as an excellent textbook for students or beginners. Other JavaFX programmers may also find it helpful as a reference resource.

As stated in the preface, the book is primarily for developers with some previous experience in any programming language(not necessarily Java). Readers without any programming experienced are advised to first learn some language such as Java or C++. In my opinion, because the strong intrinsic relationship between JavaFX and Java, I would consider that Java programmers are the most likely to learn JavaFX and have the lowest barrier to master it. Other developers with OO (Object Oriented) programming experience may also find familiar concepts and syntax in JavaFX.

I have multiple years of experience in various programming languages such as VB, Java and C++. When I start to learn a new language, I usually go through a HelloWorld like example to quickly understand its style and characteristics. Then I will skim through its grammar or syntax. After I got some basic ideas, I will dive into the details of each language construct. I find this approach extremely effective. Since the chapters of the book are organized in the same way, I find it very easy to follow.

The first chapter tells you how to download and setup your development environment. You basically need JavaFX SDK and NetBeans IDE. If you have experience on modern IDE like NetBeans or Eclipse, it won’t be difficult for you to install everything. A working development environment speeds up your progress in learning because you can try out the sample code while you are reading the book.

The second chapter provides an overview of JavaFX by an example called GuitarTuner. This example gets you on fast track to understand key concepts in JavaFX, such as declarative syntax, scene graph, binding and animation. After the first two chapters, you will probably get a feel of what functionalities can be achieved by JavaFX and how they are done in the language.

The third chapter is about the language elements, such as variables and types, operators and expressions, classes and objects, functions and triggers. This chapter may seem tedious for experienced programmers. However, these are the fundamentals of a language, so my suggestion is to go through it fast and come back from time to time for language references.

The next two chapters introduce the graphical objects and UI components. You need to know them in order to construct your UI by using nodes, shapes, layouts, skins and SWING wrappers provided by JavaFX. If you know SWING or Java2D well, you may be able to identify some links between JavaFX and Java.

The sixth chapter elaborates on a JavaFX project “Piano” to demonstrate various features to build a rich application. By digesting this example, readers learn how to put everything together to build a JavaFX application. After finishing this chapter, a Java programmer should be able to write applications in JavaFX.

Chapter 7 and 8 illustrate two important features of JavaFX: animation and image handling, which include topics on Timelines, Keyframes, interpolation, path, transition, Image and ImageView classes. If you want your application to get “richer” and have better user experience, you should spend more time on these two chapters.

Chapter 9 gives more details on getting internet data through RESTful web services. Getting remote data is almost a must for any RIA. Readers will learn two classes of JavaFX: PullParser and HttpRequest to retrieve and parse JSON or XML data. An example shows how to invoke web services from flickr’s photo services.

The last chapter describes how to develop a JavaFX mobile application. The Mobile Emulator in NetBeans is introduced. If you are going to develop a mobile application, you should definitely read this chapter to understand some mobile-specific issues. As an example, the authors walk you through the process of migrating a desktop JavaFX program to run on a mobile device.

In general, the content of the book “Essential JavaFX” is easy to be understood and the examples are quite instructive. I think the authors probably aim at writing a textbook for junior or intermediate programmers, hence some advanced features of JavaFX are not covered, such as multi-media and reflection. To sum up, I would recommend it to people who are about to learn the JavaFX language. It helps you learn JavaFX effectively.

P.S. if you are interested in other JavaFX books, you can check out Jonathan Giles’ blog of Mini ‘Pro JavaFX Platform’ Book Review. I may write some comparison of a few JavaFX books too. So check back my blog later.