Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> MAC

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

स्विफ्ट एक प्रोग्रामिंग भाषा है जिसका उपयोग iPhone, iPad, Mac, Apple Watch और अन्य डिवाइसेज़ के लिए ऐप्स और गेम लिखने के लिए किया जाता है; Apple ने स्विफ्ट को विशेष रूप से डिवाइसेज़ से सबसे तेज़ और सबसे कुशल परफॉरमेंस प्राप्त करने के लिए डिज़ाइन किया है, और स्विफ्ट 5 इसके पहले से ही प्रभावशाली फीचर सेट का विस्तार करता है। इस लेख में हम दिखाते हैं कि स्विफ्ट 5 का उपयोग कैसे करें, बताते हैं कि आपको इसका उपयोग क्यों करना चाहिए, और इस भाषा के संस्करण में सभी नई सुविधाओं की रूपरेखा देते हैं।

यदि आप सीधे शुरू करना चाहते हैं, तो स्विफ्ट 5 के साथ शुरुआत कैसे करें पर जाएं। और एक व्यापक अवलोकन के लिए, हमारे मैक प्रोग्रामिंग की पूरी गाइड पर एक नज़र डालें, जो macOS में उपयोग की जा सकने वाली कोडिंग भाषाओं की एक श्रृंखला को देखती है।

स्विफ्ट 5 का अवलोकन

स्विफ्ट 5 Apple द्वारा विकसित एक प्रोग्रामिंग भाषा है जो डेवलपर्स को iOS, macOS, tvOS और watchOS के लिए ऐप्स बनाने की अनुमति देती है।

पांचवां संस्करण मार्च 2019 में Xcode 10.2 के साथ जारी किया गया था - हम बाद के सेक्शन में स्विफ्ट 5 की नई सुविधाओं के बारे में बात करते हैं - लेकिन स्विफ्ट भाषा कुछ समय से चली आ रही है: स्विफ्ट 1.0 सितंबर 2014 में जारी किया गया था। Apple के अनुसार, स्विफ्ट Objective-C से 2.6 गुना तेज़ और Python से 8.4 गुना तेज़ है।

आपको स्विफ्ट 5 में कोड क्यों करना चाहिए?

1) स्विफ्ट ओपन सोर्स है। ओपन सोर्स का आमतौर पर मतलब है कि किसी प्रोग्राम या प्रोग्रामिंग भाषा के पीछे का सोर्स कोड आम जनता के लिए उपलब्ध कराया जाता है। कोडर तब प्रोग्राम का निरीक्षण, संशोधन और तैनाती कर सकते हैं जहां वे चाहें।

Apple के ओपन सोर्स पेज का कहना है: "Apple का मानना है कि ओपन सोर्स पद्धति का उपयोग macOS को एक अधिक मजबूत, सुरक्षित ऑपरेटिंग सिस्टम बनाता है, क्योंकि इसके मुख्य घटक दशकों से पीयर रिव्यू की कसौटी पर खरे उतरे हैं।"

2) स्विफ्ट सीखना आसान है। Apple ने अपनी भाषा को उपयोग में आसान बनाया है। यह शुरुआती लोगों के लिए एक आदर्श भाषा है क्योंकि सिंटैक्स समझने में सरल है। यदि आपने पहले सॉफ्टवेयर विकसित किया है, तो आप पाएंगे कि स्विफ्ट का सिंटैक्स और कॉन्सेप्ट्स आपके द्वारा पहले से उपयोग की जाने वाली चीज़ों से बहुत मिलते-जुलते हैं।

3) स्विफ्ट तेज़ है। Apple का दावा है कि स्विफ्ट में सर्च एल्गोरिदम Objective-C से 2.6 गुना तेज़ और Python से 8.4 गुना तेज़ी से पूरे होते हैं।

4) स्विफ्ट सुरक्षित है। जब आप भाषा के साथ काम करते हैं, तो आपको किसी असुरक्षित कोड का सामना नहीं करना चाहिए और आपके ऐप्स में आवश्यक सुरक्षा बनाए रखने में मदद के लिए आधुनिक प्रोग्रामिंग कन्वेंशन का उपयोग करेंगे।

