Mobil Uygulama

Kaynak Kod Teslimi: Uygulamanız Gerçekten Sizin mi?

Kod dosyası elinizde diye uygulama sizin olmaz. Yazılı hak devri, sizin adınıza açılmış hesaplar ve derlenebilen bir teslim paketiyle sahipliği güvenceye alın.

Emrah KaragözEmrah KaragözKurucu28 Eylül 202613 dk okuma

Kaynak kod teslimi, yazılım firmasının uygulamanızın kodunu, onu yeniden derleyip yayınlamak için gereken her şeyle birlikte size devretmesidir. Uygulamanın gerçekten size ait olması için üç şart birlikte gerekir: yazılı mali hak devri, sizin adınıza açılmış repo ve mağaza hesapları, derlenebilen eksiksiz bir teslim paketi.

Birçok işletme bu üç parçadan birinin eksik olduğunu ancak ajansla yolları ayrıldığında fark ediyor. Sözleşmede "kaynak kod teslim edilir" yazıyor, ama hangi depo, hangi sürüm, hangi anahtarlar ve hangi haklar sorusu cevapsız kalıyor. Uygulama ajansın App Store hesabında yayında duruyor, kod bir zip dosyası olarak geliyor ve yeni ekibin bilgisayarında derlenmiyor.

Bu rehberde kanunun ne dediğini, eksiksiz bir kaynak kod teslimi paketinin neleri içerdiğini, ajans değiştirirken mağaza ve hesap devrinin nasıl işlediğini, escrow sözleşmesinin ne zaman mantıklı olduğunu ve sözleşmeye yazdırmanız gereken maddeleri anlatıyoruz. Yazı, kaynak kod teslimini her projede standart madde olarak uygulayan bir ajansın bakış açısıyla hazırlandı.

Önemli not: Bu yazı genel bilgilendirme amaçlıdır ve hukuki görüş değildir. Sözleşme hazırlığı veya bir uyuşmazlık için bilişim ve fikri mülkiyet alanında çalışan bir avukata danışın.

İçindekiler

Kaynak Kod Teslimi Nedir, Neden Önemli?

Kaynak kod, geliştiricilerin Swift, Kotlin, Dart veya JavaScript gibi dillerle yazdığı, insanın okuyup değiştirebildiği metindir. App Store ve Google Play'e yüklenen paket ise bu kodun derlenmiş hâlidir. Derlenmiş pakete sahip olmak, bir binanın anahtarına sahip olup mimari projesine sahip olmamaya benzer: içinde yaşarsınız ama tadilat yapamazsınız.

Bir mobil uygulama da yalnızca telefondaki paketten ibaret değildir. Arkasında bir backend (sunucu tarafı kod), bir veritabanı, mağaza kayıtları, imza anahtarları, üçüncü taraf servis hesapları ve tasarım dosyaları bulunur. Kaynak kod teslimi dediğinizde bu parçaların hepsini düşünün.

Teslim konusu üç anda kritik hâle gelir:

  • Bakım ve geliştirme: iOS ve Android her yıl yeni sürüm çıkarır, mağaza kuralları değişir. Kod elinizde değilse her güncelleme için tek bir firmaya bağımlı kalırsınız. Yayın sonrası giderleri mobil uygulama bakım maliyeti yazımızda ayrıntılı anlattık.
  • Ajans değişikliği: Firma kapanabilir, ekip dağılabilir ya da ilişki bozulabilir. Yeni ekibin işe kaldığı yerden devam edebilmesi için eksiksiz bir teslim paketi şarttır.
  • Yatırım ve satın alma: Yatırımcılar ve alıcılar, uygulamanın koduna ve haklarına gerçekten sahip olup olmadığınızı inceler.

Son maddede kodun içeriği de önem taşır. Black Duck'ın 2026 OSSRA raporu, 17 sektörden 947 ticari kod tabanını incelemiş. Açık kaynak bileşenler kod tabanlarının %98'inde yer alıyor ve lisans çakışması görülen kod tabanlarının oranı bir yılda %56'dan %68'e çıkmış (Black Duck). Yani "kod bizde" demek yetmez; kodun içinde hangi bileşenin hangi lisansla bulunduğunu da bilmeniz gerekir.

Kod Elinizde Diye Uygulama Sizin Olmaz

