Tag Archives: symbian

Mumblr on 3 Platforms!

Mumblr is now available for free download on three different platforms! MeeGo, Symbian & WP7.

You can find download links for Symbian and MeeGo over on their respective pages on this web site. Mumblr for WP7 can be found over on the Windows Phone Marketplace.

This is a “mash up” app that takes images from tumblr blogs and adds random meme like text to them for bizarre / random / hilarious results.

An android version of mumblr is also in development so you’ll be able to mumble on almost all of your favorite mobile operating systems!

Download mumblr for Symbian here.
Download mumblr for MeeGo here.




If you like these apps please consider donating to us!

SymPaper’s Scroll To Crash Bug

In SymPaper and by extension MeePaper there was a horrible long standing bug which I’ve never been able to repeat or debug successfully, sometimes it would happen, sometimes it wouldn’t. A comment from my the SymPaper App page sums the bug up pretty well:

The app is crashing very frequently and it goes like that: if I open and read an article and then go back to the main list with the 5 elements, whenever I press another article to read it freezes for 2 seconds and crashes.

Today I’m happy to say I’ve (fingers crossed) managed to fix the scroll to crash bug! I’ll be writing a blog post up shortly on what I was doing originally and what I rewrote to fix it.

Whilst the changes have been sent up to the Ovi Store I’m putting the new build of the SymPaper Demo here for download so you guys can see the fix in effect today! I’ve even increased the article limit from 5 articles to 10!

Get The SymPaper 2.9.0 Demo Here

P.S.
I’ve made the same changes in SymNote and its soon to be released MeeGo port MeeNote for good measure!

– EDIT 10/01/2012 –
The changes are live in the Ovi Store now :)

Split Entry With Belle And Anna

My previous post about split entry was pretty long but worked well for me on Symbian 3 Pr1.2 and Symbian Anna devices, however with the new Belle devices being shipped the same code doesn’t work on them reliably. Belle ships with Qt 4.7.4 which actually makes split entry very easy to use with just a single line of code needed in the main.cpp file of your project:

 QCoreApplication::setAttribute(Qt::AA_S60DisablePartialScreenInputMode, false ); 

This needs to be called after the QApplication has been created so it should look more like this:
 QApplication app(argc, argv);
QCoreApplication::setAttribute( Qt::AA_S60DisablePartialScreenInputMode, false );

Whilst this code is valid on Anna devices and wont cause any breakages / compilation errors it wont fire the split entry keyboard.

So for SymNote I’m using a slightly modified version of the code from my old post with the line mentioned above, here are the modifications:


main.cpp

