+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 > > >>> > > >> > > >> > > > > >