কখন স্টোরিবোর্ড ব্যবহার করবেন এবং কখন এক্সআইবি ব্যবহার করবেন


196

কোনও আইওএস প্রকল্পে স্টোরিবোর্ডগুলি কখন ব্যবহার করতে হবে এবং কখন এক্সআইবি ব্যবহার করতে হবে সে সম্পর্কে কোনও গাইডলাইন রয়েছে? প্রত্যেকের উপকারিতা এবং বিপরীত কি এবং তারা প্রতিটি পরিস্থিতিতে কি উপযুক্ত?

কাছাকাছি আমি বলতে পারি যে স্টোরিবোর্ড সেগগুলি ব্যবহার করা পরিষ্কার নয় যখন আপনি দেখেন নিয়ন্ত্রকগুলি ডায়নামিক ইউআই উপাদানগুলি (মানচিত্রের পিনের মতো) দ্বারা চালিত হয়।


4
আপনি যদি চান যে আপনার অ্যাপটি আইওএস 4 টিও চালু আছে, আপনার কোনও বিকল্প নেই: আপনি সেই ক্ষেত্রে স্টোরিবোর্ড ব্যবহার করতে পারবেন না
এমিনেজি

এসও তে "অবিশ্বাস্যভাবে অতিক্রান্ত" কিউএর দুর্দান্ত উদাহরণ !!
ফ্যাটি

উত্তর:


174

আমি স্টিরিবোর্ডগুলি ব্যবহার করে একাদশটি ব্যাপকভাবে ব্যবহার করেছি এবং দুটি প্রকল্প সম্পন্ন করেছি। আমার শিক্ষাগুলি হ'ল:

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

আমি মনে করি স্টোরিবোর্ডগুলি ইউআই বাস্তবায়নের জন্য সঠিক দিকের একটি পদক্ষেপ এবং আশা করি অ্যাপল ভবিষ্যতের আইওএস সংস্করণগুলিতে তাদের প্রসারিত করবে। তাদের "সিঙ্গল ফাইল" সমস্যাটি সমাধান করা দরকার যদিও অন্যথায় তারা বড় প্রকল্পগুলির জন্য আকর্ষণীয় হবে না।

যদি আমি একটি ছোট আকারের অ্যাপ্লিকেশন শুরু করি এবং কেবল iOS5 সামঞ্জস্য করতে পারি তবে আমি স্টোরিবোর্ডগুলি ব্যবহার করব। অন্যান্য সমস্ত ক্ষেত্রে আমি একাদশকে আটকে থাকি।


37
দুটি জিনিস. 1) আপনি স্টোরিবোর্ডগুলিতে কাস্টম টেবিল সেল তৈরি করতে পারেন (তারা তাদের প্রোটোটাইপ সেল বলে) এবং 2) আপনি একাধিক স্টোরিবোর্ড ফাইল ব্যবহার করতে পারেন। আমার উত্তরটি এখানে দেখুন: স্ট্যাকওভারফ্লো . com / a / 9610972 / 937822 কীভাবে তা বিশদের জন্য।
lnafziger

10
ধন্যবাদ। আমি আপনার উত্তরের লিঙ্কটি যুক্ত করেছি। কাস্টম সেলগুলির জন্য: প্রোটোটাইপ সেলগুলি আমার পক্ষে কাজ করে না কারণ একাধিক দর্শন জুড়ে আমার কাস্টম সেলগুলি পুনরায় ব্যবহার করতে হবে। তাই আমাকে এক্সআইবিতে ফিরে যেতে হয়েছিল।
henning77

2
এক্সকোড ৫.েক্সে স্টোরিবোর্ডগুলিকে মার্জ করার ক্ষেত্রে উল্লেখযোগ্যভাবে উন্নতি করা হয়েছে কারণ এক্সএমএল মার্কআপটি ব্যাপকভাবে সরল করা হয়েছে।
স্কট আহটেন


1
"যদি আপনার মধ্যে প্রচুর মতামত এবং প্রচুর ক্রস নেভিগেশন থাকে তবে স্টোরিবোর্ডের ভিউটি বিভ্রান্ত হয়ে যায় এবং পরিষ্কার রাখার জন্য খুব বেশি কাজ হয়ে যায়" আমি তাতে একমত নই, এটি করার জন্য আপনার ঠিক প্রবাহটি বের করতে হবে, আপনি পারেন একটি উপযুক্ত নকশা সঙ্গে segues বেশিরভাগ এড়ানো।
পাবলো এ

221

আপডেট 1/12/2016 : এটি ২০১ 2016 এবং আমি এখনও স্টোরবোর্ডগুলিতে নয় বরং কোডগুলিতে আমার ইউআই রাখার পছন্দ করি। বলা হচ্ছে, স্টোরিবোর্ডগুলি অনেক দূর এগিয়েছে। আমি এই পোস্ট থেকে সমস্ত পয়েন্ট মুছে ফেলেছি যা কেবল 2016 এ আর প্রয়োগ হয় না।