Bu konudaki en yaygın yanlış anlama, dosyaları teslim almayı hakları devralmakla karıştırmaktır. Türk hukukunda bu ikisi ayrı işlemlerdir.

Varsayılan kural: eser sahibi kodu yazandır. Kültür ve Turizm Bakanlığı Telif Hakları Genel Müdürlüğü, sık sorulan sorular sayfasında tam bu durumu yanıtlıyor. Soruda kullanıcı, fikrinden hareketle bir program yazdırdığını ve ücretini ödediğini söylüyor. Cevap net: "Bilgisayar programının ve/veya veritabanının eser sahibi, onun kaynak kodlarını yazan kişi ya da kişilerdir." (Telif Hakları Genel Müdürlüğü)

Ajans çalışanlarının iş sırasında yazdığı kod için FSEK m.18 devreye girer. Özel sözleşmeden veya işin mahiyetinden aksi anlaşılmadıkça bu eserler üzerindeki hakları, çalışanı istihdam eden taraf yani ajans kullanır. Kısacası sözleşme sessizse haklar ajansta kalır; ücreti ödemeniz onları kendiliğinden size geçirmez.

FSEK 52: devir yazılı olmalı, haklar tek tek sayılmalı. Fikir ve Sanat Eserleri Kanunu m.52 şöyle der: "Mali haklara dair sözleşme ve tasarrufların yazılı olması ve konuları olan hakların ayrı ayrı gösterilmesi şarttır." Bu yüzden "tüm haklar müşteriye aittir" gibi genel bir cümle yerine işleme, çoğaltma, yayma, temsil ve umuma iletim haklarının (FSEK m.21-25) ayrı ayrı sayıldığı bir devir maddesi yazdırın.

Kanundaki iki madde daha pratik sonuç doğurur:

  • Değişiklik hakkı (m.55 ve m.6): Kanun, "bir bilgisayar programının uyarlanması, düzenlenmesi veya herhangi bir değişim yapılması" işlemini işlenme sayar. m.55'e göre de aksi kararlaştırılmadıkça mali bir hakkın devri, eserin işlenmelerini kapsamaz. İşleme hakkını açıkça devralmadıysanız kodu değiştirme yetkiniz tartışmalı hâle gelir.
  • Nüsha ile hak farkı (m.57): Nüshalar üzerindeki mülkiyetin devri, aksi kararlaştırılmadıkça fikri hakların devrini içermez. Bir zip dosyasını ya da sunucu kopyasını teslim almanız, hakları aldığınız anlamına gelmez.

Sözleşme sessizse ne olur? Sözleşme kaynak koddan hiç söz etmiyorsa sonuç belirsizleşir. Bilişim hukuku yorumları bu durumda sözleşmenin tamamına, ödenen ücrete ve işin niteliğine birlikte bakmak gerektiğini söylüyor; iş sahibine değiştirme hakkı tanıyan bir madde devri desteklerken, taraflar ayrıca bir bakım anlaşması yaptıysa sonuç devrin aleyhine çıkabiliyor (Bilişim ve Hukuk). Belirsizlik sizin aleyhinize işler; kod teslimini ve hak devrini sözleşmeye açıkça yazdırın.

Fikir aşamasından başlayarak telif, NDA ve marka korumasının bütün resmini görmek isterseniz uygulama fikri nasıl korunur yazımıza göz atın.

Eksiksiz Bir Teslim Paketi Neleri Kapsar?

"Kaynak kodu gönderdik" cümlesi, bir klasör dolusu dosyadan eksiksiz ve derlenebilir bir projeye kadar her şeyi kastedebilir. Aşağıdaki tablo, iyi bir kaynak kod teslimi paketinin kalemlerini ve her birini nasıl doğrulayacağınızı gösteriyor.

