Splync پر صارفین کا فیڈبیک
Splync v1.5 کے ریلیز ہونے کے تقریباً ڈیڑھ ماہ بعد — وہ اپ ڈیٹ جو آخرکار ہر پروجیکٹ اور ہر کیٹیگری کے لیے حسبِ ضرورت شیئرنگ تناسب کی اجازت دیتا تھا — صارفین کا نیا فیڈبیک ملا۔ v1.5 اپ ڈیٹ نے سرور سائیڈ پر بڑے پیمانے پر تبدیلیاں کیں، اس لیے اس وقت مجھے لگا کہ تفصیل زیادہ تر استعمال کی ضروریات کے لیے "کافی اچھی" ہے۔ پھر کچھ نئے صارفین نے ایک سادہ، بہت مناسب سوال پوچھا: "کیا ہم ہر انفرادی خرچ کے لیے اپنی مرضی کے شیئرنگ تناسب مقرر کر سکتے ہیں؟" ان کے سفر کے پروجیکٹ میں کچھ مواقع پر صرف دو ممبرز کو ایک مخصوص لاگت بانٹنے کی ضرورت تھی، اور دیگر مواقع پر تینوں کو کچھ شئیر کرنا تھا۔ Splync v1.8 کے تحت، جواب بدقسمتی سے نہیں تھا۔ میں نے وضاحت کی کہ وہ ان مخصوص کیسوں کے مطابق اپنی مرضی کے تناسب کے ساتھ اضافی کیٹیگریز بنا سکتے ہیں — ایک متبادل، لیکن حقیقی حل نہیں۔
فرکٹل جنگل مغلوب کن محسوس ہوا
v1.5 میں ڈالے گئے کام کو یاد کرنا تھوڑا مغلوب کن محسوس ہوا۔ پہلے مجھے پروجیکٹس کو اپنے اپنے شیئر تناسب کی اجازت دینی پڑی۔ پھر کیٹیگریز کو بھی اپنی مرضی کے تناسب کی ضرورت پڑی۔ اس وقت مجھے لگا کہ میں نے پورے درخت کا احاطہ کر لیا ہے — ہر شاخ سے ہر پھل کو جمع کر لیا ہے۔ لیکن ہر خرچ کے تناسب پر کام کرنا مختلف تھا۔ ایسا محسوس ہوا جیسے ہر بار جب میں نے ایک پھل چنا، ایک نیا درخت اسی جگہ سے ا گ گیا۔ ایک لامحدود فرکٹل جنگل نہیں، لیکن ایک واضح دو منزلہ ڈھانچہ: ایک تہہ دوسری کو جنم دے رہی تھی۔ v1.5 کی منطق میں، خرچ پہلے پروجیکٹ کے تناسب کو وراثت میں لیتا تھا۔ اگر اس کی کیٹیگری میں حسبِ ضرورت تناسب ہوتے، تو وہ پروجیکٹ کی قدروں کو اوور رائیڈ کر دیتے۔ لہذا جب ہر خرچ کے تناسب شامل کیے گئے، تو میں نے خود کو اس اوور رائیڈ پر ایک اور اوور رائیڈ شامل کرنے کی کوشش کرتے پایا۔ ڈھانچہ اوور رائیڈ کی سیڑھی بن گیا — تکنیکی طور پر درست، لیکن ذہنی طور پر پیچیدہ۔ پیوند کاری کی ایک اور تہہ بنانے کا جواز دینا مشکل تھا۔
Splync v1.9 میں پیراڈائم تبدیلی
بالآخر بریک تھرو ڈھانچے کو الٹا سوچنے سے آیا۔ "پروجیکٹ → کیٹیگری → خرچ" کرنے کے بجائے، کیوں نہ الٹی سمت میں سوچا جائے؟ ہر خرچ کے شیئر → کیٹیگری کے شیئر → پروجیکٹ کے شیئر۔ یہ ترتیب اس بات کی عکاسی کرتی ہے کہ حقیقی لوگ کیسے سوچ سکتے ہیں: اگر کسی خاص خرچ کے اپنے اصول ہوں، تو وہ انہیں آسانی سے فالو کریں۔ اگر نہیں، تو کیٹیگری کا پیٹرن موزوں ہے۔ اگر وہ بھی ناکام ہو جائے، تو پروجیکٹ کے ڈیفالٹ پر واپس جائیں۔ اب اوور رائیڈ کی کوئی سیڑھی نہیں — بس ترجیح کی ایک صاف ترتیب۔ ایک بار جب میں نے ڈھانچے کو اس طرح دیکھا، تو شبیہ فرکٹل جنگل کی دھند فوراً صاف ہو گئی۔ عمل درآمد کا راستہ واضح ہو گیا: "ہر خرچ کو اپنی مرضی کے شیئرز کے لیے چیک کیا جاتا ہے۔ اگر موجود ہوں، تو انہیں استعمال کریں۔ اگر نہیں، تو کیٹیگری کے شیئرز کو چیک کریں۔ اگر نہیں، تو پروجیکٹ ڈیفالٹ استعمال کریں۔"
آسمان کے نیچے چلنا
نیا منطق سادہ، پیش گوئی کے قابل، اور ریاضیاتی طور پر مستحکم محسوس ہوا۔ اس ترجیحی نظام کی حمایت کے لیے، ہم نے ہر خرچ کے تقسیم کے لیے ایک مخصوص MariaDB ٹیبل شامل کیا، جو کہ کیٹیگری کے تقسیم کے ٹیبل کی طرح ہے۔ خرچ کی تفصیلات کے ٹیبل کو بھی توسیع کی ضرورت تھی، جیسا کہ کیٹیگری کی تفصیلات کے ٹیبل کو v1.5 میں ضرورت پڑی تھی۔ ایک بار جب بنیادی "دو منزلہ" ڈیزائن واضح ہو گیا، تو باقی سب کچھ احتیاط سے کوڈنگ کرنا تھا — ایپ اور سرور دونوں میں۔ پھر بھی، راستہ کچھ جگہوں پر خطرناک محسوس ہوا، جیسے ایک تاریک جنگل میں بغیر نقشے کے چلنا۔ میں نے دماغ صاف کرنے کے لیے باہر کا رخ کیا۔ ہوا تیز اور صاف تھی۔ اپنے محلے میں چلتے ہوئے، میں نے فاصلے پر ماؤنٹ فوجی کو دیکھا، ایک بالکل صاف نیلے آسمان کے نیچے نیلا۔ یہ تقریباً 100 کلومیٹر دور تھا، پھر بھی اتنا قریب محسوس ہوا کہ میں چھو سکتا ہوں۔ لمحہ ایسا لگا جیسے یاد دہانی: چاہے میں سمجھوں کہ میں جنگل میں چل رہا ہوں، میں دراصل کھلے آسمان کے نیچے چل رہا ہوں۔
Splync v1.9 کے ساتھ آپ کیا کر سکتے ہیں — ہر خرچ کے لیے اپنی مرضی کی تقسیم
Splync v1.9 اسی لمحے کی وضاحت سے پیدا ہوا۔ میں گھر واپس آیا، نئے اینڈپوائنٹس کی وائرنگ مکمل کی، نئے سرور منطق کو تیار کیا، متعلقہ انٹرفیسز کو منظم کیا، v1.9 کو Apple کو سبمٹ کیا، اور آخرکار سو گیا۔ جائزہ معمول سے پہلے ختم ہو گیا۔ جب میں جاگا، Splync v1.9 پہلے ہی منظوری پا چکا تھا اور خودکار طور پر App Store پر ریلیز ہو چکا تھا۔ اس ورژن سے آگے، تقسیم بہت زیادہ لچکدار ہو جاتی ہے۔ اگر آپ جان اور کیٹ کے ساتھ سفر کر رہے ہیں، تو آپ بنیادی اخراجات تینوں کے درمیان برابر بانٹ سکتے ہیں۔ مگر کھانے کے لیے، آپ شاید "25% : 50% : 25%" تناسب میں تبدیل کر سکتے ہیں کیونکہ جان عام طور پر دوگنا کھاتا ہے۔ اور اگر جان ایک رات کا کھانا چھوڑ دیتا ہے—مثلاً ایک اویسٹر ریستوران میں—تو آپ اس مخصوص کھانے کو "50% : 0% : 50%" مقرر کر سکتے ہیں تاکہ وہ اس کے لیے ادائیگی نہ کرے جو اس نے نہیں کھایا۔ v1.9 کے ساتھ، Splync اب ایک متحد منطق میں ہر پروجیکٹ، ہر کیٹیگری، اور ہر خرچ کے تناسب کی حمایت کرتا ہے۔ بنیادیں مستحکم اور ریاضیاتی طور پر مستحکم ہیں۔ اگلا چیلنج انٹرفیس ہے: کچھ دیگر تقسیم کرنے والی ایپس ان تناسب کو ایڈجسٹ کرنے کے زیادہ اسموٹر، زیادہ سجیلا طریقے پیش کرتی ہیں۔ Splync اب ان بہتریوں کی حمایت کے پیچھے کی طاقت رکھتا ہے۔ ہم ان پر ایک کے بعد ایک کام کریں گے۔