Posts

đŸ¯ When to use which - Inheritance, Abstract Class, Interface

 āĻ­াāχ, āφāϜ āϤোāĻŽাāϰ āĻŽাāĻĨা⧟ Inheritance, Abstract Class, Interface —āĻāχ āϤিāύāϟা āϜিāύিāϏ āĻāĻŽāύāĻ­াāĻŦে āĻĸুāĻ•ি⧟ে āĻĻেāĻŦো, āϝেāύ āϤুāĻŽি āĻĒ্āϰāϜেāĻ•্āϟ āĻŦাāύাāύোāϰ āϏāĻŽā§Ÿ āĻāĻ• āϏেāĻ•েāύ্āĻĄেāĻ“ āĻ­ুāϞ āύা āĻ•āϰো! 😄 āϚāϞো, āĻāĻ•āĻĻāĻŽ Brain-Friendly + Project Example āĻĻি⧟ে āĻŦুāĻি। 🚀 đŸ¯ āφāĻ—ে āĻāĻ•āϟু āϏāĻšāϜāĻ­াāĻŦে āĻŽāύে āϰাāĻ–ো: āϜিāύিāϏ āĻŽাāύে āĻ•ী? đŸ§Ŧ Inheritance āĻŦাāĻŦা-āĻŽাāϰ āĻŽāϤো āĻ—ুāĻŖ (class āĻĨেāĻ•ে class-āĻ āύেāĻ“ā§Ÿা) đŸē Abstract Class āφāϧা āĻĒ্āϰāϏ্āϤুāϤ āĻ›াঁāϚ ➡️ āĻ•িāĻ›ু āĻ•াāϜ āφāĻ—ে āĻĨেāĻ•েāχ āĻ•āϰে āĻĻি⧟েāĻ›ে 📜 Interface āϚুāĻ•্āϤিāĻĒāϤ্āϰ ➡️ "āϤুāĻŽি āĻāχ āĻ•াāϜāĻ—ুāϞো āĻ•āϰāĻŦে, āĻ•িāĻ­াāĻŦে āĻ•āϰāĻŦে āϏেāϟা āϤোāĻŽাāϰ āĻŦ্āϝাāĻĒাāϰ!" ✅ āĻŽāϏ্āϤিāώ্āĻ•ে āĻ›াāĻĒ āĻĢেāϞাāϰ Project Example: 🤖 āϧāϰো āφāĻŽāϰা āĻāĻ•āϟা Ride Sharing App āĻŦাāύাāϚ্āĻ›ি (Uber-āĻāϰ āĻŽāϤ) đŸ”Ĩ ā§§. Inheritance ➡️ āϝāĻ–āύ Parent-āĻāϰ āĻŦৈāĻļিāώ্āϟ্āϝ āϚাāχ ➡️ āϧāϰো, āφāĻŽাāĻĻেāϰ app-āĻ āφāĻ›ে āĻĻুāχ āϧāϰāύেāϰ āχāωāϜাāϰ: Driver Passenger āĻāχ āĻĻুāϜāύেāϰāχ āĻ•িāĻ›ু āĻ•āĻŽāύ āĻĢিāϚাāϰ āφāĻ›ে ➡️ āϝেāĻŽāύ login(), logout(), profileUpdate() । āϤাāχ āφāĻŽāϰা āĻāĻ•āϟা Parent class ➡️ User āĻŦাāύাāĻŦো ➡️ āĻāϰāĻĒāϰ Driver āφāϰ Passenger ➡️ āĻāχ User āĻĨেāĻ•ে āĻ—ুāĻŖ āύিāĻŦে (inherit āĻ•āϰāĻŦে)। // đŸ§Ŧ Parent class open class User { fun login() { println("User logged in...

đŸ”Ĩ āχāύāĻšেāϰিāϟেāύ্āϏ āĻŽাāύে āĻ•ী?

 āϚāĻŽā§ŽāĻ•াāϰ! āφāϜ āϚāϞি 🧠-āĻĢ্āϰেāύ্āĻĄāϞি āϏ্āϟাāχāϞে āχāύāĻšেāϰিāϟেāύ্āϏ (Inheritance) āĻĒুāϰোāϟা āĻŦোāĻাāϰ āĻŽিāĻļāύে! 😄 āφāĻŽāϰা āϏāĻšāϜ āĻ­াāώাāϝ়, āωāĻĻাāĻšāϰāĻŖ āĻĻিāϝ়ে āĻŽাāĻĨাāϝ় āĻ—েঁāĻĨে āϰাāĻ–āĻŦ! đŸ”Ĩ āχāύāĻšেāϰিāϟেāύ্āϏ āĻŽাāύে āĻ•ী? āχāύāĻšেāϰিāϟেāύ্āϏ = "āĻŦাāĻĒ āĻĻাāĻĻাāϰ āĻ—ুāĻŖ āύিāϜেāϰ āĻŽāϧ্āϝে āĻĒেāϝ়ে āϝাāĻ“āϝ়া!" āĻŽাāύে, āĻāĻ•āϟা āĻ•্āϞাāϏ āĻ…āύ্āϝ āĻ•্āϞাāϏেāϰ āĻ—ুāĻŖ, āĻĢাংāĻļāύ, āĻĒ্āϰāĻĒাāϰ্āϟি āϏāĻŦ āωāϤ্āϤāϰাāϧিāĻ•াāϰ āĻšিāϏেāĻŦে āĻĒাāϝ়। đŸ¯ āϏāĻšāϜ āĻ­াāώা⧟: āĻŦাāĻŦা āϝāĻĻি āĻŦাāϘ āĻšā§Ÿ, āĻ›েāϞে āĻŦাāϚ্āϚাāĻ“ āĻŦাāϘāχ āĻšāĻŦে ➡️ āĻ•িāĻ›ু āĻ—ুāĻŖ āĻŦাāĻŦা āĻĨেāĻ•ে āφāϏāĻŦে। āĻ›েāϞে āϚাāχāϞে āύিāϜেāϰāĻ“ āĻ•িāĻ›ু āύāϤুāύ āĻ—ুāĻŖ āϝোāĻ— āĻ•āϰāϤে āĻĒাāϰāĻŦে। āĻāϟাāĻ•েāχ āĻŦāϞে Inheritance। 🌱 āχāύāĻšেāϰিāϟেāύ্āϏেāϰ āĻŽূāϞ āĻ•āĻĨা: Parent/Base/Super Class ➔ āϝেāĻ–াāύ āĻĨেāĻ•ে āĻ—ুāĻŖ āωāϤ্āϤāϰাāϧিāĻ•াāϰ āĻĒাāĻ“ā§Ÿা āĻšā§Ÿ। Child/Derived/Sub Class ➔ āϝে āĻ•্āϞাāϏ āĻāχ āĻ—ুāĻŖ āĻĒা⧟ āĻāĻŦং āϚাāχāϞে āĻŦা⧜া⧟। ✅ āĻ•োāĻĄেāϰ āϏāĻšāϜ āωāĻĻাāĻšāϰāĻŖ (Kotlin): // ✅ Parent class (Base class) open class Animal { fun eat() { println("Animal is eating") } } // ✅ Child class (Derived class) class Dog : Animal() { fun bark() { println("Dog is barking") } } fun main() { val dog = Dog() dog.eat() // ✅ āĻāχ āĻĢাংāĻļāύāϟা Animal āĻĨেāĻ•ে āĻĒাāĻ“...

