টুকরো বনাম কয়টি ক্রিয়াকলাপ?


185

ইন্ট্রো:

বেসিক "টুকরো টিউটোরিয়াল" প্যাটার্নটি এরকম কিছু হয়:

  1. একটি ট্যাবলেটে, বামে একটি তালিকা আছে, ডানদিকে বিশদ রয়েছে।
  2. উভয়ই Fragmentsএবং উভয়ই একই স্থানে থাকে Activity
  3. একটি ফোনে, Fragmentএকটিতে একটি তালিকা রাখুন Activity
  4. Activityবিশদ সহ একটি নতুন চালু করুন Fragment

(যেমন ডায়ান হ্যাকোবারের দ্বারা অ্যান্ড্রয়েড Fra.০ ফ্রেগমেন্টস এপিআই এবং ফ্রেগমেন্টস এপিআই গাইড )

উভয় ডিভাইসে, কার্যকারিতা রয়েছে Fragments। (সাধারণ)

উপর ট্যাবলেট , সমগ্র অ্যাপ্লিকেশন 1Activity , উপর ফোন , আছে অনেকActivities


প্রশ্নাবলী:

  • অনেকের মধ্যে ফোন অ্যাপটি বিভক্ত করার কোনও কারণ আছে কি Activities?

এই পদ্ধতির সাথে একটি সমস্যা হ'ল আপনি মূল ট্যাবলেট এবং পৃথক ফোনে প্রচুর যুক্তি নকল করেActivityActivities

  • উভয় ক্ষেত্রে 1 ক্রিয়াকলাপ মডেল ধরে রাখা এবং স্যুইচিংয়ের একই যুক্তি ব্যবহার করে Fragments(কেবলমাত্র একটি ভিন্ন বিন্যাস ব্যবহার করে) ধরে রাখা সহজ হবে না ?

এইভাবে বেশিরভাগ যুক্তি Fragmentsনিজের মধ্যে থাকে এবং কেবলমাত্র একটিই Activity- কোডের কম নকল হয়।

এছাড়াও আমি যা পড়েছি তা ActionBarSherlockহ'ল এটির Fragmentsপরিবর্তে সবচেয়ে ভাল কাজ করা মনে হয় Activities(তবে আমি এখনও এটি দিয়ে কাজ করি নি)।

টিউটোরিয়ালগুলি কি আরও বিস্তৃত হয়েছে, বা আমি এই পদ্ধতির কোনও বড় কিছু মিস করেছি?


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

সম্পর্কিত প্রশ্নগুলির কয়েকটি লিঙ্ক:


আপডেট

প্রশ্নে অনুগ্রহ শুরু হয়েছিল - আমার ট্যাবলেট ক্রিয়াকলাপে এবং প্রতিটি ফোনের ক্রিয়াকলাপে কেন আমার অ্যাপ্লিকেশন যুক্তিটির নকল করা দরকার তা সম্পর্কে এখনও নিশ্চিত হন না।

স্কয়ারে ছেলেরা দ্বারা একটি আকর্ষণীয় নিবন্ধটি পেয়েছি, যা পড়ার পক্ষে উপযুক্ত:


38
একটি দুর্দান্ত এবং ভাল লিখিত প্রশ্নের জন্য +1।
সিদ্ধার্থ লেলে

এটি এমন কিছু যা আজকের দিনে আমাকে অনেক কষ্ট দেয়, বর্তমানে আমি এমন একটি অ্যাপ্লিকেশন নিয়ে কাজ করছি যা ডিজাইনে প্রচুর টুকরো অন্তর্ভুক্ত রয়েছে এবং এটি ফোন এবং ট্যাবলেট উভয় ক্ষেত্রেই পাওয়া যাবে, আমি একটি মধ্যম পথ খুঁজছি, তবে এখনও খুঁজে পাইনি couldn't ...
নিক্সিত প্যাটেল

1
আমি সত্যই কোনও অপরাধ বলে অভিহিত করি তবে আমি মনে করি আপনি আসল উত্তরের চেয়ে আপনি যা শুনতে চান তা কেবল গ্রহণ করেছেন। স্কুবার উত্তর গুগল এবং ব্লগ পোস্টের দ্বারা প্রস্তাবিত নয় কারণ আমি তা ব্যাখ্যা করতে পছন্দ করি।
pjco

