কম্পিউটার টিউটোরিয়াল

ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

Swift হলো একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ যেটি ব্যবহার করে iPhone, iPad, Mac, Apple Watch এবং আরও অনেক প্ল্যাটফর্মের জন্য অ্যাপ ও গেম লিখা যায়। অ্যাপল Swift-কে এক্সপ্লিসিটলি ডিজাইন করেছে যাতে ডিভাইসগুলো থেকে সবচেয়ে ফাস্ট এবং ইফিশিয়েন্ট পারফরম্যান্স পাওয়া যায়, এবং Swift 5 এর ইতিমধ্যে সমৃদ্ধ ফিচার সেটকে আরও এক্সপ্যান্ড করেছে। এই আর্টিকেলে আমরা দেখাব Swift 5 কিভাবে ব্যবহার করবেন, কেন ব্যবহার করবেন, এবং এই ভার্সনের সব নতুন ফিচার।

যদি সরাসরি ডুবে যেতে চান, Swift 5-এ শুরু করার পদ্ধতি-এ যান। বিস্তারিত ওভারভিউ için ম্যাক প্রোগ্রামিংয়ের সম্পূর্ণ গাইড দেখুন—ম্যাকওএসে ব্যবহারযোগ্য বিভিন্ন কোডিং ল্যাঙ্গুয়েজের ওভারভিউ।

Swift 5 ওভারভিউ

Swift 5 হলো অ্যাপল ডেভেলপড একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ যা ডেভেলপারদের iOS, macOS, tvOS, watchOS-এ অ্যাপ বানাতে দেয়।

পঞ্চম ভার্সন Xcode 10.2 এর সাথে মার্চ ২০১৯-এ রিলিজ হয়েছিল—নতুন ফিচারগুলো পরে আলোচনা করব। Swift ল্যাঙ্গুয়েজ কিছুদিন ধরে চলছে: Swift 1.0 সেপ্টেম্বর ২০১৪-এ রিলিজ হয়েছিল। অ্যাপল অনুযায়ী, Swift Objective-C-এর চেয়ে ২.৬ গুণ ফাস্ট এবং Python-এর চেয়ে ৮.৪ গুণ ফাস্ট।

কেন Swift 5-এ কোড লিখবেন?

  1. ওপেন সোর্স: সোর্স কোড পাবলিকলি উপলব্ধ। কোডাররা ইন্সপেক্ট, মডিফাই, ডিপ্লয় করতে পারেন। অ্যাপল বলে: "ওপেন সোর্স মেথডলজি macOS-কে আরও রবাস্ট ও সিকিউর করে, কারণ কোর কম্পোনেন্টগুলো দশক ধরে পিয়ার রিভিউয়ের অধীনে আছে।"
  2. শেখা সহজ: অ্যাপল ল্যাঙ্গুয়েজটিকে সহজ বানিয়েছে। বIginners-এর জন্য আদর্শ—সিনট্যাক্স বোঝা সহজ। আগে সফটওয়্যার ডেভেলপ করলে Swift-এর সিনট্যাক্স ও কনসেপ্ট পরিচিত লাগবে।
  3. ফাস্ট: সার্চ অ্যালগরিদম Objective-C-এর চেয়ে ২.৬x, Python-এর চেয়ে ৮.৪x ফাস্ট।
  4. সেফ: আনসেফ কোড এড়ানো যায়, মডার্ন প্রোগ্রামিং কনভেনশন দিয়ে অ্যাপ সিকিউর রাখা যায়।
  5. Playgrounds: Xcode-র সাথে Playgrounds ফিচার থাকে—Swift 5 কোড লিখলেই ফলাফল স-phosphorescence দেখা যায়। Swift Playgrounds ব্যবহার দেখুন।
  6. ফিউচার-প্রুফ: iOS, macOS, watchOS, tvOS—একসাথে একাধিক প্ল্যাটফর্মে ডেভেলপমেন্ট।
  7. নিরবদ্য উন্নতি: Swift 5 এ ABI stability আনে—ফিউচার Swift কম্পাইলার Swift 5+ এ লেখা কোড কম্পাইল করতে পারবে, মাইগ্রেশন কম পেইনফুল হবে। OS ভেন্ডররা Swift Standard Library-কে OS-এ এম্বেড করতে পারবে, Swift 5+ দিয়ে বিল্ট সকল অ্যাপের সাথে কম্প্যাটিবল হবে।

