BB10: A Bumpy Road
Today is one of those days where one feels frustrated and discouraged by technology. My experience with BB10 development the last two weeks has been less than stellar. Below I will speak to some of the challenges in chronological order.
Custom QML components: Handling events of child controls
I created a custom QML component
for my Baby Names app consisting of a label and a segmented control. But when I use my custom control, I need some way to handle events, such as the segmented control being clicked. While the QML tutorials RIM provides make it easy to expose properties, they don't describe how to expose signals of child controls.
I posted on the Cascades forum
on July 4th and waited until July 20th before receiving a response. That's a long time to be held up with what seems to be a fairly obvious thing that developers should be able to do.
The response I received should be helpful, although the suggestion implies that the solution isn't nearly as baked-in and intuitive as I would have thought it should be.
Controls animating into place
I've noticed that when I load new QML files, the images animate into place.
For example, if the screen contains an image at position X,Y and it is of width W and height H, then the image becomes visible at coordinates 0,0 and has width 0 and height 0, and then animates into place by flying over to coordinates X,Y and growing to eventually be of width W and height H.
If I then click the "Back" button and go to that QML screen a second time, it doesn't animate.
Is this implicit animation intended? While implicit animations are rather amazing and a great tool to have, it seems counter intuitive to have screens use implicit animations when they are first loaded. It creates a rather unpleasant business and visual distraction when the screen is loading.See this forum post
Update: This appears to be fixed with the new SDK.
No multi-line label control
When I implemented the instructions screen for my app, I needed a multi-line label. But BB10 doesn't have one yet, so the text entry control must be used and set to read only. When this is done, however, the text color is set to black, making the text unreadable on the standard charcoal BB10 background. So further hoops have to be jumped through to set the text color, which I needed help figuring out. I asked the question
on July 4th and received an answer on July 18th. Again, waiting 14 days to get an answer makes forward progress seem slow. (that said, I'm very glad that RIM employees do eventually answer since that is an enormous help!)
The other downside to using a text field is that there is a bug in the SDK whereby when the user touches it to scroll, it opens the keyboard, interfering with the scrolling and requiring the user to then close they keyboard. (Update: This has been fixed in the latest SDK)
If I understand correctly, a multi-line label control is coming for BB10, but it isn't done yet. The joys of working with pre-release SDKs.
No standard icons
In various screenshots it is obvious that RIM will make use of many standard icons for action items -- the toolbar-like UI at the bottom of some screens. But none of these icons have been made available to developers, so I have spent time making my own icons for actions such as "Delete". Even though final icons might not be settled upon, it would be nice if RIM made the current icons available to developers. Another growing pain of using a pre-release SDK.
We had a power outage, and once I got my computer back up and running, the BB10 IDE wouldn't start. When I double clicked the icon for the IDE, I could see qde.exe running in Task Manager, but nothing would be displayed.
I got it working by removing the .metadata
directory under my workspace directory. The downside to that fix is that it means you need to reconfigure the IDE and re-add all of your projects.
Update July 26: We had a thunderstorm last night and lost power briefly. qde.exe is hanging again and so I have to re-configure and re-add all of my projects again. Frustrating. I've created a ticket
to make sure RIM knows about this.
Dev Alpha updated firmware issues
It took a few hours of head banging to get the updated firmware installed on my Dev Alpha. It appeared to install ok, but when the device rebooted to load the new firmware for the first time, the startup screen would play forever.
Eventually I was successful in doing a "Repair" operation that reloaded the OS, and that got me up and running again.
Any time something like this happens where a lot of time is wasted, I get grumpy.
ldd:FATAL: Could not load library libbb.so.0
Upon trying to deploy and launch my Baby Names app on the device with updated firmware, I get:
|ldd:FATAL: Could not load library libbb.so.0|
Sigh. I have to figure this out.
More Dev Alpha issues and simulator issues
After running my Baby Names app on the device with updated firmware and getting the ldd:FATAL error, the screen went black at some point, and I had to reboot the device.
Now I'm back to square one: The startup screen plays forever.
Not only that, the screen went black on the simulator requiring a simulator reboot, and now when the simulator loads, after briefly displaying the background image of the main screen, the screen goes black.
So I'm stuck, again. Sigh.
July 26 update: After deleting the simulator and re-installing it, it appears to be working again. Likewise, after reloading the OS on the Dev Alpha, it appears to be working properly. So that is a big sigh of relief.
Hopefully this is a low point and things will settle down and improve soon, but when as a developer I'm using tools that keep throwing curve balls and wasting hours of my time, it's not fun.