5) प्लेग्राउंड्स। Xcode एक फीचर के साथ आता है जिसे प्लेग्राउंड्स कहा जाता है जहां स्विफ्ट 5 प्रोग्रामर कोड लिख सकते हैं और परिणाम तुरंत देख सकते हैं। स्विफ्ट प्लेग्राउंड्स का उपयोग कैसे करें यहां देखें।

6) स्विफ्ट 5 फ्यूचर-प्रूफ है, और आपको कई अलग-अलग प्लेटफॉर्म के लिए विकसित करने देता है: iOS, macOS, watchOS और tvOS।

7) स्विफ्ट हर अपडेट के साथ लगातार सुधर रहा है। स्विफ्ट 5 बहुप्रतीक्षित ABI स्थिरता लाया, जिसका अर्थ है कि भविष्य के स्विफ्ट कंपाइलर स्विफ्ट 5 और उससे ऊपर में लिखे गए कोड को कंपाइल करने में सक्षम होंगे और नए संस्करणों में कोड का माइग्रेशन डेवलपर्स के लिए कम दर्दनाक होगा। इसका यह भी अर्थ है कि OS विक्रेता स्विफ्ट स्टैंडर्ड लाइब्रेरी को ऑपरेटिंग सिस्टम में एम्बेड करने में सक्षम होंगे और यह स्विफ्ट 5 और नए संस्करणों के साथ बनाए गए सभी एप्लिकेशन के साथ संगत होगा।

हमें WWDC 2019 में और स्विफ्ट विकास देखने को मिलने की संभावना है।

स्विफ्ट 5 के साथ शुरुआत कैसे करें

iOS के लिए ऐप्स विकसित करने के लिए, आपको एक Mac (MacBook, iMac या Mac mini) और Xcode नामक मुफ्त सॉफ्टवेयर (संस्करण 10.2 या उच्चतर) की आवश्यकता होगी। शुरू करने के लिए नीचे दिए गए चरणों का पालन करें:

  1. अपने डेस्कटॉप पर Mac App Store खोलें।
  2. सर्च बार में 'Xcode' खोजें।
  3. Xcode आइकन के आगे 'Get' पर क्लिक करें।
  4. आप अपने ब्राउज़र में Mac App Store पर Xcode भी पा सकते हैं।

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

ऑनलाइन कंपाइलर

यदि आप अपने ऐप्स डेप्लॉय करने की योजना नहीं बना रहे हैं, तो आप हमेशा स्विफ्ट ऑनलाइन कंपाइलर का उपयोग कर सकते हैं। यह स्विफ्ट कोड सीखने और निष्पादित करने का एक शानदार तरीका है।

  • ऑनलाइन स्विफ्ट प्लेग्राउंड स्विफ्ट 5 को सपोर्ट करता है और आपको कोड टेस्ट और निष्पादित करने की अनुमति देता है।
  • लेखन के समय (मई 2019) Repl.it में एक ऑनलाइन कंपाइलर है जो स्विफ्ट 4.2 को सपोर्ट करता है लेकिन जल्द ही अपडेट आने वाला है।

स्विफ्ट में एक साधारण ऐप कैसे लिखें

Xcode खोलें, और File > New > Project चुनें। टेम्पलेट सूची से Single View App चुनें।

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

अपने ऐप के लिए एक नाम दर्ज करें, और Organization का नाम (यह आपकी कंपनी का नाम या आपका अपना नाम हो सकता है)। Organization Identifier आमतौर पर आपकी कंपनी का URL रिवर्स ऑर्डर में होता है - उदाहरण के लिए com.mycompany.myapp।

भाषा के रूप में Swift चुनें और Next पर क्लिक करें। अंत में, अपने मैक पर वह स्थान चुनें जहां आप Xcode को प्रोजेक्ट बनाना चाहते हैं।

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