WWDC 2019-এ আরও Swift ডেভেলপমেন্ট শুনতে পাব।

Swift 5-এ শুরু করা

iOS অ্যাপ ডেভেলপ করতে হলে দরকার: একটি ম্যাক (MacBook, iMac, Mac mini) এবং ফ্রি সফটওয়্যার Xcode (v10.2+)। নিচের ধাপগুলো ফলো করুন:

  1. ম্যাক অ্যাপ স্টোর খুলুন।
  2. সার্চ বারে 'Xcode' টাইপ করুন।
  3. Xcode আইকনের পাশে 'Get' চাপুন।
  4. ব্রাউজারে Mac App Store-এ যেতে পারেন।

ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

অনলাইন কম্পাইলার

অ্যাপ ডিপ্লয় না করলে Swift অনলাইন কম্পাইলার ব্যবহার করতে পারেন—শিখতে ও এক্সিকিউট করতে গেয়ে।

  • Online Swift Playground: Swift 5 সাপোর্ট করে, কোড টেস্ট ও এক্সিকিউট করতে দেয়।
  • Repl.it: Swift 4.2 সাপোর্ট করে (মে ২০১৯ পর্যন্ত), আপডেট আসছে।

Swift-এ একটি সিম্পল অ্যাপ লিখা

Xcode খুলুন → File → New → Project → টেমপ্লেট থেকে Single View App সিলেক্ট করুন।

ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

অ্যাপের নাম দিন, Organization name (কোম্পানি বা নিজের নাম)। Organization Identifier সাধারণত কোম্পানির URL রিভার্স অর্ডারে (যেমন com.mycompany.myapp)।

Language: Swift সিলেক্ট করুন → Next → প্রজেক্টের লোকেশন বেছে নিন।

ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

প্রজেক্ট তৈরি হলে নিচের স্ক্রিন আসবে:

ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

এখানে একটি সিম্পল অ্যাপ বানাবো: ইউজার টেক্সট ফিল্ডে নাম লিখবে, বাটন চাপলে "Hello [নাম]" গ্রিটিং দেখাবে।

  1. বাম প্যানেল থেকে Main.storyboard খুলুন। খালি View দেখাবে। উপরের ডান কোণার গোল বাটন চাপে Object Library খুলুন। Text Field, Label, Button টেনে View-এ আনুন।
  2. ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড
  3. ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড
  4. Button সিলেক্ট করুন, ডান পাশের Utility Area-র Title ফিল্ডে "Generate greeting" লিখুন। ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড
  5. ViewController.swift ডাবল-ক্লিক করুন (আলাদা উইন্ডোতে খুলবে)।
  6. Text Field সিলেক্ট করুন, Ctrl ধরে ViewController ক্লাসের টপে ড্র্যাগ করুন → IBOutlet তৈরি হবে, নাম দিন "textField"। ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড
  7. Label-ও একইভাবে IBOutlet "label" নামে বানান। Button-এ IBAction তৈরি করতে Ctrl ধরে ক্লাসের বটমে ড্র্যাগ করুন, মেথড নাম "buttonTapped"।
  8. IBOutlets = স্টোরিবোর্ড কন্ট্রোল কোডে এক্সেস করা, IBActions = বাটন ইভেন্ট (ট্যাপ) হ্যান্ডেল করা।
  9. buttonTapped মেথডে নিচের কোড যোগ করুন:
    if let name = textField.text {
    self.label.text = "Hello " + name
    }
  10. ViewController.swift ফাইল এখন এমন দেখাবে: ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড
  11. Run বাটন চাপুন—সিমুলেটরে অ্যাপ লঞ্চ হবে।
  12. নাম লিখে বাটন চাপলে লেবেলে "Hello [নাম]" দেখাবে। ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

Swift 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 {
/* true হলে এক্সিকিউট */
}

উদাহরণ: ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

if...else স্টেটমেন্ট

if boolean_expression {
/* true */
} else {
/* false */
}

উদাহরণ: ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

if...else if...else চেইন

if boolean_expression_1 {
/* expr 1 true */
} else if boolean_expression_2 {
/* expr 2 true */
} else if boolean_expression_3 {
/* expr 3 true */
} else {
/* কোনো শর্ত true নয় */
}

