Tuesday, September 25, 2012

Blackberry 10 Alpha simulator black screen/not working?

I have been trying to install BB's IDE to try out Cascade but couldn't get simulator to work until today. Dumb me... because I found out I used wrong VMPlayer version. BB already stated VMPlayer 5.0 didn't work with simulator beta2, and by using VMPlayer 4.x the simulator ran fine.

While I googled for solutions, I saw some VMPlayer setting suggestions and figured I might as well document them below:
  1. Make sure set memory to at least 1G, hard disk to 8G.
  2. Set CPU to dual-core if your system has multiple cores.
  3. Enable 3D acceleration.

Sunday, September 23, 2012

What's next?

It has been well-over a year since the last post and a lot have changed.

Stockona lives on to expand to cover Symbian as well, and is now a lot more mature than it was a year ago. But the natural question for me (and I guess for every Qt developers) is, where should I go next?

At the start of 2012, it looked very much like Nokia's Meltemi and BlackBerry were two viable options. Then Meltemi got canceled when it was in last stage of development. BB also looked shaky and didn't guarantee longer-term platform stability. (At that time rumors flied that BB might consider WP8 as well.) The first half of the year really looked dark in terms of Qt mobile development. All of a sudden, Jolla appeared out of nowhere and the Mer/Nemo Mobile initiative suddenly made a lot of sense. Blackberry also reaffirmed their determination to weather through the launch of BB10 and here we are, waiting for both companies to launch their first Qt phones.

The Jolla story has been vague for now, they said very little except existing Harmattan app will almost instant work on Jolla devices. My guess is that Jolla will have their own Qt components so developers only need to change the import and re-compile. This sounds like music but the problem for Jolla is of course they have to gain market share from zero.

At this point, BB10 seems to be a better bet. It has a large user base and I think many current iPhone/Android users have owned Blackberry at one time. With major operators offering the devices, I think BB10 will be reasonably successful. The one problem I see with BB10 the UI might be too abstract and complicated that more novice users (iPhone users...) will have a steep initial learning curve getting used to the wide array of gestures and different menus/toolbars in the UX.

Development-wise, BB10 has its own IDE and seems like BB only intends to provide some of the Qt components (e.g. Dialog, sheet) but not the full suite of Qt components in their own version. It is a shame, because I think Qt component is such a good initiative to ease UI development for individual developers. I started learning BB10's Cascade and so far it looks like the porting is reasonably doable. The pagestack navigation concept is almost equivalent to Cascade's navigation panel. Many Harmattan Qt component have equivalent ones in Cascade. One useful component that is missing is the SelectionDialog, but I won't complain about such minor issue. The real pain for me is to use BB10 IDE. The interface is plain ugly. The BB10 simulator just doesn't work for me and without a simulator I cannot test UI and see how to customize BB10 UI concept to fit into Stockona's need. The situation is similar to when I started working on Harmattan version, just that at least QtSDK has Qt Designer to at least see UI mockup. I am attending next week's Blackberry Jam developer conference, and hope I got the answer and also got an Alpha device to work on.

In summary, I guess my plan is as simple as wherever Qt goes and I go....

Friday, August 26, 2011

Distribution channel - Stockona launching into Nokia Store

I have been watching for a while what channels are available for Meego Harmattan app distribution. For Maemo5, it's pretty simple. For free app, there is the extras repository which works pretty well except that the app manager is slow. For paid app, there is Ovi Store, but the implementation is pretty lame. In case you haven't heard of, the frontend is a webpage that just downloads non-encrypted deb file for paid apps....

Gladly, the store is much improved in Harmattan. Harmattan has a dedicated Store client and so the integration is much better. The version available for N950 probably will not be the release version so I won't comment on the small details, but generally it provides a seamless experience for browsing/purchasing/installing apps. It's not hard to see that Nokia Store will be the default destination for N9 users to search for apps.

I was expecting there would be a channel similar to extras available very soon for Harmattan when I received N950. Unfortunately due to various issues, there is still nothing similar to Maemo5's extras repository for community app. This leaves Nokia Store as the one and only official channel for app distribution. As a result,  Stockona is currently undergoing Nokia QA. Let's see how long it takes before Stockona gets published...

Porting to Harmattan (3)