আপডেট 4/24/2015 : আকর্ষণীয়ভাবে অ্যাপল এমনকি তাদের সম্প্রতি খোলা সর্বাধিক গবেষণা গবেষণা স্টোরিবোর্ডগুলি ব্যবহার করে না যেমন পিটার স্টেইনবার্গার লক্ষ্য করেছেন ("ইন্টারফেস বিল্ডার" শিরোনামের অধীনে)।

আপডেট 6/10/2014 : প্রত্যাশিত হিসাবে, অ্যাপল স্টোরিবোর্ড এবং এক্সকোড উন্নত করে। আইওএস 7 এবং নীচে প্রয়োগ করা কিছু পয়েন্টগুলি আইওএস 8-র ক্ষেত্রে আর প্রয়োগ হয় না (এবং এখন এটিরূপে চিহ্নিত হয়েছে)। সুতরাং স্টোরিবোর্ডগুলির অন্তর্নিহিত এখনও ত্রুটিগুলি থাকা অবস্থায়, আমি আমার পরামর্শটি যেখানে সঠিকভাবে বোঝায় সেগুলি বেছে বেছে ব্যবহার করার জন্য ব্যবহার না করা থেকে সংশোধন করি ।

এমনকি এখন যদিও আইওএস 9 শেষ হয়েছে, আমি পরামর্শ দেব বিরুদ্ধেস্টোরিবোর্ডগুলি ব্যবহার করবেন কিনা তা সিদ্ধান্ত নেওয়ার সময় সতর্কতা অবলম্বন করা। আমার কারণগুলি এখানে:

  • স্টোরিবোর্ডগুলি রানটাইমের সময় ব্যর্থ হয়, সংকলনের সময় নয় : আপনার কোনও সেগু নামে টাইপ আছে বা আপনার স্টোরিবোর্ডে এটি ভুলভাবে সংযুক্ত হয়েছে? রানটাইমে এটি ফুরিয়ে যাবে। আপনি একটি কাস্টম ইউআইভিউকন্ট্রোলার সাবক্লাস ব্যবহার করেন যা আপনার স্টোরিবোর্ডে আর বিদ্যমান নেই? রানটাইমে এটি ফুরিয়ে যাবে। আপনি যদি কোডগুলিতে এই জাতীয় জিনিসগুলি করেন, আপনি সংকলনের সময় তাড়াতাড়ি এগুলি ধরবেন। আপডেট : আমার নতুন সরঞ্জাম স্টোরিবোর্ডলিন্ট বেশিরভাগ ক্ষেত্রেই এই সমস্যাটি সমাধান করে।

  • স্টোরিবোর্ডগুলি দ্রুত বিভ্রান্ত হয় : আপনার প্রকল্পটি বাড়ার সাথে সাথে আপনার স্টোরিবোর্ডটি নেভিগেট করা আরও ক্রমশ আরও কঠিন হয়ে যায় difficult এছাড়াও, যদি একাধিক ভিউ কন্ট্রোলারগুলির একাধিক অন্যান্য ভিউ কন্ট্রোলারগুলিতে একাধিক বিভাজন থাকে, আপনার স্টোরিবোর্ডটি দ্রুত স্প্যাগেটির বাটির মতো দেখতে শুরু করবে এবং আপনি যে ভিউ কন্ট্রোলারটি খুঁজছেন তা সন্ধানের জন্য আপনি নিজেকে জুম ইন এবং আউট এবং সমস্ত জায়গায় স্ক্রোল করতে দেখবেন find জন্য এবং কি segue পয়েন্ট কোথায় তা খুঁজে বের করার জন্য। আপডেট : এই সমস্যা বেশিরভাগই বর্ণনা অনুযায়ী, বিভাজন আপনার স্টোরিবোর্ড আপ সমাধান করা যেতে পারে একাধিক Storyboards মধ্যে Pilky দ্বারা এই নিবন্ধটি এবং রবার্ট ব্রাউন দ্বারা এই নিবন্ধটি

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

  • স্টোরিবোর্ডগুলি কোড রিভিউগুলিকে কঠিন বা প্রায় অসম্ভব করে তোলে : পিয়ার কোড পর্যালোচনাগুলি আপনার দলে করা একটি দুর্দান্ত জিনিস। যাইহোক, আপনি যখন স্টোরিবোর্ডে পরিবর্তন করেন, তখন কোনও ভিন্ন বিকাশকারী দিয়ে এই পরিবর্তনগুলি পর্যালোচনা করা প্রায় অসম্ভব। আপনি যেগুলি টানতে পারবেন তা হ'ল একটি বিশাল এক্সএমএল ফাইলের আলাদা। সত্যিকার অর্থে কী পরিবর্তন হয়েছে এবং যদি সেই পরিবর্তনগুলি সঠিক হয় বা তারা কিছু ভেঙে দেয় তবে তা সত্যই শক্ত।

  • স্টোরিবোর্ডগুলি কোডের পুনরায় ব্যবহারে বাধা দেয় : আমার আইওএস প্রকল্পগুলিতে, আমি সাধারণত একটি ক্লাস তৈরি করি যা সমস্ত অ্যাপ্লিকেশন জুড়ে আমি সমস্ত বর্ণ এবং ফন্ট এবং মার্জিন এবং ইনসেটগুলিকে ধারণ করে যা এটি একটি ধারাবাহিক বর্ণন এবং অনুভূতি দেয়: এটি যদি আমার এক লাইনের পরিবর্তন হয় তবে পুরো অ্যাপ্লিকেশনের জন্য সেই মানগুলির মধ্যে যে কোনও একটি সমন্বয় করুন। আপনি যদি স্টোরিবোর্ডে এই জাতীয় মানগুলি সেট করেন, আপনি সেগুলি সদৃশ করুন এবং যখন আপনি সেগুলি পরিবর্তন করতে চান তখন প্রতিটি একক ঘটনা খুঁজে পেতে হবে। সম্ভাবনা বেশি যে আপনি একটি মিস করেছেন, কারণ স্টোরিবোর্ডগুলিতে কোনও অনুসন্ধান এবং প্রতিস্থাপন নেই।

  • স্টোরিবোর্ডগুলিকে ধ্রুবক প্রসঙ্গের স্যুইচগুলির প্রয়োজন : আমি নিজেকে স্টোরিবোর্ডের তুলনায় কোডে আরও দ্রুত কাজ করে এবং নেভিগেট করতে দেখি। যখন আপনার অ্যাপ স্টোরিবোর্ড ব্যবহার করে, আপনি ক্রমাগত আপনার প্রসঙ্গটি স্যুইচ করেন: "ওহ, আমি অন্য ভিউ কন্ট্রোলারটি লোড করার জন্য এই টেবিল ভিউ সেলটিতে একটি ট্যাপ চাই I আমাকে এখন স্টোরিবোর্ডটি খুলতে হবে, সঠিক দর্শন নিয়ামকটি খুঁজে বের করতে হবে, একটি নতুন সেগু তৈরি করতে হবে অন্যান্য ভিউ কন্ট্রোলারের কাছে (যা আমারও সন্ধান করতে হবে), সেগুকে একটি নাম দিন, সেই নামটি মনে রাখবেন (স্টোরিবোর্ডগুলিতে আমি কনস্ট্যান্ট বা ভেরিয়েবল ব্যবহার করতে পারি না), কোডটিতে ফিরে যান এবং আশা করি আমি এর নামটি ভুল টাইপ করব না যেটি আমার প্রস্তুতির জন্য সেগু পদ্ধতিটির জন্য সেগমেন্ট। আমি কীভাবে ইচ্ছা করি আমি যেখানেই আছি ঠিক সেখানে 3 লাইন কোড টাইপ করতে পারতাম! " না, এটা মজা নয়। কোড এবং স্টোরিবোর্ডের মধ্যে (এবং কীবোর্ড এবং মাউসের মধ্যে) স্যুইচিং পুরানো দ্রুত হয়ে যায় এবং আপনাকে ধীর করে দেয়।

  • স্টোরিবোর্ডগুলি রিফ্যাক্টর করা শক্ত : আপনি যখন নিজের কোডটি রিফেক্টর করেন, আপনাকে অবশ্যই নিশ্চিত করতে হবে যে এটি এখনও আপনার স্টোরিবোর্ডের প্রত্যাশার সাথে মেলে। আপনি যখন আপনার স্টোরিবোর্ডে জিনিসগুলি ঘুরে দেখেন, আপনি কেবল রানটাইমে খুঁজে পাবেন যদি তা এখনও আপনার কোড সহ কাজ করে। এটি আমার কাছে মনে হয় যেন দুটি পৃথিবী সিঙ্ক করে রাখতে হয়। এটি ভঙ্গুর বোধ করে এবং আমার নম্র মতামতকে হতাশ করে।

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

  • Storyboards দেবেন না আপনি বিশেষ দৃশ্য কন্ট্রোলার ধরণ পরিবর্তন : আপনি একটি পরিবর্তন করতে চান UITableViewControllerএকটি মধ্যে UICollectionViewController? না কোনও সমতলে UIViewController? স্টোরিবোর্ডে সম্ভব নয়। আপনাকে পুরানো ভিউ কন্ট্রোলারটি মুছতে হবে এবং একটি নতুন তৈরি করতে হবে এবং সমস্ত বিভাগগুলি পুনরায় সংযুক্ত করতে হবে। কোডে এমন পরিবর্তন করা অনেক সহজ।

  • স্টোরিবোর্ডগুলি আপনার প্রকল্পে দুটি অতিরিক্ত দায় যুক্ত করে : (1) স্টোরিবোর্ড সম্পাদক সরঞ্জাম যা স্টোরিবোর্ড এক্সএমএল উত্পন্ন করে এবং (2) রানটাইম উপাদান যা এক্সএমএলকে বিশ্লেষণ করে এবং এটি থেকে ইউআই এবং নিয়ামক অবজেক্ট তৈরি করে। উভয় অংশে বাগ থাকতে পারে যা আপনি ঠিক করতে পারবেন না।

  • স্টোরিবোর্ডগুলি আপনাকে একটিতে একটি সংক্ষিপ্তসার যোগ করতে দেয় নাUIImageView : কে কেন জানে।

  • স্টোরিবোর্ডগুলি আপনাকে স্বতন্ত্র ভিউ (-কন্ট্রোলার) এর জন্য অটো লেআউট সক্ষম করতে দেয় না: স্টোরিবোর্ডে অটো লেআউট বিকল্পটি চেক / চেক করে স্টোরিবোর্ডে সমস্ত নিয়ন্ত্রককে পরিবর্তন প্রয়োগ করা হয়। (এই দফার জন্য সাভা মাজারকে ধন্যবাদ!)

  • স্টোরিবোর্ডগুলির পিছনে সামঞ্জস্যতা ভাঙার উচ্চ ঝুঁকি রয়েছে : এক্সকোড কখনও কখনও স্টোরিবোর্ড ফাইলের ফর্ম্যাট পরিবর্তন করে এবং কোনওভাবেই গ্যারান্টি দেয় না যে আপনি আজ থেকে কয়েক বছর বা কয়েক মাস পরে তৈরি করেছেন স্টোরিবোর্ড ফাইলগুলি খুলতে সক্ষম হবেন। (এই বিষয়টির জন্য চিন্তাভাবনার জন্য ধন্যবাদ। মূল মন্তব্য দেখুন )

  • স্টোরিবোর্ডগুলি আপনার কোডটিকে আরও জটিল করে তুলতে পারে : আপনি যখন কোডটিতে আপনার ভিউ কন্ট্রোলার তৈরি করেন, আপনি পছন্দসই initপদ্ধতিগুলি তৈরি করতে পারেন , উদাহরণস্বরূপ initWithCustomer:। এইভাবে, আপনি customerআপনার ভিউ কন্ট্রোলারের অভ্যন্তরটিকে অপরিবর্তনীয় করে তুলতে পারেন এবং নিশ্চিত করতে পারেন যে কোনও দৃশ্য ছাড়াই এই দর্শন নিয়ামকটি তৈরি করা যায় না customer। স্টোরিবোর্ডগুলি ব্যবহার করার সময় এটি সম্ভব নয়। prepareForSegue:sender:পদ্ধতিটি কল করার জন্য আপনাকে অপেক্ষা করতে হবে এবং তারপরে আপনাকে customerসম্পত্তিটি আপনার ভিউ কন্ট্রোলারের উপর সেট করতে হবে , যার অর্থ আপনাকে এই সম্পত্তিটি পরিবর্তনযোগ্য করে তুলতে হবে এবং আপনাকে কোনও customerবস্তু ছাড়াই ভিউ কন্ট্রোলার তৈরি করার অনুমতি দিতে হবে । আমার অভিজ্ঞতায় এটি আপনার কোডটিকে ব্যাপকভাবে জটিল করে তুলতে পারে এবং আপনার অ্যাপ্লিকেশনটির প্রবাহ সম্পর্কে যুক্তিযুক্ত করে তোলে। আপডেট 9/9/16: ক্রিস জজম্বাক একটি লিখেছিলেনএই সমস্যা সম্পর্কে দুর্দান্ত নিবন্ধ

  • এটি ম্যাকডোনাল্ডস : মাইক্রোসফ্ট সম্পর্কে স্টিভ জবসের ভাষায় এটি বলতে: এটি ম্যাকডোনাল্ডের (ভিডিও) !

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

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

