Xamarin.Forms and .NET Core are the future for Tizen and a great new opportunity for .NET developers

During the last "Connect();" event, the first preview of Visual Studio Tools for Tizen was released! It enables .NET developers to build .NET applications for the Tizen operating system, running on 50 million Samsung devices, including smart TVs, wearables, mobile, and many other IoT devices around the world such as smartwatches.

Tizen .NET is an exciting new way to develop applications for the Tizen operating system. Using the C# programming language and the Common Language Infrastructure standards, you can benefit from a managed runtime for faster application development, and efficient, secure code execution. The existing Tizen frameworks are either C-based with no advantages of a managed runtime, or HTML5-based with fewer features and lower performance than the C-based solution.

Visual Studio Tools for Tizen provides device emulators, an extension to Visual Studio with full IntelliSense and debugging capabilities, and a UI framework based on Xamarin.Forms, enabling you to build a common UI for all devices, including iOS and Android.

Tizen .NET Features and Components

Tizen .NET consists of the following main components:

1) .NET Core

.NET Core is a general purpose development platform maintained by Microsoft and the .NET community on GitHub. It is cross-platform, supporting Windows®, Mac OS® X, and Linux, and can be used in device, cloud, and embedded/IoT scenarios.

.NET Core contains the following parts:

  • A .NET runtime, which provides a type system, assembly loading, a garbage collector, native interop, and other basic services.
  • A set of framework libraries, which provide primitive data types, application composition types, and fundamental utilities.
  • A set of SDK tools and language compilers that enable the base developer experience, available in the .NET Core SDK.
  • The 'dotnet' application host, which is used to launch .NET Core apps. It selects the runtime and hosts the runtime, provides an assembly loading policy, and launches the application. The same host is also used to launch SDK tools in much the same way.

For the users of your applications, .NET native offers the following advantages:

  • Fast execution times
  • Consistently speedy startup times
  • Low deployment and update costs
  • Optimized application memory usage

2) Xamarin.Forms as a UI framework alt Xamarin.Forms is a cross-platform UI toolkit that allows you to efficiently create native user interface layouts that can be shared across iOS, Android, Windows Phone, and Universal Windows Platform applications. Tizen .NET supports 99% of Xamarin.Forms.

3) Tizen platform-specific API

Tizen .NET supports C# APIs, which expose the Tizen native framework APIs features, such as Application, Connectivity, Multimedia, Location, and System. The C# APIs provide support for 60% of Tizen Mobile APIs.

The supported Tizen platform-specific API namespaces are:

Tizen.Applications: Provides the Tizen application framework, including, for example, application state change events, inter-application messaging, and notification services.

Tizen.Content: Provides content management services, such as file and media downloads, storing and indexing audio and video content, and associating content types with helper applications.

Tizen.Location: Manages geographical location services and geofencing. Tizen.Multimedia: Interacts with media services, including audio playback, recording, and device policy.
Tizen.Network: Provides APIs to control connectivity devices, as well as providing various network information.

Tizen.Security: Provides access to secure storage for passwords, keys, certificates, and other sensitive data.

Tizen.System: Provides device-specific services, including status, system information and settings, feedback, and sensor control and access.

Tizen .NET enables developers to build .NET applications with Xamarin.Forms and the Tizen .NET framework. Xamarin.Forms allows them to easily create a user interface, and the Tizen platform API provides numerous interfaces to much of the hardware that is found in modern TVs, and mobile, wearable, and IoT devices.

Managed Runtime Advantages

A managed runtime offers the following advantages for your application development:

  • Faster time to develop : Application development is accelerated since the managed runtime already handles many functions that otherwise have to be coded in the application (the Tizen Native API and Tizen Web API already provide this type of benefit).

  • Safer code : Managed runtimes can handle, for example, bound checking, type safety, garbage collection, memory protection services, and objects being invoked directly (the Tizen Web API already provides some of these benefits, but not type safety, as JavaScript is not a strongly typed language).

  • Lower deployment costs : Component-based architecture makes it easier and faster to deploy applications in an enterprise environment characterized by multiple platforms, devices, and legacy systems.

  • Better quality software : Managed runtimes free you to focus on the business logic and code specific to the application while reducing the number of coding errors.

  • Cross-platform support : The managed code is portable; Tizen .NET applications can have large portions of their logic applied to other systems supported by the .NET Core and Xamarin.Forms portions of the runtime.

Visual Studio Tools for Tizen

Visual Studio Tools for Tizen provides the following tools:

  • Tizen mobile emulator

Tizen 3.0 public beta image
.NET Core runtime

  • APIs

Support for mobile only in the 1st preview

  • Visual Studio extensions

Support for most of the functionalities, such as project creation and management, code editing, building and packaging, debugging,and emulator.

Samsung Tizen Z3

The Samsung Z3 is a smartphone produced by Samsung and the second smartphone to be shipped with the Linux-based Tizen operating system after the Samsung Z1. The first Samsung Z3 model, SM-Z300H, was unveiled in Gurgaon, India on October 14, 2015 and released on October 21, 2015.
alt

Hello World

The first step is to choose Blank App (Tizen Xamarin.Forms Single). It's a single project template for building Tizen apps with Xamarin.Forms.

HelloWorld solution is created which contains a HelloWorld.Tizen project.

4 dependencies are created just 2 of them are new to a .NET developer :

{  
    "buildOptions": {
        "emitEntryPoint": true,
        "debugType": "portable",
        "platform": "AnyCPU",
        "preserveCompilationContext": true
    },
    "dependencies": {
        "Microsoft.NETCore.App": {
            "version": "1.0.0"
        },
        "Tizen.Library": "1.0.0-pre1",
        "Xamarin.Forms": "2.3.3.163-pre3",
        "Xamarin.Forms.Platform.Tizen": "2.3.3.163-pre3"
    },
    "runtimes": {
        "win": {},
        "linux": {}
    },
    "frameworks": {
        "netcoreapp1.0": {
            "imports": [
                "portable-net45+wp80+win81+wpa81",
                "netstandard1.6"
            ]
        }
    }
}

The solution should be built. The Tizen emulator should be fired.
Tizen Emulator Once the app is deployed, a default icon of Tizen with name of the project appears in the menu. Menu

Tizen .NET! What's Next?

Some amazing Tizen extensions are provided in the future to enable you to make great applications for your users. The future is looking bright:

  • Tizen .NET will support more APIs (Tizen platform-specific APIs into Xamarin.Forms) and tool features.
  • Cross-profile experience will be developed (such as TV and mobile).
  • Source code will be uploaded soon and be available publicly.
  • Tizen is committed to support Tizen on Xamarin.Forms.
  • More sample applications and extensions will be provided.
  • The Tizen store is a great opportunity for .NET developers to port Android and iOS app to Tizen, to empower more users and innovate new apps and ideas.
  • Incentive program: Tizen Mobile App Incentive Program welcomes all international developers. Samsung is offering max $9 million cash in prizes during the 9 months.
    Every developer can earn $10,000 every month if his app is ranked the monthly top 100. Join the Tizen now to receive the benefits of this awesome program!
Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.