Question
The Tizen Native API primarily uses procedural-style C programming, which can create barriers for developers accustomed to higher-level languages. While EFL (Elementary Foundation Libraries) is powerful, it introduces boilerplate code that slows development.
Tizen Fundamental Classes (TFC) is a C++ library that:
- Encapsulates EFL boilerplate code
- Implements Model-View-Controller framework
- Provides DSL for asynchronous programming
- Offers object bridging between C++ and EFL
SRIN has successfully used TFC in multiple production apps including Salaam, Detikcom, Kompas, CNN Indonesia, and Samsung Gift Indonesia. The library is now open source and being used to develop Telegram for Tizen.
Resources:
- Slides: [PDF Link]
- TFC Library: [GitHub Link]
Answer
Problem Understanding
Developers face challenges when:
- Transitioning from higher-level languages to Tizen's C-based API
- Managing EFL boilerplate code
- Implementing common patterns like MVC in native Tizen apps
Solution Methods
-
TFC Architecture
- Acts as a C++ wrapper for EFL (but not comprehensive)
- Focuses on bridging EFL with modern C++ patterns
- Provides infrastructure for callback dispatching
-
UI Customization
- Uses TFC::Components::ComponentBase for custom components
- Follows factory pattern for widget creation
- Enables reusability through structured patterns
-
Platform Support
- Works with Tizen 2.4 and 3.0 SDKs
- Can be adapted for wearable (with some API limitations)
- Development branch recommended for latest features
Code Examples
For custom components:
class CustomComponent : public TFC::Components::ComponentBase {
public:
CustomComponent() {
// Initialize component
}
void CreateView() override {
// Create EFL widgets here
}
};
Additional Tips
- For wearable development, be prepared to handle missing eext_floatingbutton APIs
- Check the development branch for latest updates
- Review sample apps for implementation patterns
- Contribution to the open-source project is encouraged