তবে আমি সম্মত হই যে কোডটিতে আপনার সমস্ত ইউআই রেখে দেওয়া প্রতিটি প্রকল্পের জন্য এক-আকারের ফিট-সব সমাধান নাও হতে পারে। যদি আপনার আইপ্যাড ইউআই নির্দিষ্ট জায়গায় আপনার আইফোন ইউআই থেকে অনেক বেশি পৃথক হয়, তবে কেবলমাত্র সেই অঞ্চলগুলির জন্য একটি এক্সআইবি তৈরি করা বুদ্ধিমান হতে পারে।

উপরে বর্ণিত অনেকগুলি সমস্যা অ্যাপল দ্বারা সমাধান করা যেতে পারে এবং আমি আশা করি তারা এটি করবে।

শুধু আমার দুই সেন্ট।

আপডেট : এক্সকোড 5-এ অ্যাপল স্টোরিবোর্ড ছাড়াই একটি প্রকল্প তৈরির বিকল্পটি সরিয়ে নিয়েছে। আমি একটি ছোট স্ক্রিপ্ট লিখেছি যা Xcode 4 এর টেমপ্লেটগুলি (স্টোরিবোর্ড-অপ্ট-আউট বিকল্প সহ) Xcode 5 তে পোর্ট করে: https://github.com/jfahrenkrug/Xcode4templates


45
স্টোরি বোর্ডের ভক্ত না, তাই না? :)
লজিকোলজিস্ট

3
@ লোগিকোলজিস্ট হাহা, না, আসলেই না। স্টোরিবোর্ড সহ এবং ছাড়া আইওএস প্রকল্পে কাজ করার পরে আমি এই সিদ্ধান্তে পৌঁছেছি যে আমি তাদের সত্যিই পছন্দ করি না :)
জোহানেস ফারেনক্রুগ

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

4
@ রব হ্যাঁ, আমি তাদের ধীর হওয়ার বিষয়ে কখনও অভিযোগ করি নি। একত্রীকরণ আরও ভাল হয়ে উঠেছে, তবে স্টোরিবোর্ডের দুটি ক্ষেত্রে যদি দু'জন বিকাশকারী কাজ করে তবে মার্জ সংঘাতগুলি সমাধান করা অসম্ভব: স্টোরিবোর্ড এক্সএমএল কেবল মানব-সম্পাদনযোগ্য হওয়ার জন্য ডিজাইন করা হয়নি। আপনি একদম ঠিক বলেছেন যে "স্টোরবোর্ডগুলির সাথে 10 স্ক্রীনের একটি সাধারণ অ্যাপ্লিকেশন" কোডের চেয়ে স্টোরিবোর্ডগুলির সাথে দ্রুত করা যেতে পারে, আমি তর্ক করি না। তবে, খুব কম অ্যাপই সেই সরল বা সরল থাকে। উপরে উল্লিখিত হিসাবে, আপনার অ্যাপ্লিকেশন বৃদ্ধি এবং আরও জটিল হয়ে উঠলে আপনি স্টোরিবোর্ডগুলি ব্যবহার করে প্রচুর সময় হারাবেন im
জোহানেস ফারেনক্রুগ