प्रोजेक्ट बनने पर आपको निम्न स्क्रीन प्रस्तुत की जाएगी:

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

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

शुरू करने के लिए, बाएं पेन में Main.storyboard फ़ाइल पर जाएं। आपको एक खाली View दिखाई देगा। ऑब्जेक्ट लाइब्रेरी खोलने के लिए ऊपरी दाएं कोने में गोल बटन पर क्लिक करें। टेक्स्ट फील्ड, लेबल और बटन को View पर ड्रैग करें।

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

View Hierarchy में बटन चुनें और दाईं ओर Utility एरिया में उसका शीर्षक "Generate greeting" सेट करें।

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

ViewController.swift फ़ाइल पर डबल-क्लिक करें। यह एक अलग विंडो में खुलेगा।

अब View में टेक्स्ट फील्ड चुनें और Ctrl दबाकर ViewController क्लास के शीर्ष पर ड्रैग करें। आपको टेक्स्ट फील्ड के लिए IBOutlet बनाने के लिए प्रेरित किया जाएगा। इसे "textField" नाम दें।

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

लेबल के लिए भी ऐसा ही करें और IBOutlet का नाम "label" रखें। आपको बटन के लिए भी ऐसा ही करना होगा, लेकिन इसे ViewController के शीर्ष पर ड्रैग करने के बजाय, IBAction मेथड बनाने के लिए नीचे ड्रैग करें। मेथड का नाम "buttonTapped" रखें।

IBOutlets का उपयोग स्टोरीबोर्ड में कंट्रोल को हमारे कोड में एक्सेस करने के लिए किया जाता है और IBAction मेथड्स का उपयोग बटन इवेंट्स जैसे टैप पर प्रतिक्रिया करने के लिए किया जाता है।

अपने ViewController क्लास के buttonTapped मेथड में निम्न कोड जोड़ें:

if let name = textField.text {
self.label.text = "Hello " + name
}

ये परिवर्तन करने के बाद ViewController.swift फ़ाइल इस तरह दिखनी चाहिए:

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

अब आप ऐप चलाने के लिए तैयार हैं। रन बटन दबाएं, और ऐप सिम्युलेटर पर लॉन्च हो जाएगा।

जब उपयोगकर्ता टेक्स्ट फील्ड में अपना नाम जोड़ता है और बटन पर टैप करता है, तो नीचे लेबल दर्ज किए गए नाम के साथ "Hello" प्रदर्शित करेगा।

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

स्विफ्ट 5 कॉन्सेप्ट्स (बेसिक और एडवांस्ड)

हमने एक साधारण ऐप बना लिया है। अब कुछ मेथड्स और कोड स्निपेट्स पर चलते हैं जिनका उपयोग आप अपने ऐप प्रोजेक्ट्स में कर सकते हैं।

स्विफ्ट में टेक्स्ट प्रिंट करना

print("Hello, world!")

वेरिएबल्स को परिभाषित करना

कॉन्स्टेंट बनाने के लिए 'let' का उपयोग करें और वेरिएबल को परिभाषित करने के लिए 'var' का उपयोग करें। एक बार असाइन होने के बाद कॉन्स्टेंट का मान बदला नहीं जा सकता; वेरिएबल का मान बदल सकता है। उपयोगकर्ताओं को हमेशा प्रकार को स्पष्ट रूप से लिखने की आवश्यकता नहीं होती है। जब आप कॉन्स्टेंट या वेरिएबल बनाते समय एक मान प्रदान करते हैं तो कंपाइलर उसके प्रकार का अनुमान लगा लेता है।

let constVar = 42
var numberVar = 27

डेवलपर प्रकार को भी निर्दिष्ट कर सकता है। नीचे दिए गए उदाहरण में, हम एक पूर्णांक घोषित कर रहे हैं।

var numberVar: Int = 27

स्विफ्ट में टिप्पणियां

स्विफ्ट में टिप्पणियां दो प्रकार की हो सकती हैं।

