ক্লোজার ডেস্কটপ অ্যাপ্লিকেশন শিপিং কি বাস্তববাদী?


25

আমি বর্তমানে একটি ডেস্কটপ জাভা অ্যাপ্লিকেশন শিপিং করছি। এটি একটি সরল পুরাতন জাভা 5 জাভা / সুইং অ্যাপ্লিকেশন এবং এখন পর্যন্ত সবকিছু দুর্দান্তভাবে কাজ করেছে। জাভা 5 টার্গেট করা হয়েছিল কারণ কিছু ব্যবহারকারী ওএস এক্স সংস্করণ / কম্পিউটারে ছিলেন যা জাভা 6 কখনই না থাকতে পারে (আমরা শীঘ্রই এই সীমাবদ্ধতাটি সরিয়ে নতুন জাভাতে যেতে পারি এবং জাভা 5 এর সাথে আটকে থাকা আমার ব্যবহারকারীদের কেবল ত্যাগ করতে পারি)।

আমি দ্রুত ক্লোজুরের সাথে দ্রুত গতিতে উঠছি তবে আমি এখনও ক্লোজার-টু জাভা এবং জাভা-টু-ক্লোজারে এখনও সত্যিই কিছু করতে পারি নি এবং আমি ভাবছিলাম যে জাভা অ্যাপ্লিকেশনটির পরিবর্তে ক্লোজার ডেস্কটপ অ্যাপ্লিকেশনটি পাঠানো বাস্তবসম্মত কিনা? ?

আমি যে অ্যাপ্লিকেশনটি শিপিং করছি সেটি বর্তমানে সমস্ত .jar সহ প্রায় 12 এমবি, সুতরাং ক্লোজুর যুক্ত করার বিষয়টি খুব বেশি সমস্যার হিসাবে দেখা যায় না।

আমার পরিকল্পনাটি ক্লোজুরে কল জাভা এপিআইগুলি হবে: আমার অ্যাপ্লিকেশনটি ইতিমধ্যে কয়েকটি স্বতন্ত্র জারে বিভক্ত।

যদি আমি বুঝতে পারি যে জাভা থেকে ক্লোজারকে কল করা কলজুর থেকে জাভা কোড কল করার চেয়ে কঠিন, সে কারণেই আমি মূলত সমস্ত ইউআই (ইউআই এর অংশ, পুনরায় লেখার জন্য সুইং উপাদান এবং স্ব-তৈরি বাফার্ডআইমেজগুলি মিশ্রিত করার কারণে যে কোনও উপায়ে পুনরায় লেখার প্রয়োজন রয়েছে) রেটিনা ডিসপ্লে) এবং ক্লোজুরে থেকে সমস্ত 'ওয়্যারিং' করুন।

সুতরাং যে সমস্যার মুখোমুখি হচ্ছি: এটি কি ক্লোজার ডেস্কটপ অ্যাপ্লিকেশনটি পাঠানো বাস্তবসম্মত? (এটি অবশ্যই খুব বেশি বিস্তৃত বলে মনে হচ্ছে না তবে এর পরে সাধারণ জাভা ডেস্কটপ অ্যাপ্লিকেশনগুলি প্রেরণ করা সাধারণ বিষয় নয় এবং আমি এটি যেভাবেই করছি)

প্রযুক্তিগতভাবে, কী করা দরকার? (একটি জাভা অ্যাপ্লিকেশন শিপিংয়ের তুলনায়)


1
সিসাউ একবার দেখুন , এটি জেভিএম ভিত্তিক জিইউআই অ্যাপস (সুইং-ভিত্তিক) তৈরির জন্য ক্লোজার ডিএসএল।
মাইকেল ক্লেশিন

সিসো দেখে মনে হচ্ছে এটি জিইউআই তৈরি করতে এবং তারগুলি করতে কার্যকর প্রমাণিত হতে পারে তবে আমার বিদ্যমান জাভা এপিআই / লাইব্রেরিগুলির সংহতকরণ সম্পর্কে কী বলা যায়? সব কি বেদাহ হওয়া উচিত? (আমি যাইহোক এখানে এখানে রিপোর্ট করব তবে ক্লোজুরে স্যুইচ করার চেষ্টা করার আগে আমি কিছুটা বেশি প্রতিক্রিয়া জানাতে চাই)
সিড্রিক মার্টিন

ClojureScript + (NW.js বা পরমাণু ইলেকট্রন) কাজটি করবে।
মারিও টি ল্যাঞ্জা

উত্তর:


28

হ্যাঁ, এটি পুরোপুরি বাস্তবসম্মত - অনেক লোক এখনও এটি করছে বলে মনে হয় না তবে আমি মনে করি এটি কেবল সময়ের বিষয় (ক্লোজুর মোটামুটি নতুন!)

আমি ব্যক্তিগতভাবে ক্লজুরে একটি ওপেন-সোর্স গেম লিখেছি যা একটি সুইং অ্যাপ্লিকেশন (https://github.com/mikera/ironclad) হিসাবে চালিত হয় তাই ভাগ করে নেওয়ার জন্য কিছু অভিজ্ঞতা আছে যা দরকারী হতে পারে।

  • গড়ে আপনি সম্ভবত জাভা এপিআই-তে ক্লোজার কল করতে চান। এটি বেশিরভাগই সাধারণ জ্ঞান - জাভাতে সমস্ত দুর্দান্ত লাইব্রেরি রয়েছে, ক্লোজুরে জিনিসগুলিকে একসাথে আটকানোর জন্য আরও উত্পাদনশীল ভাষা।
  • আপনি main(...)কোডটির ক্লোজার অংশটি প্রবর্তন করে এমন একটি পদ্ধতি সহ একটি জাভা ভিত্তিক "লোডার" লিখতে চাইতে পারেন । অন্যান্য জিনিসের মধ্যে, এর অর্থ হ'ল আপনাকে আপনার ক্লোজার কোডটি সংকলন করতে হবে না। উদাহরণের জন্য এখানে কোড: https://github.com/mikera/ironclad/blob/master/src/main/java/ic/ IronClad.java
  • আপনার অ্যাপ্লিকেশনটি অতিরিক্ত প্রারম্ভকালীন সময় লোডিং / সংকলন ক্লোজার কোডের জন্য অনুমতি দেওয়ার সময় একটি স্প্ল্যাশ স্ক্রিন নিক্ষেপের মতো কাজগুলি করতে চাইবেন। এটি সম্ভবত একটি সাধারণ অ্যাপ্লিকেশন শুরুর সময়টিতে 1-2 সেকেন্ড যুক্ত করে, এটি যথেষ্ট যে আপনার ব্যবহারকারী সম্ভবত কিছু প্রতিক্রিয়ার প্রশংসা করবে। আপনি যদি চালাক হন, আপনি ব্যাকগ্রাউন্ডে অন্য স্টাফগুলি বোঝার সময় পুরো ইউআইটি ফেলে দিতে পারেন তবে এটির জন্য কিছু যত্ন প্রয়োজন এবং আপনার সম্মতি কুং-ফু পরীক্ষা করতে পারে :-)
  • আপনি জাভা এবং ক্লোজারকে তুলনামূলকভাবে অবাধে মিশ্রিত করতে পারেন যেহেতু তারা পিছন দিকে এবং ফরোয়ার্ডগুলি মোটামুটি স্বচ্ছভাবে কল করতে পারে। আপনি যদি জাভা ক্লোজারকে কল করতে চান তবে কেবলমাত্র জটিলতাটি হ'ল জাভা সংকলনের সময় যে শ্রেণি / ইন্টারফেসটি কল করছে তা জানতে পছন্দ করে। একটি ভাল বিকল্প হল ক্লোজার কোডটি কার্যকরভাবে রেফাইয়ের মাধ্যমে একটি অ্যালিডি -সংকলিত জাভা ইন্টারফেস প্রয়োগ করতে হবে
  • আমি এক্লিপ্স / মাভেন ব্যবহার করে ক্লোজার এবং জাভা কোড উভয় সমন্বিত একক জারে একটি অ্যাপ্লিকেশন বিকাশ করা এবং প্যাকেজ করা বেশ সহজ পেয়েছি। ক্লোজার কোডটি সহজেই স্থাপন করা যায় src/main/resourcesএবং রানটাইমে লোড / সংকলন হয়ে যায়।
  • তোমার মত Clojure গুই চাদরে ব্যবহার করতে পারেন ঢেঁকিকল যদি আপনি চান। এটি বেশ ভাল বলে মনে হচ্ছে। আমি এটি ব্যবহারের বিরুদ্ধে সিদ্ধান্ত নিয়েছি, মূলত কারণ আমি সরাসরি সুইংয়ের সাথে কিছু ফিডযুক্ত জিনিস করতে চেয়েছিলাম এবং মনে হয়নি যে আমার বিমূর্ততার একটি অতিরিক্ত স্তর প্রয়োজন।

দুর্দান্ত উত্তর ... +1। আপনার উত্সকোডের লিঙ্কটির জন্য খুব আকর্ষণীয় এবং ধন্যবাদ: এটি অবশ্যই সহায়তা করবে। এখন আমার উন্নয়নের পরিবেশটি "স্থিতিশীল" হওয়া দরকার (সর্বাধিক লেইনিঞ্জেন + ক্লোজার-মোড + nrepl.el চেষ্টা করেছি এবং এটি এখনও কাজ করছে না;)
সিড্রিক মার্টিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.