diff --git a/docs/extensions/tizenx/guides/tizen-ui/getting-started.md b/docs/extensions/tizenx/guides/tizen-ui/getting-started.md new file mode 100644 index 0000000000..9fed3a5882 --- /dev/null +++ b/docs/extensions/tizenx/guides/tizen-ui/getting-started.md @@ -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. diff --git a/docs/extensions/tizenx/guides/tizen-ui/images/vs_create_project.png b/docs/extensions/tizenx/guides/tizen-ui/images/vs_create_project.png new file mode 100644 index 0000000000..3ed0dfd81d Binary files /dev/null and b/docs/extensions/tizenx/guides/tizen-ui/images/vs_create_project.png differ diff --git a/docs/extensions/tizenx/guides/tizen-ui/images/vs_launch_app.png b/docs/extensions/tizenx/guides/tizen-ui/images/vs_launch_app.png new file mode 100644 index 0000000000..014426e279 Binary files /dev/null and b/docs/extensions/tizenx/guides/tizen-ui/images/vs_launch_app.png differ diff --git a/docs/extensions/tizenx/guides/tizen-ui/images/vs_nuget_package_manager.png b/docs/extensions/tizenx/guides/tizen-ui/images/vs_nuget_package_manager.png new file mode 100644 index 0000000000..01062e88cb Binary files /dev/null and b/docs/extensions/tizenx/guides/tizen-ui/images/vs_nuget_package_manager.png differ diff --git a/docs/extensions/tizenx/guides/tizen-ui/images/vs_select_tizenui_project.png b/docs/extensions/tizenx/guides/tizen-ui/images/vs_select_tizenui_project.png new file mode 100644 index 0000000000..3b68d8d485 Binary files /dev/null and b/docs/extensions/tizenx/guides/tizen-ui/images/vs_select_tizenui_project.png differ diff --git a/docs/extensions/tizenx/guides/tizen-ui/images/vs_set_framework.png b/docs/extensions/tizenx/guides/tizen-ui/images/vs_set_framework.png new file mode 100644 index 0000000000..fb6ced0e69 Binary files /dev/null and b/docs/extensions/tizenx/guides/tizen-ui/images/vs_set_framework.png differ diff --git a/docs/extensions/tizenx/guides/tizen-ui/images/vs_set_project_name.png b/docs/extensions/tizenx/guides/tizen-ui/images/vs_set_project_name.png new file mode 100644 index 0000000000..c4c717c137 Binary files /dev/null and b/docs/extensions/tizenx/guides/tizen-ui/images/vs_set_project_name.png differ diff --git a/docs/extensions/tizenx/guides/tizen-ui/images/vs_start_without_debugging.png b/docs/extensions/tizenx/guides/tizen-ui/images/vs_start_without_debugging.png new file mode 100644 index 0000000000..37aa48f2b5 Binary files /dev/null and b/docs/extensions/tizenx/guides/tizen-ui/images/vs_start_without_debugging.png differ diff --git a/docs/extensions/tizenx/guides/tizen-ui/images/vs_template_app.png b/docs/extensions/tizenx/guides/tizen-ui/images/vs_template_app.png new file mode 100644 index 0000000000..a1a721fc8a Binary files /dev/null and b/docs/extensions/tizenx/guides/tizen-ui/images/vs_template_app.png differ diff --git a/docs/extensions/tizenx/guides/tizen-ui/overview.md b/docs/extensions/tizenx/guides/tizen-ui/overview.md new file mode 100644 index 0000000000..19cf4a7ef6 --- /dev/null +++ b/docs/extensions/tizenx/guides/tizen-ui/overview.md @@ -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` diff --git a/docs/extensions/tizenx/guides/tizenx-zlog/overview.md b/docs/extensions/tizenx/guides/tizenx-zlog/overview.md new file mode 100644 index 0000000000..a8c3175ec1 --- /dev/null +++ b/docs/extensions/tizenx/guides/tizenx-zlog/overview.md @@ -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. diff --git a/docs/extensions/tizenx/overview.md b/docs/extensions/tizenx/overview.md new file mode 100644 index 0000000000..92383f38bb --- /dev/null +++ b/docs/extensions/tizenx/overview.md @@ -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. diff --git a/docs/extensions/tizenx/toc.md b/docs/extensions/tizenx/toc.md new file mode 100644 index 0000000000..60443de716 --- /dev/null +++ b/docs/extensions/tizenx/toc.md @@ -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']") \ No newline at end of file