1
@pjco বিশেষত onItemSelected()কার্যকলাপে পদ্ধতি থাকার সাথে আমি একমত নই । আমার "বাস্তব" অ্যাপে আমার কাছে অনেকগুলি তালিকা এবং সাবলিস্ট রয়েছে। এই প্যাটার্নটি পরামর্শ দেয় যে আমার ট্যাব ক্রিয়াকলাপে onItemSelected()তালিকাগুলির প্রতিটি হ্যান্ডেল করার জন্য একটি পদ্ধতি থাকতে হবে । এছাড়াও ফোন ক্রিয়াকলাপগুলির প্রত্যেকের মধ্যে অবশ্যই একই যুক্তিটির নকল থাকতে হবে। আইএমএইচও প্রতিটি খণ্ডে আইটেম সিলেক্টড লজিক স্থাপন করা আরও ভাল - কোনও নকল নেই এবং আমি কোডটি কাঠামোর সেই পদ্ধতিটিকেই পছন্দ করি। আমি আশা করি এটি সাহায্য করে
রিচার্ড লে ম্যাসুরিয়ার

2
আমি বর্তমানে কর্মক্ষেত্রে এই দ্বিধা নিয়ে আছি। নতুন ক্রিয়াকলাপ আরম্ভ করার চেয়ে টুকরোগুলি আরও দ্রুত লোড হয় , তাই আমি একক ক্রিয়াকলাপের আর্কিটেকচারটি প্রয়োগ করতে শুরু করি। যদিও আমি একটি ইস্যুতে দৌড়েছি, এটি হ্যাকি কিছু না করে মাল্টি-ফ্যাগমেন্ট কনফিগারেশনগুলিকে সমর্থন করার জন্য আমি ভাল উপায় খুঁজে পাচ্ছি না। এই প্রশ্নটি দেখুন ।
theblang

উত্তর:


41

আমি সম্মত হই যে টিউটোরিয়ালগুলি খুব সরলীকৃত। তারা কেবল পরিচয় করিয়ে দিয়েছে Fragmentsতবে আমি প্রস্তাবিত ধাঁচের সাথে একমত নই।

আমি এটিও সম্মত করি যে অনেকগুলি ক্রিয়াকলাপ জুড়ে আপনার অ্যাপের যুক্তি নকল করা ভাল ধারণা নয় ( উইকিপিডিয়ায় DRY নীতি দেখুন )।


আমি ActionBarSherlockফ্রেগমেন্টস ডেমো অ্যাপ্লিকেশন দ্বারা ব্যবহৃত প্যাটার্নটি পছন্দ করি ( এখানে এবং উত্স কোডটি এখানে ডাউনলোড করুন )। প্রশ্নে উল্লিখিত টিউটোরিয়ালের সাথে ডেমোটি সান্নিধ্যের সাথে মিলছে অ্যাপ্লিকেশনটিতে "লেআউট" নামে পরিচিত; বা FragmentLayoutSupportসোর্স কোডে।

এই ডেমোতে, লজিকটি বাইরে থেকে Activityএবং বাইরে চলে গেছে FragmentTitlesFragmentআসলে টুকরা পরিবর্তন করার জন্য যুক্তিবিজ্ঞান ধারণ করে। এইভাবে, প্রতিটি ক্রিয়াকলাপ খুব সহজ। অনেক সাধারণ ক্রিয়াকলাপগুলির নকল করতে, যেখানে কোনও যুক্তিই ক্রিয়াকলাপগুলির মধ্যে নেই, এটি খুব সাধারণ করে তোলে।

