नमस्ते।
यह एक iOS learning app है जिसे मैंने personal project के रूप में बनाया है.
बनाने की वजह
जब आप ChatGPT या Claude से Swift concepts के बारे में पूछते हैं, तो तुरंत साफ-सुथरे जवाब मिल जाते हैं।
लेकिन कुछ दिनों बाद वही concept फिर सामने आने पर दिमाग खाली लगने का अनुभव बार-बार हुआ, और इससे मुझे फिर से महसूस हुआ कि "जवाब पाने वाली learning" और "जवाब खोजने वाली learning" अलग होती हैं।
इसीलिए मैंने Socratic teaching method — यानी जवाब देने के बजाय सवाल पूछकर खुद समझने में मदद करने वाला तरीका — को AI tutor के रूप में लागू करके देखा।
सच कहूँ तो, यह ऐप जानबूझकर थोड़ा असुविधाजनक बनाया गया है।
यह कैसा ऐप है
- Swift के 50 concepts (beginner → advanced, async/await, Actor, Associated Types आदि सहित)
- यूज़र सवाल पूछे तब भी AI जवाब नहीं देता। उसकी जगह उल्टे सवालों से सोचने के लिए प्रेरित करता है
- हर दिन एक concept, और बातचीत के ज़रिए "mastery" हासिल करने की संरचना
- बातचीत के दौरान Swift code सीधे लिखने के लिए built-in editor (syntax highlighting + auto indentation)
- learning record (घास-जैसी contribution graph), widget, dark mode
तकनीकी स्टैक
- iOS: SwiftUI + SwiftData, MVVM + @Observable, external dependency 0
- Backend: Node.js on Vercel Functions (SSE streaming)
- LLM: Claude Haiku 4.5 via OpenRouter. provider को abstract किया गया है, इसलिए Gemini/OpenAI में बदला जा सकता है
- Curriculum: JSON आधारित 50 concepts, server-side prompt engineering से "जवाब की जगह सवाल" वाली constraint को मजबूती से लागू किया गया
वर्तमान स्थिति
- sign-up/login नहीं — अभी सिर्फ device local storage, anonymous use
- कोई ads नहीं — क्योंकि यह learning app के tone से मेल नहीं खाता
- कोई payment नहीं — अभी base validation चरण में है। आगे subscription model पर विचार हो रहा है
ईमानदार सीमाएँ / जिन पर सोच रहा हूँ
- यह feedback मिला है कि ऑफिस जाते समय इस्तेमाल करना थोड़ा भारी पड़ता है, इसलिए session length को predict किया जा सके ऐसा "5-minute mode" डिज़ाइन कर रहा हूँ
- पहला response p99 लगभग 9 सेकंड है (OpenRouter observation). prompt caching लागू करके अगले version में 3~4 सेकंड का लक्ष्य है
- प्रति यूज़र token cost $0.005/DAU स्तर पर है। scale होने पर फिर से समीक्षा करनी होगी
3 टिप्पणियां
इसे बनाते समय मुझे सबसे ज़्यादा हैरानी इस बात पर हुई कि system prompt में डाली गई पाबंदियाँ (
[MASTERY]token-आधारित mastery निर्णय) ताकि "जवाब न देने वाला AI" बनाया जा सके, उन्हें LLM बार-बार तोड़ने की कोशिश करता रहा, इसलिए prompt engineering में उम्मीद से कहीं ज़्यादा समय लग गया.Claude Haiku की तुलना में Gemini Flash ने इन पाबंदियों का बेहतर पालन किया, लेकिन सवालों की गहराई के मामले में Claude बेहतर था. अभी Claude + prompt refinement का संयोजन इस्तेमाल कर रहा हूँ.
अगर किसी के पास इसी तरह "LLM को नियंत्रित करने" वाले prompt design का अनुभव हो, तो कृपया अपने टिप्स साझा करें 🙏
Agent को role assign करके सीधे Agent से बातचीत करते हुए सीखने और
इस app का इस्तेमाल करके सीखने में क्या फर्क होगा?
मैंने भी GPT और Claude, दोनों को custom prompt के साथ आज़माया था, लेकिन कुछ दिन करते-करते आखिर में "अरे, बस सीधे बता दो!" कह ही देता हूँ... और लगातार इस्तेमाल करते-करते ऐसे मौके भी अक्सर आ जाते हैं जहाँ जवाब बता दिया जाता है.
इसलिए सीखने से ज़्यादा यह एहसास बहुत मजबूत था कि जैसे मैं search कर रहा हूँ.
मैंने जो app बनाया है, उसमें system prompt और mastery का आकलन server side पर है, इसलिए यह चीज़ थोड़ी कम खुलती है.
Session खत्म होने का timing भी तय है, इसलिए मुझे लगता है कि दफ़्तर जाते समय इस्तेमाल करने के लिए यह सुविधाजनक है.
असल में, जैसा आपने कहा, यह तरीका खुद GPT या Claude से भी पूरी तरह किया जा सकता है.
लेकिन अगर आप इसे मेरे जैसे ऐसे लोगों के लिए उपयुक्त format समझें, जिन्हें अकेले लगातार बने रहना मुश्किल लगता है, तो ठीक रहेगा! :)