4
আমি এই তালিকায় যুক্ত করব যে ইন্টারফেস বিল্ডার ফাইলগুলি ভবিষ্যতের প্রমাণ কম less আমি পুরানো (আইওএস 5 যুগ) .xib এবং। স্টিওরবোর্ড ফাইলগুলিকে একটি আধুনিক (আইওএস 7 যুগ) এক্সকোডে খুলেছি এবং এর উপস্থিতিটি আপডেট করার চেষ্টা করেছি। ইন্টারফেস বিল্ডার ফাইলগুলি সাধারণত ভিজ্যুয়াল পরিবর্তনের (পর্বত আইওএস 6 থেকে 7) স্ক্রীন আকার এবং iOS সংস্করণ জুড়ে চলে যাওয়ার সময় ভাঙা হয়। এই ভিজ্যুয়াল আপডেটগুলি অনেকগুলি অদ্ভুত শিল্পকলা এবং মাইন্ডলেস স্টোরিবোর্ড বিনোদন ছাড়াই ঘটতে পারে যদি ইউআই কেবল কোডে তৈরি করা হত।
Xender ডান

17

বিকাশকারীদের তাদের অ্যাপ্লিকেশন এবং অ্যাপ্লিকেশনটির প্রবাহটি কল্পনা করতে সহায়তা করার জন্য স্টোরিবোর্ডগুলি তৈরি করা হয়েছিল। এটি অনেকটা xib এর একগুচ্ছ থাকার মতো তবে একক ফাইলে।

এই অবস্থিত অনুরূপ একটি প্রশ্ন আছে .xib ফাইল এবং একটি স্টোরবোর্ডের মধ্যে পার্থক্য কি?

আপনি কোডের মাধ্যমেও কাস্টম ট্রানজিশন তৈরি করতে পারেন যা প্রয়োজনে ডায়নামিকভাবে পরিবর্তিত হবে, অনেকটা আপনার .xibs এর মতো।

