জ্যামরিনের নাম শুনেছি প্রায় বছর খানেক আগে যখন C# শিখছিলাম তখন। বন্ধু তুহিন এটার নাম মেনশন করে প্রথম। ওই যতটুকু আইডিয়া পেয়েছিলো ততটুকুই বলেছিলো। একটা ফ্রেমওয়ার্ক, মোবাইল অ্যাপ রিলেটেড। কিন্তু ভিজুয়াল স্টুডিও দিয়ে। খুব বেশী আগ্রহ পাইনি তখন। আগ্রহটা জন্মালো এই কিছুদিন আগে। আগ্রহ নিয়েই জ্যামরিনের সম্পর্কে খোঁজ নেয়া শুরু করলাম। কিছু ধারনা পেয়েছি। এই পোস্টটা আমার সেই ক্ষুদ্র ধারনা নিয়েই।
কিছু ইনট্রোঃ মাইক্রোসফট হলো সবচেয়ে বড় টেক জায়ান্টদের মধ্যে একটা। Unlike any other tech giants, Microsoft buys innovative startups and stuff. জ্যামরিনও মাইক্রোসফটের এরকম একটা সাবসিডিয়ারি। জ্যামরিনের শুরু বেশ আগে, ২০১৩ এর দিকে। মাইক্রোসফটের সাথে এর যাত্রা ২০১৬ থেকে।
C# ল্যাঙ্গুয়েজটা মাইক্রোসফটের একপ্রকার নিজের ঘরের। উইন্ডোজ বেজড যেকোনও অ্যাপ্লিকেশন তৈরিতে C# এর জুড়ি নাই। অথচ অন্য প্লাটফর্মে এই ল্যাঙ্গুয়েজের অবস্থা টালমাটাল। একটা সময় মোবাইল ডিভাইসের অ্যাপ্লিকেশন গুলো তৈরি করার জন্য নির্দিষ্ট ল্যাঙ্গুয়েজই ছিলো। যেমন অ্যান্ড্রয়েডের জন্য জাভা। iOS এর জন্য সুইফট বা অবজেক্টিভ-সি। জ্যামরিনের ফাউন্ডাররা চিন্তা করলো যে একই প্লাটফর্মে সব ধরনের মোবাইল অপারেটিং সিস্টেমের জন্য অ্যাপ্লিকেশন বানানোর ব্যবস্থা করলে কেমন হয়? এই লক্ষে তারা নিজস্ব IDE এর জন্য একটা প্লাগইন বানায়, Xamarin.Mac এর কাজ ছিলো C# দিয়ে এমন অ্যাপ্লিকেশন বানানো যেটা ম্যাক অপারেটিং সিস্টেমে রান করতে পারে। ২০১৩ এর মাথায় তারা জ্যামরিন ২.০ রিলিজ দেয় যার মধ্যে ছিলো Xamarin.Android এবং Xamarin.iOS । যথাক্রমে অ্যান্ড্রয়েড আর আইওএস প্লাটফর্মে C# বেজড অ্যাপ্লিকেশনের জন্য। তারপর ২০১৬ তে মাইক্রোসফট ঘোষনা দেয় ভিজুয়াল স্টুডিওতে ইন্টিগ্রেটেড জ্যামরিন ডেভেলপমেন্ট টুলের, যেটা আমরা অলরেডি ভিজুয়াল স্টুডিওর নতুন রিলিজ ভিজুয়াল স্টুডিও ২০১৭ এ পেয়ে গেছি।
জ্যামরিনের মুল লক্ষ হলো, যা কিছু জাভা, সুইফট বা অবজেক্টিভ-সি দিয়ে করা যায়, তার সবই C# আর ভিজুয়াল স্টুডিও দিয়ে করতে পারার ব্যবস্থা করা। জ্যামরিন যেটা করে সেটা হলো শেয়ারড C# লজিকের উপর প্লাটফর্ম গুলার C# কোড রান করা। এর মাধ্যমে যেই API গুলা জাভা বা সুইফট দিয়ে ব্যবহার করা যেত, সেটা C# দিয়েও করা যায়।
জ্যামরিনের দুইটা অ্যাপ্রোচ আছে, কোড রান করার। একটা হলো ন্যাটিভ অ্যাপ্রোচ আরেকটা Xamarin.Forms অ্যাপ্রোচ।
ন্যাটিভ অ্যাপ্রোচে যেটা করা হয় তা হলো শেয়ারড একটা C# কোড যেটা বিজনেস লজিক লেভেলে থাকে, সেটার উপর প্লাটফরম অনুযায়ী UI নিয়ে কাজ করা হয়। অ্যান্ড্রয়েডের জন্য আলাদা UI, iOS এর জন্য আলাদা UI এরকম।
Xamarin.Forms ওদের তুলনামূলক নতুন অ্যাপ্রোচ। তারা যেটা করেছে সেটা হলো অ্যাড্রয়েড, iOS, Windows এগুলার কমন কন্ট্রোল গুলো অ্যাবস্ট্রাক্টেড অবস্থায় রেখেছে। যেনো কন্ট্রোলটা কিছুটা হলেও জ্যামরিনের হাতে থাকে, একটু বেশী স্ট্রাকচারড থাকে।
এই ছবিটা দিয়ে জ্যামরিনের Xamarin .Forms এর ভেতরের আর্কিটেকটারটা দেখানো হয়েছে।
জ্যামরিন যেভাবে কাজ করেঃ
C# এর কমন কিছু লাইব্রেরি আছে যেমন System, System.Net, System.Data, System.Linq, System.Core। জ্যামরিনের মাধ্যমে এগুলোর সাথে প্লাটফর্ম রিলেটেড API গুলো ইনহেরিট করে নিয়ে আসা হয়। যেমন অ্যান্ড্রয়েড নিয়ে কাজ করতে চাইলে ActionBar, Text-to-speech বা iOS নিয়ে কাজ করতে চাইলে MapKit, UIKit এই টাইপের API গুলো ইউজ হয়। এতে যা হয় তা হলো C# এর কোডের মাধ্যমে এই API গুলো ব্যবহার করা যায়। API ব্যবহার করারও ব্যবস্থা আছে। iOS এর ক্ষেত্রে Ahead Of Time (AOT) বা অ্যান্ড্রয়েডের ক্ষেত্রে Just In Time (JIT) কম্পাইলেশন ব্যবহার করে যথাক্রমে .app এবং .apk ফাইল তৈরি করে নেয়া হয়। যেন যথার্থ অপারেটিং সিস্টেমে অ্যাপ গুলো চলতে পারে।
তাছাড়াও অপারেটিং সিস্টেম গুলোর আপডেট গুলো জ্যামরিন সব সময় ফলো করে। তাই নতুন নতুন API গুলো একেবারে শুরুতেই পাওয়া যাবে। ভিজুয়ার স্টুডিও ২০১৭ এ যেহেতু জ্যামরিনও ইন্টিগ্রেট করা হয়েছে, তাই বেশ সুবিধা পাওয়া যাবে
পরিশেষে যারা নতুন কিছু ট্রাই করে দেখতে চান বা আমার মত C# এর ফ্যান, তারা জ্যামরিন ট্রাই করে দেখতে পারেন। কারন এতদিন C# দিয়ে মোবাইলের অ্যাপ বিল্ড করা একতা স্বপ্নের মত ছিলো। সেটা এখন বাস্তব।
এই আর্টিকেলটা লিখতে যেই রিসোর্স গুলো ব্যবহার করা হয়েছেঃ
জ্যামরিনের মুল লক্ষ হলো, যা কিছু জাভা, সুইফট বা অবজেক্টিভ-সি দিয়ে করা যায়, তার সবই C# আর ভিজুয়াল স্টুডিও দিয়ে করতে পারার ব্যবস্থা করা। জ্যামরিন যেটা করে সেটা হলো শেয়ারড C# লজিকের উপর প্লাটফর্ম গুলার C# কোড রান করা। এর মাধ্যমে যেই API গুলা জাভা বা সুইফট দিয়ে ব্যবহার করা যেত, সেটা C# দিয়েও করা যায়।
জ্যামরিনের দুইটা অ্যাপ্রোচ আছে, কোড রান করার। একটা হলো ন্যাটিভ অ্যাপ্রোচ আরেকটা Xamarin.Forms অ্যাপ্রোচ।
ন্যাটিভ অ্যাপ্রোচে যেটা করা হয় তা হলো শেয়ারড একটা C# কোড যেটা বিজনেস লজিক লেভেলে থাকে, সেটার উপর প্লাটফরম অনুযায়ী UI নিয়ে কাজ করা হয়। অ্যান্ড্রয়েডের জন্য আলাদা UI, iOS এর জন্য আলাদা UI এরকম।
Xamarin.Forms ওদের তুলনামূলক নতুন অ্যাপ্রোচ। তারা যেটা করেছে সেটা হলো অ্যাড্রয়েড, iOS, Windows এগুলার কমন কন্ট্রোল গুলো অ্যাবস্ট্রাক্টেড অবস্থায় রেখেছে। যেনো কন্ট্রোলটা কিছুটা হলেও জ্যামরিনের হাতে থাকে, একটু বেশী স্ট্রাকচারড থাকে।
এই ছবিটা দিয়ে জ্যামরিনের Xamarin .Forms এর ভেতরের আর্কিটেকটারটা দেখানো হয়েছে।
জ্যামরিন যেভাবে কাজ করেঃ
C# এর কমন কিছু লাইব্রেরি আছে যেমন System, System.Net, System.Data, System.Linq, System.Core। জ্যামরিনের মাধ্যমে এগুলোর সাথে প্লাটফর্ম রিলেটেড API গুলো ইনহেরিট করে নিয়ে আসা হয়। যেমন অ্যান্ড্রয়েড নিয়ে কাজ করতে চাইলে ActionBar, Text-to-speech বা iOS নিয়ে কাজ করতে চাইলে MapKit, UIKit এই টাইপের API গুলো ইউজ হয়। এতে যা হয় তা হলো C# এর কোডের মাধ্যমে এই API গুলো ব্যবহার করা যায়। API ব্যবহার করারও ব্যবস্থা আছে। iOS এর ক্ষেত্রে Ahead Of Time (AOT) বা অ্যান্ড্রয়েডের ক্ষেত্রে Just In Time (JIT) কম্পাইলেশন ব্যবহার করে যথাক্রমে .app এবং .apk ফাইল তৈরি করে নেয়া হয়। যেন যথার্থ অপারেটিং সিস্টেমে অ্যাপ গুলো চলতে পারে।
তাছাড়াও অপারেটিং সিস্টেম গুলোর আপডেট গুলো জ্যামরিন সব সময় ফলো করে। তাই নতুন নতুন API গুলো একেবারে শুরুতেই পাওয়া যাবে। ভিজুয়ার স্টুডিও ২০১৭ এ যেহেতু জ্যামরিনও ইন্টিগ্রেট করা হয়েছে, তাই বেশ সুবিধা পাওয়া যাবে
পরিশেষে যারা নতুন কিছু ট্রাই করে দেখতে চান বা আমার মত C# এর ফ্যান, তারা জ্যামরিন ট্রাই করে দেখতে পারেন। কারন এতদিন C# দিয়ে মোবাইলের অ্যাপ বিল্ড করা একতা স্বপ্নের মত ছিলো। সেটা এখন বাস্তব।
এই আর্টিকেলটা লিখতে যেই রিসোর্স গুলো ব্যবহার করা হয়েছেঃ
Comments
Post a Comment