Saturday, September 28, 2013

Dealing with device for Ubuntu Touch development

Lately I am working on Ubuntu Touch Calendar application. Recently I also got device and now I wanted to run and test application on real device.

So it seems there are two type of Ubuntu Touch image,
one cdimage-touch, which is read-write image but it does not support over the air update and
other ubuntu-system, which is read only, but which can be updated over the air

For development purpose its better to use cdimage-touch, as you can transfer file from computer to device and test it as its read-write. Its not possible with ubuntu-system image. But if you just want to see how Ubuntu Touch looks and test applications then ubuntu-system image is good.

You can follow steps mentioned here, to install appropriate image on device.

Now we have proper image on device, then following are some command which can be used to install the application and transfer file form computer to device.

adb push can be used to tranfer file from computer to device, just like copy
adb push tests/autopilot/calendar_app/tests/test_calendar.py /usr/lib/python2.7/dist-packages/calendar_app/tests/
BTW, " /usr/lib/python2.7/dist-packages/" is the path where test case are installed by default on device. And above command is coping updated test case file to device.

If you want to run test on device then you can use following command on your desktop terminal.
phablet-test-run calendar_app
Same way we can transfer QML files as well. Like below.
adb push YearView.qml /usr/share/calendar-app/YearView.qml
It seems "/usr/share/" is path where applications are installed.

If you want to install complete application built from source code, then you can run following command to build application from source. You need to run this command from directory where debian folder is residing.
debuild -uc -us -b
This will generate .deb file in parent folder. You can copy this file to device via adb push. Then you can goto device's shell by adb shell command.
adb push DEB_FILENAME.deb /tmp
adb shell
And finally install .deb by running following command on device's shell.
cd /tmp
dpkg -i DEB_FILENAME.deb
Now you should be able to run latest installed app.

Sunday, September 22, 2013

Un-boxing Nexus 4

I recently received Nexus 4. Here are few snaps.


Box contains USB cable, power adapter in which you can plug in USB cord to charge the device and user manual.


Device is quite nice looking, but I am going to use it for testing Ubuntu Touch.


After firing some command from here, I was able to boot Ubuntu Touch on it.


Friday, September 20, 2013

Sharing on Facebook, Twitter with BB10 Cascades app

I am currently adding sharing feature to my BB10 Audiobook Reader app. I wanted to allow sharing on Facebook, Twitter, BBM  and other supported platform.

BB10 support this via Invocation framework, Using Invocation framework you can share things using native application.

Using Invokation Framework is easy, you just need use InvokeActionItem and set some property and all is done.

Following is my code that share comment via Facebook or Twitter. Following code will allow to share using any application which support plain text invocation target.

By default it will also have sharing icon, you can use Image property to change it to custom icon.

Pressing share button on toolbar will show all application which can share the data specified by mimeType, User can select one of those and share data using that application.

Page {
    ...
    actions[
        InvokeActionItem {
            title: "Share"
            query {
                mimeType: "text/plain"           
                invokeActionId: "bb.action.SHARE"
            }
            onTriggered: {
                data = "Comments to share";
            }
        }
        ...
    ]
    ...
}
You can find more about, how to share with individual application from here. And here is documentation for InvokeActionItem.

Here is how it looks and works on device.




Friday, September 6, 2013

Reading file from resource in iOS

I was working on creating some utility function for iOS App. I required to create a File in resource and read it. File contains some words separated by new lines. I wanted to read those words and create array of those.

Its quite simple but though to share it.

Following how its done.

        
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"keywords_en" ofType:@"txt"];
NSError *error = nil;
NSString *keywordsStr = [NSString stringWithContentsOfFile: filePath encoding:NSUTF8StringEncoding error:&error];

NSArray* keywordArray = [[keywordsStr componentsSeparatedByString:@"\n"]retain];