Neden Önemli?
Çoğu mobil uygulama onlarca açık kaynak kütüphane kullanır (npm, CocoaPods, Gradle). Her kütüphanenin lisansı var ve bu lisanslara uymak ZORUNLUDUR. Uyumsuzluk yasal sorunlara yol açabilir.
Yaygın Lisans Türleri
MIT License
- En serbest lisanslardan
- Ticari kullanım SERBEST
- Kaynak kodu paylaşma zorunluluğu YOK
- Sadece lisans metnini dahil et
- React, Expo, Express.js
Apache License 2.0
- MIT benzeri ama patent hakkı da verir
- Ticari kullanım SERBEST
- Değişikliklerin belirtilmesi gerekir
- Android, Kotlin, Swift
BSD (2-Clause, 3-Clause)
- MIT'e çok benzer
- Ticari kullanım SERBEST
- 3-Clause: İsim kullanımı izni almadan reklam yasak
GPL (v2, v3)
- Copyleft: Türetilmiş eserleri de GPL ile lisansla
- GPL kodunu kullanan uygulama da GPL olmalı (tartışmalı)
- Mobil uygulamalarda DİKKATLİ kullanın
- FFmpeg, Linux kernel
LGPL
- GPL'in daha esnek versiyonu
- Kütüphane olarak kullanıldığında uygulamanın lisansını değiştirmez
- Dinamik linking ile kullanılmalı
ISC
- MIT benzeri, daha kısa
- Ticari kullanım SERBEST
Lisans Karşılaştırma Tablosu
| Lisans | Ticari Kullanım | Kaynak Paylaşma | Patent Hakkı | Copyleft |
|---|---|---|---|---|
| MIT | Evet | Hayır | Hayır | Yok |
| Apache 2.0 | Evet | Hayır | Evet | Yok |
| BSD | Evet | Hayır | Hayır | Yok |
| GPL v3 | Evet | Evet | Evet | Güçlü |
| LGPL | Evet | Kısmi | Evet | Zayıf |
Mobil Uygulama İçin Pratik Kurallar
Yapılması Gerekenler
- Kullandığın tüm kütüphanelerin lisanslarını kontrol et
- Uygulamada "Acknowledgements" veya "Open Source Licenses" sayfası ekle
- Her kütüphanenin lisans metnini bu sayfada göster
- GPL/LGPL kütüphanelere özellikle dikkat et
Kaçınılması Gerekenler
- GPL lisanslı kodu ticari kapalı kaynak uygulamada kullanma (veya çok dikkatli ol)
- Lisans metnini kaldırma veya değiştirme
- "No License" olan kodu kullanma (varsayılan: tüm haklar saklı)
GPL Riski ve Alternatifler
GPL lisansı mobil uygulamalar için en riskli lisans türüdür:
- Risk: GPL kodu kullanırsanız uygulamanızın tüm kaynak kodunu açık kaynak yapmanız gerekebilir
- Tartışma: "Dinamik linking" ile GPL kodunu kullanan uygulamanın GPL kapsamında olup olmadığı tartışmalı
- Pratik öneriler:
- GPL kütüphane yerine MIT/Apache alternatifini ara
- FFmpeg kullanacaksan LGPL build seçeneğini tercih et
- Hukuki danışmanlık al (büyük projeler için)
Otomatik Lisans Tespiti
| Araç | Platform |
|---|---|
| license-checker (npm) | JavaScript |
| pod licenses | iOS (CocoaPods) |
| aboutlibraries | Android (Gradle) |
| react-native-oss-license | React Native |
Lisans Sayfası Oluşturma
Uygulamanızda lisans sayfası oluşturmak için:
React Native
- paketi ile otomatik lisans listesi çıkar
- Settings > About > Open Source Licenses şeklinde bir ekran ekle
iOS (Swift)
- CocoaPods: komutu ile lisans listesi çıkar
- SPM: Her paketin LICENSE dosyasını manuel ekle
- kütüphanesi ile otomatik sayfa oluştur
Android (Kotlin)
- Gradle plugin'i ile otomatik lisans sayfası
- Google Play Services: ile otomatik oluşturma
Uygulamada Gösterim
Settings > About > Open Source Licenses şeklinde bir sayfa oluştur. Bu sayfada:
- Kütüphane adı
- Lisans türü
- Lisans tam metni
- Yazarın ismi
Lisans uyumu ihmal edilmemeli. "Kimse kontrol etmez" düşüncesi yanlıştır - şirketler ve bireyler dava açabilir.