The Source for Java Technology Collaboration
User: Password:



Joshua Marinacci's Blog

Joshua Marinacci Joshua Marinacci first tried Java in 1995 at the request of his favorite TA and never looked back. He has spent the last ten years writing Java user interfaces for wireless, web, and desktop platforms. After tiring of web programming at a certain home improvement retail center, a wireless carrier, and a document management company he joined the Swing team at Sun to finally get back to into high quality user interfaces. Joshua recently co-authored O'Reilly's Swing Hacks with Chris Adamson. He also leads the Flying Saucer open source project and helps out with JDIC and SwingLabs. Joshua holds a BS in Computer Science from Georgia Tech and recently moved to San Jose, California.



The Java Store, a Q&A

Posted by joshy on June 17, 2009 at 10:53 AM | Permalink | Comments (17)

One of the big announcements at JavaOne was the Java Store. I'm especially proud of it because I've been secretly working on the project for the past few months. Since the announcement I've gotten a lot of questions on the store and how it relates to the rest of the Java ecosystem. To supplement the excellent FAQ I thought I'd answer a few questions.

What's the one paragraph summary of what you've announced?

We have announced the private beta of the Java Store, a desktop client to let people browse and purchase desktop Java applications, and the open beta of the Java warehouse where developers can submit their apps for distribution. You can sign up to test out the store and warehouse today. Currently US only for both the store and the warehouse, with more countries coming soon.

Can I make apps for the Java Store in languages other than JavaFX?

Yes! All JVM based languages are welcome, not just Java and JavaFX. Remember, end users don't care what language your app was written in. They just care that you made a useful app that looks and performs well. Use whatever language lets you be the most productive and build your best apps.

What are the restrictions on apps in the store?

See the FAQ for full details, but the brief answer is: any JVM app. Must be consumer oriented. 50MB limit (for now). Must be unsigned or signed with a valid cert. All apps are free until the store is open for business, then you can charge. There's a few more details but those are the basics.

When will you let me sell my apps?

As soon as we can. The store isn't open yet. After all, you can't have a store with empty shelves. That's why we are giving you, the developers, time to get your apps ready. When we open the store for business you will be able to set your price and start selling apps.

How will customers find my apps?

The desktop client you saw at JavaOne is only the first version. We are already hard at work adding new features to the store that will let customers find your apps. Features like searching, filtering, ratings and reviews. And eventually the Java Store will be distributed with Java itself, ensuring your apps can be found by nearly a billion people.

What about mobile apps and TV?

The Java Store is really two parts. The storefront is the desktop client program which lets you buy desktop apps. There is also the Java Warehouse. This is the place where you, the developer, can store your apps for sale. In the future there will be additional storefronts for TV and mobile, probably carrier branded. The Java Warehouse, where you put your apps, will serve all these stores. Desktop is only the first exciting step.

What apps are in the store today? Where did they come from?

We worked with a group of partner companies to build new apps and adapt existing apps for the store. My personal favorite is the Astronomy Picture of the Day app, built by a cool company here in Eugene, Oregon called Concentric Sky. It connects to NASA's astronomy photo archive letting you browse through past photos, read descriptions, and even translate the text into other languages using Google Translate. See what the CEO of Concentric Sky had to say about the Java Store and JavaFX in their blog.

Why can't developers in other countries sign up? When will you let us sell apps in other countries?

We will open up the store to other countries as soon as we can. International commerce is far far more complicated that you might think (as an engineer I was quite surprised). Every country has different rules about taxes, privacy, and commerce. There's simply a tremendous amount of paperwork to go through. We have the lawyers and business guys working on it right now. Currently we are aiming for early 2010, but we'll let you know if we can get it done sooner.

To clarify we asked Jeet Kaul, one of the Java executives to explain: (click to watch)

SafariScreenSnapz024.png

If you have any other questions regarding the Java store please email me or submit your comments to our feedback page.



Top 5 Most Important Features in JavaFX 1.2

Posted by joshy on June 09, 2009 at 10:12 AM | Permalink | Comments (21)

Technically I'm on vacation this week so don't mention this post to my boss. I simply couldn't wait to blog about cool stuff we put into JavaFX 1.2. Shhhhh!

Lots of JavaFX related things were announced at JavaOne, many of them concerning future products and other bits that aren't released yet. This post won't cover any of those. There were so many things discussed at JavaOne that I'm afraid some of the key points of the new JavaFX might have been missed. In this post I'm only going to cover the things that you can actually download and work with today. I'm talking only about the new version of JavaFX, previously codenamed Marina, and now called JavaFX 1.2. Without further ado, here is my personal list of the most important features.

Top 5 Most Important Features in JavaFX 1.2

Linux and Solaris support

Support for JavaFX under Linux and Solaris has been a long time coming. It's always been in our continuous build system and we really wanted to ship it with the 1.0 release, but too many things were broken. Finally, after much hard work, we have a beta release. Our goal is to make Solaris and Linux equal platforms with Windows and Mac in the JavaFX world. JavaFX is about having one Java across all of the screens (Desktop/Mobile/TV) as well as all of the OSes (Mac/Win/Linux/Solaris). This is one more step towards that goal.

Some features still don't work, which is why we are calling it a beta release, but it's a good starting point. We are now using GStreamer for the video support, which was one of the key features previously missing. You will get some graphics hardware acceleration depending on your distro and configuration. Shaped windows do not work yet. This is due to a bug in the underlying JRE. The graphics guys say they have a fix which will be rolled out into Java 6 and OpenJDK soon, so you won't have to wait until the next release of JavaFX for cool rounded windows.

[screenshot]

Controls and Layout

JavaFX has had great graphics but at the 1.0 release had only a single native UI control, TextBox. It's kinda hard to make a real business oriented application using only text controls. That's all changed now. JavaFX 1.2 has real UI controls, designed for the 21st century. We looked at everything we always loved and hated about Swing, and considered long term UI toolkit trends. Then we build a new control and layout API that addresses the kinds of applications people need to build today. Here's just a taste of what's in the new controls:

  • All controls are skinnable with CSS, so a designer can create a common look across all of your applications.
  • There is a new modern default look and feel, Caspian, designed to look at home across OSes and on mobile devices
  • Controls are in the common profile, meaning they will work on all devices, not just desktops.
  • New controls for standard features like progress indicators and the hyper link
  • All built on top of the JavaFX scene graph, so there are no remnants of AWT.

Along with the controls is a new layout system that addresses the biggest problems with the AWT layouts. It is now super easy to mix layout with animation, and to create custom layouts using only a few lines of code. With controls we can build real business applications that run across multiple screens.

There are a few controls missing from the current list. In particular you will notice the absence of Table and Tree. It's not that we don't have plans for them. There simply wasn't enough time and we didn't want to hold back the release. Rest assured they are coming.

PreviewScreenSnapz001.png
PreviewScreenSnapz002.png

Charts

Along with controls the most important feature for building business applications is charts. Charts are such a common request that we built them into JavaFX. All of the standard chart types are there, including pie, scatter, and bar charts. They are very easy to use and customize. You can also create your own chart types using a few lines of code. Here's a few examples.


Data: Persistence, RSS/Atom, and Tasks

Previously you could work with data only by dropping down to Java code. This would be fine except for the fact that mobile Java code is different than desktop Java code. In addition, every form of Java has it's own special API for persisting data. To fix this problem we've added new support to JavaFX common profile to hide these kinds of platform differences and let you get back to coding great apps. Here's a quick list of the new stuff:

  • javafx.io.Storage for persisting data locally on any client platform
  • javafx.data.feed.* built in support for RSS and Atom data feeds
  • DateTime, Math, and Properties as JavaFX classes
  • javafx.async.* base classes for all asynchronous operations in JavaFX, including a clean way to implement Java based tasks

Speeeeeeed

Our goal is for every updated to JavaFX to be faster, and I think we definitely hit that goal. Across the board you will find JavaFX 1.2 to be faster than 1.1 and 1.0. In terms of startup time, memory usage, and graphics performance we have improved every part of the JavaFX user experience. For certain tasks you will see as much as a 3x improvement over the previous release.

To achieve this speed improvement we revisited almost every part of the platform. The compiler switched from using true multiple inheritance to mixins. This eliminates most of the nasty corner cases that gave multiple inheritance a bad name while providing what developers want 90% of the time. As a side benefit the underlying compiled bytecode is smaller and faster.

The graphics team did a lot of work redesigning the scenegraph to handle updates to the scene more intelligently. The result is fewer repaints and a more responsive user interface.

