Friday, May 24, 2013


In this post, I will explain several ways to develop the Tizen applications available in today.  This will be helpful for candidate developers and newbies for Tizen.

Since Tizen towards both native and web-based application platform, developers can develop their own applications in various ways.  This flexibility and diversity would be the key benefits for the developers, such as Microsoft's multi-language support in the past decade on their Windows.

First of all, I would like to give you a motivation to you that we have a Tizen Application Contest, with the total $4M budget, which is starting in June 3rd, 2013.  Wouldn't it be much nice if you both win this contest and be the first-mover in the Tizen world?


Tizen SDK v2.1 is available now!


To get started, you can just download the Tizen SDK v2.1 from Tizen.org, which is based on an Eclipse IDE as Android SDK does.  Even though Tizen is a little bit in a prematured situation, it provides various kinds of key functionalities like Tizen Device Emulator running on Windows, Linux, and even on a Mac.



So, if you're already familiar with Android development with Eclipse, there will be less obstacles to enter to the Tizen world.


Two basic ways to develop the Tizen applications

Aforementioned, there are two ways, Native (C++) APIs and Web (HTML5/CSS) APIs to implement your own applications.  For the hard coders, Native APIs will be more good fit, but if someone is not really familiar with C++'s complicated pointers and memory allocation/free mechanisms, there is also a Web APIs with less overhead of using Webkit2 as a base component to run your own app.

Specifically, there are a few more ways to implement applications if we count the third parties' software and IDEs.  Here are the list of ways including them;


  1. Tizen SDK with Native APIs
  2. Tizen SDK with Web APIs 
  3. Third-party's cross-platform SDK (e.g., Appcelerator's Titanium)  
  4. Third-party's Run-time Compatibility Layer (e.g., ACL from OpenMobile) 
  5. Other mechanism (e.g., Inception Mobile, Intel's App Converter)



Yeah, there are too many ways to start to create your own applications.  There are pros and cons of them, so I would like to comment some of those.

  1. Tizen SDK with Native APIs
    - Full of freedom with hacking your code.  But it need several trials and errors since there are less amount of open sourced application projects and less Stackoverflow.com-like communities.

     
  2. Tizen SDK with Web APIs 
    - Less performance but very easy to rapidly develop your own application with Tizen Web Emulator.  It will save your time a lot if you're not developing a performance hungry applications.
  3. Third-party's SDK (e.g., Appcelerator's cross-platform SDK) with their own JavaScript APIs
    - You can also try to use a cross-platform SDKs like Appcelerator's Titanium.  This will enable you to implement multi-platform application in one fold.  But it would give you a less freedom with the overhead of using additional library (wrapper) stack (custom, third-party API stack) for your application.
  4. Third-party's Run-time Compatibility Layer (e.g., ACL from OpenMobile)
    - There is also another kind of effort to provide a portability to multiple platforms for the existing applications.  ACL from OpenMobile is one example, and using the ACL, Android apps can run on another platforms including Tizen.  However, it requires extra middle-software layer, and it may cost you another overhead.
  5. Other mechanism (e.g., Inception Mobile or Intel's App Converter)
    - Recently, some other ways were announced.  Inception Mobile and Intel's application converter could be an answer to people who don't actually have time to port their apps to Tizen.  But it may not capture all the rapid changes in time since Tizen and most of software platforms have rapid changes with newer versions. 

Editorial Comment and Recommendation (with FAQ): 

Q1: What are the pros and cons of the Tizen itself? 
A1: Well, here is a great slide representing the pros and cons from the third-person's point of view (thanks to the CS210 students in Stanford University!)



Q2: So, what do you recommend for the way to development? 
A2: If you're a little bit more serious people to work in a Tizen, I personally recommend you to start with a Tizen SDK with Web API first, and move to the Native API when you're ready to dive into the performance tuning things.  That's also because Tizen provides an extra way to build up your application in a "Hybrid" manner.  You can use both Web and Native APIs in a mixed way so that you'll be able to maximize both the speed of development, and the speed of your application altogether.


First of all, it is necessary to start by understanding how Tizen UI works.  There are bunch of talks and documents on Tizen.org, so you can start with them.  Also, Tizen SDK provides a UI Builder, so you can work with them.




Also, there is a Manifest for describing application itself, similar to Android's manifest.xml.  You can learn them by via examples, or with tutorials available on Tizen.org.



Even though Tizen is in before-productization phase, you can still implement your own applications with a lot of freedom, so it will be a full of fun to be the first-mover to the Tizen world.

Q3: Could you please give me some list of on-going Tizen app development projects for just benchmarking purposes? 
A3: Please refer to those two on-going Tizen application development projects (by CS210 students groups - two teams) listed below:

  • Giraffe by Un(sam)sung Heroes (URLs: TBA)

  • Rendezvous by Prioritizen (URLs: TBA)


Hope this helps for your initial step to the Tizen!


- written by ANTICONFIDENTIAL at SF, in May 24, 2013

0 comments:

Post a Comment