পেশাদাররা:

  • কোনও কোড না থাকলে আপনি বেশি কিছু না লিখেই অ্যাপ্লিকেশনটির প্রবাহকে মক আপ করতে পারেন।
  • পর্দা এবং আপনার অ্যাপ্লিকেশন প্রবাহের মধ্যে আপনার রূপান্তরগুলি দেখতে অনেক সহজ।
  • স্টোরিবোর্ডগুলির সাথে প্রয়োজন হলে .xibsও ব্যবহার করতে পারেন।

কনস:

  • শুধুমাত্র আইওএস 5+ এর সাথে কাজ করে। আইওএস 4 নিয়ে কাজ করে না।
  • আপনার যদি খুব দেখার নিবিড় অ্যাপ্লিকেশন থাকে তবে সহজেই বিশৃঙ্খলা পেতে পারেন।

একটি বা অন্যটি ব্যবহার করার সময় সত্যই কোনও সঠিক / ভুল নেই, এটি কেবল পছন্দের বিষয় এবং আপনি কোন আইওএস সংস্করণ ব্যবহার করতে চাইছেন।


আমি তাদের মধ্যে এবং তারা কীভাবে কাজ করে তার মধ্যে পার্থক্য জানি আমি কখন কোনটি ব্যবহার করব, অন্যটি কীভাবে ব্যবহার করব বা কীভাবে উভয় ব্যবহার করবেন সে সম্পর্কিত তথ্য অনুসন্ধান করছি।
আফিয়ান

13

আমি শুধু রাষ্ট্র করব স্টোরিবোর্ডগুলি কেন ব্যবহার করা উচিত 4 সহজ কারণ উল্লেখ করব , বিশেষত একটি উত্পাদনশীল পরিবেশে যেখানে আপনাকে পণ্য মালিক, পণ্য পরিচালক, ইউএক্স ডিজাইনার ইত্যাদির একটি দলে কাজ করতে হবে in

  1. অ্যাপল স্টোরিবোর্ডগুলির সাথে কাজ করে অত্যন্ত উন্নত করেছে। এবং তারা আপনাকে তাদের সাথে কাজ করতে উত্সাহিত করে। যার অর্থ তারা আপডেট সহ আপনার বিদ্যমান প্রকল্পগুলিকে ভাঙ্গবে না , তারা নিশ্চিত করবে যে স্টোরিবোর্ডগুলি নতুন এক্সকোড / আইওএস সংস্করণগুলির জন্য ভবিষ্যতের প্রমাণ।
  2. আরও দৃশ্যমান ফলাফল মধ্যে কম সময় পণ্যের মালিক ও পরিচালকদের জন্য, এমনকি সৃষ্টির সময়ে। এমনকি আপনি স্টোরিবোর্ড নিজেই স্ক্রিনফ্লো ডায়াগ্রাম হিসাবে ব্যবহার করতে পারেন এবং মিটিংগুলিতে এটি আলোচনা করতে পারেন।
  3. এমনকি একটি অ্যাপ্লিকেশন সম্পন্ন হওয়ার পরেও (এবং এটির জীবনচক্র শুরু হয় সাধারণত) - ভবিষ্যতে এটি ছোট সামঞ্জস্যতা প্রয়োগ করা আরও দ্রুত এবং সহজতর হবে । এবং এগুলি একই সাথে আপনার বিন্যাসের একাধিক দিককে খুব ভালভাবে পরিবর্তন করতে পারে, যা আপনি সম্ভবত WYSIWYG পদ্ধতিতে দেখতে চান। বিকল্পটি হ'ল লিখিত কোডের UI পরিবর্তনগুলি হবে এবং আইডিই এবং সিমুলেটারের মধ্যে এটি পরীক্ষা করার জন্য প্রতিবার সংকলন এবং বিল্ডের জন্য অপেক্ষা করার জন্য পিছনে পিছনে স্যুইচ করা।
  4. অ-বিকাশকারীদের শেখানো যায় স্টোরিবোর্ডে লেআউট সেটআপ করতে এবং বিকাশকারীদের জন্য প্রয়োজনীয় হুকগুলি তৈরি (আইবিআউটলেটস এবং আইবিএ ক্রিয়াকলাপগুলি)। এটি একটি খুব বড় প্লাস কারণ এটি ডিভগুলিকে যুক্তিতে ফোকাস করতে দেয় এবং ইউএক্স ডিজাইনাররা কোনও পরিবর্তন ছাড়াই কোনও কোড না লিখেই তাদের পরিবর্তনগুলি ভিজ্যুয়াল পদ্ধতিতে প্রয়োগ করতে পারে।

আমি কোনও সিএনএস লিখব না, যেহেতু জোহানেস ইতিমধ্যে তার উত্তরে সমস্ত व्यवहार্য ব্যক্তিকে তালিকাভুক্ত করেছে। এবং তাদের বেশিরভাগই অবশ্যই কার্যকর হবে না, বিশেষত এক্সকোডি 6 এর বড় উন্নতিগুলির সাথে নয়।


