পণ্যের খবর

জেটপ্যাক কম্পোজের ৫ বছর পূর্তি উদযাপন

৫ মিনিটের পাঠ
৩ জন লেখক
Rebecca Franks, Nick Butcher, Loryn Hairston

আজ আমরা আনুষ্ঠানিকভাবে জেটপ্যাক কম্পোজ ১.০ প্রকাশের পাঁচ বছর পূর্তি উদযাপন করছি। ২০২১ সালের ২৮শে জুলাই ঘোষিত ১.০ সংস্করণ থেকে শুরু করে আমাদের সর্বশেষ ১.১১ রিলিজ পর্যন্ত, আমরা বিগত বছরগুলোতে এপিআই-গুলোর উল্লেখযোগ্য বিবর্তন দেখেছি এবং এই মুহূর্তটিকে আমরা উদযাপন করছি।

যখন আমরা আনুষ্ঠানিকভাবে ১.০ সংস্করণটি প্রকাশের ঘোষণা দিয়েছিলাম, তখন আমরা অ্যান্ড্রয়েডে নেটিভ ইন্টারফেস তৈরির জন্য একটি সহজ, দ্রুত এবং আরও স্বজ্ঞাত পদ্ধতির প্রতিশ্রুতি দিয়েছিলাম। এখন পেছনে ফিরে তাকালে এটা নিঃসন্দেহে বলা যায় যে, কম্পোজ শুধু সেই প্রতিশ্রুতিই পূরণ করেনি, বরং অ্যান্ড্রয়েড ইকোসিস্টেমকেও সম্পূর্ণরূপে বদলে দিয়েছে; বর্তমানে শীর্ষ ১,০০০ অ্যাপের ৬৮%-এরও বেশি তাদের কার্যক্রমে এটি ব্যবহার করছে।

ইতিহাস

গত পাঁচ বছরে Compose ক্রমাগত উন্নতি করেছে। শুরুর দিকে , আমরা সাধারণ Box, Row, এবং Column ব্যবহার করে কীভাবে লেআউট তৈরি করতে হয়, তা দেখিয়েছিলাম। বর্তমানে, আমরা Compose-কে শুধু মোবাইল ডিভাইসেই নয়, বরং Compose for TV , WearOS , Glance for Widgets- এর মতো অন্যান্য ফর্ম ফ্যাক্টর এবং এমনকি Jetpack Compose Glimmer সহ ডিসপ্লে গ্লাসেও কাজ করার জন্য প্রসারিত করেছি।

jetpack_compose_everywhere.png

আমরা জেটপ্যাকের ইঞ্জিনিয়ারিং লিড ক্লারা বায়ারি , দলের দুজন প্রাক্তন লিড রোমেইন গাইচেট হাসে এবং সিনিয়র ইঞ্জিনিয়ারিং ডিরেক্টর টর নরবাইকে নিয়ে ‘অ্যান্ড্রয়েড ডেভেলপারস ব্যাকস্টেজ’-এর একটি পর্ব রেকর্ড করেছি। এই পর্বে তাঁরা কম্পোজের ইতিহাস এবং ডেভেলপমেন্টের শুরুর দিনগুলো নিয়ে আলোচনা করেছেন।

টাইমলাইন.png
বছরের পর বছর ধরে উল্লেখযোগ্য রচনা করুন

পেছনে ফিরে তাকালে

কম্পোজের শুরুর দিকটা আজকের পরিচিত রূপের চেয়ে অনেকটাই ভিন্ন ছিল। অ্যান্ড্রয়েড টিমের ভেতরে দুটি প্রজেক্ট সমান্তরালভাবে চলছিল।

সেই সময়ে, ভিউস টুলকিট টিম ডেভেলপমেন্টের গতি বাড়াতে এবং ডেভেলপারদের জন্য আপডেট গ্রহণ ও নিয়ন্ত্রণ করা সহজ করতে UI টুলকিটকে একটি লাইব্রেরিতে বিভক্ত করার কথা ভাবছিল। এদিকে, একটি টিম কোটলিনের ভিতরে XML এমবেড করে ডিক্লারেটিভ লেআউট তৈরি করার একটি অভিনব ধারণা নিয়ে কাজ করছিল, যা দেখতে অনেকটা এইরকম ছিল:

jetpack_compose_early_code.png

সেই দুটি প্রচেষ্টা একত্রিত হয়ে আজকের এই রূপটি তৈরি করেছে - একটি সম্পূর্ণ ডিক্লারেটিভ UI টুলকিট যা কম্পাইলার প্লাগইন, রানটাইম এবং কোটলিনের শক্তিকে কাজে লাগায়।

