Hai teman-teman,
Saya pikir akan sangat luar biasa jika Carthage
dapat menambahkan dukungan untuk sesuatu yang mirip dengan subspesifikasi CocoaPods. Ini akan mendorong pengembang untuk membangun ekstensi dan kategori pada kerangka kerja mereka yang menambahkan dukungan untuk beberapa kerangka kerja paling populer saat ini.
Saya pikir ini mungkin hari ini dengan menandai cabang atau komit yang menambahkan ekstensi tertentu ke kerangka kerja, tetapi saya pikir itu bisa menambah banyak kerumitan untuk mendorong rilis, terutama ketika versi baru Swift dirilis, atau permintaan tarik adalah diajukan.
Koreksi saya jika saya salah, tetapi saya pikir ini akan menjadi hal yang baik untuk ditangani oleh infra.
Pikiran?
Ini berpotensi diimplementasikan dengan pengaturan target di xcodeproj
, atau bahkan binari yang didistribusikan melalui Carthage
.
Tidak, maaf. Ini mendorong kerangka kerja besar, yang bertentangan dengan modularitas dan kemampuan menyusun.
Saya lebih suka Carthage untuk mendorong kerangka kerja yang lebih kecil yang dapat digunakan secara independen satu sama lain.
Saya juga berpikir bahwa ini adalah sesuatu yang harus dipertimbangkan untuk Carthage.
Banyak proyek misalnya memiliki ReactiveCocoa sebagai dependensi lunak untuk menambahkan dukungan ReactiveCocoa.
Saat ini, ada dua opsi dalam kasus ini:
Saya pikir @jspahrsummers lebih suka cara sebelumnya untuk membuat kerangka kerja kecil opsional yang misalnya menambahkan dukungan ReactiveCocoa, yang memaksa proyek menjadi lebih seperti Frameworks (_yay_!).
Pendekatan lain adalah membuat proyek mengekspos beberapa .framework yang saling bergantung satu sama lain.
Misalnya
Saya baru saja menguji ini dengan cepat, tetapi bagi saya pendekatan ini terlihat sangat menjanjikan. Dengan cara ini, kita masih dapat memiliki satu proyek yang mengekspos banyak kerangka kerja. Pengembang yang tidak ingin menggunakan ReactiveCocoaExtensions cukup mengabaikan XReactiveCocoaExtensions.framework yang dibangun dan siap digunakan.
Adakah pemikiran atau peringatan terhadap metode ini?
@aschuch Saya setuju dengan apa yang Anda katakan. Saya mengalami masalah ini dengan Moya. Saat ini, carthage
build Moya bergantung pada ReactiveCocoa hanya untuk ReactiveMoyaProvider
, yang mungkin atau mungkin tidak diimplementasikan oleh pengguna akhir.
Saya sedang dalam proses refactoring garpu saya sendiri untuk itu, di mana dependensi yang berbeda disertakan dan dikelola di cabang yang terpisah (Moya, ReactiveMoya, dan RxMoya). Ini memiliki beberapa implikasi pemeliharaan yang cukup serius, dan batasan untuk kerangka kerja yang mungkin ingin mengekspos antarmuka untuk pola pengembangan tertentu.
Komentar yang paling membantu
Tidak, maaf. Ini mendorong kerangka kerja besar, yang bertentangan dengan modularitas dan kemampuan menyusun.
Saya lebih suka Carthage untuk mendorong kerangka kerja yang lebih kecil yang dapat digunakan secara independen satu sama lain.