Son iki yılda dokuz uygulama yayınlamış bir indie geliştirici olarak, tekrar eden bir sorunla karşılaştım: her uygulamada temel linkleri oluşturma işi. Bu tekrarlayan görev beni LinksKit’i yaratmaya yöneltti — iOS, macOS ve visionOS uygulamalarına önemli linkleri ekleme sürecini kolaylaştırmak için tasarlanmış bir Swift paketi.
LinksKit’i Neden Geliştirdim
Çeşitli Apple platformlarında birden fazla uygulama yayınladıktan sonra bir kalıp fark ettim. Her uygulama benzer link bölümleri gerektiriyordu:
Yasal linkler (gizlilik politikası, kullanım koşulları)
Destek linkleri (SSS, iletişim e-postası)
Uygulama değerlendirme deep link’i
Sosyal medya linkleri
Diğer uygulamalarım için çapraz tanıtım
Bu linkleri oluşturmak zaman alan ve tekrarlayan bir süreç haline gelmişti. Üstelik Mac’te çok farklıydı, bu da çoklu platform uygulamaları için ekstra iş demekti. İşte o zaman yeniden kullanılabilir bir çözüme ihtiyaç olduğunu fark ettim ve LinksKit doğdu.
Neden Her Yeni Uygulama LinksKit Kullanmalı
Zaman Tasarrufu: LinksKit, yaygın link gereksinimleri için kullanıma hazır bir çözüm sunarak geliştiricilerin temel uygulama özelliklerine odaklanmasını sağlıyor.
Uyumluluk: Uygulamanın gerekli yasal linkleri içermesini sağlayarak App Store yönergelerine zahmetsizce uyum sağlamana yardımcı oluyor.
Çapraz Tanıtım: LinksKit, diğer uygulamalarını sergilemeyi kolaylaştırarak tüm uygulama portföyünün görünürlüğünü potansiyel olarak artırıyor.
İlişki Fırsatları: Paket, arkadaş geliştiricilerin uygulamalarını tanıtmana olanak tanıyarak destekleyici bir topluluk ve potansiyel çapraz tanıtım ortaklıkları oluşturuyor.
Özelleştirme: Hazır çözümler sunarken, LinksKit özel ihtiyaçlarına tam uyum sağlamak için özelleştirmeye de izin veriyor.
Platform Uyumu: iOS, macOS ve visionOS’ta sorunsuz çalışıyor ve her platformun UI kurallarına uyum sağlıyor.
LinksKit Nasıl Kullanılır
LinksKit’i kullanmaya başlamak çok kolay, ama koda geçmeden önce önemli bir kavramı konuşalım: providerToken.
providerToken’ı Anlamak
providerToken, App Store pazarlama kampanyalarında kritik bir bileşen. Geliştirici hesabın için benzersiz bir tanımlayıcı olup pazarlama çalışmalarının etkinliğini takip etmeye yardımcı oluyor. Kullanıcılar providerToken’ınla linklere tıkladığında, Apple bu tıklamaları kampanyalarına atfedebiliyor ve uygulama kullanıcı kazanımın hakkında değerli bilgiler sunuyor. “Kampanya” kelimesi kulağa karmaşık gelebilir ama aslında sadece kullanıcıların nereden geldiğini belirten bir parametre.
providerToken Nasıl Bulunur
providerToken’ını bulmak ilk bakışta bariz olmayabilir, ama şöyle yapabilirsin:
App Store Connect’e giriş yap
Analytics > Acquisition > Campaigns’e git
“Create Campaign Link”e tıkla
Forma herhangi bir metin gir (gerçekten bir kampanya oluşturman gerekmiyor)
Campaign Link önizlemesinde
ptparametresini ara —pt=sonrasındaki değer seninproviderToken’ın
Bu token tüm uygulamaların için aynı, yani sadece bir kez bakman yeterli.
Temel Konfigürasyon
providerToken‘ı anladığına göre, LinksKit’i uygulamanda kuralım:
LinksKit.configure(
providerToken: "123456",
linkSections: [
.helpLinks(appID: "123456789", supportEmail: "[email protected]"),
.legalLinks(privacyURL: URL(string: "https://example.com/privacy")!)
]
)Bu temel kurulum uygulamana temel yardım ve yasal linkleri ekliyor, koşullar dahil.
Kapsamlı Örnek
LinksKit’in sunduğu tüm yerleşik özellikleri sergileyen daha kapsamlı bir örneğe bakalım — sosyal linkler, kendi uygulamalarının ve arkadaşlarının uygulamalarının linkleriyle:
// Uygulama Linkleri
let ownApps = LinkSection(entries: [
.link(.ownApp(id: "6502914189", name: "FreemiumKit", systemImage: "cart")),
.link(.ownApp(id: "6480134993", name: "FreelanceKit", systemImage: "timer")),
.link(.ownApp(id: "6472669260", name: "CrossCraft", systemImage: "puzzlepiece")),
.link(.ownApp(id: "6477829138", name: "FocusBeats", systemImage: "music.note")),
])
let friendsApps = LinkSection(entries: [
.link(.friendsApp(id: "1249686798", name: "NFC.cool Tools", systemImage: "tag", providerToken: "106913804")),
.link(.friendsApp(id: "6503256642", name: "App Exhibit", systemImage: "square.grid.3x3.fill.square")),
])
// LinksKit'i Yapılandır
LinksKit.configure(
providerToken: "549314",
linkSections: [
.helpLinks(
appID: "6476773066",
faqURL: URL(string: "https://translatekit.app/#faq")!,
supportEmail: "[email protected]"
),
.socialMenus(
appLinks: .appSocialLinks(
platforms: [.twitter, .mastodon(instance: "mastodon.social"), .threads],
handle: "TranslateKit",
handleOverrides: [.twitter: "TranslateKitApp"]
),
developerLinks: .developerSocialLinks(
platforms: [.twitter, .mastodon(instance: "iosdev.space"), .threads],
handle: "Jeehut"
)
),
.appMenus(ownAppLinks: [ownApps], friendsAppLinks: [friendsApps]),
.legalLinks(privacyURL: Constants.legalPrivacyPolicyURL)
]
)Yukarıdaki konfigürasyonu TranslateKit uygulamandan aldım (ve sadeleştirdim):
SSS ve destek e-postası ile yardım linkleri kuruyor
Hem uygulama hem geliştirici için sosyal medya linkleri ekliyor
Diğer uygulamalarımı tanıtmak için bir menü oluşturuyor
Arkadaşların uygulamalarını tanıtmak için bir bölüm ekliyor (ilişki kurmak için harika!)
Gerekli tüm yasal linklerin mevcut olmasını sağlıyor
Bu yapılandırılmış linkleri kullanmak için ayarlar ekranına LinksView() eklemen yeterli:
Form {
// Diğer ayarlar...
LinksView()
}Sonuç iOS’ta şuna benziyor:

Mac’te ise linkleri yardım menüsüne yerleştirmek daha yaygın. Şöyle yapabilirsin:
WindowGroup {
// UI kodun
}
.commands {
CommandGroup(replacing: .help) {
LinksView()
.labelStyle(.titleAndIcon)
}
}Menüde şöyle görünecek:

Özel Link Bölümleri
LinksKit hazır bölümler sunarken, LinkSection kullanarak tamamen özel bölümler de oluşturabilirsin. Bu esneklik, ihtiyacın olan her türlü link veya iç içe menü yapısını eklemene olanak tanıyor.
İşte özel bir bölüm örneği:
let customSection = LinkSection(
title: "Custom Links",
entries: [
.link(Link(title: "Our Website", systemImage: "globe", url: URL(string: "https://www.example.com")!)),
.menu(LinkMenu(
title: "Social Media",
systemImage: "network",
linkSections: [
LinkSection(entries: [
.link(Link.followUsOn(socialPlatform: .twitter, handle: "YourAppHandle")),
.link(Link.followUsOn(socialPlatform: .instagram, handle: "YourAppHandle"))
])
]
))
]
)Bu örnek, uygulamanın ihtiyaçlarına uygun bir link hiyerarşisi oluşturmak için menüleri nasıl iç içe yerleştirebileceğini gösteriyor.
Özel Label Stilleri
LinksKit sadece içerikte değil, sunumda da esneklik sunuyor. SwiftUI’ın labelStyle modifier’ını kullanarak linklerinin görünümünü kolayca özelleştirebilirsin. LinksKit, linklerinin görsel çekiciliğini artırmak için üç özel label stili sunuyor:
.titleAndTrailingIcon: Varsayılan.titleAndIconstiline benzer, ama ikonu label’ın sonuna yerleştirir..titleAndIconBadge(color:): Apple’ın Ayarlar uygulaması stilini taklit ederek öndeki ikonlara renkli arka plan ekler..titleAndTrailingIconBadge(color:): Sondaki ikon yerleşimini renkli arka planla birleştirir.
Bu stilleri uygulamak için LinksView‘una labelStyle modifier’ını eklemen yeterli:
LinksView()
.labelStyle(.titleAndIconBadge(color: .blue))Bu basit değişiklik linklerinin görünümünü önemli ölçüde değiştirebilir, uygulamanın tasarım diline uyum sağlamana veya belirgin bir görsel hiyerarşi oluşturmana olanak tanır. İşte bu stillerin görsel karşılaştırması:

Özel label stillerinden yararlanarak uygulamanın link bölümü için benzersiz ve cilalı bir görünüm oluşturabilir, genel kullanıcı deneyimini geliştirebilirsin.
Sonuç
LinksKit sadece zaman tasarrufu sağlayan bir araçtan fazlası — uygulama linklerini yönetmek, uyumluluğu sağlamak ve geliştirici ilişkilerini güçlendirmek için kapsamlı bir çözüm. Yasal gereksinimlerden çapraz tanıtıma kadar her şeyi halleden LinksKit, gerçekten önemli olana odaklanmanı sağlıyor — harika uygulamalar yaratmak.
İster birden fazla uygulaması olan deneyimli bir geliştirici ol, ister ilk projene başlıyor ol, LinksKit geliştirme sürecini önemli ölçüde kolaylaştırabilir. Bir sonraki projenle dene ve tüm Apple platformlarında basitleştirilmiş link yönetiminin avantajlarını deneyimle! Umarım işine yarar.