सिंगल लाइन:

//This is a comment

मल्टी-लाइन टिप्पणियां:

/* This is a
Multiline comment */

स्विफ्ट में निर्णय लेना

स्विफ्ट में if स्टेटमेंट का सिंटैक्स इस प्रकार है:

if boolean_expression {
/* statement(s) will execute if the boolean expression is true */
}

उदाहरण के लिए:

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

स्विफ्ट 5 में if...else स्टेटमेंट का सिंटैक्स इस प्रकार है:

if boolean_expression {
/* statement(s) will execute if the boolean expression is true */
} else {
/* statement(s) will execute if the boolean expression is false */
}

उदाहरण के लिए:

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

स्विफ्ट 5 में if...else if...else स्टेटमेंट का सिंटैक्स इस प्रकार है:

if boolean_expression_1 {
/* Executes when the boolean expression 1 is true */
} else if boolean_expression_2 {
/* Executes when the boolean expression 2 is true */
} else if boolean_expression_3 {
/* Executes when the boolean expression 3 is true */
} else {
/* Executes when the none of the above condition is true */
}

उदाहरण के लिए:

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

स्विच स्टेटमेंट

स्विफ्ट 5 में उपलब्ध स्विच स्टेटमेंट का सामान्य सिंटैक्स निम्नलिखित है। यहां अगर fallthrough का उपयोग किया जाता है तो यह अगले केस के निष्पादन के साथ जारी रहेगा और फिर स्विच स्टेटमेंट से बाहर आ जाएगा।

Switch expression {
case expression1 :
statement(s)
fallthrough /* optional */
case expression2, expression3 :
statement(s)
fallthrough /* optional */
default : /* Optional */
statement(s);
}

उदाहरण के लिए:

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

एरे (Arrays)

स्क्वायर ब्रैकेट्स का उपयोग करके एरे और डिक्शनरी बनाएं - यानी [ और ] - और इंडेक्स या की को ब्रैकेट्स में लिखकर उनके तत्वों तक पहुंचें। निम्न लाइन एक एरे बनाती है।

var arrayList = ["Swift", "JavaScript", "Java", "PHP"]

एरे के दूसरे तत्व को एक्सेस और संशोधित करने के लिए हम सीधे लिख सकते हैं:

arrayList[2] = "React Native"

खाली एरे बनाने के लिए, इनिशियलाइज़र सिंटैक्स का उपयोग करें।

var emptyArray = [String]()
emptyArray = []

डिक्शनरी (Dictionaries)

var occupations = ["Steve": "Developer", "Kate": "Designer",]

डिक्शनरी के लिए किसी भी मान को एक्सेस और संशोधित करने के लिए हम सीधे लिख सकते हैं:

occupations["Steve"] = "CTO"

खाली डिक्शनरी बनाने के लिए, इनिशियलाइज़र सिंटैक्स का उपयोग करें।

occupations = [:]

सेट्स (Sets)

स्विफ्ट में सेट्स एरे के समान हैं लेकिन उनमें केवल यूनिक मान होते हैं।

var a : Set = [1,2,3,4,5,6,7,8,9,0]

स्विफ्ट Optionals प्रकार भी पेश करता है, जो मान की अनुपस्थिति को संभालता है। Optionals कहते हैं "या तो एक मान है, और यह x के बराबर है" या "कोई मान नहीं है"। आप '?' या '!' के साथ एक Optional परिभाषित कर सकते हैं

var myString: String?

'?' का अर्थ है कि मान मौजूद या अनुपस्थित हो सकता है।

'!' का अर्थ है कि मान प्रारंभ में nil हो सकता है, लेकिन भविष्य में जब इसका उपयोग किया जाता है तो इसका एक मान होना चाहिए, अन्यथा यह रनटाइम त्रुटि उत्पन्न करेगा।

कोई चिह्न नहीं होने का अर्थ है कि वेरिएबल ऑप्शनल नहीं है और इसे एक मान निर्दिष्ट किया जाना चाहिए, अन्यथा यह कंपाइलर त्रुटि उत्पन्न करेगा।

