Android

Android Kütüphane Oluşturma ve Yayınlama

İyi bir geliştirici asla Amerika'yı yeniden keşfetme işine girmez. Var olanı geliştirmeyi amaçlar. Bu bağlamda Android geliştiricileri, kendi uygulamalarında özgürce kullanabileceği, canlı ve güçlü bir açık kaynak kütüphane ekosistemine sahiptir. Geliştiriciler, bu küt...

kurtulusahmet |

11.12.2015

İyi bir geliştirici asla Amerika'yı yeniden keşfetme işine girmez. Var olanı geliştirmeyi amaçlar. Bu bağlamda Android geliştiricileri, kendi uygulamalarında özgürce kullanabileceği, canlı ve güçlü bir açık kaynak kütüphane ekosistemine sahiptir. Geliştiriciler, bu kütüphaneleri diledikleri gibi kullanabilir. Bunun yanında gelişimlerine destek olabilir. Biz de bu yazımızda yeni bir kütüphane modülü nasıl oluşturulabiliriz, bunu nasıl yayınlayabiliriz ve bu açık kaynak kütüphane ekosistemine nasıl katkıda bulunabiliriz konularına değineceğiz.

 

Android kütüphane oluşturma

1. Yeni modül ekleme

Bu aşamada Android Studio arayüzü ile yeni modül eklemeyi ve bunun üzerinde gerekli yapılandırmaları gerçekleştirme konularına değineceğiz. Öncelikle File > New > New Module şeklinde modül oluşturma kısmını açıyoruz.

Karşımıza gelen kısımda, Android Library seçeneğini tıklayıp devam ediyoruz. Ardından gelen ekranda kütüphanemizin ismini ve SDK ayarlarını giriyoruz.

Proje dizinimizin son hali şöyle olacaktır:

2. Yeni layout dosyası ekleme

Kütüphanemize yeni bir XML dosyası eklemek için kütüphane modülü içerisinde yer alan res klasörüne sağ tıklayıp, New > XML > Layout XML File yolunu izleyerek my_view.xml isimli bir XML dosyası oluşturuyoruz. İçerisinde birer adet imageview ve textview ekliyoruz. Layout dosyamızın görünümü şu şekilde olacak:

3. Yeni Java sınıf ekleme

Bir önceki adımda oluşturduğumuz XML dosyasını kullanabilmek için şimdi bir Java sınıfı oluşturuyoruz. Bunun için java klasöründeki kütüphane dizinine sağ tıklayıp New > Java Class yolunu izliyoruz. MyLibView ismini verdiğimiz sınıfa LinearLayout sınıfını extend ediyoruz. Buna bağlı olarak, sınıf içerisine gerekli constructor metotlarını yazıyoruz.

public class MyLibView extends LinearLayout {

    public MyLibView(Context context) {
        super(context);
    }

    public MyLibView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
}

Ardından XML dosyamızı sınıf içerisine dahil etmek için, initialize metodumuzu yazıyoruz.

private void initialize(Context context){
    inflate(context, R.layout.my_view, this);
}

Bu metodu yazdıktan sonra constructor metodları içerisine dahil ediyoruz.

initialize(context);

 

Android kütüphanesini yerelde kullanma

Library modülü içerisinde yazdığımız kodları local olarak app modülü içerisinde kullanabilmek için, app klasöründe bulunan build.gradle dosyası içerisindeki dependency kısmına aşağıdaki kodları ekliyoruz.

compile project(":library")

Kütüphanemiz içerisinde yazmış olduğumuz kodları gradle sayesinde yerel olarak projemize dâhil ettik. Şimdi bu kodları kullanabilmek için app klasöründe yer alan MainActivity sınıfımızın onCreate metoduna belirtilen kodları ekleyelim.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    View v = new MyLibView(this);
    setContentView(v);
}

Android kütüphanemizi oluşturduk. Yerel olarak projeye dâhil ettik ve MainActivity içerisine gerekli kodları yazdık. Şimdi bir cihaz ile kütüphanemizi test edebiliriz.

 

Android kütüphanemizi Bintray ile yayınlayalım

Bintray, Android kütüphanelerimizi yayınlayabileceğimiz ücretsiz ve kolay kullanılabilen bir platformdur. İlk başta işe bir Bintary hesabı açarak başlayalım. Hesabımızı açtıktan sonra giriş yapalım. Karışımıza aşağıdaki gibi bir ekran çıkacak.

