Capacitor-এ Custom SQLite Extensions কীভাবে ব্যবহার করবেন
বেশিরভাগ কাজের জন্য Standard SQLite যথেষ্ট। মাঝে মাঝে আপনার আরও কিছুর প্রয়োজন হতে পারে।
নির্দিষ্ট ভাষার জন্য আপনার একটি custom tokenizer প্রয়োজন হতে পারে। অথবা আপনার কাস্টম math functions বা বিশেষ text processing-এর প্রয়োজন হতে পারে। এগুলোকে loadable extensions বলা হয়।
Capacitor SQLite plugin Android এবং iOS-এ এগুলো সাপোর্ট করে।
কেন extensions ব্যবহার করবেন?
- Custom FTS5 tokenizers: সার্চের জন্য টেক্সট কীভাবে বিভক্ত হবে তা নিয়ন্ত্রণ করতে পারেন।
- Custom SQL functions: আপনার ডেটার কাছাকাছি জটিল লজিক রান করতে পারেন।
প্ল্যাটফর্ম ভেদে এর ইমপ্লিমেন্টেশন ভিন্ন হয়।
Android
Android system SQLite সরাসরি extensions লোড করা সাপোর্ট করে না। আপনাকে অবশ্যই requery backend ব্যবহার করতে হবে।
- আপনার
variables.gradleফাইলেrequeryঅপশনটি এনাবল করুন। - আপনার
build.gradleফাইলে JitPack repository যোগ করুন। - প্রতিটি CPU architecture-এর জন্য আপনার C code-কে native libraries (.so files) হিসেবে কম্পাইল করুন।
- এই ফাইলগুলো
jniLibsফোল্ডারে রাখুন। - ডাটাবেস ওপেন করার সময়
androidExtensionsঅপশনটি ব্যবহার করুন।
iOS
iOS অ্যাপ রানটাইমে dynamic libraries লোড করতে পারে না। আপনাকে আপনার extension স্ট্যাটিকালি লিঙ্ক করতে হবে।
- আপনার C source file-টি Xcode project-এ যোগ করুন।
- ওই ফাইলের জন্য
-DSQLITE_COREcompiler flag সেট করুন। - আপনার bridging header-এ
initfunction-টি ডিক্লেয়ার করুন। sqlite3_auto_extensionব্যবহার করে আপনারAppDelegate-এ extension-টি রেজিস্টার করুন।
আপনার extension-এর জন্য C code একই থাকবে। শুধুমাত্র build এবং registration ধাপগুলো পরিবর্তিত হবে।
একবার লোড হয়ে গেলে, আপনার custom extension একটি built-in SQLite feature-এর মতোই কাজ করবে। আপনি আপনার নতুন tokenizer বা function সরাসরি SQL statements-এ ব্যবহার করতে পারবেন।
Custom extensions আপনার মোবাইল ডাটাবেসের ভেতরে native code ব্যবহারের ক্ষমতা প্রদান করে।
Source: https://dev.to/capawesome/how-to-use-custom-sqlite-extensions-in-capacitor-l5k