Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 80 additions & 0 deletions docs/extensions/tizenx/guides/tizen-ui/getting-started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@

# Create Your First Application

All Tizen Extension Libraries are distributed as individual NuGet packages.
You can browse and add them to your Tizen .NET project directly from the Visual Studio NuGet Package Manager.

## Getting Started: Create Your First Tizen.UI Application

This guide demonstrates how to create your first Tizen .NET application using the **Tizen.UI** template. Tizen.UI, provided as part of the Tizen Extension Library, is a lightweight and high-performance UI framework for building Tizen .NET applications.

This guide uses **Visual Studio 2022** to create and run a basic "Hello, Tizen.UI" project.

## 1. Prerequisites

Before you start, you must set up your Tizen .NET development environment. This includes installing the Tizen SDK and the necessary IDE extensions.

Follow the official installation guides on the Tizen Developers site:

* **Tizen SDK & Visual Studio Tools:** [Learn How to Install](https://samsungtizenos.com/docs/sdktools/?sid=6VEghbxamZ1b1RPs6dXO)

* **Visual Studio Code Extension:** [Learn How to Install](https://samsungtizenos.com/docs/sdktools/?sid=IxbvHeBMNspcp66uVvC)

## 2. Create a New Project

1. Launch Visual Studio. On the start window, select **Create a new project**.

![Create Project](./images/vs_create_project.png)

2. In the 'Create a new project' dialog, use the search bar to filter for "Tizen".

3. Select the **Tizen UI Application (Samsung Electronics)** template from the list and click **Next**.

![Select Tizen UI Application Project](./images/vs_select_tizenui_project.png)

## 3. Configure Your Project

1. On the 'Configure your new project' screen, enter a **Project name** (e.g., "HelloTizenUI") and choose a **Location** for your project. Click **Create**.

![Set Project Name](./images/vs_set_project_name.png)

1. A 'Tizen Project Wizard' dialog will appear.
2. Under the **Framework** dropdown, select **.NET 8.0 (tizen10.0)**.
3. Verify the **Package Name** is correct (e.g., "org.tizen.HelloTizenUI").
4. Click **OK**.

![Set Framework](./images/vs_set_framework.png)

## 4. Review and Build the "Hello Tizen.UI" Project

Visual Studio will generate a minimal "Hello Tizen.UI" solution.

![Tizen.UI Template Application](./images/vs_template_app.png)

1. Once the project loads, right-click the project in the **Solution Explorer**.

2. Select **Build** (or press **Ctrl+B**) to compile the project and ensure there are no errors.

### Tizen.UI Package References

This template is configured to use the **Tizen.UI** framework.

![Exploring Nuget Package Manager](./images/vs_nuget_package_manager.png)

You can verify this by right-clicking the project and selecting **Manage NuGet Packages...**. You will see that the project references the `Tizen.UI` packages, which are delivered through the Tizen Extension Libraries. You can use this interface to add or remove other Tizen Extension Library packages as your application requires.

## 5. Run the Application

1. In the Visual Studio toolbar, select a Tizen emulator (e.g., "Tizen Emulator (tizen10.0-x86)") as the debug target.

2. Press the **Start** button (the green play icon) or press **F5** to build, deploy, and launch the application on the selected emulator.

![Launch Tizen Application](./images/vs_launch_app.png)

3. After a moment, you will see your new "Hello Tizen.UI" application running in the emulator.

---

## Next Steps

Congratulations! You have successfully built and run your first Tizen.UI application. You are now ready to explore the Tizen.UI framework and start building your app's user interface.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
43 changes: 43 additions & 0 deletions docs/extensions/tizenx/guides/tizen-ui/overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Tizen.UI

**Tizen.UI** is a lightweight, high-performance C# UI framework for building modern Tizen .NET applications. You can explore the full [API reference](https://pages.github.sec.samsung.net/NUI/Tizen.UI/api/) for a detailed look at all components.

## Key Concepts

Tizen.UI was engineered to be lighter and more performant by focusing on four key design principles.

### 1. Slim View Hierarchy

The framework provides a simpler and lighter view hierarchy than traditional frameworks. We provide only the essential APIs, reducing overhead and complexity.

### 2. Enhanced Layout System

Tizen.UI uses an efficient two-phase layout process: **Measure()** and **Arrange()**. This system optimizes layout passes by recalculating only within the scope of changes, leading to faster UI rendering.

### 3. Effective Memory Management

Performance is a core feature. Tizen.UI achieves this through several advanced memory management techniques:

* **Minimized Reflection:** Reduces the use of expensive runtime reflection.
* **Optimized Data Objects:** Native and C# data objects are managed independently. C# data objects are represented as `structs` to avoid heap allocation. This means you can create and delete C# data objects frequently without incurring the cost of native object creation calls.
* **Object Pooling:** Objects created once (per type) are held in a pool and reused for subsequent creations. This pattern applies to objects that use the Stack, drastically reducing garbage collection.
* **Smart Lifecycle Management:** When a parent view is removed, it automatically removes all of its child views. This eliminates the need for developers to manually clean up the view tree in the `Dispose()` method of each component

### 4. C# Markup (Declarative UI)
Tizen.UI includes a set of fluent helper methods and classes designed to simplify building declarative user interfaces directly in C# code, aligning with modern development patterns.

## Modular Packages

Tizen.UI is fully modular. You can include only the packages you need.

* `Tizen.UI`
* `Tizen.UI.Components`
* `Tizen.UI.Components.Material`
* `Tizen.UI.Layouts`
* `Tizen.UI.Primitives2D`
* `Tizen.UI.Scene3D`
* `Tizen.UI.Skia`
* `Tizen.UI.Visuals`
* `Tizen.UI.Widget`
* `Tizen.UI.WindowBorder`
* `Tizen.UI.Tools`
30 changes: 30 additions & 0 deletions docs/extensions/tizenx/guides/tizenx-zlog/overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@

# TizenX.ZLog (Utility)

**TizenX.ZLog** is a high-performance logging library designed specifically for performance-critical applications on Tizen. Its key feature is the **minimization of temporary string object creation** during logging operations, which significantly reduces garbage collector (GC) pressure.

## Key Features

### Zero-Allocation String Interpolation

ZLog uses an advanced string interpolation method that avoids allocating temporary string objects on the heap.

* **No Temporary Objects:** Drastically reduces GC pressure.
* **Memory Efficient:** Uses thread-local buffers for string building.
* **Stack-Based Allocation:** Utilizes stack allocation where possible.

### Comprehensive Logging Levels

ZLog supports all standard logging levels:

* Verbose: Detailed debugging information
* Debug: Debug-level messages
* Info: General informational messages
* Warn: Warning conditions
* Error: Error conditions
* Fatal: Critical error conditions

### Advanced Features

* **Automatic Caller Info:** Automatically captures the file path, function name, and line number of the log call.
* **UTF-8 Encoding:** Full support for UTF-8 encoding in log messages.
28 changes: 28 additions & 0 deletions docs/extensions/tizenx/overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Tizen Extension Library

## What is Tizen Extension Library?

The Tizen eXtension Library (TizenX) is a collection of modular, open-source libraries that enhance and extend the Tizen platform.

Unlike built-in platform APIs, TizenX libraries are unbundled from the operating system and delivered **independently via NuGet**. This approach allows developers to adopt new features, UI components, and performance improvements at their own pace, free from the long OS update cycle.

> **Extend. Experience. Evolve.**

TizenX provides you with ready-to-use components, productivity tools, and pre-integrated functionalities that simplify app development and boost performance.

## Why TizenX?

* **Modern .NET Design**
All libraries comply with the .NET Design Guidelines and follow the latest architectural patterns.

* **Performance and Optimization**
Benefit from built-in memory and performance optimizations designed for the Tizen platform.

* **Enhanced Productivity**
Build apps faster with commercial-level UI components, declarative UI helpers, enhanced layouts, and powerful development tools.

* **Flexible and Modular**
TizenX is divided into independent modules. You can include only the libraries you need, keeping your application lightweight.

* **Rapid Updates**
Receive the latest features and bug fixes through NuGet without waiting for a new Tizen OS release.
6 changes: 6 additions & 0 deletions docs/extensions/tizenx/toc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# [Overview](/application/extensions/tizenx/overview.md "source:https://github.com/Samung/tizen-docs/blob/add-tizenx/docs/extensions/tizenx/overview.md tags:['TizenX', 'extension', 'library', 'Tizen.UI', 'TizenX.ZLog'], authors:['jh5.cho@samsung.com']")
# Tizen.UI
## [Overview](/application/extensions/tizenx/guides/tizen-ui/overview.md "source:https://github.com/Samsung/tizen-docs/blob/add-tizenx/docs/extensions/tizenx/guides/tizen-ui/overview.md tags:['TizenX', 'Tizen.UI']")
## [Getting Started](/application/extensions/tizenx/guides/tizen-ui/getting-started.md "source: https://github.com/Samsung/tizen-docs/blob/add-tizenx/docs/extensions/tizenx/guides/tizen-ui/getting-started.md tags:['TizenX', 'Tizen.UI'], authors:['jh5.cho@samsung.com']")
# TizenX.ZLog
## [Overview](/application/extensions/tizenx/guides/tizenx-zlog/overview.md "source:https://github.com/JoonghyunCho/tizen-docs/blob/add-tizenx/docs/extensions/tizenx/guides/tizenx-zlog/overview.md tags:['TizenX', 'TizenX.ZLog'], authors:['jh5.cho@samsung.com']")