উদাহরণ: ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

Switch স্টেটমেন্ট

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

উদাহরণ: ম্যাক-এ Swift 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]

Swift-এ Optionals টাইপ আছে—ভ্যালু না থাকা হ্যান্ডেল করে। '?' বা '!' দিয়ে ডিফাইন করা হয়।

var myString: String?

'?' = ভ্যালু থাকতে পারে বা নাও থাকতে পারে।
'!' = শুরুর দিকে nil হতে পারে, পরে ইউজ করার সময় ভ্যালু থাকতে হবে (নাহলে রানটাইম এরর)।
কোনো সাইন না থাকলে = নন-অপশনাল, ভ্যালু অ্যাসাইন করা বাধ্যতামূলক (নাহলে কম্পাইলার এরর)।

ফাংশন (Functions)

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

কল করুন: createStr(Number: 345)

ক্লাস (Classes)

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

ইন্সট্যান্স: var myCar : Car = Car()
numOfPersons সেট: myCar.numOfPersons = 5

ক্লোজার (Closures)

অনাম ফাংশন ব্লকে অর্গানাইজড, যেকোনো জায়গা কল করা যায়। ভেরিয়েবলে অ্যাসাইন করা যায়।

{
(parameters) -> return type in
statements
}

উদাহরণ: ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

এক্সটেনশন (Extensions)

এক্সিস্টিং ক্লাস, স্ট্রাকচার, এনামের ফাংশনালিটি এক্সটেন্ড করা যায় (ওভাররাইড করা যায় না)।

উদাহরণ: ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

টাপল (Tuples)

একাধিক ভ্যালু একসাথে গ্রুপ করার জন্য।

var TupleName = (Value1, value2, ...)
var error501 = (501, "Not implemented")

Swift 5-এ নতুন ফিচারগুলো

Raw Strings

Swift 5 রอ স্ট্রিংস আনে—কোট মার্কস ও ব্যাকস্ল্যাশ এস্কেপ সিকোয়েন্স ছাড়া লিটার্যালি ব্যবহার করা যায়। স্ট্রিংয়ের শুরু ও শেষে # দিন।

ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

রো স্ট্রিং-এ ব্যাকস্ল্যাশ লিটার্যাল, তাই স্ট্রিং ইন্টারপোলেশনে ব্যাকস্ল্যাশের পর আরও একটি # দিন।

ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

"#" সিকোয়েন্স একসাথে ব্যবহার করতে হলে শুরু ও শেষে ## দিন।

ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

ইন্টিজার মাল্টিপল খুঁজে বের করা

Swift 4.2-এ মডুলো অপারেটর (%) ব্যবহার করতে হতো। Swift 5-এ ডেডিকেটেড মেথড: .isMultiple(of:)—কোড বেশি ক্লিয়ার।

ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

ফিউচার Enum কেস হ্যান্ডলিং

Swift-এ switch স্টেটমেন্ট এক্সহাস্টিভ হতে হয় (সব কেস হ্যান্ডেল করতে হয় অথবা default দিয়ে)। সমস্যা: ফিউচারে নতুন enum কেস যোগ হলে কম্পাইলার ওয়ার্নিং দেয় না, default-এ পড়ে যায়।

Swift 5-এ @unknown অ্যাট্রিবিউট যোগ করা হয়েছে। default কেসের সাথে @unknown ব্যবহার করলে ফিউচারে নতুন কেস যোগ হলে কম্পাইলার ওয়ার্নিং দেবে—ডেভেলপার تصمیم নিতে পারবে হ্যান্ডেল করবে কিনা।

ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

নেস্টেড অপশনালস ফ্ল্যাটেনিং

try? দিয়ে থ্রোইং কোড হ্যান্ডল করলে নেস্টেড অপশনাল বানত। Swift 5-এ এটি রেগুলার অপশনালে ফ্ল্যাটেন হয় (conditional type-casting ও optional chaining-এর মত)।

ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

উদাহরণে model ভেরিয়েবল টাইপ String? (Swift 4.2-এ String?? ছিল)।

স্ট্যান্ডার্ড লাইব্রেরিতে Result টাইপ

