প্রকল্প সম্পর্কে

কোডনেম ওয়ান হলো একটি ওপেন-সোর্স ফ্রেমওয়ার্ক, যা একটি একক কোডবেস থেকে জাভায় নেটিভ অ্যাপ্লিকেশন তৈরির সুযোগ দেয়। একটি প্রকল্প একইসঙ্গে ফোন, ট্যাবলেট, ডেস্কটপ, ব্রাউজার, টিভি, ঘড়ি এবং গাড়ির ডিসপ্লেকে লক্ষ্য করতে পারে, যেখানে অ্যাপ্লিকেশন লজিক ও UI শেয়ার করা হয়। ফ্রেমওয়ার্কটি অ্যাপ্লিকেশনের সঙ্গে আসা UI নিজস্বভাবে রেন্ডার করে, তাই OS আপডেটে প্ল্যাটফর্ম চুপচাপ সেই কম্পোনেন্টগুলো প্রতিস্থাপন করতে পারে না। প্রয়োজন হলে নেটিভ ইন্টারফেস ও পিয়ার কম্পোনেন্ট প্ল্যাটফর্ম SDK এবং প্ল্যাটফর্ম ভিউতে সরাসরি অ্যাক্সেস দেয়। সমর্থিত টার্গেটের মধ্যে রয়েছে অ্যান্ড্রয়েড ও iOS; নেটিভ Windows, Linux, macOS এবং JVM ডেস্কটপ; জাভাস্ক্রিপ্ট অ্যাপ্লিকেশন ও মাল্টিথ্রেডিংসহ ইনস্টলযোগ্য PWA; Apple TV এবং Android TV/Google TV; Apple Watch ও Wear OS; এবং Apple CarPlay ও Android Auto। রিপোজিটরিতে রয়েছে পোর্টেবল UI টুলকিট, নেটিভ কম্পাইলার ও পোর্ট, ডেস্কটপ সিমুলেটর, CSS ও ভিজ্যুয়াল ডিজাইন টুল, Maven ইন্টিগ্রেশন, টেস্টিং অবকাঠামো এবং একটি ঐচ্ছিক ক্লাউড-বিল্ড ক্লায়েন্ট। README-তে বর্ণিত প্রধান সক্ষমতাগুলো: - কম্পোনেন্ট লাইব্রেরি, লেআউট, অ্যানিমেশন, ভেক্টর গ্রাফিক্স, CSS থিম, ডার্ক মোড, ডেস্কটপ ইনপুট, ফোল্ডেবল সাপোর্ট এবং কাস্টম ড্রয়িংসহ পোর্টেবল UI। - প্রতিটি টার্গেটের অফিসিয়াল টুলচেইন দিয়ে তৈরি নেটিভ আউটপুট; নেটিভ Windows, Linux এবং Apple টার্গেট ব্যবহারকারীর ডিভাইসে JVM ছাড়াই স্বয়ংসম্পূর্ণ এক্সিকিউটেবল তৈরি করে। - নোটিফিকেশন, ব্যাকগ্রাউন্ড কাজ, লোকেশন ও ম্যাপ, ক্যামেরা ও মিডিয়া, শেয়ারিং, কনট্যাক্ট, NFC, Bluetooth LE, Wi-Fi, USB, মোশন সেন্সর, বায়োমেট্রিক্স, সিকিউর স্টোরেজ এবং প্রিন্টিংয়ের জন্য ডিভাইস ও OS ইন্টিগ্রেশন। - REST, WebSocket, GraphQL, gRPC-Web, SQLite ও ORM, ডিপ লিংক ও রাউটিং, পাসকি ও OIDC, পেমেন্ট, বিজ্ঞাপন, অ্যানালিটিক্স এবং ক্র্যাশ সুরক্ষাসহ অ্যাপ্লিকেশন সেবা। - পোর্টেবল GPU/3D ও গেম API, AR ও VR, AI/LLM ইন্টিগ্রেশন, স্পিচ ও ট্রান্সক্রিপশন, TensorFlow Lite এবং ML Kit লাইব্রেরিসহ উন্নত অভিজ্ঞতা। - ইনস্ট্যান্ট সিমুলেটর, ডিভাইস স্কিন, কম্পোনেন্ট ও নেটওয়ার্ক ইন্সপেক্টর, CSS লাইভ আপডেট, JUnit ও স্ক্রিনশট টেস্টিং, অন-ডিভাইস ডিবাগিং, Maven বিল্ড এবং CI সাপোর্টসহ টুলিং। - Swift, Objective-C, Kotlin, Java, C, JavaScript বা JavaSE কোডে লেখা নেটিভ ইন্টারফেসের মাধ্যমে নেটিভ এস্কেপ হ্যাচ, এবং কোডনেম ওয়ান UI-তে নেটিভ ভিউ মেশানো। এটি কীভাবে কাজ করে: কোডনেম ওয়ান অ্যাপকে ওয়েব ভিউতে মুড়ে না দিয়ে টার্গেট প্ল্যাটফর্মের বিল্ড টুল ও API ব্যবহার করে। Apple প্ল্যাটফর্ম, নেটিভ Windows এবং নেটিভ Linux-এ ParparVM পৌঁছানোযোগ্য JVM বাইটকোডকে C-তে অনুবাদ করে, এবং প্ল্যাটফর্ম টুলচেইন তা স্বয়ংসম্পূর্ণ নেটিভ এক্সিকিউটেবলে কম্পাইল করে। অ্যান্ড্রয়েডে অ্যাপটি একটি জেনারেট করা Android Gradle প্রকল্পে প্যাকেজ করা হয়। ওয়েবে জাভাস্ক্রিপ্ট পোর্ট অ্যাপটিকে PWA ও মাল্টিথ্রেডিং সাপোর্টসহ একটি ব্রাউজার রানটাইমে কম্পাইল করে। JavaSE পোর্ট JVM-এ চলে এবং ডেস্কটপ অ্যাপ্লিকেশন ও ডেভেলপমেন্ট সিমুলেটর চালায়। শুরু করা: start.codenameone.com-এ একটি Maven প্রকল্প তৈরি করুন, তারপর IntelliJ IDEA, NetBeans, Eclipse, VS Code বা অন্য Maven-সক্ষম IDE-তে খুলুন। সোর্স থেকে ফ্রেমওয়ার্ক বিল্ড করতে JDK 8 প্রয়োজন, আর কোডনেম ওয়ান অ্যাপ্লিকেশন চালাতে JDK 11 থেকে 25 পর্যন্ত সমর্থিত। Maven ও Ant বিল্ড পথ নথিভুক্ত, সঙ্গে ইউনিট টেস্ট ও নমুনা। সম্প্রসারণযোগ্যতা: থার্ড-পার্টি লাইব্রেরি (cn1libs) নেটিভ OS কোড অন্তর্ভুক্ত করতে পারে, এবং স্বয়ংক্রিয়ভাবে তৈরি একটি লাইব্রেরি তালিকা পাওয়া যায়। ডকুমেন্টেশনে রয়েছে JavaDoc, ডেভেলপার গাইড, টিউটোরিয়াল, ব্লগ এবং কমিউনিটি ফোরাম। অবদান মডেল: বাইরের পুল রিকোয়েস্ট নিষ্ক্রিয়, কারণ ফ্রেমওয়ার্ক পরিবর্তন ক্রস-প্ল্যাটফর্ম বিল্ড ও স্ক্রিনশট পাইপলাইনের সঙ্গে জড়িত; মেইনটেইনাররা সেই ম্যাট্রিক্স চালানোর পর পরিবর্তনগুলো সংযুক্ত করেন। ব্যবহারকারীদের পুনরুৎপাদনযোগ্য ইস্যু দাখিল করতে এবং GitHub Discussions-এ API ডিজাইন নিয়ে আলোচনা করতে উৎসাহিত করা হয়।