প্রতিক্রিয়া নেটিভ ব্যবহার করার সময় ডেটা সংরক্ষণ করার জন্য আমার বিকল্পগুলি কী কী? (আইওএস এবং অ্যান্ড্রয়েড) [বন্ধ]


230

আমি এখনও রিএ্যাকটিভ নেটিভ ওয়ার্ল্ডে এবং সাধারণত মোবাইল / নেটিভ ওয়ার্ল্ডেও নতুন আছি এবং তথ্য অধ্যবসায়ের ক্ষেত্রে ডকুমেন্টেশনটি কিছুটা ঘাটতি পাচ্ছি।

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

আমি বিশেষভাবে জানতে চাই:

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

আপনার সাহায্যের জন্য ধন্যবাদ!


আপনি যদি সংবেদনশীল ডেটা সঞ্চয় করতে চান তবে আপনি এটি একবার দেখে নিতে পারেন: stackoverflow.com/questions/45547657/…
জুলিয়েন কোডে

স্পষ্টতই
রাজ্যটি

শুধু back4app ব্যবহার আপনি একটি সহজ সমাধান (অর্থাত, parse.com) চান
Fattie

15
যেমনটি এসও তে প্রায়শই ঘটে থাকে, বিপুল সংখ্যক লোকের পক্ষে দরকারী প্রশ্নগুলি কারও দ্বারা বন্ধ করা হয় ... সম্ভবত এটি এসও সম্প্রদায়কে 'বিধি' সম্পর্কে কিছু বলা উচিত এবং সেগুলি কীভাবে প্রয়োগ করা হয়? সর্বকালের সর্বাধিক ব্যবহৃত পোস্টগুলি দেখার চেষ্টা করুন এবং কতগুলি 'বিধিগুলি' অনুসরণ করে দেখুন। কেউ শুনছেন?
ব্যবহারকারী 2330237

উত্তর:


286

আমি আমার বর্তমান কয়েকটি অ্যাপ্লিকেশন প্রকল্পের সাথে এগিয়ে যাওয়ার সর্বোত্তম উপায় নির্ধারণ করায় আমি যা শিখেছি তা এখানে।

অ্যাসিঙ্ক স্টোরেজ (স্থানীয় প্রতিক্রিয়া জানাতে "বিল্ট-ইন")

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

উপসংহার: স্থানীয় স্টোরেজ; আপনি নিজের সিঙ্ক / ব্যাকআপ সমাধান সরবরাহ করেন।

SQLite

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

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

উপসংহার: স্থানীয় স্টোরেজ; আপনি সিঙ্ক এবং ব্যাকআপ সরবরাহ।

Firebase

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

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

রিয়েল-টাইম ডাটাবেসটি JSON- এর মতো গাছ হিসাবে সংরক্ষণ করা হয় যা আপনি ওয়েবসাইটে সম্পাদনা করতে পারেন এবং খুব সহজভাবে আমদানি / রফতানি করতে পারেন।

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

রাজত্ব

আপডেট 4/2020 মোংগোডিবি বাস্তবতা অর্জন করেছে এবং এটি মঙ্গোডিবি স্টিচের সাথে সংযুক্ত করার পরিকল্পনা করছে (নীচে আলোচনা করা হয়েছে)। এটি খুব উত্তেজনাপূর্ণ দেখাচ্ছে


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

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

ফায়ারব্যাসের বিপরীতে, সমস্ত রিয়েলম ক্ষমতাগুলি রিয়েট নেটিভ এবং জ্যামারিনে সমর্থিত যেমন তারা সুইফট / ওজেসিসি / জাভা (নেটিভ) অ্যাপ্লিকেশনগুলিতে রয়েছে।

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

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

iCloud এর

আমি সত্যই এইটির সাথে খুব বেশি খেলিনি, তবে অদূর ভবিষ্যতে এটি করব।

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

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

কাঁচা তথ্য অ্যাক্সেস করা কতটা সহজ তা আমি জানি না; স্কিমার অ্যাপল এর সাইটে সেট আপ করা যেতে পারে।

