Bu yazıda sizlere pardus veya diğer linux dağıtımları için nasıl uygulama geliştirileceği anlatılacaktır. Bu yazıda Vala programlama dili ve gtk3 üzerinden anlatım yapılmıştır.

0. Hazırlık aşaması

Öncelikle derleme ve paketleme aşaması için aşağıdaki paketleri yüklememiz gereklidir.

apt install libgtk-3-dev valac meson 

1. Uygulamanın yazılması

Vala dokümanları için:

https://valadoc.org/

Vala programlama dilini öğrenmek için:

https://sulincix.github.io/sayfalar/html/vala-dersi.html

Kodlamaya başlayalım

Gtk kullanarak uygulamamızı aşağıdaki gibi yazalım.

Aşağıda boş pencere oluşturma örneği verilmiştir.

using Gtk;

int main (string[] args) {
    Gtk.init (ref args);

    var window = new Window ();
    window.destroy.connect (Gtk.main_quit);
    window.show_all ();

    Gtk.main ();
    return 0;
}

Uygulama başlatıcısı hazırlayalım.

Uygulamamızın uygulama menüsünde gözükmesi için aşağıdaki gibi bir dosya hazırlamamız gerekmektedir. Bu dosyayı application.desktop olarak adlandırarak kaydedin.

[Desktop Entry]
Name=uygulama-ornek
Comment=Example application
Exec=uygulama-ornek
Terminal=false
Type=Application
Icon=uygulama-ornek
Categories=System;
Keywords=uygulama,ornek

Kategori listesine https://specifications.freedesktop.org/menu-spec/latest/apa.html adresinden ulaşabilirsiniz.

Uygulama simgesi hazırlayalım.

Uygulamamız için svg formatında bir simge hazırlamamız gerekmektedir. Bunun için inkscape kullanabilirsiniz.

Lisans ekleyelim.

Şu bağlantıyı inceleyin: https://gonullu.pardus.org.tr/gnu-gpl-lisanslarini-kullanmak/

Kodu derleyelim

Vala kaynak kodları çalıştırılmak için öncelikle derlenmelidir. Bunun için aşağıdaki gibi bir işleme ihtiyaç duyulmaktadır.

valac -o main main.vala --pkg gtk+-3.0
# veya şu şekilde de yapılabilir.
valac -C main.vala --pkg gtk+-3.0
gcc -c main.o main.c `pkg-config --cflags gtk+-3.0`
gcc -o main main.o `pkg-config --libs gtk+-3.0`

Uygulamayı yükleyelim.

Uygulamamızın komut olarak çağrılabilmesi için sistemde /usr/bin dizini içerisinde bulunması gerekmektedir. Bunun için uygulamamızın derlenmiş dosyasını aşağıdaki gibi kurabiliriz.

install -m755 main /usr/bin/uygulama-ornek/
install -m644 application.desktop /usr/share/applications/org.uygulama.ornek.desktop
install -m644 icon.svg /usr/share/icons/hicolor/scalable/apps/uygulama-ornek.svg

2. Uygulamamız için derleme talimatı hazırlama

Uygulamamızın kodun derleme aşaması için kullandığımız komut kullandığımız kütüphanelerin sayısı arttıkça veya kaynak kod dosyalarının sayısı arttıkça daha karmaşık hale gelmektedir ve komutu her seferinde elle yazmak zorlaşmaktadır. Bu yüzden derleme talimatına ihtiyaç duyulmaktadır. Bu yazıda meson derleme sistemi anlatılacaktır.

meson ile ilgili ayrıntılı bilgiye https://mesonbuild.com/ adresinden ulaşabilirsiniz.

meson yazmaya başlayalım.

İlk olarak meson dosyamıza aşağıdaki gibi bir tanımlama ekleyerek proje adını belirleyelim.

project('uygulama-ornek', 'vala', 'c')

Uygulama bağımlılıklarını tanımlayalım.

deps = [
    dependency('gtk+-3.0'),
]

Kaynak kod listemizi tanımlayalım.

sources =  [
    'main.vala',
]

Son olarak uygulamanın derlenmesi için gereken tanımlamayı yapalım.

executable('uygulama-ornek', sources, dependencies: deps, install: true)

Uygulamamızın diğer dosyalarını kopyalatalım.

# uygulama simgesi
install_data('icon.svg', install_dir: get_option('prefix') / 'share/icons/hicolor/scalable/apps/',rename: 'uygulama-ornek.svg')
# uygulama başlatıcısı
install_data('application.desktop', install_dir: get_option('prefix') / 'share/applications/',rename: 'org.uygulama.ornek.desktop')

En son olarak meson dosyamız aşağıdaki gibi olacaktır:

project('uygulama-ornek', 'vala', 'c')
sources =  [
    'main.vala',
]
deps = [
    dependency('gtk+-3.0'),
]
executable('uygulama-ornek', sources, dependencies: deps, install: true)
install_data('icon.svg', install_dir: get_option('prefix') / 'share/icons/hicolor/scalable/apps/')
install_data('application.desktop', install_dir: get_option('prefix') / 'share/applications/',rename: 'org.uygulama.ornek.desktop')

meson dosyamızı derleyelim ve kuralım.

meson derleme talimatını aşağıdaki gibi derleyip kurabiliriz.

meson setup build --prefix=/usr
ninja -C build
ninja -C build install

3. Uygulamanın kodunu git üzerinde paylaşma

Uygulamamızın daha kolay şekilde geliştirilmesi ve diğer insanlar tarafından kolay incelenebilmesi için git üzerinde paylaşmamız gerekebilir.

İlk olarak projemizin içerisinde aşağıdaki komutu çalıştıralım.

git init

Öncelikle github/gitlab üzerinde projemizi oluşturalım. Daha sonra da projemize adresini ekleyelim:

git remote add origin git@github.com:kullanici-adi/proje-adi.git

Projemizin derlemede oluşturduğu dosyaların hariç tutulması için gitignore dosyası oluşturalım. Aşağıdaki gibi bir dosya oluşturup .gitignore olarak adlandırarak kaydedin.

build/

Şimdi commit oluşturup git üzerine gönderebiliriz.

git add .
git commit -m "First Commit"
git push -u origin master