### Constructor

# Gtk Application new

#### Declaration [src]

    GtkApplication*
    gtk_application_new (
      const char* application_id,
      GApplicationFlags flags
    )

#### Description [src]

Creates a new `GtkApplication` instance.

When using `GtkApplication`, it is not necessary to call `gtk_init()` manually. It is called as soon as the application gets registered as the primary instance.

Concretely, `gtk_init()` is called in the default handler for the `GApplication::startup` signal. Therefore, `GtkApplication` subclasses should always chain up in their `GApplication::startup` handler before using any GTK API.

Note that commandline arguments are not passed to `gtk_init()`.

If `application_id` is not `NULL`, then it must be valid. See `g_application_id_is_valid()`.

If no application ID is given then some features (most notably application uniqueness) will be disabled.

#### Parameters

`application_id`

  Type: `const char*`

  The application ID.

  The argument can be `NULL`.
  The data is owned by the caller of the function.
  The value is a NUL terminated UTF-8 string.

`flags`

  Type: `GApplicationFlags`

  The application flags.

#### Return value

Type: `GtkApplication`

A new `GtkApplication` instance.

The caller of the function takes ownership of the data, and is responsible for freeing it.