5
গল্প বোর্ডের একটি অনুরাগী, তাই না? :)
জনপায়েন

5

আপনার প্রশ্নের সঠিক উত্তর আছে বলে আমি মনে করি না, এটি কেবল ব্যক্তিগত অভিজ্ঞতার বিষয় এবং আপনি যেটিকে আরও বেশি সাবলীল মনে করেন।

আমার মতে, স্টোরিবোর্ডগুলি দুর্দান্ত জিনিস। এটি সত্য, আপনার অ্যাপটি রানটাইমের সময় কেন মীমাংসিতভাবে ক্রাশ হচ্ছে তা খুঁজে পাওয়া সত্যিই শক্ত, তবে কিছু সময় এবং অভিজ্ঞতার পরে আপনি বুঝতে পারবেন যে এটি সর্বদা কোথাও কোথাও অনুপস্থিত কিছু আইবিউটলেট সম্পর্কিত এবং এটি আপনি সহজেই এটি ঠিক করতে সক্ষম হবেন।

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

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

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


2
আসলে এক্সকোড এবং স্টোরিবোর্ডগুলির সাথে কাজ করার পরে আমি কেবল এটি বলতে পারি যে এটি একটি দুঃস্বপ্ন এবং আপনারা সবাই এটির পক্ষে এবং এটি "দুর্দান্ত জিনিস" হিসাবে বলছেন: আপনি এখনও পর্যন্ত দুর্দান্ত জিনিসটি দেখেন নি (এটি একটি পাহাড়ের মতো) যে লোকেরা পাহাড়ে ছিল না তাদের জন্য একটি পর্বত)। অস্তিত্বের কাছাকাছি অ্যান্ড্রয়েডে যা পাওয়া যায়; এক্সএমএলগুলি যে ভিজ্যুয়াল এডিটরের সাথে মানব পাঠযোগ্য তা আপনাকে অনেক সহায়তা করে এবং এটি "দুর্দান্ত জিনিস "ও নয়, কোনও সাধারণ বিকাশকারী কার্যকারিতার ভিত্তি হিসাবে ব্যর্থ হবে।
লুকাশজ 'সেভেরিয়ায়ান' গ্রেলা

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

আমি যদি কৌনিক ইউআই রাউটার ব্যবহার করছি তবে কেন পৃথিবীতে স্টোরিবোর্ড ব্যবহার করা দরকার?
ইয়ভোন আবুরো

0

আমি আমার কোনও অ্যাপ্লিকেশনটিতে স্টোরিবোর্ড বা এক্সআইবি ব্যবহার করছি না .. তবে প্রোগ্রামিকভাবে সব তৈরি করছি।

∆ সুবিধা:

√ আপনি এর জন্য যে কোনও জটিল ধরণের ইউআই বা ট্রানজিশন অ্যানিমেশন তৈরি করতে পারেন UIView

IOS সমস্ত iOS সংস্করণ সমর্থন করুন। <আইওএস 5 নিয়ে চিন্তা করার দরকার নেই।

। * আপনার অ্যাপ্লিকেশনটি আপনার কোডের মধ্যে থাকা সমস্ত আইফোন / আইপড / আইপ্যাড ডিভাইস সমর্থন করবে।

Always আপনি সর্বদা কাজ করবেন এমন কোডটি জানেন বলে আপনি সর্বদা আপডেট হন।

√ * চালু হওয়া যে কোনও (নতুন) ডিভাইসে কাজ করবে - কোড পরিবর্তন করার দরকার নেই।

√ সব কিছুই আপনার উপর নির্ভর করে। নির্দিষ্ট জায়গায় আপনি কিছু পরিবর্তন করতে চান - স্টোরিবোর্ড বা এক্সিবায় সন্ধান করার দরকার নেই। এটি নির্দিষ্ট শ্রেণিতে সন্ধান করুন।

√ শেষ কিন্তু তালিকাটি নয় - আপনি প্রোগ্রামটিমে কীভাবে সবকিছু পরিচালনা করবেন তা আপনি কখনই ভুলে যাবেন না। আপনি যে কোনও ব্যক্তিকে খুব গভীর নিয়ন্ত্রণ জানেন তাই এটি সেরা বিষয়।

এসবি বা এক্সআইবি ব্যবহার না করে আমি কখনই সমস্যা পাইনি কারণ আমি এটির সাথে ভাল।

* আপনি যদি স্ক্রিনের আকার অনুযায়ী UIKit এর অবজেক্ট ফ্রেম সেট করেন।

