بعون صناع مکین و مکاں وفضل خلاق و زمین و زماں
السلام علیکم،
ابجد اب اینڈرائیڈ کے لیے پیش قدمی کی جسارت کر رہا ہے۔ پچھلے ایک ماہ سے میں جاوا سیکھنے کی کوشش کر رہا ہوں۔ چونکہ میں نے باقاعدہ کمپیوٹر کی تعلیم حاصل نہیں کی اس لیے میرے لیے یہ کافی دشوار گزار کام رہا ہے۔ لیکن اب کافی حد تک ضروری چیزیں سیکھ لیں ہیں۔ یا دوسرے لفظوں میں ابجد کو بنانے کی تیاریاں مکمل کر چکا ہوں بلکہ نمونے کی ایک اپلیکیشن بنائی بھی ہے۔
درپیش اولین مسئلہ
ابجد کی بنیادی خصوصیت اس کا ڈکشنریوں کا استعمال ہے۔ جب اس کو ونڈوز کے لیے بنایا تھا تو میرے پاس میدان کھلا تھا۔ چونکہ کمپیوٹر نسبتا کا پروسیسر طاقتور ہوتا ہے اور ریم بھی بہت ہوتی ہے۔ اس لیے اگر ہماری اپلیکیشن سو ڈیڑھ سو ایم بی ریم استعمال کر بھی لے تو چنداں فرق نہیں پڑتا۔ اسی خصوصیت سے میں فائدہ اٹھاتے ہوئے ڈکشنریوں کو ریم پر محفوظ کرنے کا سوچا جس سے ڈکشنریوں سے تلاش کرتے وقت بہت آسانی رہتی اور یہ کام انتہائی تیزی سے سرانجام پاتا ۔ ڈکشنریوں کا حجم دس بارہ ایم بی سے زیادہ نہیں ہوتا اس لیے پچاس ساٹھ ڈکشنریوں کو بھی ریم پر رکھا جا سکتا ہے۔ لیکن گوگل اینڈرائیڈ چونکہ صرف ٹیلبٹس میں نہیں بلکہ موبائلز کے لیے بھی بہت استعمال ہو رہا ہے اسلیے اس میں چند قیدیں ہیں۔ اب ہمارے پاس وافر ریم موجود نہیں۔ زیادہ سے زیادہ چالیس ایم بی ریم اپلیکیشن کے لیے مختص ہوتی ہے۔ جس کی وجہ اب ہم ڈکشنریوں کو ریم پر سٹور نہیں کر سکتے۔ اگر ہر دفعہ معانی دکھانے کے لیے ڈکشنریوں کو فائل سسٹم سے رابطہ کیا جائے تو ایک تو پروسیسر کو بہت زیادہ کام کرنا پڑتا ہے دوسرا یہ کہ اس سے موبائل کی ہارڈڈسک یا کارڈ پر بوجھ بنتا ہے۔ اس کے علاوہ معانی دکھاتے وقت دیر بھی کافی لگے گی۔
اس سے بچنے کا ایک آسان طریقہ تو یہ ہے کہ ابجد کا وہ ورژن جو اینڈرائیڈ کے لیے بنایا جائے وہ دو ڈکشنریوں کو بیک وقت پڑھے اس سے زائد کی طرف نہ جائے۔ صارف کو سہولت دے دی جائے کہ وہ اپنی مرضی کی دو ڈکشنریاں منتخب کر لے اور ابجد کو استعمال کرے۔
اس کا دوسرا طریقہ یہ ہے کہ ایس کیو لائٹ ڈیٹا بیس استعمال کی جائے جو ہر اینڈرائیڈ ڈیوائس میں پہلے سے ہی موجود ہوتی ہے۔ اور اس کی ڈیٹا کو پڑھنے کی رفتار بھی کافی تیز ہے اگر آپ کوشش کی جائے تو تقریبا ایک ملی سیکنڈ میں وہ نتائج دکھانے کی بھی اہل ہو سکتی ہے۔ اس سے ہم دو سے زائد ڈکشنریوں کو استعمال کر سکیں گے۔ اگر دس بارہ ڈکشنریوں تو اس کو بنا لیا جائے تو اس سے زائد کی ضرورت تو شاید کسی کو نہیں پڑتی ہو گی۔ لیکن ایس کیو لائٹ میں اس بنانے میں مجھے یہ سمجھ نہیں آ رہا کہ تمام ڈکشنریوں کو ایک ہی ڈیٹا بیس میں شامل کر دیا جائے یا ہر ڈکشنری کی علاحدہ ڈیٹابیس ہو۔ اگر ایک ہی ڈیٹابیس میں ڈال دیا جائے تو ہر ڈکشنری کا علاحدہ ٹیبل بنانا چاہیے یا ایک ہی مفصل ٹیبل بنا کر تمام ڈکشنریوں کو اس میں شامل کر دیا جائے۔ اور جب یوزر نئی ڈکشنری شامل کرنا چاہے تو ابجد اس سے نئی ڈکشنری سادہ ٹیکسٹ فائل میں وصول کر کے اس کو ڈیٹا بیس کہ اسی مفصل ٹیبل میں شامل کر دے۔ اور دوسرا یہ ہو سکتا ہے کہ ایک ہی ڈیٹا بیس میں ہر ڈکشنری کے لیے علاحدہ ٹیبل بنا دیا جائے۔ اس طرح ہر ٹیبل علاحدہ طور پر پڑھنا ہو گا۔ میں نے ڈیٹا بیس کو بہت کم استعمال کیا ہے اس لیے مجھے نہیں پتہ ان میں سے کونسا طریقہ زیادہ مؤثر ہے۔ اس سلسلے میں آپکی رہنمائی درکار ہو گی۔
اس کے علاوہ اس کا ایک حل ایکس ایم ایل ڈیٹا بیس ہے جو سادہ ٹیکسٹ فائل کی طرح ہوتی ہے مگر مرتب اور منظم ہوتی ہے۔ اس کو استعمال کیا جائے۔ لیکن میرے ابتدائی تجربات سے مجھے یہ پتہ چلا ہے کہ اگر ایکس ایم ایل کا حجم دو چار ایم بی سے زائد ہو تو اینڈرائیڈ کو اس کو پڑھنے میں کافی دیر لگا دیتا ہے۔ چونکہ میں جاوا سے بہت اچھی طرح واقف نہیں ہوں۔ اس لیے ہو سکتا ہے کہ مجھے اس میں کامیابی حاصل نہ ہو سکی ہو۔
خلاصہ کلام یہ ہے کہ اگر ابجد کو دو ڈکشنریوں کے لیے بنانا ہو تو ہم ان کو ریم پر سٹور کر کے بآسانی کر سکتے ہیں۔ اگر ایس کیو لائٹ ڈیٹا بیس استعمال کریں تو دس بارہ ڈکشنریاں تک بآسانی شامل کی سکیں گی اور ایکس ایم ایل میں مجھے ایک ڈکشنری بھی بہت زیادہ لگ رہی ہے۔
احباب سے گزارش ہے کہ اس کام میں میری مناسب رہنمائی کریں۔
نبیل
ابن سعید
محمد بلال اعظم
محب علوی
شاکرالقادری
الف نظامی
الف عین
سیدہ شگفتہ