 The application development and finally covering, I will be covering device APNS. This is the Tizen architecture where, as it already mentioned that Tizen is a Linux based operating system. We have a smart-based Linux kernel that is 3.0.0 version. On top of that, we have open source component for different types of bodies like multi-mega messaging. All these are open source components. On top of that, we have web framework and native framework. I will be discussing more about web framework. Today, most of the application developers challenge is porting. So, they are adopting question and find technology for development so that they can easily port their applications to multiple operating systems. So, Tizen has a very good web application development framework which allows you to develop your applications smoothly. And it is fully compliance to W3 standards and restaurant-wide features. Apart from having these standards, it also provides device APNS to use resource-related functionalities like battery or sensors or cameras, whatever it might be. And on top of that, it has web UI framework so that it provides rigid support for your web application development. And web runtime is a module which will take care of this web application, deploying, installing and handling the lifecycle of an application. This is the web runtime module where we already mentioned that if you want to install any web application project onto the device, the web runtime is the module which will take care of these things. And WRT installer is the module which will take care of installing the web application onto the device. And WRT client is nothing but which will manage the lifecycle of your web application like starting the application. If there is any problem, it will pause us and resumes the resources. All these features are being handled by this web runtime client. And coming to the thing is security. Web application has been secured using smart technology. We will discuss more about security in our coming slides. A launchpad is the demo which will take care of launching application from menu, application menu. This is how the installation and update happens for even web application. First, web application will consist of HTML files, JavaScript files and CSS files. And there is one important file is called config file which will tell what is the start of your application page. For example, you might be having my application. So, how with the launcher, you know, which is the starting of your application. Those things are being defined in this config.xml file. This is the web runtime installer. We first check the config file and it will determine whether it is an installation file or an update file. Based on that, different workflow we go through. After that, it will check the certification validation. After meeting certification validation, it will check whether the files are encrypted or not. After that, it will decrypt the application. So, it provides security in terms of encrypting the HTML, JavaScript and CSS files also. Once these files are decrypted, then it will check what are the privileges this application is going to have. After checking those things, it will finally install or update your application onto the device. This is the workflow for installation and update. Every application will have two processes. One is UI process and another one is web process. UI process, as already mentioned, it will take care of the lifecycle of an application. Web process which renders your HTML content on the web field. It is basically developed on top of web field 2, which is nothing but EFF library-based web field. All these web processes will communicate using IPv6 mechanism and security module. No web application will run under root privilege. All the applications will run by this WRT installer and each application has been sandboxed. So, it does not have any privileges to interrupt other applications. These privileges, I already defined that in config file there are three different privileges. By reading these privileges, the web installer takes care of that. It does not read any other data apart from what is defined in config file. That way it helps to provide security by using device resources. We will be talking about details about how to use Tizen SDK for web application. It is nothing but an Eclipse ID with Tizen plugins and Web Project Explorer, where you can see all the projects in your workspace. Edit area where you can edit your HTML, CSS and JavaScript files. Once you do any changes for HTML or CSS files, immediately you can view the preview of your changes. And then outline and event injector. Outline module will show all the available methods in the active window. And event injector we will talk in detail in coming slides. And console where we can see the debug messages. And connection explorer is the module where we can see the connected devices to your operating system. For example, you can run an emulator or you can connect your real device to your operating system. All those details will be seen in connection explorer. And you can directly deploy your applications on your targeted device using this connection explorer. And the web simulator. Tizen supports two types of models. One is web simulator and web emulator for debugging your applications. Web simulator is nothing but a Chrome-based window with device emulated. Here you can debug your applications. And to make sure that your application works properly, you can use this web simulator. The only difference between web simulator and web emulator is that web simulator you can test only one application at a time. And you cannot run two applications and check what is happening. So if you want to test your application in less time, developers will prefer this web simulator. And it has input support for event injector where it can debug all the HTML and JavaScript files. And apart from this simulation of device, it provides another module called configuration panel where you can inject dummy events with real device files. So that it can test the functionality with real testing on it to device, actual device. I already mentioned that connection explorer will list all the available devices connected to your operating system. There you can see at least the emulator which has been connected. And it will show the file system of that emulated from this window. You can push or pull files or music, files, videos, audios, anything. You can pull and push directly onto this emulator. And artificial injector has already mentioned that to test real functionality of devices without sensor. You can do it using this event injector. For example, if you want to test location services, you cannot do it on your emulator. So you want something injected onto an emulator using this location tab. You can inject whatever the latrons you want to test and it will be injected to your emulator. Once your program runs, it will display the latrons which you have injected into the emulator. So by these dummy events, you can test your location based services. Not only location, it has support for telephony, SMS, MMS, calls, all these things you can test using this event injector. UIVender, instead of writing code, you can just drag and drop and customize your web pages using this UIVender. It will generate the HTML content and CSS content for all the, for the design base. And Tizen has a built support for four types of projects. One is the empty project means it doesn't contain any details, only the concrete file and the basic HTML files. And a single page project contains details for creating one page application and multi-page application. It allows you to create multiple pages and navigation is the one. It's also a kind of multi-page but there is a support how to navigate from one page to another. Apart from this, it has support for offline documentation also. It not only gives details about API usage but you can find more information about Tizen tools and even how, what are the steps you need to follow to upload your application to Tizen store. All those details are being documented in this offline document. And sample applications. To reduce the learning curve, Tizen has 15 more applications which demonstrates the usage of W3 standard base as well as HTML5 and it has support for game development and even painting, all canvas painting. All such applications are available with the SDK and user template. As already mentioned, Tizen has provides four types of templates. One is single page, one is multi-page. If you want to develop your own template, there is a few steps has to be followed so that you can create your own template to choose for application development. UI Customizer. Tizen framework provides few set of widgets. If you doesn't want to use similar, you can fill for that widget. There is a possibility to customize it using UI Customizer. You can select the widget, what widget you want to customize then after making those changes to that particular, this is the picker widget. So, Tizen look and feel will be with blue background and if you can change to rounded corners and you can change the background color and the text color after making those changes, what you need to do is, you need to export this into a CSS file and then the CSS file has to be imported in your current project. Then you can see the changes whatever you have done using UI Customizer. How to create a sample application? This is where it provides basic Tizen web UI framework and jQuery mobile. Once you select this basic option, it will generate simple HTML, JavaScript and CSS file. There will be no preloaded third-party JavaScript libraries. If you select Tizen UI framework, it will preload your web application project with Tizen specific framework like this. If you select jQuery mobile, if you want to develop a jQuery mobile-based web application then you have to choose this jQuery mobile option then it will preload all the jQuery, JavaScript and CSS files into your web project. These are the files which will be generated if you select a simple project and these are the files which will be generated if you select a web-depth-based template. And one more important has already been seen, the installation and updation happens based on the config file. So, this config file has a lot of things which the user can customize. Here if we see these are all the features this config file contains. One is overview tab menu where you can specify your author details and what are the functionality you are providing in this application. And widget details means if you are restricting your application to one specific resolution like it can hide those options you can choose in this widget. And features for example, if your application needs any resource hardware resources or software resources you can mention it. These things are used in Tizen store for filtering your application based on resources. And one more thing is privileges. Privileges as I already mentioned web applications has been sandboxed and it doesn't allow to use all the system related resources. You have to define it prior using it. If you won't define for example, if you want to launch your application want to launch another application. So, if you want to define this application.org privilege even though you are making use of those APIs it is not going to work. You need to specifically mention what are the privileges your application is going to use. Then only it will work and policy. For example, your web application want to access some external URL it directly doesn't do it. You need to mention that what all the sites you are going to visit and what all the serve domains you are going to visit for that site those particular details in how to mention it. Then only it will work. The URLs not specified in this policy doesn't work. You have to mention it in this policy. Then only your application will be able to connect the corresponding server. And then preferences. For example, your application wants some predefined values like for example, if it is a first type launch I need to do some I need to perform few steps. If it is a second time launch I doesn't want I need to skip those things. Those things instead of having an external database you can store those things using these preferences using key value pairs. And then source. What are the things we have defined so far will be represented in an XML file. Either you can specify those features using these steps or you can directly manipulate the XML file. To test your applications on different resolutions you can create emulator of your own time. It allows to customize emulator of your own choice but you need to provide the scheme and platform for that. This is where you have to launch your application onto the emulator. You can use this run has option where you can see two different types of options whether it is a web application or web simulator application. If you select web application it will check the correction explorer and it will check which is the active emulator or a device and it will launch the application onto the targeted system. If you use this emulator option then your application will be opened in a Chrome based simulator. There you can debug your application. And localizing widgets. To localize widgets currently Tizen doesn't support all the languages. It has some inverse set of languages support. In localization you can view all the languages supported by Tizen framework. Here for localizing applications there are three types of localizations. One is folder based localization, content based localization and element based localization. Folder based localization means once you select this wizard to localize your application then a unit set of files will be created for each application on run time. This WRT checks the current language based on that corresponding HTML file will be picked. This is called folder based localization. And element based localization it is an HTML standard where you can localize your application content using this language attribute. And content based localization. Tizen framework uses globalized third open source project for internalizing your applications. So you need to predef, you need to run, you need to define your proteins to you need to element proteins to implement this localization. Localization effects only be seen once there is a change in page reloading or your application will launches next time. It is not like a dynamic. Your application has to undergo relaunching again or reloading the page. Eclipse content services and jelly are compiler tools which will use the compilation warnings or errors while developing. No need to build the project to know the errors. It will automatically shows while writing the application if there are any errors in your code. And log messages console.log you can categorize your logs either by mentioning it as info or error warning debug all these things you can do using console function. Remote inspector is used to debug your application. It is not only inbuilt with simulator even in latest SDK it has support to debug your applications on emulator also. It will launches this inspector page where you can check the variables or the call stack where it has gone through to reach that particular break point. All this information you can find using this remote inspector. And often completion of your publication project make sure that you will pass all the test cases defined by this web checker to prior prior deploying your projects on to tizen store. It has 20 test cases all these test cases has to be passed then only it is accepted on your tizen store in tizen store. It will generate htmi based results and even it context full information what is the error and how to pass that test case. And these are principles to have a common look and feel across all applications. Tizen has provided few developer guidance. Those information you can those information is available in developer.tizen.r. To know more information about latest releases and events you can go through all these websites one is tizen.r, developer.tizen.r. It also provides documentation for various number of web projects and making projects and even there is a forum support where you can contact for your queries. And source.tizen.r is a website where you can pull the code of the latest tizen releases. Works.tizen.r is a gira-based bug tracking tool where you can create logical web device APIs. As I already mentioned apart from W3C standards and HTML5 features Tizen exposes few APIs called device APIs to use the functionality of hardware resources. One such thing is application module where you can take submodules called Alarm, application control and data control and package. Here application control module is used to launch for example as already mentioned if you want to launch another application you have to define application.range privilege. It is nothing but you are making usage of application APIs to launch another application. And if your application is if you want to make your application as a service this application control exposes few APIs so that your application can become a service to other applications existing on the device. It will also reduce the list of running application or installed application and if you want to know the details of each and every application it has the support. And communication framework. It provides support for Bluetooth and messaging network Bluetooth means it will it provides APIs to know the list of Bluetooth supported device in the range and how to do pairing, how to transfer files like audios, videos or calendars, vcards, everything. And messaging it supports MMS, SMS and email clients. Network various selection API module will allows to read your sync details and LFC is near field communication as it is an ISO standard. It helps us to transfer messages either to connected peer devices or wireless stats also. And push element for example if there is an update for your OS or even for your application this push API will take care of it. And content. Currently the content is nothing but at least the directories containing images, videos, all those content related to files. And download to know the download you can control the download using this download APIs whether to know the status of download all these details are provided by this module. And the input output, inside input output we have file system and message input. In Tizer not all the files and directories are accessible by web application. There are only few restricted files and each files are treated as a virtual file system. You have there is some link for this virtual file system like images, videos, images means the location of this folder is opt inside of devices there is some images folder. You can application can access only those files defined in this images folder. It cannot for example if under root under user folder there are few images for images files. Application cannot access those images. It will access images which are defined only in these file systems and message port. Two web applications can communicate either with sockets or something like that. There is API interface provided for that it is nothing but a message port. For that if you want to receive any information from other applications you need to define a remote port. If you want to send some messages to other applications you need to define a local port. Message port is not only restricted to two web applications you can also connect from one web application to native application also. And social under social module we have support for bookmarks, calendar, call history, contact and data synchronization support also. And under system and UI interfaces we have sub modules called power where your application can access power request and it can release this also and to know the information of what is the device orientation, what is the battery level, what are the sensors are turned on or down of those details you can get using system info APIs. And web setting is used to delete, to check the cookies or to manage your cookies those things you can do using web setting APIs. And finally, notification API is to create notification from your web application. Currently there is a support for simple notification under ticker notification. These are all the device APIs exposed by Tizen for web application developers. Any questions? You said you would like to go and describe what privileges you are using. Tizen just look at the API that you are using and we did it. Before all this party fund is used for security purpose. That is a security service demo it cannot view what you are using since every application is managed using the platform resources. This service demo cannot check what resources your app is doing. By specifying at the beginning this security demo will come to know what are the privileges it has to register to what are the privileges towards it. It is not an API level kind of thing. It is a model which will take some of the security. I am missing that there could be some sort of a third party tool that could be written that will go through your code and come up with a function that will describe the privileges that the application is using. Even if it is not supported by the platform because as you say it cannot look through the code only in execution. There could be a third party tool that goes through the code. What is the purpose of what privileges are being used? There are three levels of privileges. One is public privilege. The other is partner privilege. The third one is platform privilege. Public privilege is a good product for all the developers. They can use public APIs. They can mention that and manifest all the public products and start using it. The partner-specific privilege is given only for developers who are considered partners on the rising scale. That is the reason there are different levels of privileges that needs to be mentioned. Those privileges are not properly mentioned as a platform for the application. That is the reason why we have those privileges by invoking certain APIs. For example, if you are looking at a device, a web camera, for example, you need to go through some APIs but you have to declare it in your XML as well. Access to the camera, for example. It almost seems like I am doing it twice. Once in my code, I am saying I need access to a web camera. And the second time in the conflict I am using access to the web camera. So if I already have a web application how easy or difficult is it? What is it? Thank you. So next session is by Rees. The rising native API.