214 karma · joined February 17, 2011
I've developed native apps for BB10. The tooling is decent. It's a bit heavy since it's based on Eclipse but I had no problems with it. You can also use QtCreator with BlackBerry 10, but I've never tried it. You will mostly use Qt-based APIs anyway in your app, so there's no issue with support. The documentation for BB10 Cascades APIs is very good. There are also lots of official and community submitted samples on Github. For questions I've always used their developer forums which were active.
http://www.nytimes.com/2014/03/01/world/europe/aleksei-naval...
This is a good example : http://fb.html5isready.com/ a fairly sophisticated facebook application in HTML. It's barely usable on my Lumia 920 (IE10), barely usable on my BlackBerry Z10 (webkit based browser) and doesn't even render properly on a Nexus 7 2012 (Firefox). All these are pretty powerful devices.
Doesn't look like HTML is working everywhere as people claim.
Seems like BlackBerry 10's Android Runtime had this exact limitation but is now being improved to address this: http://www.theregister.co.uk/2013/11/25/revealed_how_blackbe...
I wonder how they both compare.
Chrome 30: 15842
FF 25: 14621
IE 11: 11039
Not really that far apart...
Perhaps a tool can bundle resources, but in the end it's still going to be inserted into the DOM and can potentially clash with other code since everything lives in a global namespace. There's also the problem of competing tools and the dilemma of which one to choose. Any other additional library that is meant to augment/fix HTML/CSS is another dependency that can cause problems and needs to be maintained.
QML is meant to be extensive. Not happy with how the drop shadow works? Write your own shader that does it the way you want it. Feeling that there's some primitive like an Ellipse missing? You can write your own in C++ and expose it to QML easily. In fact you can expose any native code to QML.
With HTML/CSS you are constrained to the environment it works in.
QML supports components, animations, transitions, particles, states, bindings, i18n and much more. It's also very smooth, qml is hardware accelerated. In the case of CSS so you get some hardware acceleration only for animating properties like translation, etc.
Here's the dialog I posted before which I changed to support states and transitions and also added an inline shader and particle emitter:
http://i.minus.com/iATg82IRCaMa9.gif (result 4MB gif)
As it can be seen it's highly declarative and it basically contains no javascript logic at all besides setting the states.
Of course a lot of such features are available indirectly in HTML/CSS by piggybacking on third party libraries/frameworks, but wouldn't HTML be so much nicer if it were designed with those things in mind from the very beginning?
Making any layouts and god forbid centering elements has always been a headache for me. Even by looking at the CSS examples provided by the link my first thought is how random they all seem and how ugly they are not to mention difficult to remember and use. There should be a single way to center an element. It should be an obvious operation given how important and common it is.
Some very useful CSS properties might take a lot of code and be hard to implement in native GUI toolkits like floats, overflow, height/width with percents, text wrapping etc. This is a sweet spot where HTML/CSS shines.
I have been playing with QML lately and decided to implement the Dialog (Absolute center within viewport) that pops after visiting the linked page just for comparison:
Here's the dialog equivalent that just fills the entire screen of an application done with QtQuick 2.0 for Desktop.
Layouting is easily done by anchors. Filling a rectangle to match a parent's container, centering an element inside a parent, etc. Other containers such as Rows, Columns or Grids are also provided. Property bindings are used for centering the dialog even if the viewport changes. Text wrapping is also done explicitly and binding was necessary to limit text width to the ScrollView for it to work.
One big difference compared to CSS is that by looking at the source I can see at glance what the layout structure is and what might be happening with the element.
Another cool thing about QML is that it's as simple as taking the code, creating a new file 'Dialog.qml', adding a few properties, a signal and some functions and we get a reusable standalone component:
that is very convinient to use:
result: http://i.minus.com/iGTQhAxP55bBP.gif (3MB gif)
Here's an overview: http://www.silverlightshow.net/items/Windows-Phone-8-Compile...
Some video sessions:
[Deep Dive into the Kernel of .NET on WP8 - (talk about compilation starts around the 22 minute mark)] http://channel9.msdn.com/Events/Build/2012/3-005
[Inside Compiler in the Clound and MDIL] http://channel9.msdn.com/Shows/Going+Deep/Mani-Ramaswamy-and...
It's a shame because many people including me could at least port some of their apps. An additional 99$/year for the Windows 8 store simply isn't worth it. If there's one major reason why the interest is so low then it's probably it.
I am definately going to stick with Windows Phone for the time being since it's been a great experience and the release of WP8 will bring some needed attention.
With the google maps api I just create a new object and can use the various setters and getters to set and retrieve values. Everything is mostly self-descriptive as well.
You can place an extern file so that you can get additional help via intellisense in an IDE as well.