स्विफ्ट 4.2 से स्विफ्ट 5.0 के लिए एक परियोजना को स्थानांतरित करना

नमस्कार, हेब्र! मैं आपको एंटोनी वान डेर ली द्वारा "स्विफ्ट 5.0: अपनी परियोजना और रूपरेखाओं को कैसे स्थानांतरित करना है" लेख का अनुवाद प्रस्तुत करता हूं।

स्विफ्ट 5.0 मार्च 2019 में रिलीज़ हुई थी और यह एबीआई स्विफ्ट की पहली स्थिर रिलीज़ है। हालाँकि कई संसाधन स्विफ्ट 5.0 की नई विशेषताओं को कवर करते हैं, लेकिन वे अक्सर आपको यह नहीं बताते हैं कि आपको स्विफ्ट 5.0 में अपनी परियोजना को अपग्रेड करने के लिए क्या करने की आवश्यकता है।

इस पोस्ट में, मैं मौजूदा प्रोजेक्ट को स्विफ्ट 5.0 में अपग्रेड करने के लिए आपके द्वारा उठाए गए कदमों को कवर करूंगा।

सत्यापित करें कि आपकी परियोजना पहले ही स्विफ्ट 4.2 में पोर्ट की जा चुकी है।
अगर यह लेख आपके उत्पाद प्रबंधक को संक्रमण के समय की योजना बनाने में मदद करता है तो मुझे आश्चर्य नहीं होगा।

प्रवासी सहायक का उपयोग कर स्वचालित प्रवासन


Xcode का सुझाव है कि अपने कोड को वर्तमान स्विफ्ट सिंटैक्स में स्वचालित रूप से अपडेट करने के लिए माइग्रेशन असिस्टेंट का उपयोग करें। यह रूपांतरण स्विफ्ट के नवीनतम संस्करण का उपयोग करेगा, जो Xcode के स्थापित संस्करण के साथ उपलब्ध है।

Xcode 10.2 स्विफ्ट 5.0 को शामिल करने वाला पहला संस्करण है, इसलिए आपको सॉफ्टवेयर के इस संस्करण का उपयोग करने की आवश्यकता है।

यह सुविधा अक्सर आपके लिए कड़ी मेहनत करती है। इसलिए, मैं एडिट -> कन्वर्ट -> टू करंट स्विफ्ट सिंटैक्स ... पर जाकर कोड पोर्ट शुरू करने की सलाह देता हूं

युक्ति: सुनिश्चित करें कि आप केवल अपनी परियोजना और ढांचे के लिए ऐसा करते हैं। आप किसी भी बाहरी निर्भरता के लिए रूपांतरण को छोड़ सकते हैं।



निर्भरता अद्यतन


सबसे अधिक संभावना है, आपके पास कुछ स्विफ्ट निर्भरताएं हैं जिन्हें अद्यतन करने की आवश्यकता है। कई बड़े ओपन सोर्स प्रोजेक्ट्स, जैसे कि अलमॉफायर और मोया, पहले ही संस्करण स्विफ्ट 5.0 के साथ काम करना शुरू कर चुके हैं।

हालाँकि, यह संभावना है कि आपकी सभी निर्भरताएँ पहले से ही अपडेट न हों। यद्यपि मैं आपसे स्थानांतरण करने का आग्रह करना चाहूंगा, और फिर पुल अनुरोध को स्वयं प्रस्तुत करना होगा, आपको शायद तब तक थोड़ा इंतजार करना होगा जब तक कि परियोजना के मालिक स्वयं ऐसा न करें।

यदि आप इस स्थानांतरण के बाद अपने आवेदन की पूर्ण गहन परीक्षा आयोजित करने की योजना बनाते हैं, तो यह सीधे आपकी निर्भरता को अद्यतन करने के लिए सार्थक हो सकता है। आपका परीक्षण इन अपडेट को सीधे कवर करेगा, जो "दोहरी जीत" हो सकती है।

CI पर्यावरण अद्यतन


यदि आप ट्रैविस, जेनकिंस या किसी अन्य CI प्लेटफॉर्म का उपयोग कर रहे हैं, तो आपको Xcode अपडेट करने की भी आवश्यकता है।



स्विफ्ट में परिणाम का उपयोग करना


Xcode कनवर्टर केवल बुनियादी कोड परिवर्तन करता है। यह नए परिणाम प्रकार के लिए जिम्मेदार नहीं है, जो अब स्विफ्ट मानक पुस्तकालय में शामिल है। कई रूपरेखाओं ने अपने कोड में "परिणाम" प्रकार को शामिल किया है। इसका मतलब यह हो सकता है कि आपके पास एक एनम प्रकार के साथ बहुत अधिक डेटा है जिसकी अब आवश्यकता नहीं है। हालांकि, अपनी निर्भरता के डेटा के साथ उन्हें बदलने के लिए जल्दी मत करो: आप बाहरी संरचना में कोड परिवर्तन पर निर्भर करते हैं।

आम प्रकार की त्रुटि



यह संभावना है कि आपका वर्तमान "परिणाम" प्रकार केवल उपयुक्त मामले के लिए प्रकार को परिभाषित करता है।

स्विफ्ट 5.0 में परिणाम भी आपको अपेक्षित प्रकार की त्रुटि निर्धारित करने की आवश्यकता है। एक सम्माननीय नागरिक के रूप में, आपको इस प्रकार की गलती को ठोस बनाने की कोशिश करनी चाहिए, जो आप अपेक्षा करते हैं। हालाँकि, यदि आप माइग्रेशन को गति देना चाहते हैं, तो आप केवल Swift.Error प्रकार भी सेट कर सकते हैं।

युक्ति: यदि आप स्विफ्ट 5.0 में नए परिणाम प्रकार के बारे में अधिक जानना चाहते हैं, तो मैं आपको इस लेख को पढ़ने की सलाह दूंगा

हम एबीआई की स्थिरता को ध्यान में रखते हैं


वास्तव में, एबीआई स्थिरता एक अलग मुद्दा है। आप इसके बारे में स्विफ्ट के आधिकारिक ब्लॉग पर अधिक पढ़ सकते हैं

ध्यान रखें कि आपके द्वारा डाउनलोड किए जा रहे एप्लिकेशन का आकार घट जाएगा , क्योंकि अनुप्रयोगों को अब मानक स्विफ्ट लाइब्रेरी को एम्बेड करने की आवश्यकता नहीं है!

यह आपके उत्पाद को हस्तांतरण का समय खोजने के लिए मना लेना चाहिए।
यदि आप स्विफ्ट 5.0 में अधिक गोता लगाना चाहते हैं, तो आप ऐप्पल माइग्रेटिंग को स्विफ्ट 5.0 ब्लॉग पोस्ट पर छोड़ सकते हैं।

Source: https://habr.com/ru/post/hi447098/


All Articles