উপসংহার: অ্যাপল-লক্ষ্যযুক্ত অ্যাপ্লিকেশনের জন্য দুর্দান্ত।

Couchbase

বড় নাম, এর পিছনে প্রচুর বড় বড় সংস্থা। মানক সমর্থন ব্যয়ের সাথে একটি সম্প্রদায় সংস্করণ এবং এন্টারপ্রাইজ সংস্করণ রয়েছে।

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

[সম্পাদনা করুন: একটি পুরানো লিঙ্কটি খুঁজে পেয়েছে যা কাউচবাজ এবং কাউচডিবি সম্পর্কে কথা বলে এবং কাউচডিবি বিবেচনা করার জন্য আর একটি বিকল্প হতে পারে। দুটি historতিহাসিকভাবে সম্পর্কিত তবে বর্তমানে সম্পূর্ণ আলাদা পণ্য। এই তুলনা দেখুন ।]

উপসংহার: রিয়েলমের মতোই সক্ষমতা রয়েছে বলে মনে হচ্ছে। কেবলমাত্র ডিভাইস বা সিঙ্ক করা যায়। আমার এটি চেষ্টা করা প্রয়োজন।

MongoDB

আপডেট 4/2020

মঙ্গো রিয়েলকে অধিগ্রহণ করেছে এবং মোংগোডিবি স্টিচকে (নীচে আলোচনা করা হয়েছে) রিয়েলমের সাথে (উপরে আলোচিত) একত্রিত করার পরিকল্পনা করেছে


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

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

আমি কোনও ক্লায়েন্টকে সার্ভার সিঙ্ক্রোনাইজেশন বৈশিষ্ট্যগুলিতে চেষ্টা করিনি, বা এটি এম্বেড ব্যবহার করেছি। মঙ্গোডিবি-র জন্য স্থানীয় কোডের প্রতিক্রিয়া রয়েছে।

উপসংহার: স্থানীয় কেবল নোএসকিউএল সমাধান, রিয়েলম বা ফায়ারবেসের মতো কোনও সুস্পষ্ট সিঙ্ক বিকল্প নেই।

আপডেট 2/2019

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