খণ্ডগুলিতে যুক্তি রেখে, কোডটি একাধিকবার লেখার দরকার নেই ; কোন ক্রিয়াকলাপে খণ্ডটি স্থাপন করা হয়েছে তা বিবেচ্য নয়। এটি এটিকে মৌলিক টিউটোরিয়াল দ্বারা প্রস্তাবিত চেয়ে আরও শক্তিশালী নিদর্শন করে তোলে makes

    /**
    * Helper function to show the details of a selected item, either by
    * displaying a fragment in-place in the current UI, or starting a
    * whole new activity in which it is displayed.
    */
    void showDetails(int index)
    {
        mCurCheckPosition = index;

        if (mDualPane)
        {
            // We can display everything in-place with fragments, so update
            // the list to highlight the selected item and show the data.
            getListView().setItemChecked(index, true);

            // Check what fragment is currently shown, replace if needed.
            DetailsFragment details = (DetailsFragment) getFragmentManager()
                .findFragmentById(R.id.details);
            if (details == null || details.getShownIndex() != index)
            {
                // Make new fragment to show this selection.
                details = DetailsFragment.newInstance(index);

                // Execute a transaction, replacing any existing fragment
                // with this one inside the frame.
                FragmentTransaction ft = getFragmentManager()
                    .beginTransaction();
                ft.replace(R.id.details, details);
                ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
                ft.commit();
            }

        }
        else
        {
            // Otherwise we need to launch a new activity to display
            // the dialog fragment with selected text.
            Intent intent = new Intent();
            intent.setClass(getActivity(), DetailsActivity.class);
            intent.putExtra("index", index);
            startActivity(intent);
        }
    }

এবিএস প্যাটার্নের আরেকটি সুবিধা হ'ল আপনি প্রচুর যুক্তিযুক্ত ট্যাবলেট ক্রিয়াকলাপটি শেষ করবেন না এবং এর অর্থ হল আপনি মেমরি সঞ্চয় করেন। টিউটোরিয়াল প্যাটার্ন আরও জটিল অ্যাপ্লিকেশনটিতে একটি খুব বড় মূল ক্রিয়াকলাপে নিয়ে যেতে পারে; যেহেতু এটি যে কোনও সময়ে এতে থাকা সমস্ত খণ্ডের যুক্তি পরিচালনা করতে হবে।

সামগ্রিকভাবে, এটিকে অনেক ক্রিয়াকলাপ ব্যবহার করতে বাধ্য করা হিসাবে ভাবেন না। এটিকে আপনার কোডটিকে অনেক টুকরো টুকরো টুকরো টুকরো করে বিভক্ত করার সুযোগ হিসাবে মনে করুন এবং সেগুলি ব্যবহার করার সময় মেমোরি সংরক্ষণ করুন।


বিস্তৃত উত্তরের জন্য thx - আমি এবিএস ডেমোসের দিকে নজর রেখেছি, এবং আমি মনে করি সেখানে অনেক ভাল কোড রয়েছে। আমি আমার যুক্তিটির বেশিরভাগ
অংশগুলিতে টুকরো টুকরো

ডেমো অ্যাপ্লিকেশনটি এখানে স্থানান্তরিত হয়েছে: play.google.com/store/apps/…
ফিলিপ ই।

আমি মনে করি আপনি যে প্যাটার্নটির বর্ণনা দিচ্ছেন তা মূল গুগলের নমুনা কোড থেকে: অ্যান্ড্রয়েড-ডেভেলপার্স.ব্লগস্পট.কম / ২০১০/২০১২ আমার মনে হয় অ্যাকশনবারশারলক গুগল ডেমো কোডটি এবিএস ক্লাস ব্যবহারের জন্য সবেমাত্র পোর্ট করেছে।
ড্যান জে

17

আমি মনে করি আপনি সঠিক পথে আছেন (এবং হ্যাঁ, টিউটোরিয়ালগুলি অতি-সরল করে দেওয়া হয়েছে)।

একটি ট্যাবলেট বিন্যাসে, আপনি একটি একক ক্রিয়াকলাপ ব্যবহার করতে পারেন এবং ফ্রেমগুলি ইন এবং আউট ফ্রেমগুলিতে (একাধিক 'প্যানেলে') স্যুপ করতে পারেন। ফোনের বিন্যাসে থাকাকালীন আপনি প্রতিটি খণ্ডের জন্য একটি নতুন ক্রিয়াকলাপ ব্যবহার করতে পারেন।

তাই ভালো:

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

এটি অনেক অতিরিক্ত কাজের মতো মনে হতে পারে তবে ফোনের জন্য একাধিক ক্রিয়াকলাপ ব্যবহার করে আপনি বেসিক অ্যাক্টিভিটি লাইফ-চক্র এবং ইন্টেন্ট পাসিং সক্ষম করে। এটি ফ্রেমওয়ার্কটি সমস্ত অ্যানিমেশন এবং ব্যাক-স্ট্যাক পরিচালনা করতে দেয়।

