[SedikitCerita] Tentang framework

Muhammad Alfiansyah
3 min readFeb 4, 2021

--

Begini ceritanya, beberapa bulan lalu saya dapet task untuk menambahkan framework dari pihak ketiga dan saat pertama kali implementasi sudah mendapatkan kendala dimana dokumentasi mereka terlalu update sedangkan eksekusi release framework mereka tidak berjalan sebagaimana mestinya dimana framework mereka nyangkut ke versi lama karena file .podspec mereka belum terupdate sehingga waktu pod install masih menggunakan versi framework lama.

Contoh dependency di .podspec

Mungkin belum banyak teman-teman tau kalau .podspec sangat berpengaruh pada framework kita, jadi dependency framework kita akan menginstall sesuai dengan apa yang didefine pada .podspec bukan Podfile.lock. Jadi seberapa pun Pofile.lock kita terupdate dengan dependency terbaru, kalau .podspec tidak kita update dengan versi yang digunakan sekarang otomatis framework hanya akan menginstall dengan versi yang didefinisikan tadi.

Next, sepenting apakah .gitignore, yes .gitignore itu penting karena kita nggak perlu mengupload semua file ke remote terutama Pods folder, karena Pods folder akan ke create otomatis ketika kita menjalankan pod install atau pod update.

Contoh Pods folder ketika ke create ketika pod install

Selanjutnya asset, yup ketika kita menambahkan asset ke framework kita, contohnya custom Font. Ketika menambahkan custom font ke framework teman-teman jangan lupa kalo Cocoapods akan otomatis build file dengan extension .bundle di Folder Products/NAMA_FRAMEWORK.bundle. Dan ketika kita akan menggunakan atau memanggil UIFont kita tidak bisa panggil begitu saja kita harus load dulu dengan Bundel nya. Karena ketika framework terinstall ke project otomatis Bundle Identifier akan menggunakan BundleID project kita sehingga load secara langsung File atau UIFont dengan method biasa akan membuat crash.

UIFont(name: <#T##String#>, size: <#T##CGFloat#>)
Contoh .bundle yang terbentuk ketika pod install

Contoh

bundle.url(forResource: name, withExtension: "ttf", subdirectory: "com.cosmicmind.material.fonts.bundle")

subdirectory merupakan nama bundle yang terbentuk ketika pod install dijalankan.

Kesimpulan

Jadi ternyata membuat Framework itu tidak semudah yang kita kira, Hal ini juga baru-baru ini saya temukan. Mungkin ada 2 minggu sendiri untuk ngulik hal ini karena saat WFH sedang gabut-gabutnya.

Semoga artikel kali ini bisa membantu teman-teman untuk lebih paham mengenai Framework di iOS.

Usefull Source

Update 08 Februari 2021

Cara simple access asset dari Cocoapods, bisa pake lib ini

--

--

No responses yet