jueves, 19 de diciembre de 2013

Nokia Asha Web App Tools 3.0 (18 Dec 4pmUTC)

This webinar has introduced the Nokia Asha web apps and the new features introduced at the Nokia Asha Web App Tools 3.0.

First the Nokia Asha Web Apps are web-based application built-on HTML, Java Script, CSS, MWL, etc. Those apps are independent from the mobile device but requires to have a connected mobile device in order
to get access to them.

There are some difference from the Java Apps considering that those apps are better when we require most intensive graphics and multimedia.

Here an image that compares both apps from the webinar presentation:

As we can see those differences can make us choose better considering the nature of our planned apps.

Therefore the version 3.0 of the Nokia Asha Web app Tools arrives with the following new features:

Nokia Notification. First, we must understand that a notification is a message that is sent from the application notification service to the web app running on the phone. In order to send those messages to our web app we need to log into the Nokia API Developer Consoler that is located at https://account.nnapi.ovi.com/ .



Where we can define services that will enable us to send notifications. First we can use the push notification example that is defined in the Nokia Web App Tools that uses the "com.example" service register . Then deploy the application therefore open the generated URL using the Nokia SDK 1.1 Emulator using File>Open URL the Web is loaded and then using the Nokia API Developer Console we can send the notifications:


Control of Image Quality. It is done within the img tag using the attribute data-img-quality. Therefore it enables us to control the image quality within the webapp. The following ImageQualitySample example can be added to the workspace of Nokia Web App Tools IDE.






Localisation. It enables us to localize the text of ourWeb App. It is done within the Web App Project where you can localize the text employed within the app.

  

Geolocation. It enable our Web Apps to gain the current location of the mobile device. It is obtained using the cell data and the following method:

And it can be seen in the emulator as follows:



It also adds several examples of Nokia Notification, Image Quality, Localisation and Geolocation.

For me this is the first time that I've seen how to implement web apps for this new Nokia platform and it has provided me with some ideas that I can land in a new app in the future.


Reference:
Webinar presentation

sábado, 14 de diciembre de 2013

Using Social Share APIs in Nokia Asha SDK 1.1 (21Nov 4pmUTC)

This webinar has introduced the Social Share API. It enables us to share content with social media like facebook, twitter, google+, etc. This API is a convenient overlay to JSR-211 conceived to enable the users to perform simple social sharing of content.

