+1 re: Native L&F.  IMO also there is nothing sacred about the "exactness" of 
Apple's ui. They 'll be changing it up a lot a also. Being someone who prefers 
custom looks to bland native looks anyway, I never did get the "sacredness" of 
repeating "mirror-lookalike" grey :). Just my opinion, I'm sure there are those 
who disagree.

David

Sent from my iPhone

> On Oct 22, 2013, at 7:17 AM, Tobias Bley <t...@ultramixer.com> wrote:
> 
> 1) Look and Feel:
> 
> IMO it’s enough to build „native looking“ css based skins! That could be very 
> quickly without complex technologies like CALayer etc.
> 
> 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…
> 
> Tobi
> 
> 
> 
> Am 21.10.2013 um 21:48 schrieb Richard Bair <richard.b...@oracle.com>:
> 
>>> 1. Can you provide me with a detailed summary of where the iOS/Android
>>> ports are currently?  This includes the platform specific stuff to make
>>> either RoboVM or an Oracle JVM work?
>> 
>> I would say, it is in a good prototype stage. It hasn't had heavy testing, 
>> so the biggest risk is the unknown. Luckily, on iOS at least there are only 
>> a very few devices so it should be relatively easy for an app developer to 
>> feel confident it works for their app. But for the OpenJFX project, to test 
>> and certify a whole variety of APIs, will be quite a challenge. We have a 
>> huge pile of tests, we just need:
>>   1) To have a way to run our unit tests on the actual devices
>>   2) Have a way to run graphical tests on devices (basically a port of 
>> Jemmy??)
>> 
>> I haven't scoped either of these efforts, but both are ripe areas for 
>> collaboration with anybody in the community.
>> 
>> If it were heavily tested, I'd say most of the remaining work is actually in 
>> the graphics / performance side. Path rendering performance is fairly bad 
>> (though I've seen similar complaints for Cocoa path rendering performance, 
>> so it may be we're not that "bad" relatively speaking, but it is still 
>> horrendous IMO and needs to be looked at).
>> 
>> The code is all there for the integration layer -- anybody with familiarity 
>> with Objective-C and Cocoa, I'd say, go read the glass code! This is a huge 
>> opportunity for community initial community involvement because:
>>   1) There is a ton of existing documentation and code in the Apple universe 
>> describing all the sorts of things we need to do in Glass
>>   2) Glass is pretty decoupled from the rest of the platform, so you can 
>> easily understand what is going on there without having to understand 
>> everything else
>> 
>> Contributing on the Graphics side is more work and requires more specialized 
>> skills. The fortunate thing here is that the graphics code is shared with 
>> embedded (and desktop Mac and Linux) so there is a lot of overlap.
>> 
>> So those would be the main things from my perspective: performance testing, 
>> functional / unit testing, native platform integration, and graphics.
>> 
>> Another thing we've designed for from the beginning, but never validated, is 
>> the ability to use a native control as the skin. The iOS prototype "hot 
>> swaps" a native text field in when a TextInputControl gets focus, but this 
>> is kinda funky (and there are lots of bugs here). The "right" thing to do 
>> here would be to have a set of native skins for controls, and the ability to 
>> create multiple core layers. So if you have a scene graph where on the 
>> bottom you draw stuff, then have a native control, then draw more stuff over 
>> the native control, then what you would want is, on the Prism side, use 3 
>> hardware layers (one for below the native, one for the native, and one for 
>> above the native). I don't know:
>>   1) How well this would work in practice with input events (but one could 
>> imagine putting a native 'glass pane' on the top to intercept all events and 
>> vector them through FX, forwarding to native controls as necessary as part 
>> of the normal FX event dispatch) 
>>   2) How many layers you could have before things would explode.
>> 
>> Alternatively, using image skinning to get the look right, and only do the 
>> funky native control swap in for text input, like we're doing today.
>> 
>>> 2. Are the iOS and Android ports at roughly the same level of
>>> completeness/viability?
>> 
>> I think so, David / Tomas, can you guys add some insight as to where we're 
>> at from your perspective?
>> 
>>> 3. Exactly what is left in making these ports viable?  Here the word
>>> "viable" is defined in my 6 Degrees of Separation post here
>>> http://justmy2bits.com/2013/09/30/javafx-on-ios-and-android-six-degrees-of-separation
>> 
>> 1. Their look and feel is indistinguishable from native apps
>> 
>> As described above, there is work to be done here either by beefing up the 
>> emulation, or adding the ability to intersperse native controls. The latter 
>> approach I expect to be significant work, although technically feasible.
>> 
>> Also, I expect people will want to add more iOS specific controls (like 
>> breadcrumb bars) to make this easier to do (rather than everybody styling 
>> their own).
>> 
>> 2. They must load as quickly as a native apps
>> 
>> I've heard RoboVM starts up very quickly. Also you will package your app 
>> with a splash screen. Also I believe the Preloader APIs work now with iOS (I 
>> haven't tested on RoboVM but try it out and let me know if it works! You 
>> will probably need to launch a bit differently, providing the preloader as a 
>> system property I think). So I expect this to work reasonably well.
>> 
>> 3. They must perform as well as a native apps once loaded
>> 
>> This is the open question. We may find the graphics to be the bottleneck, or 
>> we may find that the CPU usage is the bottleneck. On the CPU side, one 
>> problem may be the large number of method calls to set / get property 
>> values. Going to a "full lazy" style for many properties on Node might help 
>> here, for instance.
>> 
>> 4. They must be able to utilise all (or at least most) of the native APIs, 
>> devices and features that native apps can utilize
>> 
>> I would say this is a given, since you can use JNI to invoke any API. 
>> However if you want to embed a native widget in the app (such as iAd 
>> banners), then we (as a community) need to solve the problem of embedding 
>> natives in the scene graph (layers issue described above).
>> 
>> 5. They must be as available as native apps and available from the same 
>> channels (e.g. iOS app store)
>> 
>> I think this is a given (nothing to do here, except making whatever tweaks 
>> Apple deems necessary)
>> 
>> 6. They must be as easy to update as native apps and through the same 
>> channels
>> 
>> Again, this is a non-issue I think because if you can submit via the app 
>> store, then you can update via the app store.
>> 
>>> I know it's a pain to have to attempt to pacify the mob but I am sure I
>>> speak on behalf of all JavaFX developers when I say that many of us have
>>> serious financial or personal investment in JavaFX and *need* to know that
>>> a mobile/tablet future is indeed possible.
>> 
>> Not a problem at all, it is important that we work together to make this a 
>> reality. I'll spend the time necessary to help anybody who wants to get 
>> their hands dirty with where to go in the code, how it works, and what needs 
>> to be done!
>> 
>> Richard
> 

Reply via email to