Gilang Mentari Hamidy - Samsung R&D Institute Indonesia (SRIN)
The Tizen Native API officially embraces procedural-style programming paradigm using the C programming language. This creates a “language-barrier” for software developers who are migrating from popular development platforms, which usually use higher level programming languages. Although EFL, the UI library provided in Tizen Native API, is very powerful, it also introduces boilerplate codes which are unnecessary for fast application development lifecycle. Fortunately, the nature of Flat-C API introduced by EFL in Tizen opens the possibility to be adapted to programming environments other than C. The adaptation is quite straightforward which enables us to encapsulate boilerplate codes into a reusable framework library.
We developed a library called Tizen Fundamental Classes (TFC) which utilizes modern C++. We designed TFC to be easily understandable by developers who are familiar with popular programming paradigms and patterns. We introduced the Model-View-Controller framework for application development, a smooth bridging component between C++ objects and EFL objects, and we also introduced Domain Specific Language (DSL) in developing a seamless asynchronous code, similar to popular programming platforms. This presentation will focus on presenting the basic features of TFC, demonstrating how to develop native applications with TFC, and compare it to popular platforms. This presentation also covers some advanced features of TFC such as asynchronous codes and serialization.
SRIN has been using TFC since the first Tizen project in late 2015, and it has been evolving ever since. We have developed at least 6 applications using TFC which are now published in Tizen store. Those apps including Salaam, a Muslim application, Detikcom, Kompas, and CNN Indonesia, which is a popular news platform in Indonesia, as well as Samsung Gift Indonesia. We are currently developing a worldwide scale messaging application, Telegram, using TFC and is expected to be published soon. We aim to publish TFC as an open source library (see below) to provide more options for developers to develop native applications in Tizen, as well as to reduce the unwillingness of developers to write native apps for Tizen due to language and platform barrier.
TFC library: https://github.com/Samsung/tizen-fundamental-classes