For the developers it provides a built-in feature of Share API through content handler (JSR-211) and the arguments that it supports are url, text and id for fastlane integration. The mime types that can be registered are:
- image/* or specific image types
- audio/* or specific audio types
- video/* or specific video types - text/plain type

The Share API has limitation on destinations but there is no limit on size or types. Therefore it enable us to share content from the midlet or by calling the midlet outside from the fastlane that requires a previous registry of the app.

Oauth 2.0 based authentication support enable us to get access to server resources on behalf of the resource owner. It secures the open authorization protocol. The authentication process is handled by calling the Nokia browser. Such a invocations is performed through the Content Handler Browser. The process returns the access token that enable the MIDlet app to use that access token further for every share operation.



Use unicode base emoticons in content sharing. Emoji is a japanese term which represents a picture. It commonly expresses an idea as a visual icon in messaging Standard Unicode. Now it has been added to the API and it can be employed when the user want to send a message.


Reference:
Webinar presentation

Developing Healthcare Apps for Nokia Asha (5Dec 4pmUTC)

This webinar has presented, from my point of view, one of the most promising fields of mobile apps
development. The healthcare apps are becoming a very successful tool that enables access to health surveillance and medical tracking for individuals that are physically distant from the doctor's office. However through the mobile device it becomes easy to receive medical service.

Also considering the current increment in healthcare cost, the perspective shows that using of mobile devices as a healthcare provider extension is a mean that could reduce the costs. It also could provide a home healthcare that could be personalized and most accurate that the current main stream medical system generalized templates for everyone.

The roles in this scenario are:
- Doctors that wants to support professional activities using technology that enable them to provide distant medical service.
- Patients that wants cutting edge means for receive better and cost effective treatment.
- Healthy people that wants to stay healthy for years.

The current M-Health market apps belongs to the following types:
- Informational/tutorial: this kind of apps provide information about how to keep you healthy.
- Doctor assistants. Provide suggestion according to the received queries in order to minimize the search effort and maximize the doctor's decision making.
- Vital signs/ medication trackers: This kind of apps make measurements of vital signs like hearth beat and provide medication management through tracking of the schedule and medicine dosage.
- Mobile diagnostics: It works as a mean of contact with the doctor that enables the patient to get in touch and a tele-diagnosis can be provided.

Some existing apps from Nokia Asha are:

- StepCounter published by Psiirtola is a step counter for the Asha phones platform.  It is a little application that counts your daily steps. In addition, it shows the result from yesterday and all time high. This pedometer is based on accelerometers and does not use mobile data connection. Works also when the screen is off.

PGA Blood Sugar Converter published by NMA Runs on touch enabled Java Mobiles. It has been optimized for the Asha mobile devices, including Asha 501. This app converts the blood sugar level from mg/dL to mmoL. It displays a danger level gauge to indicate level of danger for particular blood sugar level. It is a very useful app for nurses and doctors.

- Blood Pressure Diary published by E-WeREST MD it is a blood pressure tracking and analysis tool that works with blood pressure measurement records. It provides statistics of these measurements and enable us to classify them. This project is currently supported by Open Innovations Association FRUCT from Russia and Finland.

Another important characteristic of this kind of apps is the connectivity with medical devices and sensors as the blood pressure monitor. It opens a wide field of possibilities also considering the current boom of open hardware gadgets based on arduino and other hardware platforms. One example of such a connectivity is provided at the Nokia developer wiki (here).

Reference:
Webinar presentation.

jueves, 12 de diciembre de 2013

VoIP Calls using Nokia Asha SDK 1.1 (27Nov 4pmUTC)

On this webinar is discussed theVoice over IP (VOIP) use within the new Nokia Asha SDK 1.1. As is already knwo the VOIP capatilbity uses the Internet Protocol (IP) to send and receive the voice converted into packets over an IP network.  In order to implement such a functionality the Nokia Asha Platform uses the Session Initiation Protocol (SIP) protocol.

In the Nokia Asha Platform the VOIP platform details are the following:
• Protocols: SIP, RTP/RTCP, STUN
• Supports WiFi internet access
• Call features: Mobile Originating and Mobile Terminating calls
• Hold/Retrieve
• Multi call support (one active, one held, one waiting)
• Call forwarding
• DTMF support

As in almost everything there is a set of capabilities and limitations, the supported capabilities are:
• One media stream (audio) only is supported
• Speech codecs: AMR-WB/NB, G.711 u-law/a-law, G.729, G.726, GSM-EFR/FR.
• Echo cancelation & Dynamic jitter buffer
• Secure call support (SIP TLS + SRTP)
• Network Aaddress Translation /Firewall travelsal: STUN support, NAT keep alive, symmetric signaling/media
• Quality of Service: Media/Signalling QoS marking with Differentiated Service Fields, Bandwidth negotiation, RTP CP Extended Report VoIP metrics
• IPv4 and IPv6 in signaling.
• E.164 numbers


However, the platform has also some restrictions or limitations that are described here:
• Multicast streams are not supported.
• Changing the port number/media type/transport during a session is not supported in the
• Session establishment through two proxies.
• Successful session with proxy failure
• Session through a SIP ALG.
• Offer & Answer: A port number of zero is used to reject offered media for MT sessions.

There are two ways to use the VOIP within Nokia Asha. One is natively and other is through Java as integrated within an application.

Reference:
Webinar presentation

Location services for Asha using geo2tag (20Nov 4pmUTC)

On this webinar has been introduced the use of open source Geo2Tag platform for the Nokia Asha phones. It is a platform that enable geo-tagging (geo-coding platform) that works as a high performance database to filtrate tags using a space and temporal criteria. It can be used over HERE maps.

The tag is composed by time, coordinates and data. The channels act like classifiers of group of tags, something like a category of tags. For instance, a channel could store the tags for historic places or also for current car accidents. Therefore according to the device capabilities the channels could be or not available.

The filtration is performed using time, radius and figures (2D or 3D). However geo2tag currently support only outdoor filtration.

Geo2Tag LBS Platform is available for download and installation, for more instructions about how to get it please take a look here. However there is a server available for trial purposes here.

The architecture shows that each client using Geo2Tag requires a set of libraries to use it. There is a specific library for Nokia Asha phones.

In order to use the Geo2Tag library is required to have a HERE key which is available at the HERE developer website.

The implementation requires the following layout:
- Map widget implementation
- Implementation of Geo2Tag requests
- Getting coordinates on device

The required libraries for enable Geo2Tag at Nokia Asha are:

Nokia HERE are (./plugins/maps_api/lib)
- maps-core.jar
- maps-components.jar - Infobubles,  For Touchable buttons and so on
- maps-gesture.jar – Add Gesture API support
- maps-kml.jar – JSR#172 is required for KLM data
- places.jar – Geocoding and reverse geocoding
- routing.jar – Routing services

Geo2Tag For Asha:
- j2megeo.jar (sources: https://github.com/geo2tag/jgeo2me)

The Geo2Tag requests are
- doLoginRequest : to manage the access
- doSetDbRequest : to manage the DB request
- doFilterCircleRequest : tio filter using a determinated area
- doWriteTag : to write a tag

There is also a possibility to locate a phone position using the cell position data, please take a look here.

This webinar show that we can employ within our Asha apps maps and use our own channels and tags to provide to the user a specific information. For example if we want to show in a map where my friends or game partners are located we can gather the data from our friends mobile devices and then add it has tags to our channel. Finally display them within our application's map as a globes emerging from a certain place in the map. The globe then contains information about our friend, for example their username, photo, etc.
Reference:
Webinar presentation
Webinar video

domingo, 8 de diciembre de 2013

UI clinic Nokia Asha UI (13Nov 4pmUTC)

This webinar has been created to focalize the details of the user interface of two apps: Jumping Man and Sky Sudoku. These apps have been submited by developers that also attends other webinars. Therefore such apps has been analyzed in the webinar considering their graphics and user interface design.

Jumping Man.

Jumping man is a game where a man is running and the user must make him jump through different obstacles that appears while he is running.

The application has been analyzed by the specialist Jan Krebber and then discussed at the webinar.


The first topic was the application's navigation map. Then the specialist started to explain several hints to improve the application.

From the point of view of the Nokia's guideline to publish apps it has been suggested that this app needs to avoid the use of a graphic return button because there is an already existing hardware back button. So the suggestion is to use the hardware back key instead of pause, back and exit software buttons.

Also it has been remarked the need to avoid the use of long names that usually appears truncated in the application list. It has been suggested to use short names because a long name makes the apps look very unprofessional. It was also suggested to use square launcher icons but rounded icons for the application list. Those and more icon settings are described in the icons' guideline published here.
For more details about graphics good practices you can find a lot of resources here.

There was also suggested to use a vertical canvas orientation to avoid orientation errors.Another suggestion was to make bigger buttons using an standard space touch area of 7mm x 7mm minimum between them in order to make them easy to touch using the fingers. Also the use of touch down feedback to the user, in other words, to change color of the surface of a button when it is touched in order to make evident the touch action.

About the game playability it was suggested to make the touch-action faster. Also to avoid adding adds while the user is playing but its good to show them when the game is paused. Pay attention where the buttons are placed because in the case of this game the jump button hides the incoming obstacles and make hard to avoid them.

When the game starts put the sound off by default in order to avoid undesirable noise when it is started. If you use web-page links in the game you have to keep the links working and avoid broken links because it makes look the entire app incomplete.

The game idea is simple and good however those remarks can improve the game user experience.

Sky Sudoku

This is a game is based in the well known sudoku. In this case the remarks started at the splash screen use, because it is irrelevant and then it has been suggested to remove it. Another important remark is to avoid usin
g abbreviations and brackets in the menu options and dialogs however in the case of this game it looks like something has failed with the app localization resources. So maybe the hint here is to verify that the app works with all the features before publish it.

About the gaming experience it has been suggested to not use a bold typeface font has an indicator instead use a background color. Avoid highlighting places where the user cannot effect because it makes the game playability confuse. Also it must be considered that
the game canvas is prone to select undesirable boxes and replace numbers by accident. The check state must have a uncheck state. At the help section it must be available a description of all the available features and possible values. If dialogs are used they must be clear. It has been proposed to use TextBoxes instead of lcdui Alerts.

The recommendations provided are:
  • Use the hardware exit key to exit the game.
  • Reduce level hierarchy and the quantity of settings in order to reduce undesirable complexity.
  • Remove option menus from the game canvas to gain screen real state.
  • Simplify the game canvas restructuring it in a simple manner and changing the interaction.
  • Reduce the options.
  • Direct people from the game to the game developer homepage.
  • Propose to acquire more game levels and sell batches of them a small prices.
Conclusions

There are lcdui and lwuit guidelines that are very useful when you're deciding how to design your app. Nokia also provide us with stencils for Inkscape and Adobe illustrator that enable us to create and edit graphics.


Reference:
Webinar presentation

Intro to Nokia Asha SDK 1.1 (30Oct 4pmUTC)


This time the webinar presents an overview of the Nokia Asha SDK version 1.1. It is an update of the current version, it is still a beta version of such a platform. It arrives with a bunch of new features and improvements.

In order to start using this new API we need to download the updated SDK and Nokia IDE in this location. Then install it and use it.


This SDK introduces the two brand new VOIP and Share APIs. Those APIS enable us to develop apps using VOIP and easily sharing content through social networks.  In relation with those APIs there are the WLAN and VOIP simulator that enables us to test our midlets using WLAN over VOIP.

The Social Sharing APIs belongs to Content Handler API JSR-211 enabling us to easily share something using the share content handler. This SDK provides us with Share APIs, a sample midlet, Oauth 2.0 (to manage login and sessions) and emoji support.



This SDK updates:

  • Image Scaling API enabling the auto orientation setting. 
  • Notifications API enabling 5 ungrouped notification per midlet.
  • Mobile internationalization API JSR-238 supportin new languages and locale.
  • Adds also the system property: microedition.platform that unveils the platform version, for this new SDK the version is Nokia_Asha_1_1.

In general this new SDK expands the potential of the midlets because it adds functionality that enable us to enrich them, for example sharing content directly from our midlet, adding emojis to the user message exchanges, easily login into the facebook, twitter, etc account within our app in order to share content, or making VOIP calls between other possibilities.


Reference:
Webinar presentation

viernes, 6 de diciembre de 2013

Localising apps for new Nokia Asha phones (25 Sep 3pmUTC)

Localization is a very important feature that most app developers usually not consider very seriously. In this webinar offered by Nokia I've learn that the impact of localization in the apps sales has a tremendous impact in the increment of the downloads number of every app at the Nokia Store. At the webinar a case study of an apps' localization in Russia with an amazing outcome is exposed. So

The common approach is defined as a process where you first analyze the potential international markets that could be a target for your app. Then you define which languages are required to localize your app. The next step requires to enable the localization implementation adding the required references to every text within the app. Therefore build the structure of resources and content to being translated within the app, translate the content and return them to the app. Finally to launch the localization enable app to the target markets.

The Nokia Asha platform includes a full set of localization capabilities to internationalize the applications. Specifically it supports the Mobile Internationalization API JSR -238, Locale API, localization templates, localization resource maker and editor.

The service Get Localization is a low-cost alternative for those that cannot perform a professional translation at their location. The advantage of this service is that it acts as a plugin completely integrated to the Nokia IDE. This plugin directly connects to the Get Localization web service and you can directly put the strings to get translated, select the target languages and then when they are already translated get them back to the IDE and employ them.Therefore this service enables you to easily integrate teh localization in the development process and manage efficiently all the translation process.

The Get Localization approach points to separate code from content avoiding hard strings in the code. Therefore making the images, date and formats localizables. This approach also enables you to perform a flexible management of the source content and check each source content part.

The Get Localization service suggest to a successful translation process you must first look for the right translators using the evaluation of them within their system. Therefore consider strictly translate everything.


Therefore another suggestion is to keep in touch with the translator via the system in order to help them to perform a better and most accurate translation.


For my projects I've now starting to use this kind of approach I will consider to test the get localization the following month. I will post here my experience with their service and the outcome for my projects.

References:
Webinar presentation

martes, 3 de diciembre de 2013

Camera, imaging on Nokia Asha platform 1.0 (24 Sep 3pmUTC)

One of the first things that every mobile developer is interested when it starts developing for a new platform is how to manage the images and also the camera. At the Nokia Asha Platform 1.0 the API tools that allows to use the camera image and video stream and then transform, store, publish and share them.

In order to get introduced to such a domain I've decided to learn through the webinars freely proposed by Nokia to everyone interested. At the webinar "Camera, Imaging on Nokia Asha platform 1.0" I've learnt how to have access to the data captured from the camera as low resolution images and record video stream using the Mobile Media API. Also how to manipulate an image scaling down it in size using the Image Scaling API. Also to apply effects to the image as monochrome or sepia using the Advanced Multimedia Supplements API.

Third Part Camera and Imaging Apps on Asha 501
Mobile Media API (JSR-135)

The webinar experience was so inspirational because it shows how you can easily find and use the required tools to develop your own application. Nokia has made a big effort to create a development workbench for their Asha series that enable you as develop to create easily java based application.

After the webinar I started using the default examples provided by the Nokia IDE. It was very easy to load the examples using the menu Nokia Hub > Examples







It display the list of available examples that we can load and then understand how the Mobile Media API, Image Scaling API and Advanced Multimedia Supplements API works throughout those example projects.













Once the Image Scaler example is mounted then we can execute it using the emulator. Therefore we have an example that enable us to select an existing image and then downsize it to 25%, 50% or 75%.




    


So, in this case the re-sizing work is performed by the following code. That can be easily adapted to other applications:


Where the method receives the modified width and height, also the string of the image source path. It then rewrites a new re-sized image file using the same parent directory of the source image.


Therefore I started thinking which kind of application can I develop to apply those tools. Then I started to create a draft using the different ideas. Then I finished to define an app that consider the arriving winter holidays and image reducing, manipulation and video creation.
 
I'm just working in such application and would not like too much before it is published at the Nokia market place however if you want to get inspired and make your try yo can always put an eye on the Nokia recorded webinars.

When I finish I will publish the development advancement here.

Reference:
Webinar presentation