फंक्शन्स (Functions)

स्विफ्ट में फंक्शन बनाने का सिंटैक्स निम्नलिखित है: inputNum पैरामीटर नाम है जिसके बाद DataType आता है, 'createStr' फंक्शन का नाम है। '-> String' रिटर्न टाइप को दर्शाता है। फंक्शन Integer को इनपुट के रूप में लेता है और इसे String में परिवर्तित करके वापस करता है।

func createStr(Number inputNum : Int) -> String
{
return "\(inputNum)"
}

फंक्शन को नीचे दिए गए सिंटैक्स का उपयोग करके कॉल किया जा सकता है:

createStr(Number: 345)

क्लासेस (Classes)

क्लास Car बनाने का सिंटैक्स निम्नलिखित है। इसमें एक ऑप्शनल मेंबर वेरिएबल numOfPersons और एक फंक्शन displayDetails() है

class Car
{
var numOfPersons : Int?
func displayDetails() {
}
}

क्लास इंस्टेंस को नीचे दी गई लाइन का उपयोग करके बनाया जा सकता है:

var myCar : Car = Car()

'numOfPersons' वेरिएबल को नीचे दिए अनुसार इनिशियलाइज़ किया जा सकता है:

myCar.numOfPersons = 5

स्विफ्ट में क्लोजर्स (Closures)

क्लोजर्स अनाम फंक्शन्स हैं जो ब्लॉक के रूप में व्यवस्थित होते हैं और C और Objective-C भाषाओं की तरह कहीं भी कॉल किए जाते हैं। क्लोजर्स को वेरिएबल्स को असाइन किया जा सकता है। स्विफ्ट में क्लोजर का सिंटैक्स निम्नलिखित है।

{
(parameters) −> return type in
statements
}

नीचे एक सरल उदाहरण है। यहां हम एक क्लोजर को वेरिएबल scname को असाइन कर रहे हैं। फिर अगली लाइन पर हम वेरिएबल नाम को कॉल करके क्लोजर को कॉल कर रहे हैं।

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

एक्सटेंशन्स (Extensions)

स्विफ्ट में हम एक्सटेंशन्स की मदद से मौजूदा क्लास, स्ट्रक्चर या एन्यूमरेशन टाइप की कार्यक्षमता बढ़ा सकते हैं। एक्सटेंशन्स के साथ टाइप फंक्शनैलिटी जोड़ी जा सकती है लेकिन इस तरह से फंक्शनैलिटी को ओवरराइड करना संभव नहीं है।

नीचे दिए गए उदाहरण में हमारे पास एक क्लास car है और हम car में एक और प्रॉपर्टी जोड़ने के लिए एक एक्सटेंशन जोड़ रहे हैं। स्पीड प्रॉपर्टी को एक्सेस करते समय, इसे सीधे एक्सेस किया जा सकता है जैसे कि यह क्लास से संबंधित हो।

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

टपल्स (Tuples)

टपल प्रकार का उपयोग एकल कंपाउंड मान में कई मानों को समूहित करने के लिए किया जाता है। टपल घोषणा का सिंटैक्स यहां दिया गया है:

var TupleName = (Value1, value2,… any number of values)

यहां एक टपल घोषणा है:

var error501 = (501, "Not implemented")

स्विफ्ट 5 में नई सुविधाएं

आइए स्विफ्ट 5 में नए तत्वों को अधिक विस्तार से देखें।

रॉ स्ट्रिंग्स (Raw Strings)

स्विफ्ट 5 हमारे लिए रॉ स्ट्रिंग्स लाता है, एक ऐसी सुविधा जो पिछले स्विफ्ट संस्करणों की तरह एस्केप सीक्वेंस का उपयोग किए बिना उद्धरण चिह्न और बैकस्लैश वाले स्ट्रिंग्स बनाना आसान बनाती है। रॉ स्ट्रिंग्स में, उद्धरण चिह्न और बैकस्लैश को उन प्रतीकों के रूप में शाब्दिक रूप से व्याख्या किया जाता है, न कि स्ट्रिंग टर्मिनेशन या एस्केप वर्णों के रूप में।