@Composable
fun Newsfeed(stories: List<Story>) {
    LazyColumn {
        items(stories) { story ->
            Card {
                val author = story.author
                Image(painterResource(author.profilePhoto),
                    contentDescription = author.name)
                Text(author.name)
                Text(story.content)
                if (story.hasCommentsEnabled()) {
                    for(comment in story.comments) {
                        Text(comment.mainContent)
                    }
                }
            }
        }
    }
}

এবং আপনারা, অর্থাৎ কমিউনিটি, একেবারে শুরুতেই আমাদের সাহায্য করেছেন! ২০২১ সালের আগে, Compose-এর একটি প্রি-আলফা পর্যায় ছিল, যা নিশ্চিত করতে সাহায্য করেছিল যে Compose আমাদের ডেভেলপারদের সমস্যা সমাধানের জন্য উপযুক্ত।

আমাদের সবচেয়ে প্রিয় স্মৃতিগুলোর মধ্যে একটি হলো অ্যান্ড্রয়েড ডেভ চ্যালেঞ্জ। আমরা কমিউনিটিকে কম্পোজ ব্যবহার করে চারটি ভিন্ন টাস্ক তৈরি করার জন্য চ্যালেঞ্জ করেছিলাম, যার মাধ্যমে আমাদের ফিডগুলো পাপি অ্যাপ, ঘড়ি এবং আবহাওয়ার অ্যাপ দিয়ে পূর্ণ করা হয়েছিল। এর ফলে আমরা প্রচুর সরাসরি ফিডব্যাক পেয়েছিলাম, যা ১.০ রিলিজটিকে রূপ দিতে সাহায্য করেছিল।

একগুচ্ছ Material 2 কম্পোনেন্ট দিয়ে যাত্রা শুরু করা থেকে শুরু করে এখন Material 3 Expressive সমর্থন করা পর্যন্ত Compose-এর বিবর্তন অব্যাহত রয়েছে।

material2.png
রচনায় উপাদান ২

ভবিষ্যতের দিকে তাকিয়ে

আজ পর্যন্ত, Compose 1.11 হলো সর্বশেষ সংস্করণ এবং শীঘ্রই 1.12 আসছে, যা ৫ বছর আগের 1.0 সংস্করণের চেয়ে অনেক বেশি সুবিধা দিচ্ছে। এই বছর, আমরা FlexBox , Grid , MediaQuery এবং Styles-এর মতো আরও কিছু অ্যাডাপ্টিভ API চালু করেছি। এই API-গুলো আপনাকে Compose-এর মাধ্যমে প্রিমিয়াম ও অ্যাডাপ্টিভ UI ডেভেলপমেন্টের পরবর্তী স্তরে উন্নীত হতে সাহায্য করবে।

Google I/O 2026-এ আমরা ঘোষণা করেছি যে আমরা এখন থেকে ‘কম্পোজ-ফার্স্ট’ , যার অর্থ হলো ভবিষ্যতের সমস্ত UI ডেভেলপমেন্ট শুধুমাত্র কম্পোজেই করা হবে এবং ভিউজ টুলকিট রক্ষণাবেক্ষণ মোডে চলে যাবে। ম্যাটেরিয়াল ডিজাইনও তার সম্পূর্ণ মনোযোগ কম্পোজের দিকে সরিয়ে নিচ্ছে , যা findViewById era সমাপ্তির ইঙ্গিত দিচ্ছে।

কম্পোজের কেন্দ্রবিন্দুতে রয়েছে কমিউনিটি।

বিগত বছরগুলোতে, আপনারা Compose যেভাবে সৃজনশীল উপায়ে ব্যবহার করেছেন, তা দিয়ে আমাদের অনুপ্রাণিত করেছেন এবং আমরা আপনাদের দেখা আরও কিছু চমৎকার কাজের উদাহরণ তুলে ধরতে চাই। Compose-এর ক্ষেত্রে Jetbrains গুগলের একটি দারুণ অংশীদার হিসেবে কাজ করেছে; Compose Multiplatform- এর মাধ্যমে Compose-কে বিভিন্ন প্ল্যাটফর্মে কাজ করার উপযোগী করে তুলেছে এবং ডেস্কটপ, iOS ও ওয়েব ডেভেলপারদেরও Compose-এর সুবিধাগুলো উপভোগ করার সুযোগ করে দিয়েছে।

আমরা JetpackCompose.app-এর Dispatch , AndroidWeekly থেকে শুরু করে jetc পর্যন্ত আমাদের সবচেয়ে প্রিয় নিউজলেটারগুলো অনুসরণ করে সত্যিই আনন্দ পেয়েছি – যা অ্যান্ড্রয়েড ডেভেলপারদের Compose এবং Android জগতের সর্বশেষ খবরাখবর সম্পর্কে অবগত থাকতে সাহায্য করে।