🧠 Lambda with Receiver

 āĻ…āĻŦāĻļ্āϝāχ! 🧠 āφāĻŽি āĻ–ুāĻŦāχ āϏāĻšāϜāĻ­াāĻŦে āĻŦাংāϞাāϝ় āĻŦ্āϝাāĻ–্āϝা āĻ•āϰāĻ›ি — āϝেāύ āϤুāĻŽি āĻŽāύে āϰাāĻ–āϤে āĻĒাāϰো। Lambda with Receiver āĻŽাāύে āĻšāϚ্āĻ›ে: Lambda (āĻāĻ•āϟা āĻ›োāϟ āĻĢাংāĻļāύ) — āϝাāϰ āĻ­িāϤāϰে āĻāĻ•āϟা āĻ…āĻŦāϜেāĻ•্āϟ āϏāϰাāϏāϰি āĻ…্āϝাāĻ•্āϏেāϏ āĻ•āϰāϤে āĻĒাāϰāĻŦে this āĻ›া⧜া āĻŦা āĻ•োāύো āϰেāĻĢাāϰেāύ্āϏ āĻ›া⧜াāχ! āωāĻĻাāĻšāϰāĻŖ āĻĻি⧟ে āĻŦāϞি: āϧāϰো, āϤুāĻŽি āĻāĻ•āϟা StringBuilder āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰāĻ›ো। āϏ্āĻŦাāĻ­াāĻŦিāĻ•āĻ­াāĻŦে āĻ•āϰāϤে āĻ—েāϞে āϞিāĻ–āϤে āĻšā§Ÿ: val builder = StringBuilder() builder.append("Hello, ") builder.append("World!") println(builder.toString()) āĻāĻ–āύ, Lambda with Receiver āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰāϞে āĻāϰāĻ•āĻŽ āĻšāĻŦে: val message = buildString { append("Hello, ") append("World!") } println(message) āĻ•ি āϞāĻ•্āώ্āϝ āĻ•āϰāϞে? append() āĻ•āϰāϤে āĻ—ি⧟ে āφāϰ builder. āϞিāĻ–āϤে āĻšā§Ÿāύি! āĻ­িāϤāϰে āϏāϰাāϏāϰি append() āĻ•āϞ āĻ•āϰা āϝাāϚ্āĻ›ে। āĻ•াāϰāĻŖ, buildString āĻāĻ•āϟা Lambda with Receiver āĻĢাংāĻļāύ — āϝাāϰ āĻ­িāϤāϰে StringBuilder āϤোāĻŽাāϰ āϜāύ্āϝ Receiver āĻšā§Ÿে āĻ—েāĻ›ে। āϤাāχ āϤুāĻŽি āϏāϰাāϏāϰি āϤাāϰ āĻĢাংāĻļāύ ( append , toString āχāϤ্āϝাāĻĻি) āĻ•āϞ āĻ•āϰāϤে āĻĒাāϰāĻ›ো। āϤাāĻšāϞে āϏংāĻ•্āώেāĻĒে āĻŦāϞি: āĻŦিāώ⧟ āĻŦ্āϝাāĻ–্āϝা Receiver āϝাāϰ āĻ“āĻĒāϰ āĻ•াāϜ āĻ•āϰāĻŦো (āϝেāĻŽāύ...

🧠 Regex āĻ•ী?

 āĻĻাāϰুāύ! ✨ āφāĻĒāύি Regex (Regular Expression) āϜাāύāϤে āϚাāϚ্āĻ›েāύ — āφāĻŽি āφāĻŦাāϰ āĻāĻ•āĻĻāĻŽ brain-friendly āĻŦাংāϞা āĻ­াāώা⧟ āϏāĻšāϜ āĻ•āϰে āĻŦ্āϝাāĻ–্āϝা āĻ•āϰāĻŦো। 🧠 āĻĒ্āϰāĻĨāĻŽে āϏāĻšāϜ āĻ­াāώা⧟ — Regex āĻ•ী? Regex āĻšāϞো: āĻāĻ•āϟা āĻŦিāĻļেāώ āĻ­াāώা , āϝেāϟা āĻĻি⧟ে āφāĻĒāύি āĻ•োāύো āϟেāĻ•্āϏāϟেāϰ (āϞেāĻ–াāϰ) āĻŽāϧ্āϝে āĻĨেāĻ•ে pattern (āύিāϰ্āĻĻিāώ্āϟ āϧāϰāύ) āĻ–ুঁāϜে āĻŦেāϰ āĻ•āϰāϤে āĻĒাāϰেāύ, āĻŽিāϞাāϤে āĻĒাāϰেāύ, āĻŦা āĻĒāϰিāĻŦāϰ্āϤāύ āĻ•āϰāϤে āĻĒাāϰেāύ। āϏāĻšāϜ āĻ­াāώা⧟ āĻŦāϞāϞে: Regex = "āϞেāĻ–াāϰ āĻ­েāϤāϰ āύি⧟āĻŽ āĻ–ুঁāϜে āĻŦেāϰ āĻ•āϰাāϰ āϜাāĻĻুāĻŽāύ্āϤ্āϰ" đŸŽ¯ āωāĻĻাāĻšāϰāĻŖ āĻĻি⧟ে āĻŦুāĻি: āϧāϰুāύ, āφāĻĒāύি āĻāĻ•āϟা āϟেāĻ•্āϏāϟে āϏāĻŦ āĻŽোāĻŦাāχāϞ āύাāĻŽ্āĻŦাāϰ āĻ–ুঁāϜāϤে āϚাāύ। Regex āĻĻি⧟ে āφāĻĒāύি āĻŦāϞে āĻĻিāϤে āĻĒাāϰেāύ: āϏāĻŦ āύাāĻŽ্āĻŦাāϰ āĻšāĻŦে ā§§ā§§ āϏংāĻ–্āϝাāϰ । āĻļুāϰু āĻšāĻŦে "01" āĻĻি⧟ে। 👉 āϤāĻ–āύ āφāĻĒāύি āĻāĻŽāύ āĻāĻ•āϟা Regex āĻŦাāύাāĻŦেāύ āϝেāϟা āĻāχ āύি⧟āĻŽে āĻŽিāϞāĻŦে! 🎨 āĻ›োāϟ্āϟ Example: 01[0-9]{9} āĻŽাāύে: 01 āĻĻি⧟ে āĻļুāϰু āϤাāϰāĻĒāϰ [0-9] → āϝেāĻ•োāύো āϏংāĻ–্āϝা (0 āĻĨেāĻ•ে 9) {9} → āĻ িāĻ• ⧝āϟা āϏংāĻ–্āϝা āĻĨাāĻ•āĻŦে 📜 Kotlin āĻ āĻ•িāĻ­াāĻŦে āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰāĻŦেāύ? val regex = Regex("01[0-9]{9}") val text = "āφāĻŽাāϰ āύাāĻŽ্āĻŦাāϰ 01712345678 āĻāĻŦং āĻ…āĻĢিāϏেāϰ āύাāĻŽ্āĻŦাāϰ 01998765432" val matches = regex.findAll(text) for (match in matches) { printl...

✅ āϏāĻŦāĻ—ুāϞো Scoping Function-āĻāϰ āϏāĻšāϜ āĻŦাংāϞা āĻĒāϰিāϚ⧟

 āĻ…āĻŦāĻļ্āϝāχ! Kotlin āĻāϰ Scoping Functions āĻļেāĻ–াāϟা āĻ–ুāĻŦāχ āĻŽāϜাāϰ, āϝāĻĻি āφāĻĒāύি āĻāĻ•ে āĻ—āϞ্āĻĒেāϰ āĻŽāϤো āĻŦুāĻেāύ। āύিāϚে āφāĻŽি āϏāĻŦāĻ—ুāϞো Scoping Function (āϝেāĻŽāύ: let , run , with , apply , also ) āĻāĻ•āĻĻāĻŽ āϏāĻšāϜ āĻ“ āĻŦ্āϰেāχāύ-āĻĢ্āϰেāύ্āĻĄāϞি āĻ­াāĻŦে āĻŦাংāϞা āĻ­াāώা⧟ āĻŦ্āϝাāĻ–্āϝা āĻ•āϰāĻ›ি। 🔍 Scoping Function āĻ•ী? Scoping Function āĻšāϞ āĻāĻŽāύ āĻ•িāĻ›ু āĻ›োāϟ āĻĢাংāĻļāύ āϝা āĻ…āĻŦāϜেāĻ•্āϟেāϰ āωāĻĒāϰ āύিāϰ্āĻĻিāώ্āϟ āĻ•িāĻ›ু āĻ•াāϜ āĻ•āϰāϤে āĻŦা āĻŽāĻĄিāĻĢাāχ āĻ•āϰāϤে āĻŦ্āϝāĻŦāĻšৃāϤ āĻšā§Ÿ—āĻ›োāϟ āĻ›োāϟ āĻŦ্āϞāĻ•ে। āĻāϤে āĻ•োāĻĄ āϏুāύ্āĻĻāϰ āĻ“ āĻĒāϰিāώ্āĻ•াāϰ āĻšā§Ÿ। ✅ āϏāĻŦāĻ—ুāϞো Scoping Function-āĻāϰ āϏāĻšāϜ āĻŦাংāϞা āĻĒāϰিāϚ⧟ Function Context Object Return Value Use Case let it Lambda result Null check āĻŦা āĻĄেāϟা āĻĒ্āϰāϏেāϏ āĻ•āϰাāϰ āϜāύ্āϝ run this Lambda result Object configure āĻ“ āϞাāϏ্āϟ result āĻĻāϰāĻ•াāϰ āĻšāϞে with this Lambda result āĻĒুāϰāύো object āĻ•ে āĻŦ্āϞāĻ•েāϰ āĻŽāϧ্āϝে āĻ•াāϜ āĻ•āϰাāϤে apply this Object itself Object initialize āĻŦা setup āĻ•āϰাāϰ āϜāύ্āϝ also it Object itself Logging āĻŦা extra side task āĻāϰ āϜāύ্āϝ 🧠 āĻ—āϞ্āĻĒ āĻ•āϰে āĻļেāĻ–া āϝাāĻ• (Brain-friendly): 1️⃣ let — "āĻāĻ•āϟু āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰে āĻĻেāĻ–ি" val name: String? = "Rahim" name?.let { println("Name i...

đŸ“Ļ CDN āĻ•ী?

CDN āĻŽাāύে āĻšāϚ্āĻ›ে Content Delivery Network , āĻŦাংāϞাāϝ় āĻŦāϞāϞে — “āĻ•āύ্āϟেāύ্āϟ āϏāϰāĻŦāϰাāĻš āĻ•āϰাāϰ āϜাāϞেāϰ āĻŽāϤো āĻŦ্āϝāĻŦāϏ্āĻĨা”। āĻāϟা āĻ…āύেāĻ•āϟা āĻĻেāĻļāϜু⧜ে āĻ›ā§œি⧟ে āĻĨাāĻ•া āĻ—োāĻĄাāωāύেāϰ āĻŽāϤো, āϝেāĻ–াāύ āĻĨেāĻ•ে āχāωāϜাāϰāĻĻেāϰ āĻ•াāĻ›ে āĻĻ্āϰুāϤ āĻĒāĻŖ্āϝ āĻĒৌঁāĻ›ে āĻĻেāĻ“ā§Ÿা āĻšā§Ÿ। 🧠 āĻŦাāϏ্āϤāĻŦ āωāĻĻাāĻšāϰāĻŖ (āĻŽাāĻĨা⧟ āĻŦāϏāĻŦে āĻ—্āϝাāϰাāύ্āϟি!) āϧāϰি āϤুāĻŽি āĻĸাāĻ•াāϝ় āφāĻ›ো, āφāϰ āĻāĻ•āϟা āĻ“āϝ়েāĻŦāϏাāχāϟেāϰ āĻ›āĻŦি āϞোāĻĄ āĻ•āϰāϤে āϚাāχāϞে āϏেāχ āĻ›āĻŦিāϟা āφāĻŽেāϰিāĻ•াāϰ āϏাāϰ্āĻ­াāϰ āĻĨেāĻ•ে āφāύāϤে āĻšā§Ÿ। āϤāĻ–āύ... āϏāĻŽā§Ÿ āĻŦেāĻļি āϞাāĻ—ে āχāύ্āϟাāϰāύেāϟ āϧীāϰ āĻšā§Ÿ āĻ“āϝ়েāĻŦāϏাāχāϟ āϏ্āϞো āϞোāĻĄ āĻšā§Ÿ āĻāĻ–āύ āϝāĻĻি āϏেāχ āĻ›āĻŦিāϰ āĻāĻ•āϟা āĻ•āĻĒি āĻĸাāĻ•াāϝ় āϰাāĻ–া āĻĨাāĻ•ে, āϤাāĻšāϞে— ✅ āĻ–ুāĻŦ āĻĻ্āϰুāϤ āϞোāĻĄ āĻšāĻŦে ✅ āχāωāϜাāϰ āĻ–ুāĻļি ✅ āĻŦ্āϝাāύ্āĻĄāωāχāĻĨ āĻŦাঁāϚে ✅ āĻ“āϝ়েāĻŦāϏাāχāϟ āĻĢাāϏ্āϟ! 🕸️ CDN āĻ•ীāĻ­াāĻŦে āĻ•াāϜ āĻ•āϰে? āϚāϞো, āϧাāĻĒে āϧাāĻĒে āĻĻেāĻ–ি: Main Server (āĻŽূāϞ āϏাāϰ্āĻ­াāϰ) : āĻāĻ–াāύেāχ āϏāĻŦ āĻ•āύ্āϟেāύ্āϟ āϰাāĻ–া āĻšā§Ÿ। CDN Server (Edge Server) : āĻĒৃāĻĨিāĻŦীāϰ āύাāύা āĻĒ্āϰাāύ্āϤে āĻ›ā§œি⧟ে āĻĨাāĻ•া āĻ•āĻĒি āϏাāϰ্āĻ­াāϰ। User Request : āχāωāϜাāϰ āϝāĻ–āύ āĻ•িāĻ›ু āϚা⧟ (āĻ›āĻŦি, CSS, JS, āĻ­িāĻĄিāĻ“), āϤāĻ–āύ CDN āĻ•াāĻ›েāϰ āϏাāϰ্āĻ­াāϰ āĻĨেāĻ•ে āϏেāϟা āĻĻে⧟। 🌍 āĻ•েāύ CDN āĻĻāϰāĻ•াāϰ? ✅ āĻ“ā§ŸেāĻŦāϏাāχāϟ āĻĢাāϏ্āϟ āϞোāĻĄ āĻ•āϰাāύোāϰ āϜāύ্āϝ ✅ āϏাāϰ্āĻ­াāϰেāϰ āϚাāĻĒ āĻ•āĻŽাāύোāϰ āϜāύ্āϝ ✅ āĻĻূāϰāĻŦāϰ্āϤী āχāωāϜাāϰāĻĻেāϰ āĻĻ্āϰুāϤ āĻ•āύ্āϟেāύ্āϟ āĻĻে⧟াāϰ āϜāύ্āϝ ✅ āĻ­িāĻĄিāĻ“/āĻ›āĻŦি-heavy āĻ“āϝ়েāĻŦāϏাāχāϟেāϰ āϜāύ্āϝ āĻ–ুāĻŦ āĻĻāϰāĻ•াāϰ...

Android Jetpack Compose Dependency List & Usage

  Jetpack Compose āĻšāϞ Android UI Toolkit , āϝা Declarative UI āϤৈāϰিāϰ āϜāύ্āϝ āĻŦ্āϝāĻŦāĻšৃāϤ āĻšāϝ়। āĻāϟি XML-āĻāϰ āĻĒāϰিāĻŦāϰ্āϤে Kotlin-āĻ­িāϤ্āϤিāĻ• UI āĻ•āĻŽ্āĻĒোāϜেāĻŦāϞ āĻĢাংāĻļāύ āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰে। Jetpack Compose āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰāϤে āĻšāϞে āĻŦিāĻ­িāύ্āύ āĻĄিāĻĒেāύ্āĻĄেāύ্āϏি āĻĒ্āϰ⧟োāϜāύ āĻšā§Ÿ, āϝা āύিāϚে āĻŦিāϏ্āϤাāϰিāϤ āĻĻেāĻ“ā§Ÿা āĻšāϞো। ā§§. Jetpack Compose BOM (Bill of Materials) 📌 āĻāϟি āϏāĻŽāϏ্āϤ Compose āϞাāχāĻŦ্āϰেāϰিāϰ āĻ­াāϰ্āϏāύ āĻŽ্āϝাāύেāϜ āĻ•āϰāϤে āϏাāĻšাāϝ্āϝ āĻ•āϰে। dependencies { implementation platform('androidx.compose:compose-bom:2024.03.00') } 🔹 āĻŦ্āϝāĻŦāĻšাāϰ: BOM āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰāϞে āφāϞাāĻĻাāĻ­াāĻŦে āĻĒ্āϰāϤিāϟি āϞাāχāĻŦ্āϰেāϰিāϰ āĻ­াāϰ্āϏāύ āωāϞ্āϞেāĻ– āĻ•āϰāϤে āĻšā§Ÿ āύা āĻļুāϧুāĻŽাāϤ্āϰ platform() āĻĻি⧟ে BOM āĻ…্āϝাāĻĄ āĻ•āϰāϞে āϏāĻŽāϏ্āϤ Compose āϞাāχāĻŦ্āϰেāϰি āφāĻĒāĻĄেāϟ āĻĨাāĻ•āĻŦে ⧍. Core Compose Dependencies āĻāχ āĻĄিāĻĒেāύ্āĻĄেāύ্āϏিāĻ—ুāϞো @Composable āĻĢাংāĻļāύ āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰāϤে āĻāĻŦং UI āϤৈāϰি āĻ•āϰāϤে āϏাāĻšাāϝ্āϝ āĻ•āϰে। dependencies { implementation 'androidx.compose.ui:ui' implementation 'androidx.compose.material3:material3' implementation 'androidx.compose.ui:ui-tooling-preview' debugImplementation 'androidx.compose.ui:ui-tooli...