There were also bug fixes across the board to the video & audio stack and the underlying graphics pipeline. In addition, we put a lot of work into JavaSE 6 update 14 to reduce startup time and improve webstart performance. Over all you will find JavaFX 1.2 to be faster and smoother than the previous releases.

SafariScreenSnapz021.png

Just the beginning

The five features I listed above are just a small part of the many improvements in JavaFX 1.2. What's most important is this is part of a larger plan to have regular smaller releases of the JavaFX platform rather than the huge 2+ year release cycles of the JRE. Faster and smaller releases ensure that we ship high quality software to you faster, and lets us better incorporate your feedback. If there is any feature you feel is missing please send us a note or file a bug at javafx-jira.kenai.com.

Back to vacation for the week and then time to dive into the next release. Please let us know how you like JavaFX 1.2 and what you are are building with it.



JavaOne: And so it begins

Posted by joshy on May 31, 2009 at 12:55 AM | Permalink | Comments (7)

I've just arrived in SF for my fourth JavaOne conference. Despite the usual chaos this year's prep has gone very well. We have a ton of new things to show you. Most importantly we have the new release of JavaFX. As previously noted it has REDACTED, and REDACTED as well as greater REDACTED to make your apps run. Which, as you can imagine, is totally awesome. And of course the big news is support for REDACTED and REDACTED, as you can see in the screen shot below:

redacted

Next up is the project I've been working on for many moons: the Vector project, most likely to be renamed the Java Store, as covered by our CEO. I can't wait for you to see it. As an app developer I'm excited by the possibilities of a good REDACTED. Here's a screenshot:

redacted

And of course we got more apps to show you interesting techniques in JavaFX, as well as JavaFX running on REDACTED and even a REDACTED. I can't wait to get my hands on one of those. And we just might have another surprise in store for you. But, unlike everything else I've mentioned, that's not something I can talk about yet.

I'll also be co-presenting the session: Getting Started with WidgetFX: Open-Source Widget Desktop Platform with JavaFX™ Technology with Stephen Chin. He's got some really funny bunny stuff cooked up.

If you have any more questions about what I've revealed in this eye opening blog post, I'll be in the vendor pavilion for most of the week hanging out on the couches coding. Bring your JavaFX code with you. I'll also be tweeting on the #javaone hashtag.

See you in Moscone. PS: The pavilion and the entire CommunityOne conference are completely free!

June 2009
Sun Mon Tue Wed Thu Fri Sat
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        


Search this blog:
  

Categories
Community
Community: Java Communications
Community: Java Tools
Community: Java User Groups
Community: Java Web Services and XML
Community: JavaDesktop
Community: JDK
Community: linux.java.net
Community: Mac Java Community
Community: NetBeans
Databases
Deployment
Distributed
Games
J2EE
J2ME
J2SE
JavaOne
Jini
JSR
JXTA
Linux
Mobility
Open Source
P2P
Patterns
Performance
Programming
Swing
Testing
Tools
Virtual Machine
Web Services and XML
Archives

June 2009
May 2009
March 2009
February 2009
December 2008
November 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
November 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
December 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
December 2003
November 2003
October 2003
September 2003
August 2003

Recent Entries

The Java Store, a Q&A

Top 5 Most Important Features in JavaFX 1.2

JavaOne: And so it begins

Articles

Mapping Mashups with the JXMapViewer
Having introduced SwingLabs' JXMapViewer and JXMapKit in a previous article, Joshua Marinacci puts these components to work by showing how you can bring in geographic data from external sources and use Painters to create custom geodata GUIs. Nov. 13, 2007

Building Maps into Your Swing Application with the JXMapViewer
Mapping is a common feature of many applications, and a new component from SwingLabs makes it easy to add maps to your Java GUI application. Joshua Marinacci shows you how to adding maps to your Swing app can be as simple as dropping a JXMapViewer component into a NetBeans layout. Oct. 30, 2007

Generating PDFs for Fun and Profit with Flying Saucer and iText
Generating PDFs used to require proprietary and/or difficult-to-use tools, but the combination of the Flying Saucer XHTML renderer and the iText PDF library makes it easy to generate PDFs from a variety of markup formats. Flying Saucer founder Joshua Marinacci shows how it's done. Jun. 26, 2007

All articles by Joshua Marinacci »



Powered by
Movable Type 3.01D


 Feed java.net RSS Feeds