OSS Bilgileri Nasıl Yazılır

OSS Bilgileri Nasıl Yazılır

Merhaba. Geçen yıl (2023 sonu) geliştirici olarak kayıt olup uygulama yayınlamaya başlayan zm soft'um. Play Store kapalı testini geçmek için geliştiriciler için tester işe alım uygulamasını da yayınlamayı planlıyoruz, ilginizi çekerse lütfen kontrol edin.

Sıkça Gözden Kaçan OSS Bilgileri Hakkında

Uygulama yaparken OSS bilgilerini yazıyor musunuz? Uygulama geliştirirken pek çok geliştirici gizlilik politikası yazmaya dikkat ederken, açık kaynak yazılım (OSS) bilgilerini çoğunlukla görmezden gelir. Ancak kullanılan OSS'ye bağlı olarak, lisans bilgilerinin gösterilmesi yasal olarak zorunlu olabilir.

Özellikle gizlilik politikası Google Play incelemelerinde sıkça belirtildiğinden, çoğu geliştirici bu konuya dikkat eder. Öte yandan OSS lisans bilgileri benzer incelemelerde nadiren belirtildiğinden, pek çok geliştirici bu konuya uymamaktadır. Gerçekten de ben tester olarak uygulama kullandığımda OSS bilgisi olmayan birçok uygulamayla karşılaşıyorum.

OSS Gösterimini Uygulamanın Zorluğu

Kendi uygulamalarımda OSS desteğini hayata geçirirken, uygulama içinde metin görüntülemek için bir görünüm oluşturmuş ve gizlilik politikasıyla birlikte OSS bilgilerini burada göstermiştim. Her OSS için belirli bir klasöre metin dosyaları yerleştiren ve bunları görünümde otomatik olarak gösteren bir yöntem benimsedim. Gerçek uygulama şuydu: Metinleri _assets/oss_ klasörüne koyun, okuyun ve ardından uygun herhangi bir View'da göstererek uygulamayı tamamlayın.

        fun readLicenseTexts(): Map<String,String>{
            var map : MutableMap <String,String> = mutableMapOf()
            val fileList = assetManager.list("oss")
            if (fileList != null) {
                for (file in fileList) {
                    map.put(file.replace(".txt",""), readTextAssets("oss/$file"))
                }
            }
            return map
        }

Ancak geliştirme ilerledikçe bu yöntemi sürdürmek giderek zorlaştı. OSS eklenmesi ertelenme eğilimindeydi ve birden fazla uygulama geliştirirken OSS bilgilerini güncellemeyi unutmak mümkün oldu.

OSS Desteğinin Kurtarıcısı

Sıkıcı işleri başkasına devretmek istiyorum. Bu nedenle görüntülemek için bir kütüphane kullanmaya karar verdim. Şimdiye kadar sorun görünmüyor ve işler çok daha kolay hale geldi. Dürüst olmak gerekirse, daha önce kullanmalıydım. Denediğim kütüphane AboutLibraries'dir.

Kullanımı son derece basit. Uygulama kısmı neredeyse yalnızca aşağıdaki koddan ibaret:

        val fragment = LibsBuilder()
            .supportFragment()
        val transaction = activity.supportFragmentManager.beginTransaction()
        transaction.add(R.id.libsFragment, fragment)
        transaction.commit()

Fragment içinde tamamlandığı için, uygun bir yer bulup göstermek OSS desteğini neredeyse tamamlamaktadır.

Kolay Uygulamaya Karşın Güzel Bir Tasarım

Gerçekte görüntülendiğinde ekran şuna benziyor.

アプリ内に表示された OSS ライブラリ情報画面

Hızlıca yapılmış olmasına rağmen çok profesyonel bir görünüm elde edildi. İçerik de sorunsuzdu. Gerçekten harika.

Gerçek Kullanım Hakkında Biraz Daha Ayrıntı

Tabii ki pratikte yapılması gereken birkaç şey daha var, bunları da belirteyim. Ama kütüphaneyi dahil etmekten ibaret. build.gradle dosyasını plugins ve dependencies bölümlerine aboutlibraries belirtimlerini ekleyerek düzenleyin. Versiyonu uygun şekilde belirtin.

plugins {
    id ("com.mikepenz.aboutlibraries.plugin")
}

dependencies {
    implementation ("com.mikepenz:aboutlibraries:10.10.0")
}

Diğer Kütüphaneler

Kişisel olarak kullanmadım, ancak OSS lisanslarını görüntülemek için başka birçok kütüphane de varmış gibi görünüyor. Bilinen başlıca kütüphaneleri burada listeleyeyim:

  1. OSS Licenses Plugin - Google tarafından sağlanan, uygulama derleme süreci sırasında kullanılan açık kaynak kütüphanelerin lisans bilgilerini otomatik olarak toplayan ve bunları görüntülemek için bir aktivite oluşturan Gradle eklentisi.
  2. LicenseAdapter - Açık kaynak kütüphane lisans bilgilerini liste halinde görüntülemek için basit bir Adapter.
  3. LicensesDialog - Uygulama içinde açık kaynak kütüphane lisans bilgilerini görüntülemek için kolayca diyalog oluşturmanızı sağlayan kütüphane.

Hepsinin itibarının iyi olduğu ve kullanımının kolay olduğu anlaşılıyor. İhtiyacınıza uygun olanı kullanın ve uygulama geliştirmeye güvenle devam edin.