रॉ स्ट्रिंग्स का उपयोग करने के लिए, आपको केवल स्ट्रिंग के शुरुआत और अंत में # जोड़ना होगा:

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

चूंकि रॉ स्ट्रिंग्स में बैकस्लैश को एक शाब्दिक प्रतीक के रूप में व्याख्या किया जाता है, रॉ स्ट्रिंग्स में स्ट्रिंग इंटरपोलेशन का उपयोग करने के लिए आपको बैकस्लैश प्रतीक के बाद एक और # जोड़ना होगा:

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

यदि आपको रॉ स्ट्रिंग के अंदर "# अनुक्रम का एक साथ उपयोग करने की आवश्यकता है तो आपको स्ट्रिंग के शुरुआत और अंत में ## जोड़ना होगा:

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

पूर्णांक गुणक ढूंढना

स्विफ्ट 4.2 और पहले के संस्करणों में, यह पता लगाने के लिए कि कोई संख्या दूसरी संख्या का गुणक है या नहीं, आपको मोड्यूलो ऑपरेटर (%) का उपयोग करना पड़ता था। अब स्विफ्ट 5 में, इसके लिए एक समर्पित मेथड है, जो कोड को बहुत स्पष्ट बनाता है:

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

भविष्य के एनम केस को संभालना

स्विफ्ट में स्विच स्टेटमेंट हमेशा संपूर्ण होने चाहिए। इसका मतलब है कि आपको हमेशा सभी एनम केस को संभालना होगा या केवल विशिष्ट केस को default केस के साथ संभालना होगा जो अन्य सभी केस को संभालता है:

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

इस दृष्टिकोण के साथ समस्या यह है कि यदि भविष्य में डेवलपर एनम में एक और केस जोड़ने का फैसला करता है, तो कंपाइलर द्वारा कोई चेतावनी नहीं दी जाएगी कि नया केस जोड़ा गया था। इसका मतलब है कि नया केस default केस द्वारा संभाला जाएगा जो हमेशा आप नहीं चाहते।

इस मुद्दे को हल करने के लिए, स्विफ्ट 5 में एक नया @unknown एट्रिब्यूट जोड़ा गया था। आप इस एट्रिब्यूट का उपयोग default केस के साथ करते हैं।

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

स्विच स्टेटमेंट में @unknown डिफ़ॉल्ट केस के साथ, यदि भविष्य में एनम में कोई नया केस जोड़ा जाता है तो कंपाइलर एक चेतावनी जारी करेगा। इस तरह, डेवलपर तय कर सकता है कि नए केस को संभालना है या नहीं।

नेस्टेड ऑप्शनल्स को समतल करना

नेस्टेड ऑप्शनल्स को try? का उपयोग करके थ्रो करने वाले कोड को संभालकर बनाया जा सकता है। स्विफ्ट 5 में, नेस्टेड ऑप्शनल को एक नियमित ऑप्शनल में समतल कर दिया जाता है। यह सशर्त टाइप-कास्टिंग और ऑप्शनल चेनिंग के व्यवहार से मेल खाता है।

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

उपरोक्त उदाहरण में, आप देख सकते हैं कि model वेरिएबल String? प्रकार का है न कि String?? जैसा कि यह स्विफ्ट 4.2 में था।

स्टैंडर्ड लाइब्रेरी में रिजल्ट टाइप (Result Type)

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

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

उपरोक्त उदाहरण में, हमने एक सरल ApiClient लागू किया है जो URL से नाम प्राप्त करता है। ध्यान दें कि fetchNames फंक्शन में दूसरा पैरामीटर एक कम्पलीशन क्लोजर है जो Result टाइप स्वीकार करता है। हमारे उदाहरण में Result टाइप success केस के लिए [String] और failure केस के लिए ApiError का उपयोग करता है।