পিএস যদি আপনি এখনও এই কাজটি না করেন - আপনি অসুবিধার মুখোমুখি হতে পারেন (বা বিরক্তিকর বোধ করতে পারেন) তবে একবার আপনি যদি এর সাথে পরিচিত হন - এটি আপনার জন্য সত্যই একটি ক্যান্ডি।


কোনও স্টোরিবোর্ড বা এক্সআইবি ছাড়াই আইওএস ও ওএসএক্স অ্যাপ্লিকেশনকে মৌলিক "প্রোগ্রামযুক্তভাবে সবকিছু তৈরি করার" জন্য একটি সুইফ্ট টেম্পলেট / উদাহরণ কোথায় পাওয়া যাবে?
l --marc l

0

আপনি যদি স্টোরিবোর্ডের পারফরম্যান্স সম্পর্কে যত্নশীল হন, ডাব্লুডাব্লুডিসি 2015 সেশন 407 দেখুন

এখানে চিত্র বর্ণনা লিখুন

বিল্ড টাইম

ইন্টারফেস বিল্ডার যখন একটি স্টোরিবোর্ড সংকলন করছে যখন এটি দুটি কাজ করছে তখন এটি আপনার অ্যাপ্লিকেশনটির কার্যকারিতা সর্বাধিক করার চেষ্টা করছে এবং দ্বিতীয়ত এটি তৈরি করা নিব ফাইলের সংখ্যাও হ্রাস করবে।

যদি আমার কাছে একটি ভিউ এবং উপ-ভিউগুলির একটি গুচ্ছ, ইন্টারফেস বিল্ডার সহ একটি ভিউ কন্ট্রোলার থাকে তবে বিল্ড টাইম ভিউ কন্ট্রোলারের জন্য একটি নিব ফাইল তৈরি করতে এবং ভিউটির জন্য একটি নিব ফাইল তৈরি করতে চলেছে।

ভিউ কন্ট্রোলার এবং ভিউ উভয়ের জন্য পৃথক নিব ফাইল থাকার দ্বারা, এর অর্থ ভিউয়ের স্তরক্রমটি চাহিদা অনুযায়ী লোড করা যায়।

রান সময়

আপনি যখন ইউআই স্টোরিবোর্ড, এপিআই ব্যবহার করে স্টোরিবোর্ড উদাহরণ বরাদ্দ করেন তখন প্রাথমিকভাবে আপনি যা মেমরির জন্য বরাদ্দ করছেন তা হ'ল ইউআই স্টোরিবোর্ডের উদাহরণ।

কোনও দৃশ্য নিয়ামক এখনও কোনও দর্শন নেই।

আপনি যখন আপনার প্রাথমিক ভিউ কন্ট্রোলার ইনস্ট্যান্ট করেন এটি প্রাথমিক ভিউ কন্ট্রোলারের জন্য নিব লোড করে দেবে, তবে, কেউ আসলে এটি জিজ্ঞাসা না করা পর্যন্ত কোনও ভিউ হায়ারার্কি এখনও লোড করা যায় নি।


0

আমি একটি যুক্তিসঙ্গত আকারের প্রকল্পে (> স্টোরিবোর্ডের পার্লেন্সে 20 টি দৃশ্য) কাজ করছি এবং অনেকগুলি সীমাবদ্ধতা পেরিয়ে এসেছি এবং বারবার ডকুমেন্টেশন এবং গুগল অনুসন্ধানগুলিতে গিয়ে কাজ করতে হয়েছিল।

  1. ইউআই সবই একটি ফাইলে রয়েছে। এমনকি যদি আপনি একাধিক স্টোরিবোর্ড তৈরি করেন তবে প্রতিটি স্টোরিবোর্ডে আপনার কাছে এখনও অনেকগুলি দৃশ্য / পর্দা রয়েছে। মাঝারি-বড় দলগুলিতে এটি একটি সমস্যা।

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

  3. আইডিই জুম-আউট অবস্থায় নিয়ন্ত্রণ নির্বাচন করার অনুমতি দেয় না। সুতরাং, একটি বড় প্রকল্পে, জুম আউটটি বেশিরভাগই একটি উচ্চ স্তরের ভিউ এবং আরও কিছু পাওয়ার জন্য হয়।

আমি ছোট টিমের আকারের ছোট অ্যাপ্লিকেশনগুলির জন্য স্টোরিবোর্ড ব্যবহার করব এবং মাঝারি-বড় দল / প্রকল্পগুলির জন্য এক্সআইবি পদ্ধতির ব্যবহার করব।


এই তিনটি পয়েন্ট এখন সম্পূর্ণ পুরানো (শুকরিয়া ধন্যবাদ)।
ফ্যাটি

0

আপনি যদি একাধিক ভিউ কন্ট্রোলারে কিছু ইউআই পুনরায় ব্যবহার করতে চান তবে আপনার এক্সআইবি ব্যবহার করা উচিত

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.