Some time ago, I decided that the only feasible way for Stockona to run well on Meego Harmattan was to re-work the UI using Qt components. The main reason was window focus issue that's very annoying to me. For whatever reason, the VKB in Harmattan doesn't work well with pure QML TextInput element. The focus becomes sticky once VKB is shown. I have tried to fill the un-used area on screen with MouseArea element to make de-focusing works like how it should be, but then sometimes when I switched in/out of task manager, the VKB popped up for no reason. I gave up debugging this and step-by-step changed the UI to Qt component. I was unsure if it would be worthwhile doing so, but in the end I think it was a correct decision. Qt component works great, and takes care of the UI design work so I have more time fixing some of the logic bugs instead of trying to put together graphic elements like what I did on Fremantle. I found the Sheet and Dialog (QueryDialog to be specific) elements to be especially handy for taking user inputs and displaying information to users.

The only disadvantage using Qt component is of course the portability becomes an issue for other platforms. Now I have been focusing on the Harmattan version and made several releases, the code base has become quite different to Fremantle's version in several areas. I am kind of lazy to merge the changes back and seriously hope the community project to make Qt component available on Fremantle will be working soon.



Wednesday, August 3, 2011

N950: What impress me most

* Disclaimer: User experience is based on pre-beta firmware on not-for-sale device.

What do I like the most about N950, specifically Meego Harmattan? It's definitely the swipe interface. At first, it takes some getting used to. Besides, N950 is not really designed with this interface in mind so there are things that could be done better (e.g. the gap between screen and frame is noticeable and the swipe is not as smooth as N9). But I quickly fall in love with the interface. Yes, there are times when I want to scroll but find I swipe into task manager. This is much easier to happen in landscape mode due to the limited vertical scrolling space, but in general, it's not frequent and in the case it happens, I can still easily go back to the app by a tap.

This is really a killer interface, and IMO the biggest selling point for N9. It is fluid and intuitive, and the interaction makes me feel the device is "alive." This is kind of like how iPhone was/is about - simple and beautiful interface that reacts to user command naturally. Android (3.0 is better than 2.0 but still a mess) feels pathetic in this regard, let alone the poor core interface of Windows Phone. I am pretty sure, most people will love this interface once they start using it.

Of course, there are still quirks and glitches since the software is pre-beta and Nokia is not Apple. And of course there is the dark cloud hanging over Meego Harmattan that the N9 is likely to be the only and last device running this OS. But hey, it's not like Nokia will never release software update. You see, people still buy new cars that are close to end-of-their-life-cycle. Not every Android receive sw update after two years. Even Apple drops sw update for earlier device after some time, so I wouldn't worry too much about all this "Nokia abandon Meego" drama. There is more important things to worry about, right?

Besides the swipe interface, the camera on N950 is really really good for its size. I am impressed by its quality and the UI again feels good. But I wish there were a dedicate camera button. Nokia tried too hard mimic Apple in this regard. Maybe Nokia or 3rd party developer can learn from Apple and make the volume key to become camera key at some point in the future.

Monday, July 25, 2011

Porting to Harmattan (2)

To recap, the issues I had earlier were:
1) VKB stays visible once launched.
2) App stays in landscape mode.
3) After a few launches, an empty toolbar showed up along the bottom of the screen and stayed there afterwards.

For (3), I found out it was due to setting the QDeclarativeView to showMaximized() instead of showFullScreen().

For (1), I couldn't figure out why TextInput element is not working probably. I tried changing to manually handling the focus, but still saw the same issue happening. In the end, I decided to apply a dirty trick. I simply set closeSoftwareInputPanel () method of TextInput elements when user clicks outside the TextInput fields, and further calling the method again when exiting the setting menu. Even with this ugly patch, flicking action on Stockona still sometimes invokes the VKB for no reasons.... again, the root cause is a mystery to me for now.

For (2), I have tried wrapping the QML into Qt components. At first, I tried wrapping my main QML page into a Page element, then push it into PageStackWindow. For whatever reasons, it didn't work. I then found out about the Window element. The documentation says it can wrap any QtObject and although the doc suggests not to use it directly, I found it worked for me.

The last thing I did today was changing the control button height so it's easier to click on them instead of clicking to the symbol list below.

At the end of the day, I made some progress but I am unhappy that I have little idea about the root causes of the various issues. Hopefully the community will figure out some commonly-good practices when using Qt components, and also the Qt documentation for Nokia's Qt components will improve with time.


PS - One thing worth noting is I found out it was super easy to set up N950 to connect to QtSDK by WLAN. Just fire the "SDK connection tool," then enter all the information in QtSDK and the deployment to device just works afterall. It greatly sped up the development time! (N900 probably supports this as well, but I remember you need to install some MADDE-related packages... I'm glad those packages are built into N950 by default.)