ups, I made one mistake: 

"So both solutions use the real Java platform (=OpenJDK)!“ should be "So both 
solutions does not use the real Java platform (=OpenJDK)!“ ;)


Am 24.10.2013 um 08:41 schrieb Tobias Bley <t...@ultramixer.com>:

> Hello to the community,
> 
> I read the last discussion about „JavaFX native look and feel“ and have to 
> get out of my mind the following:
> 
> In my opinion the MAIN point is not „how to bring the native look and feel to 
> iOS/Android“, the real MAIN issue is: we need a professional JVM(!) which 
> works performant and reliable on iOS, Android and Windows 8! Only if we have 
> such a JVM, developers and companies are motivated to develop real commercial 
> apps with JavaFX and contribute stuff back to OpenJFX!
> 
> RoboVM is a good „prototype“. Niklas is currently one of the most important 
> people for the JavaFX community. He and his company has build the first and 
> one and only real solution to deploy Java and JavaFX code to the iOS 
> platform! His work is really great! But: He is only one(!) person! This kind 
> of complex task I would expect from big companies like Oracle, IBM, SAP or 
> Twitter. But from this direction we don’t hear anything about it.
> 
> It is not enough that people like Niklas (Trillian AB) or Matthias and me 
> (UltraMixer) are trying to bring JavaFX to iOS and Android. It’s all 
> experimental stuff! Yes, currently we can start JavaFX apps on a real iPhone 
> and iPad. And yes, we have managed to start JavaFX on a real Android device 
> using the Dalvik VM. BUT: this is not a long term solution and only 
> experimental! RoboVM on iOS uses the android class library instead of the 
> real Java = OpenJDK. Our „JavaFX on Android“ solution uses Google Dalvik VM 
> and the Android class library as well! So both solutions use the real Java 
> platform (=OpenJDK)!
> 
> In my opinion there are only two solutions: 1) Oracle releases their JVM for 
> iOS and Android. 2) The „community“ starts a new company who develops a 
> professional, performant and reliable solution for „JavaFX on iOS and 
> Android“ which contains of a JVM and the 6 degrees Felix described in his 
> blog post, mainly native integration (API) and look and feel (skins, native 
> controls).
> 
> Cheers,
> Tobi
> 
> 
> 
> Am 23.10.2013 um 22:30 schrieb Richard Bair <richard.b...@oracle.com>:
> 
>> Yes, definitely.
>> 
>>> On Oct 23, 2013, at 11:52 AM, Scott Palmer <swpal...@gmail.com> wrote:
>>> 
>>> This is starting to sound like it may also partially address the issue in 
>>> the desktop space of supplying a native surface (the heavyweight) to draw 
>>> in that is part of the scene graph.  It may not be the ideal solution, but 
>>> could be useful for specific use cases, like a video preview overlay. Would 
>>> that make any sense?
>>> 
>>> 
>>> Scott
>>> 
>>> 
>>> 
>>>> On Tue, Oct 22, 2013 at 7:59 PM, Richard Bair <richard.b...@oracle.com> 
>>>> wrote:
>>>> To do this we need to either solve the auto-layer problem in the NG nodes 
>>>> / Glass / Quantum, or we need to ask the app developer to use SubScene and 
>>>> put all the native stuff in a single SubScene, and all lightweight content 
>>>> above and below it. For the short term, we could use the SubScene approach 
>>>> ("Just be careful and don't draw lightweight on top of heavyweights unless 
>>>> you layer an entire sub scene above them") which is probably a perfectly 
>>>> workable solution in the short term. Then somebody just needs to write a 
>>>> set of skins (which can be done in an external project) that map various 
>>>> UI controls directly to native controls. This approach would allow people 
>>>> to have completely native controls while using the FX API, or they can use 
>>>> the lightweight controls (with Modena or with an iOS 7 skin or iOS 6 skin 
>>>> etc).
>>>> 
>>>> I'm thinking about how to implement the auto-layer, and I'm not sure of 
>>>> the best approach. It seems like you need to hook into the sync-time to 
>>>> determine which nodes can be batched into the same layer, reusing previous 
>>>> layers where possible. If there is a way to then setup the NG peer side so 
>>>> that it thinks it was setup in sub scenes etc, although it really wasn't, 
>>>> then that would leave prism out of the problem (which makes this an easier 
>>>> thing to pull off). hmmm. SubScene itself has a peer. So what I'm thinking 
>>>> is, suppose I have a package:
>>>> 
>>>> com.sun.javafx.ext.ios.controls
>>>> 
>>>> and in this package you have all the skins. There is also someplace in 
>>>> here a map of skin -> sub scene peer, indicating which of the nodes is in 
>>>> which sub scene peer ("layer"). Then when the sync takes place, a skin 
>>>> node looks back at siblings etc to determine if it can be placed in the 
>>>> same layer as something before it. If so, then it sets itself as a child 
>>>> on the sub scene as needed. If not, then it creates a new sub scene peer 
>>>> and sets itself on there and then carry on. So then it isn't sync'd to the 
>>>> "real" scene but instead to one of these fake sub scenes that was created.
>>>> 
>>>> The idea can be refined, but actually I think this approach might be 
>>>> workable for doing auto-layering.
>>>> 
>>>> Richard
>>>> 
>>>> On Oct 22, 2013, at 4:10 PM, Felix Bembrick <felix.bembr...@gmail.com> 
>>>> wrote:
>>>> 
>>>>> Yes, having viable implementations of both options would be ideal.
>>>>> 
>>>>> How long till Oracle and/or the community gets to that point? ;-)
>>>>> 
>>>>> 
>>>>> On 23 October 2013 10:06, Stephen F Northover
>>>>> <steve.x.northo...@oracle.com>wrote:
>>>>> 
>>>>>> Rather than arguing this point, the correct answer is to provide both and
>>>>>> let the application developer choose.
>>>>>> 
>>>>>> Do you guys know how old this argument is?  Hint: It predates Java.
>>>>>> 
>>>>>> Steve
>>>>>> 
>>>>>> 
>>>>>> On 2013-10-22 6:17 PM, Pedro Duque Vieira 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.
>>>>>>>> 
>>>>>>> 
>>>>>>> I don't think this is exactly this straight forward. Ideally you would
>>>>>>> want
>>>>>>> to have this kind of native behavior on every platform. But having this
>>>>>>> native behavior involves having a different version of your app for each
>>>>>>> OS
>>>>>>> you want to deploy in, which might not be what the developers want.
>>>>>>> Remember JavaFX is a cross platform development kit and the major 
>>>>>>> reason a
>>>>>>> developer would choose JavaFX over doing native mobile development is 
>>>>>>> that
>>>>>>> his app can run on a variety of mobile platforms: windows 8, ipad,
>>>>>>> android,
>>>>>>> iPhone, etc with the same code base and *MOST* importantly with much 
>>>>>>> less
>>>>>>> development time than building an app for each platform.
>>>>>>> For the sake of development time an app that doesn't go against any of 
>>>>>>> the
>>>>>>> different platforms UX but that has the least common denominator so that
>>>>>>> each user in each different platform understands the UI might be a 
>>>>>>> better
>>>>>>> solution for the sake of development time. One such example is the back
>>>>>>> button that appears when you drill down a list on an ios app but doesn't
>>>>>>> appear in an android app because every android phone as a physical back
>>>>>>> button.
>>>>>>> 
>>>>>>> I do agree with you that there are some places where a native looking
>>>>>>> control is ideal and doesn't involve any extra effort from the developer
>>>>>>> to
>>>>>>> customize it for the given platform like for instance comboboxs where a
>>>>>>> kind of wheel appears where the user can choose an option, or input
>>>>>>> controls where the native keyboard pops up.
>>>>>>> 
>>>>>>> Thanks, best regards,
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>> 
>>> 
> 

Reply via email to