কোড হ্রাস করতে আপনি একটি ব্যবহার করতে পারেন BaseActivityএবং এটি থেকে প্রসারিত করতে পারেন ।

সুতরাং যদি ব্যবহারকারীর কাছে কোনও ট্যাবলেট থাকে তবে আপনি ব্যবহার করতে পারেন MyMultiPaneFragActivityবা অনুরূপ কিছু। এই ক্রিয়াকলাপটি টুকরোগুলি থেকে কলব্যাক পরিচালনা এবং সঠিক খণ্ডগুলিতে রাউটিং করার উদ্দেশ্যে (যেমন কোনও অনুসন্ধানের উদ্দেশ্য হিসাবে) দায়বদ্ধ

যদি ব্যবহারকারীর ফোন থাকে তবে আপনি খুব সামান্য কোড সহ একটি নিয়মিত ক্রিয়াকলাপ ব্যবহার করতে পারেন এবং এটির প্রসার MyBaseSingleFragActivityবা অনুরূপ কিছু থাকতে পারে । এই ক্রিয়াকলাপগুলি খুব সহজ হতে পারে, কোডের 5-10 লাইন (সম্ভবত এটিও কম)।

কৌতূহলোদ্দীপক অংশটি রাউটিং ইন্টেন্টস এবং হোয়াট নোট। * (সম্পাদনা করুন: নীচে আরও দেখুন)।

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

* নিয়মিত উদ্দেশ্য রুট করার অন্যতম সুবিধা হ'ল আপনি ব্যাক-স্ট্যাকের যে কোনও জায়গা থেকে স্পষ্টভাবে একটি কার্যকলাপ চালু করতে পারেন। অনুসন্ধানের ফলাফলগুলির ক্ষেত্রে একটি উদাহরণ হতে পারে। (MySearchResults.class)।

আরও পড়ার জন্য এখানে পড়ুন:

http://android-developers.blogspot.com/2011/09/preparing-for-handsets.html

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


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

এখানে সুবিধাটি হ'ল আপনার ট্যাবলেট কোডটি একাধিক প্যানে যাত্রার আশা করতে পারে। কখনও কখনও আপনি একক অভিপ্রায় একাধিক পেন পরিবর্তন করতে চাইবেন। ডানদিকে বৃহত্তর ফলকে প্রথম আইটেমটির ডিটিয়াল সহ বাম দিকে অনুসন্ধানের ফলাফল। এই কোডটি একটি একক বিন্যাসে পোর্টেবল হবে না।
pjco

যখন অনেকগুলি থাকে তখন খণ্ডগুলিকে স্যুইচ করা কেন ঠিক আছে, তবে যদি কেবল 1 টি টুকরো দৃশ্যমান হয়, তবে আমাকে অন্য খণ্ডে স্যুইচ করা উচিত নয়?
রিচার্ড লে ম্যাসুরিয়ার

আপনি কী বলতে চাইছেন তা আমি বুঝতে পেরেছি তা নিশ্চিত নয় তবে উপরের আমার মন্তব্যটি স্পষ্ট করতে: কখনও কখনও আপনি বহু-খণ্ড লেআউটে একই সাথে 1 টিরও বেশি টুকরো পরিবর্তন করতে চাইতে পারেন। এটির জন্য 2 টুকরোগুলি পরিবর্তন করার কোড দরকার, যে আপনি একক টুকরো বিন্যাসে পুনরায় ব্যবহার করবেন না
pjco

আপনি স্বাগত :) :) দয়া করে উত্সাহিত করুন বা আপনি যদি উত্তরটি সহায়ক মনে করেন তবে তা গ্রহণ করুন
pjco

6

এখানে একই সংক্রান্ত Reto মায়ার এর উত্তর, থেকে নেওয়া হয় এই ভিডিওটি এর Udacity এর Android প্রাথমিক ধারনা অবশ্যই

বিভিন্ন ক্রিয়াকলাপে আপনার অ্যাপ্লিকেশনটি ভেঙে ফেলার চেয়ে আপনি আরও ভাল কারণ হতে পারেন of

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

থাম্বের একটি ভাল নিয়ম হল যখনই প্রসঙ্গ পরিবর্তন হয় একটি নতুন ক্রিয়াকলাপ তৈরি করা। উদাহরণস্বরূপ, একটি ভিন্ন ধরণের ডেটা প্রদর্শন করা এবং ডেটা দেখার থেকে স্যুইচ করার সময়।


