Xcode। Interface Builder। iOS Simulator। 47 फ़ाइलों वाला पूरा Swift प्रोजेक्ट। सब कुछ कैफ़े में बैठे मेरे iPad Pro से चल रहा था। कोई समझौता नहीं। कोई जुगाड़ नहीं। पूरी कहानी यह रही।
"iPad पर कोडिंग" की समस्या
हर साल Apple iPad को और ताक़तवर बनाता है। M-सीरीज़ चिप। Liquid Retina XDR डिस्प्ले। Magic Keyboard। और हर साल डेवलपर वही सवाल पूछते हैं: क्या मैं इस पर सचमुच कोड कर सकता हूं?
जवाब हमेशा "कुछ हद तक" रहा है। आप GitHub Codespaces के ज़रिए ब्राउज़र में VS Code चला सकते हैं। आप Blink Shell से किसी सर्वर में SSH कर सकते हैं। बुनियादी प्रयोगों के लिए Swift Playgrounds जैसे ऐप इस्तेमाल कर सकते हैं। लेकिन जैसे ही आपको असली टूल चाहिए — Xcode, Android Studio, Visual Studio, आपकी dotfiles वाला एक ठीक-ठाक टर्मिनल — आप अटक जाते हैं।
ये मनमानी सीमाएं नहीं हैं। Apple iPadOS पर पूरे IDE की इजाज़त नहीं देता। Xcode कभी iPad पर नेटिव रूप से नहीं चलेगा (कम से कम पूरा वर्ज़न तो नहीं)। और ब्राउज़र-आधारित एडिटर, चाहे जितने अच्छे हो जाएं, बुनियादी तौर पर इस पर सीमित हैं कि एक ब्राउज़र टैब क्या कर सकता है।
इसलिए मैंने दूसरा तरीक़ा आज़माया। IDE को iPad तक लाने के बजाय, मैं iPad को IDE तक ले गया।
सेटअप: Remio + Mac mini + iPad Pro
मेरा सेटअप लगभग शर्मिंदा करने की हद तक सीधा है:
- Mac mini M4 — घर पर रखा, हमेशा चालू, Xcode और मेरे सारे डेव टूल चलाता हुआ
- iPad Pro 13" — Magic Keyboard और Apple Pencil के साथ, मैं जहां भी रहूं
- Remio — दोनों को जोड़ता हुआ, बिना किसी कॉन्फ़िगरेशन के
मैं अपने iPad पर Remio खोलता हूं, Mac mini पर दिख रहा PIN डालता हूं, और दो सेकंड के भीतर मैं अपने Mac का डेस्कटॉप देख रहा होता हूं। पूरा रिज़ॉल्यूशन। पूरे रंग। और मेरा पूरा डेवलपमेंट माहौल ठीक वहीं जहां मैंने छोड़ा था।
कोई VPN कॉन्फ़िगर नहीं करना। कोई SSH टनल संभालनी नहीं। कोई अकाउंट नहीं बनाना। बस एक PIN और एक कनेक्शन।
यह ब्राउज़र-आधारित कोडिंग से बेहतर क्यों है
मैंने सारे विकल्प आज़माए हैं। सच में, सारे। यह रहा कारण कि असली Mac के साथ Remio मेरे आज़माए हर ब्राउज़र-आधारित समाधान को हरा देता है।
GitHub Codespaces / VS Code Web
वेब डेवलपमेंट के लिए Codespaces सचमुच प्रभावशाली है। लेकिन यह Linux कंटेनर में चलता है। Xcode नहीं। Interface Builder नहीं। iOS Simulator नहीं। Core Data मॉडल एडिटर नहीं। अगर आप iOS या macOS ऐप बना रहे हैं, तो यह विकल्प है ही नहीं। और वेब डेवलपमेंट के लिए भी आप ब्राउज़र सैंडबॉक्सिंग से बंधे हैं — न लोकल फ़ाइल एक्सेस, न नेटिव टर्मिनल, न मनचाही बैकग्राउंड प्रोसेस चलाने की क्षमता।
SSH + टर्मिनल एडिटर
मुझे Vim पसंद है। सच में। लेकिन 47 फ़ाइलों, xib, एसेट कैटलॉग और Core Data मॉडल वाला SwiftUI ऐप टर्मिनल एडिटर में बनाना प्रोडक्टिविटी नहीं — आत्म-पीड़ा है। कोड कंप्लीशन, रीफ़ैक्टरिंग, लाइव प्रीव्यू और विज़ुअल डीबगर जैसे IDE फ़ीचर किसी वजह से हैं।
क्लाउड डेस्कटॉप (AWS WorkSpaces, Shadow PC)
आप क्लाउड में लगभग $50-100/माह पर Mac किराये पर ले सकते हैं। लेकिन आप पहले से एक Mac के मालिक हैं। एक कमतर Mac किराये पर लेने के लिए पैसे क्यों दें? Remio के साथ आप अपनी असली मशीन इस्तेमाल करते हैं — अपनी असली फ़ाइलों, अपने असली टूलचेन, अपने असली माहौल के साथ। और लेटेंसी बेहतर है क्योंकि आपका Mac आपके घर के नेटवर्क पर है, वर्जीनिया के किसी डेटा सेंटर में नहीं।
असली काम का एक दिन
चलिए, मैं आपको दिखाता हूं कि असली कामकाजी दिन कैसा दिखता है — कैफ़े में बीता एक मंगलवार।
08:30 AMबैठो, कनेक्ट करो, जारी रखो
मैं iPad और Magic Keyboard लेकर एक कैफ़े में बैठता हूं। Remio खोलता हूं। घर पर रखे अपने Mac mini से कनेक्ट करता हूं। Xcode पिछली रात के मेरे प्रोजेक्ट के साथ पहले से खुला है — हर ब्रेकपॉइंट, हर टैब, हर बिना कमिट किया बदलाव ठीक वहीं जहां मैंने छोड़ा था।
08:35 AMSwiftUI लिखना
मैं SwiftUI कोड लिख रहा हूं। कोड कंप्लीशन एकदम सही चलता है क्योंकि यह असली Xcode है जो असली Mac पर, असली Swift कंपाइलर के साथ चल रहा है। हर कीस्ट्रोक तुरंत महसूस होता है — Remio के नेटिव इनपुट हैंडलिंग का मतलब है कि कुंजी दबाने और अक्षर दिखने के बीच कोई महसूस होने लायक़ देरी नहीं।
नेटिव इनपुट सीधे होस्ट तक पहुंचता है — LAN पर लगभग 8 ms प्रोसेसिंग, आंतरिक रूप से नापी गई; बाक़ी आपकी डिस्प्ले की अपनी 60 Hz रिफ़्रेश लय है।
09:15 AMiOS Simulator पर चलाना
मुझे iOS Simulator पर टेस्ट करना है। मैं ⌘R दबाता हूं। Simulator मेरे Mac पर खुलता है, और मैं उसे अपने iPad की स्क्रीन पर देखता हूं। मैं अपने iPad पर टच जेस्चर से सिम्युलेटेड iPhone के साथ इंटरैक्ट कर सकता हूं — जो हैरानी की हद तक स्वाभाविक है। टैप, स्वाइप, स्क्रॉल। बस चलता है।
10:00 AMInterface Builder में UI का काम
अब कुछ UI का काम। मैं Interface Builder खोलता हूं। कंस्ट्रेंट खींचना, लेआउट ठीक करना, अलग-अलग डिवाइस साइज़ पर प्रीव्यू देखना। ठीक इसी तरह का काम ब्राउज़र-आधारित एडिटर में नामुमकिन है। विज़ुअल टूल की कोई बराबरी नहीं।
11:30 AMकंकरेंसी डीबग करना
मैं एक पेचीदा कंकरेंसी समस्या डीबग कर रहा हूं। मैं ब्रेकपॉइंट लगाता हूं, कोड में एक-एक क़दम चलता हूं, डीबगर में वेरिएबल जांचता हूं। LLDB एकदम सही चलता है क्योंकि मैं असली चीज़ इस्तेमाल कर रहा हूं, वेब-आधारित नक़ल नहीं।
01:00 PMAndroid पर स्विच
दोपहर के खाने के बाद, मैं अपने Android प्रोजेक्ट पर आ जाता हूं। Xcode बंद करके Android Studio खोलता हूं। वही कनेक्शन, वही सेटअप। Remio को इसकी परवाह नहीं कि मैं कौन-सा ऐप चला रहा हूं — वह पूरा डेस्कटॉप स्ट्रीम करता है।
07:00 PMदिन का हिसाब
दिन ख़त्म होने तक मैंने लगभग 400 लाइन Swift लिखी, तीन बग ठीक किए, TestFlight पर एक बिल्ड सबमिट किया, और दो पुल रिक्वेस्ट रिव्यू कीं। सब कुछ कैफ़े में बैठे एक iPad से। इसमें से किसी भी काम के लिए कोई ख़ास कॉन्फ़िगरेशन या समझौता नहीं करना पड़ा।
वे बारीकियां जो इसे काम करने लायक़ बनाती हैं
कीबोर्ड शॉर्टकट
यहीं ज़्यादातर रिमोट डेस्कटॉप ऐप बिखर जाते हैं। Remio हर कीबोर्ड शॉर्टकट सही ढंग से आगे भेजता है। बिल्ड के लिए ⌘B। चलाने के लिए ⌘R। तुरंत खोलने के लिए ⌘⇧O। इमोजी के लिए ⌃⌘Space (हां, वह भी)। Magic Keyboard की मॉडिफ़ायर कुंजियां Mac की मॉडिफ़ायर कुंजियों से 1:1 मैप होती हैं। कोई ट्रांसलेशन लेयर नहीं, कुंजी रीमैपिंग का कोई भ्रम नहीं।
टेक्स्ट रेंडरिंग
कोड छोटा टेक्स्ट होता है। और ढेर सारा। जो रिमोट डेस्कटॉप ऐप टेक्स्ट को धुंधला करे या आर्टिफ़ैक्ट ले आए, वह डेवलपमेंट के लिए बिल्कुल बेकार है। Remio की टेक्स्ट के हिसाब से ट्यून की गई सेटिंग वाली H.265 एन्कोडिंग कोड को एकदम धारदार रखती है। सिंटैक्स हाइलाइटिंग के रंग सटीक हैं। फ़ॉन्ट का वज़न सही है। iPad Pro के रिज़ॉल्यूशन पर सचमुच ऐसा लगता है जैसे Xcode लोकल चल रहा हो।
स्क्रीन बदलना
मेरे Mac mini पर एक वर्चुअल दूसरा डिस्प्ले है। Remio मुझे एक टैप में बदलने देता है कि मैं कौन-सी स्क्रीन देख रहा हूं — एक पर कोड, दूसरी पर Simulator। iPad पर मैं उनके बीच स्वाइप करता हूं या अपना वर्कस्पेस जमाने के लिए Stage Manager इस्तेमाल करता हूं।
क्लिपबोर्ड और फ़ाइल ट्रांसफ़र
कंसोल से कोई एरर मैसेज बाद में खोजने के लिए उठाना है? Remio का क्लिपबोर्ड सिंक इसे सहज बना देता है — एक डिवाइस पर टेक्स्ट कॉपी करें, दूसरे पर पेस्ट करें। और जब मुझे अपने प्रोजेक्ट फ़ोल्डर के अंदर कोई रेफ़रेंस फ़ाइल चाहिए, तो मैं उसे सीधे iPad से Mac पर भेज देता हूं।
मेरे वर्कफ़्लो के सुझाव
छह महीने इस तरह कोडिंग करने के बाद मुझमें कुछ आदतें बन गई हैं जो अनुभव को और बेहतर बना देती हैं।
- अपने Mac को वायर्ड कनेक्शन पर रखें। मेरा Mac mini Ethernet से राउटर में लगा है। इससे स्ट्रीमिंग क्वालिटी का सबसे बड़ा अनिश्चित कारक हट जाता है।
- iPad के लिए स्थिर Wi-Fi कनेक्शन इस्तेमाल करें। कैफ़े का 5GHz Wi-Fi आमतौर पर ठीक रहता है। अगर कनेक्शन डगमगाता है, तो Remio की एडैप्टिव क्वालिटी अपने आप ढल जाती है — लेकिन स्थिर कनेक्शन का मतलब है लगातार शार्प टेक्स्ट।
- Xcode का फ़ॉन्ट साइज़ 13-14pt रखें। Remio के ज़रिए iPad Pro की डिस्प्ले पर यह बिना ज़ूम किए आराम से पढ़ने लायक़ है।
- हर चीज़ के लिए कीबोर्ड शॉर्टकट इस्तेमाल करें। IDE के कामों के लिए आप जितना कम टच/माउस इस्तेमाल करेंगे, उतना तेज़ होंगे। यह लोकल डेवलपमेंट के लिए भी अच्छी सलाह है।
- iPadOS सेटिंग्स में "Reduce Motion" चालू करें। इससे iPad की तरफ़ एनिमेशन का बोझ थोड़ा घटता है, और Remio को ज़रा-सी और परफ़ॉर्मेंस गुंजाइश मिलती है।
जो मैं नहीं कर सकता (ईमानदारी से)
पूरी तरह ईमानदार रहने की ख़ातिर, ये रही सीमाएं।
- आपको इंटरनेट चाहिए। अगर आप बिना Wi-Fi वाले विमान में हैं, तो यह काम नहीं करता। हालांकि मैंने इसे उड़ान के Wi-Fi पर सफलतापूर्वक इस्तेमाल किया है — धीमा था पर चलता था।
- आपका Mac चालू रहना चाहिए। यह कोई क्लाउड सेवा नहीं है। अगर कोई आपका Mac अनप्लग कर दे या वह अपडेट के लिए रीस्टार्ट हो जाए, तो उसके लौटने तक आपका कनेक्शन टूटा रहता है।
- बेहद लेटेंसी-संवेदी काम — जैसे गेमिंग या रियल-टाइम ऑडियो प्रोडक्शन — में महसूस होने लायक़ (भले ही छोटी) देरी होती है। कोडिंग के लिए लेटेंसी पता ही नहीं चलती।
ये समझौते असली हैं। लेकिन मेरे लिए, 700 ग्राम के टैबलेट में अपना पूरा डेवलपमेंट माहौल साथ लेकर चलने की क्षमता इन पर कहीं भारी पड़ती है।
iPad डेवलपर का सपना, साकार
सालों तक मैं इंतज़ार करता रहा कि Apple Xcode को iPad पर लाएगा। किसी मोड़ पर मुझे समझ आया कि यह शायद कभी न हो — कम से कम पूरा, पेशेवर वर्ज़न तो नहीं। तो मैंने इंतज़ार छोड़ दिया और बेहतर जवाब ढूंढ लिया।
Remio आपके iPad पर Xcode नहीं रखता। वह आपके पूरे Mac को आपके iPad पर रख देता है। हर ऐप, हर टूल, हर फ़ाइल। डिस्प्ले की उस क्वालिटी और इनपुट की उस प्रतिक्रिया के साथ जिससे लगता है कि Mac ठीक सामने रखा है — क्योंकि, हर उस तरह से जो मायने रखता है, वह है।
सबसे अच्छा डेवलपमेंट सेटअप वह नहीं जिसमें सबसे ज़्यादा ताक़त हो। वह है जो सचमुच आपके साथ हो।
Remio के साथ मेरा iPad Pro मेरी अब तक की सबसे अच्छी डेवलपमेंट मशीन है — उसके स्पेक की वजह से नहीं, बल्कि इसलिए कि वह मेरे साथ हर जगह जाता है, और मेरा पूरा डेव माहौल उसके साथ आता है।
अगर आप Mac और iPad वाले डेवलपर हैं, तो Remio आज़माकर देखें। सेटअप में दो मिनट लगते हैं। अकाउंट की ज़रूरत नहीं। और अगर आप गेमिंग वाले पहलू के बारे में उत्सुक हैं, तो अपने iPad पर PC गेम खेलने की हमारी गाइड देखें — वही कम-लेटेंसी तकनीक जो कोडिंग को काम करने लायक़ बनाती है, गेमिंग को भी शानदार बनाती है।