Forem

Cover image for มาจัดการ Dependencies ของเจ้า Firebase SDK ด้วย BoM กันเถอะ
H2o
H2o

Posted on

2

มาจัดการ Dependencies ของเจ้า Firebase SDK ด้วย BoM กันเถอะ

ปัญหาเวลาเรา implement SDK ของ Firebase

คิดว่าทุกๆคนที่เป็น Android dev น่าจะเคยเจอปัญหาหรือปวดหัวมาบ้างเวลาเราใช้งาน sdk ของ firebase แต่ละตัว ที่เลข version ไม่เคยตรงกันเลย แถมบางครั้งพอเรา update version ของตัวหนึ่งแล้วมันดันทำงานไม่เข้ากันกับ sdk อีกตัวซะนี่ โดยเฉพาะคนที่ชอบลองของใหม่ๆ(เห็นมี update ไม่ได้ต้องชิง update ก่อนแต่ดันไม่ชอบอ่าน changelog ซะนี่ฮ่าๆ)

มาดูของเก่าที่เราเคยใช้ๆกันก่อน

ปกติแล้วเราก็จะประกาศเหมือนในรูปด้านล่างนี้กันแล้วก็ระบุเลข version กันไปตามแต่ละตัว ทีนี้เวลาเราจะ update เราก็ต้องไปแก้เลข version ของแต่ละตัวกันเนอะ
Alt Text

โอเค ทีนี้มาทำความรู้จัก Bills of Material (BoM) กัน

BoM ถูกเพิ่มเข้ามาใน Gradle ตั้งแต่ version 5.0 ขึ้นไป
รายละเอียดอ่านเพิ่มเติมได้ที่นี่

ซึ่งทาง Google เองเค้าก็น่าจะเห็นถึงความ Pain ของเราๆ เลยทำตัวจัดการ dependencies เพื่อรองรับการเรียก dependencies จากที่เดียว โดยให้เราเรียกใช้อีกทีหนึ่งนั่นเอง โดยที่เจ้า BoM มันจะไปทำการดึง SDK ตามที่เราประกาศไว้มาให้เราโดยที่เราไม่จำเป็นต้องระบุ version ของ SDK แต่ละตัวเอง เจ้า BoM มันจะไปหา version ของ SDK แต่ละตัวที่เราประกาศไว้ที่สามารถทำงานร่วมกันได้มาให้ เรามีหน้าที่แค่ประกาศ version ของตัว BoM เท่านั้นจบเลย(BoM รองรับ KTX ด้วย) แจ่มสุดๆ
รายละเอียดของเจ้า BoM สามารถอ่านเพิ่มเติมได้ที่นี่นะ

Release note
Release Note ของเจ้า BoM

ตัวอย่างเช่นรูปนี้
Alt Text

และอันนี้คือตอนที่นำไปใช้งานจริงๆ
Alt Text

เท่าที่ลองใช้งานมายังไม่เจอปัญหาอะไรนะ หวังว่าบทความนี้จะเป็นประโยชน์กับผู้อ่านไม่มากก็น้อย อันนี้เป็นบทความแรกด้วยผิดพลาดยังไงแนะนำและติชมกันได้นะฮะ

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit

Top comments (0)

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay