Updates from May, 2010 Toggle Comment Threads | Keyboard Shortcuts

  • pit 9:52 am on May 28, 2010 Permalink | Reply
    Tags: , drjukka, , framework,   

    New UI components for Web Runtime widgets by Dr. Jukka 

    Web Runtime widgets definitely need frameworks and UI components to be easily plugged and used, without the need to re-adapt and rewrite JavaScript code originally intended for the Web, more than for mobile devices.

    For this reason, It’s a pleasure to see Dr. Jukka releasing a new set of UI components, specifically intended for S60 touch devices.

    Here is the full list of components:

    • Accordion
    • Busy
    • Button
    • Carousel
    • Checkbox
    • LightBox
    • Optionsbox
    • ProgressBar
    • Radiobox
    • Rating
    • TextLabel
    • ToggleSwitch
    • ToggleSwitch list

    Components’ documentation is available on Forum Nokia Wiki, and you can also preview the components online, by using this page.

    Good job Jukka! :)

     
    • Punit Pandey 5:54 am on May 31, 2010 Permalink

      Thanks Alessandro. Publish comparison of Guarana and these components sometime.

    • pit 10:41 am on May 31, 2010 Permalink

      Hi Punit! Sure, I’m planning to post some comparative tests, also including other UI frameworks that can be used in the WRT environment.

  • pit 5:15 pm on May 25, 2010 Permalink | Reply
    Tags: community, mobilerevamp   

    Mobile development revamped, on MobileRevamp.org 

    A new community for all mobile developers, designers and everything-else gets officially launched today, thanks to the efforts of Giorgio Natili, Leonardo Risuleo, and Alessandro La Rosa (me ;)): http://www.mobilerevamp.org

    With different backgrounds, we all aim at providing useful information about the mobile environment, in all its aspects. From its manifesto:

    The aim of this community is to share as much as possible information related to the mobile development using all the social networks and the new capabilities of the NET to make easier find updated contents and to create a deep feeling of connection between developers.

    The journey is at the beginning, hope you’ll join in! :)

     
  • pit 9:22 am on May 6, 2010 Permalink | Reply
    Tags: appstar, , ,   

    Vodafone App Star winners announced 

    The first phase of Vodafone App Star competition has recently ended, and the full list of winners, 3 for each country, have finally been announced, as you can read here.

    I’m happy to say that one of my widgets (Guida TV) won the second country prize for Italy!!! :)

    Now, the second phase of the competition is running, and you can vote for the eight finalists to decide which will be the overall winner!  Public voting will end on 21st May, and by sending your preference you will also have a chance to win a brand new Vodafone H1 device.

     
    • Fan 9:30 am on May 6, 2010 Permalink

      Hi i just now noticed you’ve changed your blog theme….. what happend to all the section that was with the older theme? there was some cool graphic examples and so on… can you please give the link for them?
      thx

    • pit 10:59 am on May 6, 2010 Permalink

      Hi Fan!

      most of the old graphics are still available on the new website: are you referring to some specific missing graphics?

    • Fakhre 11:07 am on May 6, 2010 Permalink

      Congratulation…!

    • Fan 11:16 am on May 6, 2010 Permalink

      Hi im talking about the code examples part… the links you had at the top of the site, there was some cool graphics class/package with image transitions and etc.

    • pit 11:18 am on May 6, 2010 Permalink

      @Fakhre: thank you! :)

      @Fan: you can find it here: http://www.jappit.com/blog/j2me-online-emulator/

    • Valerio Schiavoni 11:35 am on May 6, 2010 Permalink

      Good Job !

    • pit 11:52 am on May 6, 2010 Permalink

      @Valerio: grazie! :)

  • pit 10:20 am on March 17, 2010 Permalink | Reply
    Tags: , , , wdl, web developer's library,   

    Forum Nokia Web Developer’s Library 1.9 available 

    Forum Nokia has just updated its excellent resource for mobile Web development, the Web Developer’s Library, adding a lot of resources to support the design and development of Web Runtime widgets.

    Changes in this last release include:

    If you’re a mobile Web developer, check it out!

     
  • pit 10:35 am on February 18, 2010 Permalink | Reply
    Tags: , , , ,   

    Deploying API Bridge apps the easy way: the delayed deploy model 

    When developing a Flash Lite, Web Runtime or Java ME application based on API Bridge, one of the things you know you’ll have to deal with is the Symbian packaging and signing process.

    For single-person and small developer teams, the whole Symbian process could be a not suitable option. For this reason, I’ve looked for an alternative deployment approach that could bypass this process. The approach presented here is based on a delayed deploy model, meaning that the API Bridge engine is not deployed with your application, but in a successive moment: actually, it is deployed only when the application needs it.

    How this can be achieved? Basically, there are 2 possible options to implement this model, and they’re based on:

    • AppManager API from Platform Services
    • Local HTTP calls

    Using the AppManager API to check API Bridge

    If the target devices support Platform Services, the AppManager API can be used to retrieve the list of installed applications, and so to check if API Bridge is installed on the device itself.

    The code below shows how this can be achieved by using JavaScript in a WRT widget. The same approach can be easily ported to ActionScript, and so used in a Flash Lite application.

    var apiBridgeFound = false;
    var apiBridgeCheckError = null;
     
    var so = device.getServiceObject("Service.AppManager", "IAppManager");
     
    var criteria = new Object();
    criteria.Type = 'Application';
     
    var result = so.IAppManager.GetList(criteria);
     
    if(result.ErrorCode == 0)
    {
    	var iterator = result.ReturnValue;
     
    	var application;
     
    	while((application = iterator.getNext()) != undefined)
    	{
    		if(application.Uid == '0x20023710')
    		{
    			apiBridgeFound = true;
     
    			break;
    		}
    	}
    }
    else
    {
    	apiBridgeCheckError = result.ErrorMessage;
    }

    The code works by checking the UID of all the installed applications, comparing them with the API Bridge UID (0×20023710). This code snipped defined 2 variables, that can be used to check for API Bridge availability:

    • apiBridgeFound: if true, it means that the API Bridge engine is installed on the device. If false, the API Bridge engine is not installed.
    • apiBridgeCheckError: if not null, it means that there was an error while checking for API Bridge, due to the AppManager API. In this case, the application cannot actually know if the API Bridge engine is installed or not.

    So, once these 2 variable have been set, the application can perform the most appropriate operation, based on the AppManager call result. The code snippet below shows a possible implementation:

    if(apiBridgeCheckError != null)
    {
    	alert("There was an error! " + apiBridgeCheckError);
    }
    else if(!apiBridgeFound)
    {
    	if(confirm("You have to install API Bridge to continue, press OK to download it"))
    	{
    		widget.openURL('http://www.yourserver.com/APIBridge_v1_1.sis');
    	}
    }
    else
    {
    	alert("API Bridge is already installed on the device!");
    }

    And below you can see this code running on a Nokia 5800 XpressMusic:

    Using local HTTP calls to check API Bridge

    Since the API Bridge engine works as a local HTTP server running on the mobile phone, the other possible approach is to make an HTTP request, and to check if any response from API Bridge comes.

    Note: this approach works by using the API Bridge default port (9080). There are no guarantees that this port number is fixed, and that it will not be changed in future API Bridge releases. For this reason, my advice would be to use this second approach only when Platform Services are not available.

    The code below shows how to make a request to the local API Bridge HTTP server, and how to check if it’s running or not: if it is running, the response status of the XMLHttpRequest object has to be different than zero.

    function pollApiBridgeServer(_callback)
    {
    	var request = new XMLHttpRequest();
     
    	request.open("GET", "http://127.0.0.1:9080", true );
     
    	request.send(null);
     
    	request.onreadystatechange = function()
    	{
    		if( request.readyState == 4)
    		{
    			if(request.status != 0)
    			{
    				_callback(true);
    			}
    			else
    			{
    				_callback(false);
    			}
    		}
    	}
    }

    The approach described here can be used also when using API Bridge from other languages, as Flash Lite or Java ME. Anyway, when working with Flash Lite, in the scenario where API Bridge is not yet installed, you will incur in the typical (and horrible) error popups, that will inform you (and so the user) that the network call failed.

    How to use the code above? First, define a callback:

    function pollApiBridgeCallback(apiBridgeInstalled)
    {
    	if(apiBridgeInstalled)
    	{
    		alert("API Bridge is already installed on the device");
    	}
    	else
    	{
    		if(confirm("You have to install API Bridge to continue, press OK to download it"))
    		{
    			widget.openURL('http://www.yourserver.com/APIBridge_v1_1.sis');
    		}
    	}
    }

    Then, just call the pollApiBridgeServer() method by passing a reference to this callback:

    pollApiBridgeServer(pollApiBridgeCallback);

    Pros and cons

    Using one of the two approaches discussed above as some important advantages over the standard API Bridge deployment mechanism:

    • You don’t have to build a SIS package
    • You don’t have to sign your application to distribute it
    • You will save money :)

    On the other side, these approaches have the main drawback on the user-experience side, since your users could be asked to download and install an additional component when they start to use your application. Anyway, this event will happen only once at most, so it could be considered reasonable in most scenarios.

     
    • Pat 4:16 am on March 1, 2010 Permalink

      Hi Alessandro , I’m trying to understand how to package/install a custom API bridge with a J2ME app. A specific post about that would be great. Thanks.

    • Diogo Moreira 2:13 pm on June 7, 2010 Permalink

      Hi Alessandro, Is there anyway to change themes phone using APIBridge by requisition for wrt ?
      I wait answer, Thanks !

    • pit 2:38 pm on June 7, 2010 Permalink

      Yes, by implementing a custom plugin you can also let a WRT widget change the device active theme. This Forum Nokia Wiki article could help for the C++ part:

      http://wiki.forum.nokia.com/index.php/TSS000456_-_Changing_the_active_theme

    • Pedro Cardoso 6:49 pm on June 25, 2010 Permalink

      Hi,

      I’m trying to use APIBridge on my app as you explain on this post, but whenever I try to do a function call (ie: retrieve the list of photos, or resize an image), the app crashes without any warning. Just quits and that’s it. The APIBridge detection is working as you outlined.

      Do you know any way I can troubleshoot, where/if any logs exist that explain the cause?

      Thanks a bunch.

  • pit 7:32 pm on February 11, 2010 Permalink | Reply
    Tags: , , , , , ,   

    API Bridge version 1.1: plug-in creation package released! 

    The announced new version of API Bridge is out! With the new 1.1 release it is finally possible to create custom plugins that access all the Symbian functionalities, so practically opening up the doors to a new generation of Flash Lite, Web Runtime and Java ME applications.

    Start downloading the new release from Forum Nokia: API Bridge release 1.1.

    Then, check out this informative Wiki articles, that explain how to build a new, custom plugin and how to use it from JavaScript:

    For more information about API Bridge, check out its Forum Nokia page.

     
    • Mallikarjun 3:13 pm on March 22, 2010 Permalink

      Hey Anybody knows how to crate new plugin dll with APIBridge. My DLL is not getting invoked when i call from echoTest widget sample.

c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
l
go to login
h
show/hide help
shift + esc
cancel