KalemNeden gerekli?Nasıl doğrularsınız?
Git deposu (tüm commit geçmişiyle)Değişikliklerin kim tarafından, ne zaman ve neden yapıldığını gösterirRepo sizin organizasyon hesabınızda mı, geçmiş eksiksiz mi?
Mobil uygulama kodu (iOS, Android veya Flutter/React Native)Uygulamayı güncellemenin tek yoluYeni bir makinede sıfırdan derlenip çalışıyor mu?
Backend kodu ve API dokümantasyonuUygulama sunucu olmadan çalışmazAPI uç noktaları belgelenmiş mi, test ortamı ayağa kalkıyor mu?
Veritabanı şeması ve güncel yedekKullanıcı ve iş verisi sizindirYedeği test ortamına geri yükleyebiliyor musunuz?
Ortam değişkenleri ve gizli anahtar listesiKod bu değerler olmadan çalışmazListe tam mı; değerler size ait yeni anahtarlarla değiştirildi mi?
Derleme ve CI/CD yapılandırmasıYayın sürecini tekrarlanabilir kılarYeni ekip, belgelere bakarak bir sürüm çıkarabiliyor mu?
İmza anahtarları ve sertifikalarMağazaya güncelleme yüklemek için gerekirAndroid upload key size teslim edildi mi, iOS sertifikaları sizin hesabınızda mı?
Üçüncü taraf servis hesaplarıHarita, SMS, ödeme, push bildirimHer hesabın sahibi siz misiniz?
Tasarım kaynak dosyaları (Figma vb.)Yeni ekranlar tutarlı tasarlanırDosya sizin çalışma alanınıza taşındı mı?
Açık kaynak lisans listesiLisans çakışmalarını erken yakalarHer bağımlılığın lisansı listelenmiş mi?
README, kurulum ve mimari dokümanYeni ekibin uyum süresini kısaltırBelge güncel mi, bir geliştirici tek başına kurulum yapabiliyor mu?

Bu listedeki en kritik test derleme testidir. Bağımsız bir geliştiriciden, teslim edilen kodu temiz bir bilgisayarda sıfırdan derlemesini ve ortaya çıkan uygulamayı mağazadaki sürümle karşılaştırmasını isteyin. Derlenmeyen kod, pratikte teslim edilmemiş koddur.

Teslimi bir tutanakla kapatın. Tutanağa teslim edilen deponun adresini, son commit'in kimliğini (hash), mağazadaki sürüm numarasını, devredilen hesapların listesini ve açık kalan işleri yazın. Bu belge, ileride "hangi sürümü teslim aldınız" tartışmasını tek satırla bitirir ve hak devri maddesinin hangi koda uygulandığını da netleştirir.

Hesaplar Kimin Adına? Mağaza, Repo ve Bulut

Kod kadar önemli bir konu da hesap sahipliğidir. Kod sizde olsa bile uygulama ajansın mağaza hesabında yayındaysa, uygulamanın kullanıcıları, yorumları ve puanları o hesaba bağlıdır.

  • Apple Developer Program: Kurumsal üyelik için işletmenizin bir D-U-N-S numarasına sahip olması gerekir; Apple, organizasyon adınızın App Store'da satıcı adı olarak görüneceğini belirtiyor. Üyelik ücreti yıllık 99 USD (Apple Developer). Uygulama ajansın hesabından yayınlanırsa satıcı adı olarak ajansın adı görünür.
  • Google Play Console: Kurumsal geliştirici hesabı açarken D-U-N-S numarası istenir (Play Console Yardım). Hesabı işletmeniz adına açın, ajansa yalnızca gereken yetkileri verin.
  • Kod deposu: GitHub, GitLab veya Bitbucket'ta organizasyonu siz açın, ajansı ekip üyesi olarak ekleyin. Böylece kod, proje boyunca zaten sizin hesabınızda birikir.
  • Alan adı ve e-posta: Uygulamanın API adresi, gizlilik politikası sayfası ve destek e-postası çoğu zaman bir alan adına bağlıdır. Alan adını işletmeniz adına kaydettirin; aksi hâlde alan adı süresi dolduğunda uygulama sunucusuna ulaşamayabilir.
  • Bulut ve Firebase: Sunucu, veritabanı ve Firebase projeleri sizin faturalandırma hesabınızda olmalı; ajans bu projelere üye olarak erişmeli. Firebase ile özel backend arasındaki farkları Firebase nedir yazımızda anlattık.

Uygulama henüz yayınlanmadıysa hesapları baştan doğru kurmak en ucuz çözümdür. Mağaza yayını öncesi adımları gözden geçirmek için ücretsiz uygulama yayın kontrol listesi aracımızı kullanabilirsiniz; süreçle ilgili ayrıntılar mobil uygulama nasıl yayınlanır yazımızda.