আকর্ষণীয়ভাবে ভিডিওটির শিরোনাম হ'ল "আমরা কেবল
খণ্ডগুলি

এটি একটি ভাল পদ্ধতি, একক ক্রিয়াকলাপের একাধিক টুকরো টুকরো টুকরো সমস্যার মুখোমুখি ... বাস্তব এক্সপ্রেস সম্ভবত
জিভিশর্মা

4

এই পদ্ধতির সাথে একটি সমস্যা হ'ল আপনি মূল ট্যাবলেট ক্রিয়াকলাপ এবং পৃথক ফোন ক্রিয়াকলাপগুলিতে প্রচুর যুক্তি নকল করে।

মাস্টার-ডিটেইল প্যাটার্নে দুটি ক্রিয়াকলাপ রয়েছে। একটি বড় স্ক্রিনে এবং দুটি ছোট স্ক্রিনে কেবলমাত্র "মাস্টার" টুকরা উভয় টুকরা দেখায়। অন্যটি ছোট পর্দায় "বিশদ" টুকরাটি দেখায়।

আপনার বিস্তারিত যুক্তি বিশদ খণ্ডে আবদ্ধ করা উচিত। অতএব, ক্রিয়াকলাপগুলির মধ্যে বিশদ যুক্তির সাথে সম্পর্কিত কোনও কোড ডুপ্লিকেশন নেই - বিশদ ক্রিয়াকলাপ কেবল বিশদ খণ্ডকে প্রদর্শন করে, সম্ভবত কোনও Intentঅতিরিক্ত থেকে ডেটা পাস করে ।

এছাড়াও আমি অ্যাকশনবারশারলক সম্পর্কে যা পড়েছি তা হ'ল এটি ক্রিয়াকলাপগুলির পরিবর্তে টুকরোগুলির সাথে সবচেয়ে ভাল কাজ করছে বলে মনে হচ্ছে (তবে আমি এটি নিয়ে এখনও কাজ করি নি)।

অ্যাকশনবারশারলকের দেশীয় অ্যাকশন বারের চেয়ে টুকরো টুকরো করার আর কিছুই নেই, যেহেতু অ্যাকশনবারশারলক নিখুঁতভাবে নেটিভ অ্যাকশন বারের ব্যাকপোর্ট।


একটি একক ক্রিয়াকলাপ সম্পর্কে আপনার ধারণা কী?
theblang

@ ম্যাটব্ল্যাং: যতক্ষণ আপনি নেভিগেশনটি সঠিকভাবে পাবেন, তাতে কোনও সমস্যা নেই।
কমন্সওয়ের

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

0

"ফোন অ্যাপটি অনেক ক্রিয়াকলাপে বিভক্ত করার কোনও কারণ আছে কি?" এর প্রথম প্রশ্নটির কথা উল্লেখ করে? - হ্যাঁ. এটি কেবল সহজলভ্য জায়গাতেই নেমে আসে, একটি ট্যাবলেট বিকাশকারীদের আরও বেশি জায়গা দেয়, এইভাবে বিকাশকারীদের এক স্ক্রিনে আরও রাখার সুযোগ দেয়। অ্যান্ড্রয়েড আমাদের বলে যে ক্রিয়াকলাপগুলি একটি স্ক্রিন সরবরাহ করতে পারে । সুতরাং আপনি একটি ট্যাবলেটে 1 টি বড় স্ক্রিন দিয়ে যা করতে পারেন তা হ'ল এমন একটি জিনিস যা ফোনে একাধিক স্ক্রিনে ছড়িয়ে পড়ে থাকতে পারে, কারণ সমস্ত খণ্ডের জন্য পর্যাপ্ত জায়গা নেই enough


1 ম বাক্য - "একটি ক্রিয়াকলাপ এমন একটি অ্যাপ্লিকেশন উপাদান যা একটি স্ক্রিন সরবরাহ করে যার সাথে ব্যবহারকারীরা কিছু করার জন্য ইন্টারঅ্যাক্ট করতে পারে,"। আমি আমার মূল বিবৃতিতে একটি ত্রুটি দেখতে পাচ্ছি, আমি "আরেকটি পর্দা" রাখার অর্থ চাইনি,
ইফ্লিসিও
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.