আরেকজন উল্লেখযোগ্য অবদানকারী হলেন sinasamaki । তিনি Compose ব্যবহার করে অনেক চমৎকার অভিজ্ঞতা তৈরি করেছেন, যেমন এই মজাদার রিবন মডিফায়ার এবং গ্লিচি এফেক্টটি:

ribbon_modifier_sinasamaki.gif

কম্পোজের জন্য দরকারি টুল তৈরির ক্ষেত্রেও সাকেত নারায়ণ সবসময়ই অনুপ্রেরণা হয়ে আছেন; যেমন টেলিফোটো (telephoto) নামের একটি লাইব্রেরি, যেটিতে প্যান ও জুম জেসচার এবং বড় ছবির স্বয়ংক্রিয় সাব-স্যাম্পলিংয়ের সুবিধা রয়েছে; কিংবা তাঁর সর্বশেষ লাইব্রেরি, টাচ রোবট (Touch Robot) , যা দিয়ে খুব সহজে ইন্টারঅ্যাকশন অ্যানিমেশন পরীক্ষা করা যায়।

paparazzi.gif(end = 3_000) {
  DebitCard(
    Modifier.testTag("card")
  )

  val touchRobot = rememberTouchRobot()
  LaunchedEffect(Unit) {
    touchRobot.onNode(hasTestTag("card")).performGesture {
      draw(
        path = createAndroidHeadPath(),
        duration = 3.seconds,
      )
    }
  }
}

/** A path drawing the Android head. */
fun createAndroidHeadPath(bounds: Rect): Path = TODO()
saket_touch_robot.gif

জেক হোয়ার্টন , যিনি কম্পোজকে উদ্ভাবনী উপায়ে ব্যবহার করেছেন (যেমন মলিকিউল , এবং এমনকি মোজাইক দিয়ে টার্মিনালের জন্য কম্পোজ ব্যবহার করে ইউআই তৈরি করেছেন)। ক্রিস বেইনস, যিনি বছরের পর বছর ধরে অনেক কম্পোজ লাইব্রেরি তৈরি করেছেন, যার মধ্যে আমাদের সাম্প্রতিকতম প্রিয় হলো ব্যাকগ্রাউন্ড ব্লার করার জন্য হেজ (Haze), এবং অক্ষয় চোরদিয়া , হুয়েন তুয়ে দাও , ও কেটি বার্নেটের মতো অনেক অ্যান্ড্রয়েড গুগল ডেভেলপার এক্সপার্ট , যারা কম্পোজের সাফল্যে অবদান রেখেছেন। কিন্তু এটি কোনো ব্যক্তিকে বেছে নেওয়ার বিষয় নয় - কম্পোজ কোডবেসে অনেক অসাধারণ অবদানকারী রয়েছেন, এবং আপনাদের অনেকেই আপনাদের মজার উদাহরণ, লাইব্রেরি এবং গভীর আলোচনার মাধ্যমে আমাদের অনুপ্রাণিত করে চলেছেন। এই কমিউনিটি ছাড়া জেটপ্যাক কম্পোজ আজ এতটা সফল হতে পারত না।

আগামী পাঁচ বছর এবং তারও বেশি সময়ের জন্য শুভকামনা!

জেটপ্যাক কম্পোজ একটি পরীক্ষামূলক ধারণা থেকে অ্যান্ড্রয়েড ইউআই ডেভেলপমেন্টের স্ট্যান্ডার্ডে পরিণত হয়েছে। গুগলের সম্পূর্ণ টুলকিট টিমকে এবং সেই অসাধারণ বিশ্বব্যাপী ডেভেলপার কমিউনিটিকে ধন্যবাদ, যারা লাইব্রেরি লিখেছেন, বাগ রিপোর্ট করেছেন এবং ডিক্লারেটিভ ইউআই-এর সম্ভাবনার সীমাকে প্রসারিত করেছেন।

এই সপ্তাহে, আমরা বিশ্বজুড়ে কিছু সশরীরে জন্মদিনের পার্টির মাধ্যমে উদযাপন করব এবং ৩০শে জুলাই ১৩:০০ UTC-তে অ্যান্ড্রয়েড ডেভেলপারস ইউটিউব চ্যানেলে একটি লাইভ “জন্মদিনের পার্টি” অনুষ্ঠিত হবে। এই সময়ে, আমরা একসাথে আড্ডা দেব, কম্পোজ (Compose) নিয়ে আলোচনা করব এবং আপনাদের প্রশ্নের উত্তর দেব!

আগামী পাঁচ বছরের জন্য শুভকামনা, এবং সঙ্গীত রচনা আনন্দময় হোক!

    লিখেছেন:
    পড়তে থাকুন