Ajans Değiştirirken Devir Süreci Adım Adım

Ajans değiştirmek, iyi planlanırsa kullanıcılarınızın fark etmeyeceği bir işlemdir. Aşağıdaki sıra, kod ve hesap devrini birlikte yönetmenize yardım eder.

  1. Sözleşmeyi ve ödemeleri gözden geçirin. Hak devrinin hangi koşula (teslim, son ödeme) bağlandığını kontrol edin. Açık bir ödeme uyuşmazlığı, devrin önündeki en sık engeldir.
  2. Envanter çıkarın. Yukarıdaki tablodaki her kalemi tek tek listeleyin ve sahibini yazın.
  3. Depoyu devralın. GitHub'da bir depoyu devrettiğinizde issue, pull request, wiki ve commit geçmişi de yeni hesaba geçer. Ancak depodaki webhook, secret ve deploy key'ler devirden sonra da bağlı kalır (GitHub Docs); bunları devirden hemen sonra yenileyin.
  4. Derleme testini yapın. Yeni ekip kodu sıfırdan derlesin ve mağazadaki sürümle karşılaştırsın.
  5. App Store devrini başlatın. Apple'da devri gönderen hesabın Account Holder'ı başlatır, alan hesabın Account Holder'ı onaylar. Uygulama devir sırasında mağazada kalır; yorumlar, puanlar ve Bundle ID korunur, kullanıcılar güncelleme almaya devam eder (Apple Developer).
  6. Google Play devrini başlatın. Kullanıcılar, istatistikler, puanlar, yorumlar ve mağaza sayfası yeni hesaba geçer; bazı finansal raporlar geçmez, bu yüzden önceden indirin. Upload key'in güvenliğinden şüpheniz varsa yeni hesap, yeni bir upload key talep edebilir (Play Console Yardım).
  7. Erişimleri kapatın ve anahtarları yenileyin. Eski ekibin bulut, mağaza ve servis erişimlerini kaldırın; API anahtarlarını ve şifreleri değiştirin.
  8. Bilgi aktarımı toplantısı yapın. Mimari kararlar, bilinen hatalar ve teknik borç, belgelerde her zaman yer almaz. Eski ve yeni ekip arasında birkaç saatlik bir devir oturumu haftalar kazandırır.

Apple'ın devir kriterlerine göre uygulamanın App Store'da yayınlanmış en az bir sürümü olmalı, uygulama incelemede veya ön siparişte olmamalı ve iki taraf da güncel anlaşmaları kabul etmiş olmalı (Apple Developer). Keychain paylaşımı kullanan uygulamalarda kullanıcılar ilk güncellemeden sonra bir kez yeniden giriş yapmak zorunda kalır; "Apple ile Giriş Yap" kullanan uygulamalarda da kullanıcı devri için ek hazırlık gerekir. Bu ayrıntıları devir planına baştan yazın.

Kaynak Kodsuz Kalmak: 3 Tipik Senaryo

Aşağıdaki senaryolar, işletmeler teslim sürecini ihmal ettiğinde ortaya çıkan tipik tabloları gösteriyor. Örnekler temsilidir, belirli bir firmayı anlatmaz.

Senaryo 1: Ajansa ulaşılamıyor, uygulama ajansın hesabında. Örneğin İzmir'de şubeleri olan bir kafe zinciri, sadakat uygulamasını bir ajansa yaptırmış; uygulama ajansın App Store ve Google Play hesaplarından yayınlanmış. Ajans kapandığında zincir, mağaza devrini başlatacak Account Holder'a ulaşamaz. Devir her iki mağazada da gönderen hesabın işlem yapmasını gerektirdiği için tek seçenek çoğu zaman uygulamayı kendi hesabından yeni bir mağaza kaydıyla yayınlamaktır. Bu durumda yorumlar ve puanlar sıfırlanır, kullanıcıların yeni uygulamayı indirmesi gerekir.

Senaryo 2: Klasör elinizde ama proje derlenmiyor. Klasörde uygulama kodu var, ancak özel bir paket deposuna bağlı bağımlılıklar, ortam değişkenleri veya imza anahtarları eksik. Yeni ekip önce projeyi ayağa kaldırmak için zaman harcar, bazı parçaları yeniden yazar. Bu iş, basit bir güncellemeyi haftalar süren bir projeye dönüştürebilir.

