 The tizen contains two parallel frameworks. One is the web framework and the other is the tizen data framework. I am working on the tizen data framework and this session will be on the tizen data framework. Underline we have something called core as well. Core, if you remember something we were talking about core CAPS in the morning and this, he was talking about this particular core API. The difference between the framework which is on top and the core is that the framework, framework's motto on the agenda is to maintain ABC applications that meet compatibility whereas no such promise was done by core. So that's the difference. And you can see on top of the framework you have the tizen public APIs. What exactly is tizen native framework and what it supports? The tizen native framework supports C++ APIs, the abundant C++ APIs that's available to developers more than 10,000 APIs available. Along with the APIs it provides for the standard C++ and C libraries. And it also provides, apart from the standard libraries, it also provides open GLVS for open year development, then open AI for the audio library, open MPD for multi-processing, multi-programming concepts and live XF2. So these are a few of the libraries which are provided apart from the standard libraries. The native framework also has package installation and operating, package management that is taken care of by the native framework. Here what we mean by package is it's a zip file of your binaries and the data. Then it manages all the application life cycle and the application goes through different states from initialization, running from background to termination. So this management is done by the native framework and then we have system event handles for applications. Sometimes applications want to show some critical information to the like the pattern management or power management, the mapping and information. So the event handles are given to the application from the inside. As you can see that the native framework has many modules such as app, graphics UI, BS, IO security, etc. In the coming slides I have just picked up few important modules and just given a new one. The first most important module is the base. The base is more like a foundation in here. The base gives all the basic data types and the collection classes. All your run apps, hash maps, then Arrayless, your linkless, etc. etc. in my collection classes here in the base. Then we have IU where which deals with all the path system operations, create the file and file management basically as well as the data database management. And we have text which deals with encoding and conversion of text. At the moment it supports GSM, UCS2, then UDF8 and GN, of course, ASCII. Then we have something called LLVM concept and base. What exactly is LLVM is? Right now there are two processors which are supported in my collection. That is XSA6 and ARM. So developer need not have multiple applications for multiple processors. So all he has to do is just develop his application, put it on the store and the infrastructure will take care of building the right binary for the right processor. So that's LLVM basically the client is what is supported. And it also supports OpenMP which is not about the multi-processing support. These days we don't deal with just one processor, quad-codes which have come out. So they all use shared memory. So OpenMP harnesses the advantage of using multi-core processors here. So it can develop your application for multi-programming. So this is about base. Application framework is more like the heart of the system. Where it manages all the rights of the environment. I have another slide which shows the... I'll explain more on that. It deals with even handling and UI and service application. In LLVM we have two different modes of application. One is the UI application and the other is the service application. The UI is on the image page, it has a page, it has a UI. The service application is more like something which runs in the background which doesn't have a UI as such. The UI application can be opened or run by clicking on the icon or it can be clicked from the tray or something like that. But service application can be run from the boot or some other application can run from the service application. So there are basically two modes of application. Then the package management. As I explained, TPK is the package which is nothing but the zip version of your binary and the data. You have a similar package management system for the web applications as well. The extension for web applications as well. Inter-application communication is also managed by application framework. Here two applications can communicate with each other. There are basically three modes in which applications can communicate. One is the app control, the other is data control and the third one will be through message boards. For example, you have browsing on the web page and in your browser you have an elephant or something, or an e-mail, an ID or something. So you click on that dialog or the message application will be open. How did the browser get to know what application goes through? So there is nothing more to do with application communication. Browser makes use of the important features of the other applications. So such inter-application communication is managed by the application framework. Then Graphics is major. For 2D drawing, we have something called 2D Canvas. For 3D graphics, we have something called OpenGL. It supports OpenGL 4.1 and 2.0. We have a few other concepts such as the canvas texture and video texture as well. The canvas texture is nothing but we have an OpenGL texture on which we associate the canvas and then make use of all the graphics APIs to draw or edit. This actually gives us really familiarization of the application. So 2D Canvas and OpenGL 4.2 and 3, that's it. And then we have video playback and recording, image audio, video recording, ECM audio input and output, that is the uncompressed audio. And we have OpenGL. OpenGL is for applications which auto-make use of 3D sound. This would place the source of the image in three dimensions. Then user interface, there are many UI controls which are available. You have XBox, XBox, then you have ListBox. There are list items. There are various UI controls which are available. Then scalability, scalability is something that you don't have to maintain different applications for different resolutions. There are tools available that you should take care of how to handle a particular resolution. The concept which is used is here is something called logical coordinate system where you give the logical coordinate. For example, you have given 480 as your logical coordinate and you build your binary and you flash on the device. But the device is a HD device that supports 720 as its resolution. Automatically the Python platform itself takes care of mapping your logical coordinate to the physical coordinate. That's 480 will be scaled up to 720. It can scale down. Animations, web controls. Web control is an embedded browser. You can call it an embedded browser. For example, you are developing a contract application and you want to show some web content in that contract application. All you have to do is just pick web control, put it in your application and then feed the html, html to the web control which is slowly put in your application. So that's all the web control. Then you have 3D effect and offering tool. So you can create 3D effect using the 3D tool. Then you have UI extensions which are nothing but sensors, motion, face and speech. Basically sensors are nothing but they have... You can develop games by making use of the sensors which are available kind of accelerometer and gravity proximity sensors. So you have various sensors using which you can develop games, games, other applications. Then you have motion that is... You can have your own features for motion app, I mean double tap or slide or something. Then you have face recognition and link recognition and text-to-speech and speech-to-text. In communication we have... It supports Bluetooth, 3 major profiles are supported, AIP, SPP and OTP. Then you have circuits which are the low-level communication medium. It supports TCP, UDP. Then it also supports UDP circuits. HPV over 1.0 over 1.0 and Wi-Fi over 1.0. NFC is also supported. And the standard SMS e-mail and SMS application also supports it. You also have IP push and then... If an application wants to make use of IP push, it has to first register to the IP server. We have something called IP client which is a word from our service. So you register your application to this and it maintains a permanent connection between your application and the server. So whenever you are connected, the server pushes the data for IPP of the application. If not, it's an application which you can download later. The next is social content and location. We have third party SMS application. We're using machine and other mashups. Content search. You can search content on your device. What we mean by content here is it is just a logical representation of data and data that we imagine over volume. A content has two things. One is the physical file and the other is the meta-data associated content. So we have a database where the meta-data will be stored and it will be linked to the file. So content management would be easier. Then you have maps, geocoding, and location data. So geocoding and reverse geocoding are supported where you can get the name of the place and the other string and you can get the coordinates and that was also supported in attribution approaches and supported. So this was about the framework features. Introduction to entity, most of the slides and most of the features are already covered by lightning. So I'll just give a brief idea of the native application development features. This is how the Eclipse file looks. You have the project explorer, editor area, and event injector. Then problem and console window. This is how you create a project for web app. Of course, you'll be using native web app project for native apps. You'll be using native web app. And on the other hand side, you have a template and sample plan. You click on sample plan, you get about 65% of the applications. You can use the learning curve that we use here. Emulator, this is based on the open source QLO project. It is a virtual device simulator. And it has its own virtual CPU and memory. On the right hand side, you can see the file system and the communication between you and emulator will be through the STP commands. Here's the emulator manager. The advantage of this, or the main goal of emulator manager is you can create multiple emulators, multiple images for various configurations. You can add different configurations such as different websites, display, and you can maintain multiple images. So this is how you create admin and just put in your configurations given you need to work and then you can start running the instance. Artificial events can be generated using the emulator. This will be useful if you're developing games, especially if you want to experience the test. If you don't have advice and you want to take decisions based on the build of the device now, you can use the event emulator. It supports device documentation and C sensors. Documentation is available. You can find out the documentation. There's also a few samples as well. Through text, it has a few samples and it will explain it. It has a few explanations on why such images can be used and how we can use them. So it has textual information as well. I was talking about the sample apps. There are about 65-70 sample apps which you can use. The learning tool will definitely be shorter than that. You can get used to how they appear as you look at it now using these sample apps. What you'll use won't get to as available. Of course, you can develop your applications programmatically also, but that will be a tedious task. If you want visualisation of the applications and other things, you can use this tool. All you have to do is drag it out. For example, here we have shown a button and you can change the properties using this tool. You can also send an image to the button. The phone information will be stored as... This is a plug-in. This is not connected. Then you have string resource localisation. Localisation is nothing but the international language. You just have to give one string and different languages. Based on the settings of your device, the right string is for the data, the normal debugging and tracing operations. Dynamic analyser is one useful tool. If you want to provide your applications or if you want to check the performance of your application, you can use Dynamic analyser. You can see that this gives you information of how much CPU there is in the application that we have used. On the right hand side, you can see the contracts, as well as what our GTS was called. This is one of the most important features. These were just the common tools. Specifically, it would be the API and the privilege checker. The API checker is nothing but... For example, I'm using SDK version 1.0 and I'm trying to use an API from 2.0. There would be an alarm generator if such a thing is tried. Or if you're using a dedicated alarm. If you're using a dedicated API, an alarm will be turned on. While development... To make your development time convenient, development time, these tools can be used. We spoke about privilege checker at length. Privilege is nothing but Python provides API-driven privileges. We have something called privilege checker. Basically, privileges come in three types. One is public, one is a platform, and the other is a partner. If any of your APIs are not properly mentioned and the manifest is not perfect, then allow them to be generated. And then we have UI development and UI effect. You can develop 3D effects for your application. And then we have Balwin and Apprentice supported. So this was about the tools that's provided for introduction to native development and this brings these slides. How to create a native app? Why do you have a native project? And if you have templates on the left-hand side, any application for this application, if you're developing an IDE application, then you have a service application or O2J application, which is the right one. Then here, this gives the folder structure and what the folders are meant for. So setting for your source and data files, then resources, resources could be on your video or your text, which your application uses. And then in IDE libraries, if you're going to develop a folder, manifest or XML, your settings, basically, then data, any freedom-rightable files that your application uses creates to go into data. There's something called shared folder. If your application wants to share information on data, you can assign for the latest, for user-sensitive data, for your application. US feasibility, like I mentioned before, it works on the logical coordinate system. You can mention the coordinate system as logical and you can get the logical coordinate. Here, it's given a 720. This doesn't mean that you have to use the history target for this application but for the WBGA target, you'll have to have or maintain a different application. So the platform or the framework would map the logical coordinate system and the script coordinate system and all that. Then the business features will be used for filtering on your own story. So this is how to do it. Just write it on the project and then run it. And you can learn it as a native application. This is the application that I'm talking about. Launched for an app. A URL could be from the main menu during running on app initialization and initialize these with all the libraries and your application gets slowed down permanently. Applications can be a program and background. When it goes to the background, you have to stop the animation and as soon as it comes to the program. During termination, you have to have an opportunity to delete or delete something that you have considered. This is the basic UI structure. You have an indicator on the top. You have a header and a photo and the control which needs to be added on to the continue. A few sample UI controls. Checkbox, give view, negative time, date. You have a list. Then group buttons. You have an indicator which I won't be covered. This is a driving code. This is how I get the school form.exe. This is a layout manager. This comes handy when you are writing a UI for your application. Basically, there are four types of layouts, related layout, vertical and grid layout. In related layout, you have the position of your controls related to the controls which are on the form. You can always set up a relation between those controls. For example, I'll say align the left-hand side of my control on the left-hand side of all the controls which are on the form. You can always develop a relation. Then vertical and horizontal layout as the name indicates when the controls are horizontally You can always give more attributes such as margins, left or horizontal margins. Then there is another attribute called weight. You want to move the space around the control. There are various other attributes, spacing and etc. In the grid layout, the controls are placed on the matrix form. That was the working here. Here is the application development process. It's for the etiquette, creative project. Use all the tools available by your code. Then, the testing can be done on your computer or the target. Then you can put it on this way. So, this is the development process. Python information is available in Python.org. So, this was about the native framework. So, if you have any questions. So, you have this drag-and-drop of UI components both with the web as well as in the native. There are differences in the look and feel of the two approaches. The main idea of the development process was the web application and the native application, the shipping. So, some of the components that we showed were the sliders and radios. Many of the speakers, I think. So, we have had a good series of sessions and a nice introduction to Tizen. I hope a lot of us will walk away with the new features. Thank you. Thank you. Thank you. Thank you. So, this was a walk away with good feedback about the system of the platforms and hopefully, we see some activity around them. So, thank you to all the speakers. So, we have Lens served right outside. Please go and have that. And, the talks will resume at 2.30. So, you have that. Thank you everybody.