Friday, August 26, 2011

Tech-preview of the MWTk Lib documentation !

Hello !

After another week of hard development on the project, I can make a report of my work in progress :

I have coded 5 Content Widget classes : Button, Switch, Slider, TextEdit and Label.
I have a quite working version of to Containers Layout : Strip and Entry.
I have added the Data Structures (need some polishing though) : DataItem, DataEntry, DataList and DataValue.
I have created a first DataItemGenerator classe : one that can generate a DataItem from a JSON string (i used it in my test program to generate a List of Entry)
I have a functionnal version of the EntryListManager which can : generate a list of Entry from a DataList of DataEntry, sort them following a give field, group them by a field, filter the content of the list on a given Widget content.

Here is the ListManager in action :




















All that stuff has been documented using Doxygen, so I put the generated HTML documentation on a server, to allow you to give it a first sight. I've added on it some schema to help the understanding of some classes and concepts. Some classes have code snippets too.

Here are some example of schema that you will find in the doc :







































So you can find all that content on the web :

The online documentation is here :
http://modern-os.projects.servhome.org/LibMWTk/doc/html/index.html

The Gitorious source repository has been updated with new files :
https://gitorious.org/meego-community-mobile-ux-ng/libmwtk-ng

Waiting your feedback !

Thursday, August 11, 2011

First shot of my developments with Qt Declarative

Hi all !

During the last weeks, I tried to develop apps for my N950 using QML. But I can't please myself with the QML default behavior, so I started my own Components set, based on QtDeclarative, but with the aim of using them only from C++, as we use to do with good old QWidgets.
I've named it MWTk, for Mobile Widgets Tool Kit.

I first created a global generic schema of the organization of a mobile app window, and then isolated the different Components that  can be made to ease the developer's life.
Here is the schema :

And after that, I've begun to build the C++ classes for each Container components (Panels, ToolBar, Workspace, Window...) and did some Content Components too (Label, Text Edit, Slider...).

The Toolkit was from the start thinked to be fully compatible with auto-orientation, and to do the theming and the layouting (with smart positioning for an optimal view size in each mode) without the need for the developer to have some graphical skills of any sort.

So here is a screenshot of my little test app (does nothing, its actually a simple sample, kinda empty shell) :











Some more info :
- The final ToolKit will be fully documented using Doxygen, in order to generate an HTML documentation.
- The source is full Qt/C++, no external lib required.
- The project is regulary pushed to a gitorious repository : https://gitorious.org/meego-community-mobile-ux-ng/libmwtk-ng

I have included some special features
- a JSON parser, to parse a JSON string as nested QVariantMap (like in QJson)
- a Smart Text Color (based on parent lightness)
- and very soon, there will be the all-powerfull Smart Layout, a mix between QML anchors and the former QWidget Layout, allowing you to specify a natural flow for a group of Components, using a single method like Attach(item1, gravity_point, item2, attach_point), e.g. to attach a label centered under an icon you will do attach(textitem, MWTk::TopCenter, iconitem MWTk::BottomCenter)... Plus, margins and spacing are automatically determined, as well as auto sizing to fit content to minimum height, and strech width to fill the parent.


I hope this pleases your eyes, and I making my possible to finish the ToolKit ASAP to allow you (and me too) to start developping apps with it.

Tuesday, July 12, 2011

I have it !


I just received my n950 phone devkit that day, i'm like a child with his toy...
God, this phone is a beast !!!
I like it already. Now i'm gonna love...

Sunday, July 3, 2011

Why this blog ?

Hello and welcome to everyone !

This is my first post in this new blog.
My name IRL is Thomas B., I'm french, C++/Qt4 developer, and I'm the owner of a Nokia N900, under Maemo5 operating system. And  after having applied to MeeGo Developer Device Program, I was selected to receive a free Nokia N950 to develop new exciting stuff for it.
In the agreements I've accepted it was said the follwing point :
I'll have to blog about the device.
I was not really a blog addict, but then I finally thought it could be funny to make my own blog...
So here we are, starting a new adventure with this awesome device (I don't have it yet but I'll post here as soon it will be in my hands...).
I'll post informations about the device itself, my discoveries and tricks under Harmattan, the status about the programs I'll develop, and surely troll on the MS/Nokia thing...
So stay tuned !