Senaryo 3: Kod ajansın kapalı altyapısına bağlı. Bazı ajanslar projeleri kendi hazır altyapıları veya paneleri üzerine kurar. Sözleşmede bu altyapı için süresiz ve devredilebilir bir lisans yoksa, kodun geri kalanı sizde olsa bile uygulamayı bağımsız çalıştıramazsınız.

Üç senaryonun ortak çıkış yolu genellikle kısmi veya tam yeniden yazımdır. Derlenmiş paketten tersine mühendislikle elde edilen kod, bakımı yapılabilir bir kaynak kodun yerini tutmaz. Yeniden yazımın kabaca hangi bütçe aralığına düştüğünü görmek için mobil uygulama maliyet hesaplayıcı aracımızı kullanabilirsiniz.

Escrow Sözleşmesi Ne Zaman Mantıklı?

Kaynak kod escrow'u (emanet), kodun iki tarafın da güvendiği üçüncü bir kurumda saklanması ve sözleşmede tanımlı bir olay gerçekleştiğinde müşteriye verilmesidir. Türkiye'de TSE, "Escrow Sayısal Kaynak Kod Emanetçilik Hizmeti" adıyla bu hizmeti sunuyor. Kurumun açıklamasına göre üretici, yazılımın son sürümünü AES 256 bit algoritmasıyla şifreleyerek kurumun sunucularına yüklüyor; devir ise müşterinin, sözleşmedeki şartların oluştuğuna dair mahkeme kararını kuruma iletmesiyle başlıyor (TSE).

Uluslararası sağlayıcılarda da benzer modeller var. Örneğin bir escrow sağlayıcısının yayımlı fiyat tablosunda tek uygulama için yıllık faturalamada aylık 139 USD ve 249 USD kurulum ücreti görünüyor (Codekeeper).

DurumUygun model
Size özel geliştirilen uygulama, haklar size devrediliyorRepo baştan sizin hesabınızda; escrow'a gerek yok
Lisansla kullandığınız hazır yazılım (ERP, sektörel paket)Escrow mantıklı; üretici kodu vermez ama emanete bırakır
Ajansın kapalı altyapısı üzerine kurulan projeAltyapı için lisans + escrow birlikte düşünülebilir
İş açısından kritik SaaS hizmetiKod ve veri için escrow ile düzenli veri dışa aktarımı

Kısacası escrow, kaynak kodun size hiç devredilmeyeceği lisans ilişkileri için bir güvencedir. Kodun ve hakların size ait olacağı özel geliştirme projelerinde en basit ve en ucuz güvence, deponun ilk günden sizin hesabınızda açılmasıdır.

Sözleşmeye Yazdırmanız Gereken 8 Madde

Bu sorunların neredeyse tamamını sözleşme masasında çözebilirsiniz. Teklif aşamasında aşağıdaki maddeleri sorun:

  1. Mali hakların devri: İşleme, çoğaltma, yayma, temsil ve umuma iletim hakları tek tek sayılarak, süre ve yer sınırı olmadan devredilsin. Devrin hangi anda (teslim, son ödeme) gerçekleşeceği yazılsın.
  2. Teslim kapsamı: "Kaynak kod" ifadesi, yukarıdaki tablodaki kalemlerle tanımlansın. Teslim formatı zip dosyası değil, commit geçmişli bir depo olsun.
  3. Sürekli erişim: Kod proje boyunca sizin organizasyon hesabınızdaki depoda geliştirilsin; teslimi projenin sonuna bırakmayın.
  4. Hazır bileşenler: Ajansın önceki projelerde de kullandığı kütüphane veya altyapı varsa, bunlar için süresiz, devredilebilir ve değiştirme hakkını içeren bir lisans yazılsın.
  5. Açık kaynak lisans listesi: Ajans teslimle birlikte tüm bağımlılıkların ve lisanslarının listesini versin; ticari kullanımınızı kısıtlayabilecek lisansları önceden bildirsin.
  6. Alt yükleniciler: Ajans serbest çalışan geliştiricilerle çalışıyorsa, onlardan hakları yazılı olarak aldığını taahhüt etsin. FSEK m.49'a göre devralınan bir hak, eser sahibinin yazılı muvafakati olmadan başkasına devredilemez.
  7. Hesap sahipliği: Mağaza, bulut, alan adı ve servis hesaplarının sizin adınıza açılacağı yazılsın.
  8. Devir yardımı: Sözleşme sona erdiğinde ajansın belirli bir süre ve ücret karşılığında yeni ekibe devir desteği vereceği tanımlansın.