Sonrasında profil sayfamıza giriyoruz. Ardından Edit düğmesine basıp ayarlar bölümüne geliyoruz. Burada API Key kısmına tıklayarak, key değerini daha sonra kullanmak için kaydediyoruz.

1. İlgili eklenti kurulumu

Biz bu yazımızda maven deposu oluşturmayı işleyeceğiz. Android Studio, Bintray ve Maven arasında etkileşim kurulabilmesi için projemizin ana dizininde bulunan build.gradle dosyasındaki dependencies kısmına şu kodları ekliyoruz ve ardından Sync Now işlemini gerçekleştiriyoruz.

classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
classpath "com.github.dcendents:android-maven-gradle-plugin:1.3"

2. Eklentileri kütüphaneye dâhil etme

Bunun için kütüphane modülü içerisinde bulunan build.gradle dosyasına aşağıdaki kodları ekliyoruz.

apply plugin: 'com.jfrog.bintray'
apply plugin: 'com.github.dcendents.android-maven'

3. POM ayrıntılarını belirtin

Bu kütüphaneyi yüklerken Bintray eklentisi POM dosyası arayacak. Maven eklentisi sizin için üretir olsa bile, groupId etiketinin değerini ve sürüm değerini kendiniz belirtmeniz gerekir. Bunu yapmak için gradle dosyasında group ve version değişkenlerini kullanabilirsiniz.

group = 'com.kurtulusdev.mylibraryapplication.library'
version = '1.0.0'

4. Görevleri çalıştıralım

Şimdi önceki adımlarda oluşturduğumuz görevleri çalıştırma zamanı geldi. Android Studio içerisinde sağ kısımda bulunan Gradle sekmesini açalım. Kütüphanemizin olduğu kısımda other başlığı altında bulunan install görevine çift tıklayarak yükleyin.

5. Bintray eklentisini düzenleyelim

Eklentiyi yapılandırmak için projenin ana dizini içerisindeki build.gradle dosyasında bintray bloğu kullanmalısınız. İlk olarak sırasıyla user ve key değişkenlerine karşılık, sizin Bintray kullanıcı adınızı ve API anahtarını kullanarak kendi kimlik doğrulamanızı yapmalısınız. Ardından kütüphane paketimizin gerekli bilgilerini ekliyoruz.

bintray {
    user = 'test-user'
    key = '01234567890abcdef01234567890abcdef'
    pkg {
        repo = 'maven'
        name = 'com.kurtulusdev.mylibraryapplication.library'

        version {
            name = '1.0.0'
            desc = 'My test upload'
            released  = new Date()
            vcsTag = '1.0.0'
        }

        licenses = ['Apache-2.0']
        vcsUrl = 'https://github.com/kurtulusahmet/KutuphaneDepoIsmi.git'
        websiteUrl = 'https://github.com/kurtulusahmet/KutuphaneDepoIsmi'
    }
    configurations = ['archives']
}

6. Bintray eklentisi ile dosyaları yükleyelim

Tüm ayarları yaptık. Şimdi dosyalarımızı yükleme vakti geldi. Bunun için yine sağ tarafta bulunan Gradle sekmesinde kütüphane ismi altında yer alan publishing dizinindeki bintaryUpload görevine çift tıklayarak yükleme işlemini gerçekleştiriyoruz.

Kütüphanemizi kodladık. Bintray eklentisi ile kütüphanemizi yükledik. Kütüphanemizi uygulamalarımıza dâhil etmek için app dizini içerisindeki build.gradle dosyasına ilgili kodları ekliyoruz.

repositories {
    maven {
        url 'https://dl.bintray.com/kurtulusahmet/maven'
    }
}

dependencies {
    compile 'com.kurtulusdev.mylibraryapplication.library:library:1.0.0@aar'
}

 

kurtulusahmet |

11.12.2015

Yorumlar

bekirdursun
12.12.2015 - 11:06

Ellerine sağlık Kurtuluş, merak edilen bi konuya açıklık getirmişsin :)

mehmetdniz
13.12.2015 - 12:50

Teşekkürler

ahmtbrk
13.12.2015 - 09:54
Gayet güzel makale kardesim klavyene sağlık bintray a alternatif olarak jitpackte kullanilabilir.
gkaradagan
16.12.2015 - 12:02

Gayet güzel bir makale olmuş, teşekkürler hiç uğraşmak istemezseniz https://jitpack.io/ tavsiye ederim 2dkda yayınlayabilirsiniz projelerinizi.