#include <QInputContext>
#include "splitview.h"
int main(int argc, char *argv[])
{

 bool belle = false;
    #ifdef Q_OS_SYMBIAN
       
        QString version = qVersion();
        int size = version.length();
        if(
                size == 5 &&
                version.mid(2, 1) == "7" &&
                version.mid(4, 1) == "4"
        ){
            belle = true;
        }
    #endif

QApplication app(argc, argv);
QCoreApplication::setAttribute( Qt::AA_S60DisablePartialScreenInputMode, false );
SplitView sv(belle);
viewer.rootContext()->setContextProperty("SplitView", &sv);

....

This bit in the main.cpp file detects which version of Qt being used at runtime and if its Qt 4.7.4 then set a bool value (belle) to true. The value belle is passed to an updated version of the SplitView class made previously. The modifications for that class are as follows:


splitview.h

public:
    explicit SplitView( bool belle, QObject *parent = 0);
    bool belle;


splitview.cpp

SplitView::SplitView(bool b, QObject *parent) :
    QObject(parent)
{

    belle = b;
    qDebug() << "=== Using Belle Split Entry?" << belle;
    if( !belle ){
        VkbStateObserver* obs = new VkbStateObserver(this);
        connect(obs, SIGNAL(vkbStateChanged(int)), this, SLOT(keyboardStateChange(int)));
    }

}

void SplitView::enableSplitView()
{
#if defined(Q_OS_SYMBIAN)
    if( !belle ){
        //qDebug() << "Split Entry";
        MCoeFepAwareTextEditor *fte = CCoeEnv::Static()->AppUi()->InputCapabilities().FepAwareTextEditor();

        // FepAwareTextEditor() returns 0 if no text editor is present
        if (fte)
        {
            CAknEdwinState *state = STATIC_CAST(CAknEdwinState*, fte->Extension1()->State(KNullUid));
            state->SetFlags(state->Flags() | EAknEditorFlagEnablePartialScreen);
        }
    }
#endif
}

And that’s it! Basically all we’re doing is telling the SplitView class if we’re using Qt 4.7.4 and then if so ignore all the old split entry class stuff and using belle’s split entry implementation!

SymNote 1.3 & SymPaper 2.8 Updates

I haven’t posted about either of these Apps for nearly a month now so I’m going to give a run down of the updates for both apps since I last posted about them.

  • SymPaper 2.6 – 2.8
  • SymNote 1.2 – 1.3
This list will include the updates for both apps currently in pending at the OVI Store.
Until the next version of the Read It Later API is released SymPaper is pretty much finished and will only receive mostly UI updates, bug fixes and the odd minor new usability feature, here is the full set of changes from version 2.5.

Version 2.6

  • Removed Bookmark icons from list view
  • Margin around search area
  • Placeholder Text added to search bar
  • New light and dark theme available throughout not just in article view

Version 2.7

  • Options Screen with the following options
    • Pure font switch
    • Auto Sync On / Off
    • Theme Switcher
  • Switch theme moved from main menu
  • Fixed theme bug introduced in 2.6

Version 2.8

  • Back end changed to work like MeePaper
  • Reduced Memory Consumption
  • Scroll Bars in Menus
  • Minor UI Adjustments to List view and share screens
  • Article and List Themes are now independent of each other
  • Exit Removed From Main Menu
  • When adding an article if a fail occurs the loader now stops as expected

SymNote is still far from completed with the next major change being list support. I’ve only prototypes this and it is no where near ready for release. The following changes however are:

Version 1.2

  • Black editor theme for OLED screens
  • Black theme for meta data
  • Save settings on font size switch bug fixed
  • Fixed bug with non latin chars
  • Re organised list view slightly which has reduced some random crashes which were occurring before

Version 1.3

  • Added Delete Tags Dialog
  • Restructured App to improve the start up time of the app
  • View mode changes respect the filter
  • Remove exit from main menu
  • Clear tag filter by pressing X in the tag filter dialog

Let me know if you have any more ideas for other SymNote features!

SymNote and SymPaper 2.5

Just a quick post to let you all know that SymNote 1.0.1 and SymPaper 2.5 (including the trial version!) update are now all live in the Ovi store!

Its been less than a day since they have been published but I’ve already had a tremendous amount of feedback and I want to thank everyone who has bought any of my apps. I really do hope you’ve enjoyed using them and that you feel they are worth what you’ve paid for them!

Please do keep that feedback coming whether it be by posting here, dropping me an email or sending me a message on twitter!

Next up on my todo list ( which has been written using SymNote :P ) is to finish of the Meego port of SymPaper called MeePaper its 90% of the way there just a few more fixes and I will be releasing that to the Ovi store too!

SymPaper 2.5 Preview

I just recorded a video of the upcoming 2.5 version of SymPaper (currently its 2.1.1). A Changelog of what I’ve talked about can be found below the video (I forgot to mention a couple of them in the video!)

Enjoy!

 

SymPaper 2.5 Change Log:

  • Update sync process so it is similar to symnote’s, in particular clean db of dangling articles
  • Switch from xml to json backend
  • Close app in the main toolbar
  • Article title (from website not RIL title) prepended to the article
  • In article view pressing the titlebar scrolls you to the top of the article
  • If api limit is reached when performing actions to interact with the server the local db acts as though the action completed, this has been fixed now.
  • article length increased 100% from 15000 chars to 30000 chars
  • SMS and email have more data in them
  • E6 login screen has keyboard navigation support
  • Twitter no longer uses tiny url
  • Revised list theme, toolbars now match the qt-components toolbar colours
  • Search feature which respects the current filter selected
  • Article counter in list mode

Just so people are aware SymPaper’s UI transformation this time around was designed with UI designer Saurav Srivastava, if you’re designing an app I highly recommend you message him and ask him to give it a once over he’s got some brilliant ideas. Saurav will actually be looking at improving SymNote’s UI next so make sure you follow both me and him on twitter to get to see the latest changes!

Meme Generator Open Sourced

In order to apply for an N950 developer unit i have to have some source code for an application made available, so I’m putting the source code for my original meme generator up, its not the most beautiful of apps in fact the whole UI is written in QWidgets and not QML but it was an awesome learning experience for me at the time!

Every time i look at developing for a mobile platform the meme generator is pretty much what i try and make, its a simple project but means you get to look at a number of things:

  • UI Creation
  • Working With Lists, Models And Delegates
  • Displaying Images
  • Taking User Input To Edit / Manipulate Images
  • Querying the File System
  • Saving To The File System
  • Creating Persistent Application Settings

Anyway, you can download the free app from the Ovi Store here or grab the source code and build the project yourself below!

Meme Generator Source

Using Libraries On Symbian And Windows

I’ve had a few people recently contacting me and asking me how i managed to get twitter authentication working in SymPaper, im not going to go specifically into how i got oauth working but this post will be about how i got third party libraries in working my Qt Symbian apps using the fantastic KQOauth library as an example.

But first the reason for needing a library, Oauth 1.0 is a nightmare to work with, i understand why its in theory good but i hate how its implemented. I often get requests to make apps for a number of different web services and will always pursue each one until the point that i see Oauth 1.0! However for SymPaper sharing articles via twitter was pretty essential so i looked at writing my own implementation of Oauth in Qt which got about half way before i gave up! A quick google brings up a number of examples of how to implement OAuth in Qt and QML like this one that just didn’t work at all. After a while of trying code like that out i came across KQOauth a library written in Qt which claimed to work for Symbian! I quickly downloaded and compiled the source code and had it working for my Desktop and Qt Simulator targets however when trying to deploy to my phone i had to install another sis file with the library on. Not such a problem if you’re making apps just for yourself and a couple others to use but a big problem if you’re trying to distribute those apps to as many people as possible! I then ran into another stumbling block! The remote compiler for QtCreator didn’t work with statically linked libraries, i found a bug report and commented on it but had no reply.
So I had to think of a new way of getting around the issue and here is what i did:

  • Take the KQOAuth source code and include it all in my project!

That’s it! quick and dirty but it works, well not quite! I found that whilst including the library’s source code in my project meant it worked on my device, it also stopped my Desktop and Qt Simulator instances compiling for the project, not so good since deploying to a Symbian phone actually takes (in my opinion) ages! Especially since i like to build my apps on the desktop up until i have to add mobile specific functionality (Actually all my apps run properly on my desktop, SymPaper just can’t send SMS!). So i had to use some conditional coding in my project file to only use the included library files when on the Symbian device and to use the System libraries when on the windows target (which also include the Qt Simulator!).

Here’s a screenshot of what my final project file looked like for SymPaper:

SymPaper Project File

SymPaper Project File


And to make things even easier here a dump the relevant bits of that code for you to copy and paste into your own project files:

windows:{
    INCLUDEPATH += c:/Users/Talv/Documents/Qt/kqoauth/include
    INCLUDEPATH += c:/Users/Talv/Documents/Qt/kqoauth/src
    LIBS += -Lc:/Users/Talv/Documents/Qt/kqoauth/lib -lkqoauthd0
}

symbian:{
    SOURCES += \
        koauth/kqoauthutils.cpp \
        koauth/kqoauthrequest.cpp \
        koauth/kqoauthmanager.cpp \
        koauth/kqoauthauthreplyserver.cpp
    HEADERS += \
        koauth/kqoauthutils.h \
        koauth/kqoauthrequest_p.h \
        koauth/kqoauthrequest.h \
        koauth/kqoauthmanager_p.h \
        koauth/kqoauthmanager.h \
        koauth/kqoauthglobals.h \
        koauth/kqoauthauthreplyserver_p.h \
        koauth/kqoauthauthreplyserver.h
}

Once that has been done there’s just one more thing left to do to get your library working in your app properly, in the Class or Header files where you want to use the library just remember to reference the correct instance of the library. So for Symbian devices you want to use the included files, and for other targets use the system library:

#ifdef Q_OS_SYMBIAN
    #include "koauth/kqoauthrequest.h"
    #include "koauth/kqoauthmanager.h"
#else
    #include <QtKOAuth>
#endif

And you’re done! Code away as usual!

You now have a third party library working on your symbian devices that works with the remote compiler and doesn’t stop your other targets working! Let me know if this has been useful and how you get on!

SymPaper 2.1 Updates And SymNote

It seems like forever since i posted last but i thought i’d write a quick post on what I’ve been up to recently!

Since SymPaper 2.0 went live in the Ovi store I’ve had some really good feedback from its users and a few requests most of which I’ve tried to accommodate in the 2.1 update. So here’s a quick list a couple of pics of what to expect in the forthcoming version:

  • “Mark as read” and “Re-Sync Article” have switched places since mark as read is used far more
  • Sync counters have been moved into the title bar
  • Pressing on the grey “modal” layer closes any open dialog windows
  • Larger font available in article view
  • New Black text on white background theme for the article view

Picture time:

New Light Article Theme

Large Font And Light Article Theme

Large Font And Light Article Theme For Easier Reading

New Article Options

New Article Options

And there we have it! SymPaper 2.1 is currently under QA at the ovi store and should surface in a week for Symbian^1 and Symbian^3 devices.

I’ve also been working on an app for the popular note service “SimpleNote“. Its still far from completion but here are a few pictures of what it looks like at the moment!

Note List View

Note List View

Note View

Note View

The Note Flips Over To Give Note Meta Data

The Note Flips Over To Give Note Meta Data

This app is written with the newly release Qt Components which are currently only available for Symbian^3 devices at the moment. Hopefully they’ll be released to Symbian^1 devices so everyone can enjoy this app! :)
As always follow my twitter account @talv for more screen shots and info on what im doing!

SymFTP Free Trial!

After a number of requests for a free version of SymFTP its finally here!! Well not quite its just been submitted to the Ovi Store so should surface shortly for all Symbian 3 devices (except the E6) and all Symbian 1 devices with Wifi!

There is only one functional difference between this version and the full version:

  • In the free version you can only share the phones C:/

Other than that there are a couple of new icons and a slightly re-designed app icon to fall into line with the new nokia ui guidelines! These same updates will make their way to the full version at some point.

SymFTP Demo

SymFTP Demo

SymFTP Demo Splash Screen

SymFTP Demo Splash Screen

SymFtp New Icon

SymFtp New Icon

Those with keen eyes amongst you will notice the my Read It Later app SymPaper is also sporting a new Icon on the last screen shot, that is because for the last few days its been getting a major face lift to fall more into line with the new Nokia UI guidelines and look more Meego-ish! So heres a quick peek at how that’s coming along:

SymPaper Facelift

SymPaper Facelift

If you’re looking forward to the Free SymFTP Demo keep an eye on my Publisher page on the ovi store or follow me on twitter @talv to get the latest information on what I’m doing and the status of my app updates!