Swift 5-এ Result টাইপ স্ট্যান্ডার্ড লাইব্রেরিতে যোগ হয়েছে। অ্যাসিনক্রোনাস কোডে এরর হ্যান্ডলিং এর জন্য ক্লিন ও সিম্পল উপায়। এটি enum হিসেবে ইমপ্লিমেন্টেড: success এবং failure কেস। উভয় জেনেরিকস দিয়ে। success-এ যেকোনো টাইপের ভ্যালু, failure-এ Error প্রোটোকল কনফর্মিং ভ্যালু।

উদাহরণ: ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

ApiClient ইমপ্লিমেন্টেশন: names ফেচ করে URL থেকে। completion closure Result টাইপ এক্সেপ্ট করে—success-এ [String], failure-এ ApiError।

ব্যবহার: ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

Swift-এর অন্যান্য গুরুত্বপূর্ণ ফিচার (পুরনো ভার্সন থেকে)

পুরনো ভার্সনের ফিচারগুলোও জানা দরকার। Swift 4-এ যোগ করা কিছু হাইলাইট:

স্ট্রিংস (Strings)

Swift 4 থেকে String Collection প্রোটোকল কনফর্ম করে—সিডি ইটারেট করা যায়। Collection মেথড/প্রোপার্টি (count, isEmpty, map, filter, index(of:)) String-এ ব্যবহার করা যায়।

ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

মাল্টিলাইন স্ট্রিং: ট্রিপল কোট ("""...""") দিয়ে—ডাবল কোট এস্কেপ করার প্রয়োজন নেই।

ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

JSON এনকোডিং ও ডিকোডিং

Swift 4 JSON আর্কাইভাল/সিরিয়ালাইজেশন সিম্পলিফাই করল। কাস্টম টাইপে Codable প্রোটোকল ইমপ্লিমেন্ট করলেই হয় (Encodable + Decodable)।

ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

স্মার্টার কি পাথ (Key Paths)

অবজেক্টের প্রোপার্টি এক্সেস করা সহজ হয়েছে।

ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

ক্লাস ও প্রোটোকল মিক্সিং

Swift 3-এ প্রোটোকল কম্বাইন করা যেতো। Swift 4-এ ক্লাসও মিক্স করা যায় একই সিনট্যাক্সে—Objective-C-এর মত।

swap vs swapAt

Swift 3: swap(_:_:) মিউটেটিং মেথড—দুই এলিমেন্ট ইনপুট প্যারামিটার হিসেবে পাস করলে স왪 হয়। ড্রব্যাক: ডায়রেক্ট এক্সেস।
Swift 4: swapAt(_:_:)—ইনডেক্স দিয়ে স왪 করে।

ডিকশনারি ও সেট

ডিকশনারির init(uniqueKeysWithValues:) ইলিশিয়ালাইজার দিয়ে টাপল অ্যারে থেকে নতুন ডিকশনারি বানানো যায়।

ম্যাক-এ Swift 5 দিয়ে অ্যাপ বানানোর পূর্ণাঙ্গ গাইড

Swift 5 প্রোগ্রামিং শিখতে সেরা প্লেসগুলো

Swift 5 দিয়ে অ্যাপ বানাতে হেল্প করার রিসোর্সগুলো:

Apple Documentation: Swift 5 শিখতে সেরা জায়গা—অফিশিয়াল ডকুমেন্টেশন।

eBook: অ্যাপল রিলিজ করেছে আপডেটেড eBook: The Swift Programming Language (Swift 5.0)—খুব উপকারী।

Udemy: বড় অনলাইন ভিডিও লার্নিং প্ল্যাটফর্ম। Swift 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): এই আর্টিকেলের লেখক লিখিত বই—Amazon-এ পাওয়া যায়।

Hacking with Swift: পল হাডসনের মেইনটেইন করা ওয়েবসাইট—Swift ডেভেলপমেন্ট শিখতে চমৎকার। বই ও টিউটোরিয়াল আছে।

আরও রিসোর্স: Swift শিখার গাইড।

  1. ম্যাক-এ রাইট-ক্লিক দিয়ে অ্যানিমেটেড GIF তৈরি করার উপায়

  2. Mac-এ Windows অ্যাপ্লিকেশন চালান: সহজ, দ্রুত ও নিরাপদ পদ্ধতি

  3. Parallels 15-এ Windows ইনস্টল করার ধাপে ধাপে গাইড

  4. ম্যাক থেকে অনইনস্টল করা কঠিন অ্যাপ সহজে মুছে ফেলুন