এই (অন্যান্য নথিতে সংযুক্ত নমুনার সাথে একটি নমুনা অ্যাপ্লিকেশানে নেটিভ, সেলাই, এবং MongoDB প্রতিক্রিয়া ব্যবহার ডিসেম্বর 2018 আলোচনা থেকে কাজের মধ্যে থাকবেন, https://www.mongodb.com/blog/post/building-ios-and-android-apps -মেনডোডব-সেলাই-রিএ্যাক্ট-নেটিভ-এসডিকে )।

টিভিলিও সিঙ্ক

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

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


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

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

আমি RESTHeart পেয়েছি , যা মঙ্গোডিবিতে একটি খুব সাধারণ, স্কেলযোগ্য RESTful API তৈরি করে। রিএএসটিয়ার্টে JSON অবজেক্টগুলি পড়তে এবং লেখার জন্য একটি রিএ্যাক্ট (নেটিভ) উপাদান তৈরি করা খুব কঠিন হওয়া উচিত নয়, যা তাদের পরিবর্তে মঙ্গোডিবিতে / পাস করে।


[সম্পাদনা] ডেটা কীভাবে সংরক্ষণ করা হয় সে সম্পর্কে আমি তথ্য যোগ করেছি। কখনও কখনও আপনার যদি ডেটা টুইট এবং পরীক্ষা করতে হয় তবে আপনি বিকাশ এবং পরীক্ষার সময় কতটা কাজের জন্য থাকতে পারেন তা জানা গুরুত্বপূর্ণ।


সম্পাদনা 2/2019 গত বছর (2018) একটি উচ্চ- প্রকল্প ডিজাইন করার সময় আমি এই বিকল্পগুলির বেশ পরীক্ষা করেছি। তাদের মধ্যে কিছু তাদের ডকুমেন্টেশনে কঠোর এবং নরম সমঝোতার সীমা উল্লেখ করেছেন (অল্টকনফে উভয় দলের সাথে আলোচনা অনুসারে টোলিওর একটি স্নিগ্ধ সীমা ছিল যা ভাঙা যায়), আমি বিশ্বাস করি।

আপনি যদি কয়েক হাজার থেকে কয়েক হাজার ব্যবহারকারীর জন্য একটি অ্যাপ্লিকেশন ডিজাইন করেন তবে সেই অনুযায়ী ডেটা ব্যাকএন্ড স্কেল করতে প্রস্তুত থাকুন।


1
আচ্ছা রেডাক্স সম্পর্কে কি?
হীরা ঠাকুর

4
@ লিওনার্দোডা কোডিনিচি রেডাক্স রাজ্য পরিচালনার জন্য সহায়ক হবে তবে অবিচ্ছিন্ন স্টোরেজ কার্যকারিতা সরবরাহ করে না।
walshie4

1
কেন আপনার তালিকায় রেডেক্স-অবিচল নেই? আপনি দয়া করে এটি সম্পর্কে কিছু যুক্ত করতে পারেন? যদি এটি খারাপ হয়।
শাহজাদ মির্জা

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

1
আপনি যেভাবে সমস্ত কিছু রেখেছেন তা আমি পছন্দ করেছিলাম। আপনি যদি তাদের প্রত্যেকের জন্য পেশাদার এবং কনস যুক্ত করেন তবে এটি আরও ভাল হবে (এটির নথির লিংকও)। যেমন আমি এর একটি খুঁজে পেয়েছি এটি AsyncStorageঅ্যান্ড্রয়েডে কেবলমাত্র 6 এমবি সমর্থন করে তবে আইওএসের ক্ষেত্রে এই জাতীয় কোনও সীমাবদ্ধতা নেই।
জিমিত প্যাটেল 12'18

58

দ্রুত এবং ময়লা: শুধু ব্যবহার Redux + + প্রতিক্রিয়া-redux + + redux-জিদ + + AsyncStorage প্রতিক্রিয়া-নেটিভ জন্য।

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

একটি কাজের উদাহরণের জন্য, ফেসবুক থেকে F8App দেখুন ।

ডেটা অধ্যবসায়ের জন্য বিভিন্ন বিকল্পগুলি কী কী?

প্রতিক্রিয়া নেটিভ সহ, আপনি সম্ভবত হ্রাস এবং রিডেক্স-অবিরত ব্যবহার করতে চান। এটি একাধিক স্টোরেজ ইঞ্জিন ব্যবহার করতে পারে। আর এনএন-এর বিকল্প হিসাবে অ্যাসিঙ্কস্টোরেজ এবং রিডেক্স-সিস্টেস্ট-ফাইল সিস্টেম-স্টোরেজ।

ফায়ারবেস বা রিয়েলমের মতো অন্য বিকল্প রয়েছে, তবে আমি আরএন প্রকল্পে সেগুলি কখনও ব্যবহার করি নি।

প্রত্যেকের জন্য, সেই অধ্যবসায়ের সীমাগুলি কী (অর্থাত্, কখন ডেটা আর উপলভ্য নয়)? উদাহরণস্বরূপ: অ্যাপ্লিকেশনটি বন্ধ করার সময়, ফোনটি পুনরায় চালু করা ইত্যাদি

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

অ্যাসিঙ্কস্টোরেজের অ্যান্ড্রয়েডে 6MB এর একটি ডিফল্ট সীমা রয়েছে। বৃহত্তর সীমাটি (জাভা কোডে) কনফিগার করা বা অ্যান্ড্রয়েডের স্টোরেজ ইঞ্জিন হিসাবে রিডেক্স-সিস্টিস্ট-ফাইল সিস্টেম-স্টোরেজ ব্যবহার করা সম্ভব।

প্রত্যেকের জন্য, আইওএস বনাম অ্যান্ড্রয়েড বাস্তবায়নের মধ্যে কি পার্থক্য রয়েছে (সাধারণ সেটআপ ব্যতীত)?

রিডুএক্স + রিডিক্স-কন্টিনিস্ট + অ্যাসিঙ্কস্টোরেজ সেটআপটি অ্যান্ড্রয়েড এবং আইওএসে ঠিক একই রকম।

অফলাইনে ডেটা অ্যাক্সেসের জন্য বিকল্পগুলি কীভাবে তুলনা করতে পারে? (বা অফলাইন অ্যাক্সেস সাধারণত কীভাবে পরিচালিত হয়?)

রিডুএক্স ব্যবহার করে, অফিলাইন অ্যাক্সেসটি প্রায়শই স্বয়ংক্রিয়ভাবে এর নকশার অংশগুলি (অ্যাকশন স্রষ্টা এবং হ্রাসকারী )কে ধন্যবাদ।

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

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

আমার মনে রাখা উচিত অন্য কোন বিবেচনা আছে?

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


3
AsyncStorage / Redux Persist- এ গভীর ডুব দেওয়ার জন্য ধন্যবাদ। আমি সমস্ত বিকল্পের ওভারভিউয়ের জন্য আরও সন্ধান করছিলাম, সুতরাং এটিই কারণ যে আমি এটিকে অফিসিয়াল উত্তর হিসাবে বেছে নিই নি।
সিয়া

9

উপরের লোকেরা স্টোরেজের জন্য সঠিক নোটগুলিতে আঘাত করে, যদিও আপনার যদি সংরক্ষণের প্রয়োজন এমন কোনও পিআইআই ডেটাও বিবেচনা করতে হয় তবে আপনি https://github.com/oblador/react-native-keychain এর মতো কিছু ব্যবহার করে কীচেইনটিতেও স্ট্যাশ করতে পারেন though যেহেতু ASyncStorage এনক্রিপ্ট করা নেই। এটি রিডেক্স-সিস্টেস্টের মতো কিছুতে স্থির কনফিগারেশনের অংশ হিসাবে প্রয়োগ করা যেতে পারে।


1

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

import SyncStorage from 'sync-storage';

SyncStorage.set('foo', 'bar');
const result = SyncStorage.get('foo');
console.log(result); // 'bar'

1

আপনি যদি জটিল ডেটা টাইপ পরিচালনা করতে চান তবে আপনি রিয়েল বা স্ক্লাইট ব্যবহার করতে পারেন।

অন্যথায় ইনবিল্ট রিটিক নেটিভ অ্যাসিস্টোরেজ সহ যান


0

আমাদের রিডেক্স-প্রসিড দরকার নেই আমরা কেবল ধ্রুবতার জন্য রিডেক্স ব্যবহার করতে পারি।

প্রতিক্রিয়া-রিডাক্স + অ্যাসিঙ্কস্পোরেশন = রিডেক্স-অব্যাহত

ক্রিয়েটটর ফাইলের ভিতরে তাই কেবল এই লাইনগুলি যুক্ত করুন

store.subscribe(async()=> await AsyncStorage.setItem("store", JSON.stringify(store.getState())))

যখনই রিডুক্স স্টোরটিতে কিছু পরিবর্তন হবে তখন এটি অ্যাসিঙ্কস্টোরেজ আপডেট করবে।

তারপরে json রূপান্তরিত স্টোরটি লোড করুন। কখন অ্যাপটি লোড হয়। এবং দোকান আবার সেট করুন।

কারণ রিডেক্স-কন্টিনিস্ট উইক্স ব্যবহারের সময় নেটিভ নেভিগেশন প্রতিক্রিয়া ব্যবহার করে সমস্যা তৈরি করে। যদি সে ক্ষেত্রে হয় তবে আমি উপরের গ্রাহক ফাংশন সহ সাধারণ রিডেক্স ব্যবহার করতে পছন্দ করি

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