अब, हम उपरोक्त कोड का उपयोग इस तरह कर सकते हैं:

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

स्विफ्ट में अन्य सुविधाएं

हमने पहले के संस्करण में स्विफ्ट के नवीनतम संस्करण में नई सुविधाओं को देखा था। लेकिन पुराने संस्करणों से बची हुई सुविधाओं के बारे में जानना अभी भी उचित है। यहां कुछ मुख्य विशेषताएं हैं जो स्विफ्ट 4 में जोड़ी गई थीं:

स्ट्रिंग्स (Strings)

स्विफ्ट 4 के अनुसार, String Collection प्रोटोकॉल के अनुरूप है, और आप सीधे String पर पुनरावृति कर सकते हैं। इसका यह भी अर्थ है कि आप String पर किसी भी Collection मेथड और प्रॉपर्टी का उपयोग कर सकते हैं, जैसे count, isEmpty, map(), filter(), index(of:) आदि।

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

स्विफ्ट मल्टीपल लाइन स्ट्रिंग्स के लिए ट्रिपल कोट्स का उपयोग करके पूरी तरह से अलग दृष्टिकोण अपनाता है, इसलिए अब आपको डबल कोट्स को एस्केप करने की आवश्यकता नहीं है:

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

JSON एन्कोडिंग और डिकोडिंग

स्विफ्ट 4 ने पूरे JSON आर्काइवल और सीरियलाइज़ेशन प्रक्रिया को सरल बना दिया जिसका उपयोग आप स्विफ्ट 3 में करते थे। अब आपको केवल अपने कस्टम प्रकारों को Codable प्रोटोकॉल लागू करना होगा - जो Encodable और Decodable दोनों को जोड़ता है।

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

स्मार्टर की पाथ्स (Smarter Key Paths)

स्विफ्ट 4 ने की पाथ्स के साथ ऑब्जेक्ट की प्रॉपर्टीज को एक्सेस करना आसान बना दिया।

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

क्लासेस को प्रोटोकॉल के साथ मिलाना

स्विफ्ट 3 में कॉन्स्टेंट्स और वेरिएबल्स बनाते समय आप प्रोटोकॉल को एक साथ जोड़ सकते हैं। स्विफ्ट 4 एक कदम आगे बढ़ा और आपको उसी सिंटैक्स का उपयोग करके क्लासेस को मिक्स में जोड़ने देता है। आप किसी निश्चित ऑब्जेक्ट को केवल एक क्लास और एक प्रोटोकॉल तक सीमित कर सकते हैं जैसे Objective-C में।

swap बनाम swapAt

स्विफ्ट 3 में swap(_:_:) म्यूटेटिंग मेथड एक निश्चित एरे के दो तत्वों को लेता है और उन्हें मौके पर ही स्वैप करता है। इस समाधान में एक प्रमुख खामी है: स्वैप किए गए तत्वों को इनपुट पैरामीटर के रूप में फंक्शन में पास किया जाता है ताकि यह उन्हें सीधे एक्सेस कर सके।

स्विफ्ट 4 swapAt(_:_:) के साथ मेथड को बदलकर पूरी तरह से अलग दृष्टिकोण अपनाता है जो दो तत्वों के संबंधित इंडेक्स लेता है और उन्हें पहले की तरह ही स्वैप करता है।

डिक्शनरी और सेट्स

आप डिक्शनरी के init(uniqueKeysWithValues:) इनिशियलाइज़र का उपयोग करके टपल्स एरे से एक बिल्कुल नई डिक्शनरी बना सकते हैं।

मैक पर स्विफ्ट 5 से ऐप्स कैसे बनाएं

स्विफ्ट 5 प्रोग्रामिंग के बारे में अधिक जानने के लिए सर्वोत्तम स्थान

स्विफ्ट 5 का उपयोग करके ऐप्स बनाना शुरू करने में आपकी सहायता के लिए कई संसाधन उपलब्ध हैं। कुछ सर्वोत्तम विकल्प नीचे सूचीबद्ध हैं:

Apple दस्तावेज़ीकरण: स्विफ्ट 5 सीखने के लिए सबसे अच्छी जगह Apple का स्विफ्ट के लिए आधिकारिक दस्तावेज़ीकरण है।

ई-बुक: Apple ने एक अप-टू-डेट ई-बुक जारी की है जो स्विफ्ट 5 सीखने के लिए अत्यंत उपयोगी है: The Swift Programming Language (Swift 5.0)।

Udemy: सबसे बड़ी ऑनलाइन वीडियो लर्निंग सेवा में स्विफ्ट के विभिन्न संस्करणों को कवर करने वाले कई कोर्स हैं। यहां कुछ हैं जो स्विफ्ट 5 को कवर करते हैं:

  • Swift 5 Programming for Beginners
  • iOS 12 & Swift 5: Build a To Do List App

Swift programming in easy steps - covers iOS 12 and Swift 5: इस पुस्तक के लेखक, इस लेख के लेखक, आपको सिखाएंगे कि स्विफ्ट 5 का उपयोग करके स्क्रैच से iOS ऐप्स कैसे बनाएं और यह पूरी तरह से सचित्र भी है। आप इसे Amazon से प्राप्त कर सकते हैं।

Hacking with Swift: स्विफ्ट के साथ विकास के बारे में जानने का एक शानदार तरीका Hacking with Swift वेबसाइट पर पुस्तकों का उपयोग करना है। इसे पॉल हडसन द्वारा बनाए रखा जाता है, जो एक महान स्विफ्ट डेवलपर और उत्साही हैं।

हमारे पास एक अलग लेख में अधिक संसाधन हैं: स्विफ्ट कैसे सीखें।

  1. अपने Mac पर Windows ऐप्स चलाएं: आसान, तेज़ और सुरक्षित तरीके अपने Mac पर Windows ऐप्स चलाएं: आसान, तेज़ और सुरक्षित तरीके

    MacBook पर Windows कैसे प्राप्त करें यदि आप Mac पर Windows सॉफ़्टवेयर खोलना चाहते हैं जो macOS के लिए उपलब्ध नहीं है, तो इसे करने के तीन तरीके हैं: बूट कैंप का उपयोग करके Windows को macOS के साथ सेकेंडरी ऑपरेटिंग सिस्टम के रूप में इंस्टॉल करें वर्चुअलाइज़ेशन सॉफ़्टवेयर (Parallels Desktop, VMware Fu

  1. Parallels 15 के साथ Windows इंस्टॉल करें - चरण-दर-चरण गाइड Parallels 15 के साथ Windows इंस्टॉल करें - चरण-दर-चरण गाइड

    एक वर्चुअल मशीन एक सॉफ़्टवेयर है जो एक ऑपरेटिंग सिस्टम का इंस्टेंस दूसरे ऑपरेटिंग सिस्टम के अंदर चलाता है (उदाहरण के लिए macOS 10.15 के अंदर Windows 10)। यह Mac पर Windows चलाने का एकमात्र तरीका नहीं है (Mac का अपना बूट कैंप भी है), हालांकि बूट कैंप के विपरीत, वर्चुअल मशीनें आपको दो OS को एक साथ चल

  1. Mac पर अनइंस्टॉल न होने वाले ऐप्स को आसानी से हटाएं Mac पर अनइंस्टॉल न होने वाले ऐप्स को आसानी से हटाएं

    Mac पर एक नया एप्लिकेशन इंस्टॉल करना इतना सरल कार्य है और जब आप इसे नहीं चाहते हैं, तो आप इसे अनइंस्टॉल करके अंततः इससे छुटकारा पा सकते हैं। यह सरल और आसान लग सकता है, लेकिन अनइंस्टॉलेशन के कुछ मामले जिद्दी ऐप्स या उनके बचे हुए डेटा को नहीं हटाते जैसा होना चाहिए। उनका टैग अकेला सिस्टम में चलता रहता