Bakım anlaşması yapmak, kodun ajansta kalması gerektiği anlamına gelmez. İyi bir bakım sözleşmesi kodun sizde olduğu, ajansın ise hizmet sunduğu bir modeldir. Firma seçerken sorulacak diğer sorular için yazılım firması nasıl seçilir ve mobil uygulama yapan firmalar yazılarımıza bakabilirsiniz.

Sıkça Sorulan Sorular

Kaynak kod teslimi nedir?

Kaynak kod teslimi, yazılım firmasının uygulamanın okunabilir kodunu, derleme için gereken yapılandırma, anahtar ve belgelerle birlikte müşteriye devretmesidir. Tek başına dosya teslimi yeterli değildir; mali hakların yazılı devri ve hesapların müşteri adına olması da gerekir.

Yazılım firması kaynak kodu vermek zorunda mı?

Sözleşmede açıkça yazıyorsa evet. Sözleşme sessizse sonuç; ücret, işin niteliği ve bakım anlaşması gibi unsurlara göre yorumlanır ve belirsizdir. Bu yüzden kaynak kod teslimini ve hak devrini sözleşmeye açıkça yazdırmanız gerekir.

Parasını ödediğim uygulamanın telif hakkı kime ait?

Telif Hakları Genel Müdürlüğü'ne göre bilgisayar programının eser sahibi, kaynak kodu yazan kişilerdir. Siz, FSEK 52'ye uygun yazılı bir sözleşmeyle size devredilen mali hakların sahibi olursunuz.

Kaynak kodu teslim aldım, uygulamayı istediğim gibi değiştirebilir miyim?

Ajans işleme hakkını size açıkça devrettiyse evet. FSEK m.55'e göre aksi kararlaştırılmadıkça mali hak devri eserin işlenmelerini kapsamaz; bilgisayar programında yapılan değişiklikler de işlenme sayılır.

Ajans değiştirirsem uygulamam mağazadan kalkar mı?

Hayır, doğru yapılan bir devirde kalkmaz. Apple'da uygulama devir sırasında mağazada kalır, yorumlar ve puanlar korunur; Google Play'de de kullanıcılar, puanlar ve yorumlar yeni hesaba geçer. Devri gönderen hesabın işlemi başlatması gerekir.

Escrow sözleşmesi yapmalı mıyım?

Lisansla kullandığınız ve kaynak kodu size devredilmeyen kritik yazılımlarda escrow mantıklıdır. Size özel geliştirilen ve hakları size devredilen bir uygulamada, deponun baştan sizin hesabınızda açılması daha basit ve ucuz bir güvencedir.

Kaynak kod teslimi ayrıca ücretli mi?

Firmadan firmaya değişir; bazı teklifler kaynak kodu ayrı bir kalem olarak fiyatlar. Teklif aşamasında kaynak kod teslimi ve hak devrinin fiyata dahil olup olmadığını yazılı olarak sorun.

Kaynak kod teslimini uygulama yayına çıktıktan sonra değil, sözleşme masasında çözersiniz. Hakların yazılı devri, sizin adınıza açılmış hesaplar ve derlenebilen bir teslim paketi; ajansla ilişkiniz iyi giderse sessiz bir güvence, kötü giderse işletmenizin sigortası olur.

Master Web'in mobil uygulama geliştirme ve web yazılım projelerinde kaynak kod teslimi standart bir maddedir; uygulama size ait olur. Mevcut uygulamanızın devrini planlıyor ya da yeni bir projeye doğru sözleşmeyle başlamak istiyorsanız bizimle iletişime geçin.

#kaynak kod teslimi#kaynak kod devri#yazılım sözleşmesi#escrow sözleşmesi#ajans değiştirme

Bu konuda profesyonel destek mi lazım?

Projenizi ekibimizle konuşun — aynı gün dönüş, ücretsiz teklif.

Bu yazıyı paylaş

İlgili Yazılar