Yeah, the Swing file dialog is quite embarrassing... I accept that you can ship commercial software using the Swing Windows look and feel but only to certain types of customers and certain market niches. I do not believe you could compete with native applications in a more generic market sector though so I do not feel it is viable for most software houses.
And that's what I am talking about here. Sure, we can get JavaFX for iOS and Android out the door and sure we can build pretty nice apps. But I want to be able to compete with the "big boys" and sell *serious, high-quality commercial software*. My dream is that JavaFX will enable me to do that. On 23 October 2013 08:44, Scott Palmer <swpal...@gmail.com> wrote: > +1 for native keyboard support. Unless you want to emulate the dictation > feature in iOS and all that kind of stuff, you pretty much have to use the > native keyboard. > > But I think native widgets in general could be postponed, so long as JNI > could be used to implement settings and the sort of thing that would be > expected to have a lot of "standard" controls. Often in the main part of > the app on iOS the UI is very customized anyway. I do ship a commercial > app with Swing and the Windows LnF and except for the file dialog, nobody > cared. > > Scott > > > On Tue, Oct 22, 2013 at 5:20 PM, Felix Bembrick <felix.bembr...@gmail.com > >wrote: > > > Well I guess I am in the "once bitten, a thousand times shy" category > after > > my experiences with Swing over the years. > > > > As I have mentioned in my blog posts, I believe the "native" > look-and-feels > > for Swing were a monumental mistake. The first version of the Swing > > Windows look-and-feel for example left most people a bit gun shy because > it > > was just so blatantly obviously different from the native OS and even > now I > > don't feel that this look-and-feel is something I would ever want to use > in > > an application I sold commercially. The problem is that is eerily > similar > > to the native UI but sufficiently different to give the user a very > uneasy > > feeling. It still makes a Swing application look like an imposter. > > > > One of the most notable issues was when Windows Vista arrived. Prior to > > then it was fairly easy to render a Windows progress bar in Swing but > with > > Vista came an animated green progress bar that was never properly > > implemented in Swing. The problems across all controls worsened with > > Windows 7 and are now at their peak with Windows 8. > > > > The fact that Swing supports pluggable look and feels (PLAFs) is > absolutely > > awesome and was quite revolutionary but to extrapolate that concept into > > making a native look and feel one of those was a huge mistake. The > > cross-platform PLAFs like Nimbus and even more so Substance that did not > at > > all try to resemble any native UI were by far the best PLAFS to use. > > > > So I don't want to see all this repeated with JavaFX. Trust me, > > mobile/tablet users *will* spot the differences between a native app and > a > > JavaFX app and they *will* be affected by this (especially Apple users). > > Steve Jobs would never have allowed this to happen and quite rightly so. > > > > So for mine, there are only two possible ways forward. > > > > 1. Use lightweight JavaFX controls exclusively. This is akin to Nimbus > or > > Substance as a Swing PLAF. Then it's quite clear that the app is not > > trying to impersonate a native app and there is endless flexibility in > the > > way the controls look and behave. The downside of course is that there > can > > be no native controls used but it may still be possible to integrate the > > non-visual aspects of native controls like I mentioned earlier. > > > > 2. Implement the "layering" scheme where true native components are mixed > > with JavaFX controls. The advantage is that it will look and behave > > exactly like a native app with the added benefit that comes from the > > addition of lightweight controls. > > > > Option 1 is the most likely solution and is much easier to implement than > > option 2. Option 1 is limited in that it wouldn't be possible to utilise > > any native control rendering which would limit the types of native > controls > > that could be used (iAds for example would be a no go). Option 2 is > > limited in that the native controls would be rendered by the OS and then > > the entire solution is limited by the range of transformations supported > by > > the OS and also the degree of visual customisation available. > > > > I would really hope we can make Option 2 happen but Option 1 would be a > > perfectly acceptable way forward as well. > > > > FYI, here's my 6 Degrees post: > > > > > http://justmy2bits.com/2013/09/30/javafx-on-ios-and-android-six-degrees-of-separation/ > > > > Felix > > > > > > > > > > > > On 23 October 2013 07:51, David Ray <cognitionmiss...@gmail.com> wrote: > > > > > I think you may be facing an "absolute" requirement which is placing > > > demands on you to > > > replicate the exact look and feel of one or both mobile environments? > I'm > > > not sure?? > > > > > > > Even the most fab skins or CSS is not going to get us away from the > > need > > > to > > > > integrate JavaFX controls with true native controls. As has been > > pointed > > > > out, there are some native controls on both iOS and Android for which > > > there > > > > is no JavaFX equivalent and this will always be the case. Even if > > > someone > > > > were to develop near identical lightweight controls in JavaFX, they > > would > > > > need to behave slightly differently on iOS than they do on Android > and > > > vice > > > > versa. > > > > > > > > > I do not see the problem with the above? Yes, the controls in > > > question would maybe > > > act differently than their native counterparts and Yes there may not be > > > the exact complement > > > of controls each native platform has, but my reaction to that is… so > > what? > > > The fact is, > > > these controls are born of a different gui toolkit. This only is a > > problem > > > if one has it "stuck" > > > in their head that JavaFX has to behave <em> exactly </em> like the > > native > > > platform - > > > I don't see why this is necessary, especially when the variations are > > > minor behavioral > > > aspects anyway? The CSS skinning in my opinion is to most closely > > > approximate the native > > > look and feel IMO. I just don't see why it is necessary to reproduce > the > > > iOS toolkit or the Android > > > toolkit in JavaFX? > > > > > > This to me is a way to ensure rigidity and lack of movement. As > long > > > as what *does* exist > > > is rock-solid, dependable and very close looking - then I say good > > enough. > > > Otherwise, why not just use > > > Objective-C or Android?? It is way better to have vertical movement > and > > > obvious progress, IMO. > > > > > > I did find the link to your "6 - degrees…" publication - and I vow to > > read > > > it in case my opinion comes > > > down on the "misguided" side of things, but I just don't see the need > for > > > such a tight constraint??? > > > > > > Regards, > > > David > > > > > > > > > > > > On Oct 22, 2013, at 3:26 PM, Felix Bembrick <felix.bembr...@gmail.com> > > > wrote: > > > > > > > Even the most fab skins or CSS is not going to get us away from the > > need > > > to > > > > integrate JavaFX controls with true native controls. As has been > > pointed > > > > out, there are some native controls on both iOS and Android for which > > > there > > > > is no JavaFX equivalent and this will always be the case. Even if > > > someone > > > > were to develop near identical lightweight controls in JavaFX, they > > would > > > > need to behave slightly differently on iOS than they do on Android > and > > > vice > > > > versa. Then there's the issue that every time the OS changes and the > > > > behaviour or appearance of those native controls changes, the author > of > > > > those JavaFX controls has to react accordingly. > > > > > > > > The issue of keyboard type and layouts is mentioned in my 6 Degrees > of > > > > Separation post and is critical. There's just no way we are going to > > get > > > > away with any kind of text control that does not support all the > native > > > > features of entering text on mobiles and tablets. Whether we place a > > > > borderless native text box inside a JavaFX shape or just integrate > the > > > > native control itself, this is one of the most important features > for a > > > > JavaFX app and one where it would fail spectacularly if this native > > > support > > > > was not in place. > > > > > > > > I know some excellent work has been done on OS skins like AquaFX but > > > > appearance is only half the challenge. As I said, it's the behaviour > > > that > > > > will kill us. To attempt to emulate all native control behaviour in > > > > lightweight controls is not only nearly impossible but in my view > it's > > a > > > > massive waste of effort if it is somehow possible to integrate the > > actual > > > > native control itself. I am hopeful that the "layering" paradigm > will > > > > gives us this. > > > > > > > > Another issue though is that native controls are unlikely to be as > > > > "skinnable" as JavaFX controls and are probably more limited in the > > scope > > > > of the customisation of their appearance. Integrating native > controls > > > may > > > > then impose limitations on the richness of the interface as it > mandate > > an > > > > LCD approach so that the native controls don't look out of place. > > > > > > > > To me, the ideal solution would be to just extract/integrate the > > > non-visual > > > > aspects of native controls (such as the auto-complete, keyboard > > > > customisations, other behaviour etc.) and then render them with the > > > JavaFX > > > > API/scenegraph. > > > > > > > > > > > > On 23 October 2013 05:22, Stefan Fuchs <snfu...@gmx.de> wrote: > > > > > > > >> Hi Richard, > > > >> > > > >> I currently try to release updates of the jfx78 back port in 1-3 > days > > > >> after https://bitbucket.org/**openjfxmirrors/openjfx-8-**master-rt< > > > https://bitbucket.org/openjfxmirrors/openjfx-8-master-rt>(from > whereever > > > this comes from) has been updated (usually every Friday). > > > >> This obviously depends on the number of changes required and my > > > available > > > >> time. > > > >> > > > >> Stefan > > > >> > > > >> > > > >> 2) After starting RoboVM JavaFX needs round about 10 seconds to > start > > > the > > > >>>> simple list example on iPhone4. So it’s too long. I tried to use > the > > > >>>> preloaded class via property „-Djavafx.preloader“ but it doesn’t > > > work, my > > > >>>> preloaded class is not instantiated… > > > >>>> > > > >>> What is the state of the jfx78 back port, and how often is it > > updated? > > > >>> I'm wondering what the time is for getting a fix put in before it > > > shows up > > > >>> in the back port. > > > >>> > > > >>> Richard > > > >>> > > > >> > > > >> > > > > > > > > >