আপনি যদি অ্যান্ড্রয়েডের জন্য একটি ব্যবসায়িক অ্যাপ্লিকেশন নিখুঁত করতে বছরের পর বছর সময় ব্যয় করে থাকেন এবং এখন আপনাকে প্রকল্পটি অ্যাপল ব্যবহারকারীদের জন্যও নিয়ে আসতে বলা হয়, তাহলে আপনি সম্ভবত ভাবছেন যে আপনার সমস্ত পরিশ্রম নষ্ট হয়ে যাবে কিনা। সুখবরটি হলো যে কোটলিন মাল্টিপ্ল্যাটফর্ম (কেএমপি) এটি আমাদের ত্রাতা হিসেবে এসেছে, যা আমাদের একই কোড ভিন্ন ভিন্ন ভাষায় দুবার না লিখেই বিজনেস লজিক পুনঃব্যবহার করার সুযোগ করে দেয়।
এটি কোনো জাদুকরী যন্ত্র নয় যা নিজে থেকেই সব কাজ করে দেয়, বরং এটি একটি বুদ্ধিদীপ্ত কৌশল। ডেটা এবং ডোমেন স্তর শেয়ার করুনমূলত, আমরা উভয় প্ল্যাটফর্মের সাধারণ বিষয়গুলোকে একটি কেন্দ্রীয় স্থানে নিয়ে আসি এবং প্রতিটি সিস্টেমকে তার নিজস্ব ইন্টারফেস পরিচালনা করতে দিই, যার ফলে আমরা একটি নেটিভ অ্যাপের গুণমান বজায় রাখতে পারি কিন্তু সমন্বিত ডেভেলপমেন্টের দক্ষতাও লাভ করি।
প্রথম থেকে শেয়ার্ড মডিউলটি কীভাবে সেট আপ করবেন
ভালোভাবে শুরু করার জন্য, সবচেয়ে সহজ উপায় হলো অফিসিয়াল টুলগুলোর সুবিধা নেওয়া। যদি আপনি ব্যবহার করেন অ্যান্ড্রয়েড স্টুডিও মীরক্যাট আর যদি আপনার কাছে গ্রেডল প্লাগইন ভার্সন ৮.৮.০ বা তার চেয়ে উচ্চতর সংস্করণ থাকে, তাহলে এই টেমপ্লেটটির কল্যাণে আপনার আর কোনো চিন্তা থাকবে না। কোটলিন মাল্টিপ্ল্যাটফর্ম শেয়ার্ড মডিউলএই অপশনটি সমস্ত বেসিক কনফিগারেশন স্বয়ংক্রিয়ভাবে করে দেয়, ফলে আপনাকে কনফিগারেশন ফাইল নিয়ে বেশি মাথা ঘামাতে হয় না।
প্রক্রিয়াটি বেশ সহজবোধ্য: আপনি যা করতে যাচ্ছেন ফাইল > নতুন > নতুন মডিউল এবং নির্দিষ্ট KMP টেমপ্লেটটি নির্বাচন করুন। এখানে আপনাকে সংজ্ঞায়িত করতে হবে মডিউলের নাম (যা iOS-এ ফ্রেমওয়ার্কের নাম হিসেবেও কাজ করবে) এবং ফাইল প্যাকেজ। আপনি ফিনিশ-এ ক্লিক করার পর, প্রজেক্টটি সিনক্রোনাইজ করে গ্রেডলকে তার জাদু দেখাতে দিন। আপনি দেখবেন যে প্ল্যাটফর্ম-নির্দিষ্ট ফোল্ডারগুলো তৈরি হয়েছে, সাথে একটি সাধারণ স্থানও তৈরি হয়েছে যার নাম সাধারণ প্রধানআর সেখানেই আসল ঘটনা ঘটে।
অ্যান্ড্রয়েডে শেয়ার্ড লজিক একীভূত করা

মডিউল তৈরি করাটা কেবল অর্ধেক কাজ; এখন আমাদের বলতে হবে আপনার অ্যান্ড্রয়েড অ্যাপ যেটি ওই কোডটি ব্যবহার করে। উইজার্ড এটি স্বয়ংক্রিয়ভাবে করে না, তাই আপনাকে অবশ্যই আপনার গ্রেডল ফাইলে ম্যানুয়ালি ডিপেন্ডেন্সিটি যোগ করতে হবে। প্রচলিত পদ্ধতি হলো যোগ করা বাস্তবায়ন(প্রকল্প(«:শেয়ার করা»)) ডিপেন্ডেন্সি ব্লকের মধ্যে।
আপনি যদি তাদের মধ্যে একজন হন যারা এটি সক্রিয় করেছেন টাইপ-সেফ প্রকল্পের আনুষাঙ্গিক Gradle থেকে, আপনি এটি ব্যবহার করে সরল করতে পারেন projects.sharedএকবার লিঙ্ক করা হয়ে গেলে, আপনার অ্যান্ড্রয়েড অ্যাপটি আপনার প্রোগ্রাম করা সবকিছু নির্বিঘ্নে ব্যবহার করতে পারবে। androidMain অথবা commonMain, যা কর্মপ্রবাহের সাথে সম্পূর্ণ স্বাভাবিকভাবে একীভূত হয়ে যায়।
iOS ইকোসিস্টেমে কনফিগারেশন এবং স্থাপন
এখান থেকেই ব্যাপারটা মজার হয়ে ওঠে, কারণ সুইফট স্বাভাবিকভাবে কোটলিন বোঝে না। এদেরকে একসাথে কাজ করাতে হলে, আমাদের একটি তৈরি করতে হবে সংকলিত বাইনারি ফ্রেমওয়ার্কঅ্যান্ড্রয়েড স্টুডিও টেমপ্লেটটি ফাইলটি আগে থেকেই প্রস্তুত করে রাখে। build.gradle.kts বিভিন্ন অ্যাপল আর্কিটেকচারের জন্য কনফিগারেশন সহ, যেমন iosX64, iosArm64 এবং iosSimulatorArm64.
ডিফল্টরূপে, ফ্রেমওয়ার্কটিকে বলা হয় sharedKitযদিও আপনি এই পরিবর্তনশীলটি পরিবর্তন করতে পারেন xcfName আপনি যদি আপনার ব্র্যান্ডের সাথে আরও সামঞ্জস্যপূর্ণ একটি নাম পছন্দ করেন। Xcode-কে কী করতে হবে তা জানানোর জন্য, আপনাকে একটি স্ক্রিপ্ট এক্সিকিউশন ফেজ যোগ করতে হবে যার নাম কোটলিন ফ্রেমওয়ার্ক কম্পাইল করুনএই স্ক্রিপ্টটি চালানো অত্যাবশ্যক। সুইফট সোর্স কম্পাইল করার আগে যাতে সুইফট যখন কোটলিন কোডটি খোঁজে, তখন তা আগে থেকেই উপলব্ধ থাকে।
সবকিছু ঠিকঠাক কাজ করছে কিনা তা যাচাই করতে, ফাইলটিতে যান। ContentView.swift Xcode-এ লাইব্রেরিটি ইম্পোর্ট করুন। sharedKit এবং শেয়ার্ড মডিউলের কোনো একটি ফাংশন কল করুন, যেমন ক্লাসিক platform()অ্যাপটি যে চলছে তা শনাক্ত করতে নিশ্চিত করতে আইওএস.
কোটলিন ২.০ এবং কম্পোজ মাল্টিপ্ল্যাটফর্মে স্থানান্তর
আপনি যদি কোটলিন সংস্করণ ২.০-তে আপগ্রেড করতে চান, তবে কয়েকটি ছোটখাটো পরিবর্তন করতে হবে। প্রথমে, আপনার ফাইলে সংস্করণটি আপডেট করুন। libs.versions.toml এবং ফোল্ডারটি যোগ করতে ভুলবেন না। .kotlin নথিতে .gitignore রিপোজিটরিতে অপ্রয়োজনীয় আবর্জনা আপলোড করা এড়াতে
একটি মৌলিক পরিবর্তন হল কম্পোজ কম্পাইলারযা এখন একটি বিল্ট-ইন কোটলিন প্লাগইন। আপনাকে যোগ করতে হবে org.jetbrains.kotlin.plugin.compose ভার্সন ক্যাটালগে এবং সংশ্লিষ্ট build.gradle ফাইলগুলিতে এটি প্রয়োগ করুন। এটি আপনাকে অনুমতি দেয় composeOptions ব্লকটি সরান এবং আরও পরিষ্কার ডিএসএল সংযোগের সুবিধা নিয়ে নিম্নলিখিত বিষয়গুলি কনফিগার করুন strongSkippingMode.
এছাড়াও, আপনি যদি ব্যবহার করেন কেএসপি (কোটলিন প্রতীক প্রক্রিয়াকরণ)বিরক্তিকর কম্পাইলেশন ত্রুটি এড়াতে এটিকে Kotlin 2.0-এর সাথে সামঞ্জস্যপূর্ণ একটি সংস্করণে আপডেট করে নিন। আপনার যদি Jetpack Compose-এর সাথে পূর্ব অভিজ্ঞতা থাকে, তবে আপনি সেই কোডটিকে মানিয়ে নিতে পারেন। মাল্টিপ্ল্যাটফর্ম রচনা করুনএর মাধ্যমে আপনি শুধু লজিকই নয়, ইউজার ইন্টারফেসেরও একটি অংশ শেয়ার করতে পারবেন, যদিও iOS-এ একটি মসৃণ অভিজ্ঞতা নিশ্চিত করার জন্য কিছু নির্দিষ্ট বিবরণ সর্বদা সামঞ্জস্য করার প্রয়োজন হবে।
একটি এন্টারপ্রাইজ ইনফ্রাস্ট্রাকচারকে KMP-তে মাইগ্রেট করার জন্য কোডকে একটি শেয়ার্ড মডিউলে সাজাতে হয়, Gradle-এর মাধ্যমে এটিকে Android-এর সাথে সঠিকভাবে লিঙ্ক করতে হয় এবং iOS বিল্ড স্ক্রিপ্ট ব্যবহার করে Xcode কনফিগার করতে হয়। Kotlin 2.0-তে আপগ্রেড করলে Compose কম্পাইলার ম্যানেজমেন্ট সহজ হয় এবং প্রোজেক্টের কাঠামো অপ্টিমাইজ হয়, যা সামঞ্জস্যপূর্ণ ডোমেইন লজিক এবং একটি প্ল্যাটফর্ম-নির্দিষ্ট ইন্টারফেস নিশ্চিত করে।