“Eklemek” geliştirici topluluğunda mevcut bir projeye yeni işlevsellik bağlamak, eklemek veya entegre etmek anlamına gelir. Terim, üçüncü taraf bir kütüphane eklemekten yeni bir kullanıcı arayüzü dahil etmeye kadar geniş bir eylem yelpazesini tanımlamak için kullanılır. Android Developers’a göre, modern projelerin çoğu, kütüphane ekleme sürecini standart ve öngörülebilir hale getiren bağımlılık yöneticilerini kullanır. Yeni bir bileşenin entegrasyonu, proje mimarisi ve sürüm uyumluluğu anlayışı gerektirir.
Önemli Noktalar
Eklemek — mevcut bir sisteme yeni bir işlevsel blok eklemek anlamına gelen bir metafor. “Ekle” kelimesinin aksine, “eklemek” bileşenin mevcut mimari için sıfırdan tasarlanmadığını, harici bir çözüm olarak entegre edildiğini ifade eder. Bu bir kütüphane, framework, API istemcisi veya hazır bir UI öğesi olabilir.
Geliştiriciler bileşenleri çeşitli nedenlerle “ekler”: tekerleği yeniden icat etmemek için, geliştirmeyi hızlandırmak için veya ekibin kendi başına uygulayamayacağı işlevsellik eklemek için. Bağımlılık yönetimi ile çalışmak o kadar standart hale geldi ki bir kütüphane eklemek günler değil, dakikalar alır. Ancak yanlış entegrasyon, sürüm çakışmalarına, uygulama boyutunun artmasına ve güvenlik sorunlarına yol açabilir.
Terim evrenseldir ve her platform için geçerlidir: iOS, Android, Web. iOS’ta CocoaPods ve SPM bağımlılık yöneticileridir; Android’de — Gradle; Web’de — npm. Ekleme süreci birkaç adım içerir: bileşen seçimi, uyumluluk kontrolü, yönetici aracılığıyla ekleme, yapılandırma ve test etme.
Bağımlılık yöneticileri, bir projeye üçüncü taraf kütüphaneleri eklemeyi otomatikleştiren araçlardır. Üç görevi çözerler: kütüphane kodunu indirme, geçişli bağımlılıkları çözme ve sürümleri yönetme. Bir yönetici olmadan, geliştiricilerin dosyaları manuel olarak indirmesi, projeye kopyalaması ve güncellemeleri takip etmesi gerekirdi.
Her platform kendi yöneticisini kullanır: iOS — Swift Package Manager (SPM) veya CocoaPods, Android — Maven Central ile Gradle, Flutter — pub.dev. Prensip aynıdır: bir yapılandırma dosyasında paket adını ve sürümünü belirtirsiniz, yönetici bağımlılıkları indirir ve derlemeyi yapılandırır.
Retrofit — Android için bir HTTP istemcisi ekleyelim. Modül düzeyindeki build.gradle dosyasına bağımlılığı ekleyin, projeyi senkronize edin ve kütüphane kullanıma hazırdır. Gradle, Retrofit’i ve geçişli bağımlılıklarını (OkHttp, Gson dönüştürücü) otomatik olarak indirir.
dependencies {
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.11.0'
}
iOS projelerinde Swift Package Manager aracılığıyla Xcode üzerinden kütüphane eklenir: File → Add Packages. Alternatif olarak Package.swift aracılığıyla. Popüler bir ağ kütüphanesi olan Alamofire için sadece depo URL’sini ve sürümü belirtmek yeterlidir. SPM kaynakları indirir ve derlemeye ekler.
// Package.swift
let package = Package(
name: "MyApp",
dependencies: [
.package(url: "https://github.com/Alamofire/Alamofire.git",
from: "5.9.0")
]
)
API entegrasyonu, mobil geliştirmede en yaygın “ekleme” senaryolarından biridir. Hemen hemen her uygulama bir sunucuyla iletişim kurar: veri gönderme, içerik alma, kullanıcıları doğrulama. Bir API’yi eklemek, istemci ve sunucu arasındaki ağ iletişimini yapılandırmak, yanıtları ve hataları işlemek anlamına gelir.
Süreç üç aşama içerir: HTTP istemcisi seçme, uç noktaları yapılandırma ve yanıtları işleme. Retrofit (Android) ve Alamofire (iOS) gibi modern istemciler, istekleri tanımlamak için bildirimsel bir API ve otomatik yanıt serileştirme sağlar. İstemciyi ekledikten sonra geliştirici, ham JSON dizeleri yerine türlenmiş veri modelleriyle çalışır.
// Define API interface with Retrofit
interface GithubApi {
@GET("users/{username}/repos")
suspend fun getRepos(
@Path("username") username: String
): List<Repo>
}
Arayüzü tanımladıktan sonra, tek yapmanız gereken bir Retrofit örneği oluşturmak, temel URL’yi iletmek ve günlük kaydı, kimlik doğrulama ve hata işleme için aracılar eklemektir. Ardından istemci örneği bir depoya veya ViewModel’e enjekte edilir. Uygulama bir isteği başarıyla gönderdiğinde ve yanıtı doğru şekilde işlediğinde API ekleme işlemi tamamlanmış sayılabilir.
UI bileşenleri hazır kütüphanelerden “ekleme” işleminin bir diğer yaygın hedefidir. Sıfırdan özel bir öğe çizmek yerine, geliştiriciler hazır kontrollere sahip bir kütüphane ekler: kartlar, düğmeler, giriş alanları, gezinme menüleri. Bu, geliştirmeyi hızlandırır ve arayüz tutarlılığını sağlar.
Android’de, Material Design’ı uygulayan Google’ın Material Components’ı kullanılır. iOS’ta — standart UIKit veya düzen için SnapKit gibi üçüncü taraf kütüphaneler. Flutter’da, tüm UI widget’lardan oluşur ve yeni bir bileşen eklemek genellikle onu widget ağacına eklemek ve parametreleri yapılandırmak anlamına gelir.
SnapKit, DSL aracılığıyla Auto Layout için bir kütüphanedir. SPM aracılığıyla ekledikten sonra, Interface Builder olmadan bildirimsel olarak kısıtlamaları tanımlayabilirsiniz. Bu, düzeni hızlandırır ve kodu daha okunabilir hale getirir. SnapKit’i eklemek beş dakikalık bir iştir ve sonrasında tüm proje tutarlı bir düzen stili kullanır.
import SnapKit
let button = UIButton()
view.addSubview(button)
button.snp.makeConstraints { make in
make.center.equalTo(superview)
make.width.equalTo(200)
make.height.equalTo(48)
}
Herhangi bir bileşeni eklemeden önce üç parametreyi kontrol edin: hedef platform sürümü, lisans ve bakım etkinliği. İki yıldır güncellenmeyen bir kütüphane, düzeltilmemiş güvenlik açıkları içerebilir. Eski bir API, yeni bir SDK sürümüyle derlenmeyebilir. Lisans, ticari kullanımı yasaklayabilir.
Basit bir “kütüphane ekleme” işlemi bile saatler süren hata ayıklamaya dönüşebilir. Bağımlılıkları entegre ederken geliştiricilerin karşılaştığı dört tipik soruna ve çözüm yollarına bakalım.
İki kütüphane aynı paketin farklı sürümlerini gerektirebilir. Android’de Gradle bir ConflictException fırlatırken, Swift Package Manager çakışmayı otomatik olarak çözmeye çalışır ancak her zaman başarılı olmaz. Çözüm, bir sürümü zorlamak veya exclude kullanarak geçişli bağımlılığı hariç tutmaktır. Bazen alternatif bir kütüphane bulmak daha kolaydır.
implementation('com.example:library-a:2.0.0') {
exclude group: 'com.example', module: 'conflicting-lib'
}
Birden fazla büyük kütüphane eklerken, yöntem sayısı 65K sınırını aşabilir. Android, build.gradle’da multidex’i etkinleştirmeyi ve MultidexApplication eklemeyi gerektirir. Bu olmadan uygulama, “Cannot fit requested classes in a single dex file” hatasıyla başlatıldığında çökecektir.
Bazı yerel kütüphaneler yalnızca fiziksel cihazlar için imzalanmış kod içerir. iOS’ta bu, simülatör için arm64 mimarisine sahip kütüphaneleri bağlarken oluşur. Çözüm, simülatör mimarisini yağ framework’ten hariç tutmak veya .xcframework desteğine sahip bir sürümü beklemektir.
Eklenen her kütüphane derleme süresini artırır. KAPT — Kotlin için açıklama işlemcisi — Gradle’ı önemli ölçüde yavaşlatır. Çözüm, KAPT yerine KSP kullanmak, dinamik özellik modüllerinin sayısını en aza indirmek ve bağımlılıkları önbelleğe almaktır. İlk kütüphaneyi ekledikten sonra derleme süresini temel olarak ölçün.
Sıkça Sorulan Sorular
Eklemek — mevcut bir projeye yeni işlevsellik eklemek, bir kütüphane, API veya UI bileşeni bağlamak. Terim resmi olmayandır ve geliştiriciler arasında yaygındır.
iOS’ta — SPM ve CocoaPods. Android’de — Gradle. Flutter’da — pub.dev. Web’te — npm, yarn. Tüm yöneticilerin prensibi benzerdir: yapılandırma → indirme → derleme.
Lisans, SDK sürümü, bakım etkinliği, boyut ve geçişli bağımlılıkları kontrol edin. Bağımlılık analizi ve lisans uyumluluğu kontrolü için deps.dev gibi siteleri kullanın.
Gradle’da force resolve veya exclude kullanın, her iki kütüphaneyi de en son sürümlere güncelleyin veya bir alternatif bulun. SPM’de, hangi geçişli bağımlılığın çakışmaya neden olduğunu kontrol edin.
Küçültme (Android’de ProGuard/R8, iOS’ta stripping) kullanın, kütüphanelerin kullanılmayan kaynaklarını kaldırın, kütüphane modüler bir mimariyi destekliyorsa yalnızca gerekli modülleri bağlayın.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun