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

সুইফট (Swift) দিয়ে ডিভাইসের টাইপ (আইফোন, আইপড টাচ) কীভাবে নির্ধারণ করবেন?


আইওএস (iOS) অ্যাপ্লিকেশন ডেভেলপমেন্টের সময়ে আমরা কখনও কখনও জানতে চাই অ্যাপটি কোন ডিভাইসে ইনস্টল করা হয়েছে, এবং সেই অনুযায়ী কাস্টম ফিচার প্রদান করতে চাই। উদাহরণস্বরূপ, আমরা আইফোন এক্স (iPhone X)-এ কিছু ফিচার দিতে চাই কিন্তু আইফোন ৭-এ নয়। এই আর্টিকেলে আমরা শিখব কিভাবে একটি আইওএস অ্যাপ্লিকেশন ব্যবহার করে ব্যবহার করা হচ্ছে এমন আইওএস ডিভাইসটি খুঁজে বের করা যায়।

প্রয়োজনীয় টার্মসমূহ

আগে কিছু টার্ম বুঝে নেই যেগুলো ফলাফল পেতে প্রয়োজন:

  • utsname — এটি আইওএস-র دارউইন (Darwin) মডিউলে অবস্থিত একটি স্ট্রাকচার।
  • uname — এটি একটি ফাংশন যা utsname ইনপুট হিসেবে নেয় এবং আউটপুট হিসেবে Int32 রিটার্ন করে।
  • Mirror — যেকোনো টাইপের ইনস্ট্যান্সের সাব-স্ট্রাকচার এবং ডিসপ্লে স্টাইলের একটি রিপ্রেজেন্টেশন।

আইওএস SDK-তে ডিভাইস খুঁজে বের করা একটি সহজ কাজ যদি শুধু মডেল বা নাম জানতে হয়। নিচের কোডগুলো ব্যবহার করলে একটি স্ট্রিং রিটার্ন করবে।

কিন্তু উপরের কোড সঠিক ডিভাইস বলতে পারে না, এটি শুধু বলে যে একটি আইফোন ব্যবহার হচ্ছে। সঠিক ডিভাইস জানতে হলে কিছু ধাপ অনুসরণ করতে হবে।

সুইফট (Swift) এ ডিভাইস আইডেন্টিফায়ার পাওয়ার পদ্ধতি

সুইফটে উপরে উল্লিখিত সব টার্ম ব্যবহার করে ডিভাইস নম্বর আউটপুট হিসেবে পাওয়া যায়।

func getDevice() -> String {
    var systemInfo = utsname()
    uname(&systemInfo)
    let machineMirror = Mirror(reflecting: systemInfo.machine)
    let identifier = machineMirror.children.reduce("") { identifier, element in
        guard let value = element.value as? Int8, value != 0 else { return identifier }
        return identifier + String(UnicodeScalar(UInt8(value)))
    }
    return identifier
}

এই ফাংশন আমাদের মডেল কোড (model code) দেয় কিন্তু সঠিক ডিভাইসের নাম দেয় না। এই "identifier" ভেরিয়েবলকে একাধিক ভ্যালুর সাথে তুলনা করে প্রয়োজন অনুযায়ী মডেলের নাম পেতে হয়।

সিমুলেটরে রান করার উদাহরণ

নিচে একটি উদাহরণ দেওয়া হলো যেখানে কোডটি আইওএস ১২.০ ভার্সনে চলমান আইফোন ৭ প্লাস (iPhone 7 Plus) সিমুলেটরে রান করা হয়েছে।

সুইফট (Swift) দিয়ে ডিভাইসের টাইপ (আইফোন, আইপড টাচ) কীভাবে নির্ধারণ করবেন?

অ্যাপল ডিভাইসের মডেল কোড এবং সংশ্লিষ্ট নামের তালিকা

iPod4,1iPod Touch 4G
iPod5,1iPod Touch 5G
iPod7,1iPod Touch 6G
iPhone3,1 , iPhone3,2 , iPhone3,3iPhone 4
iPhone4,1iPhone 4s
iPhone5,1 , iPhone5,2iPhone 5
iPhone5,3 , iPhone5,4iPhone 5c
iPhone6,1 , iPhone6,2iPhone 5s
iPhone7,2iPhone 6
iPhone7,1iPhone 6 Plus
iPhone8,1iPhone 6s
iPhone8,2iPhone 6s Plus
iPhone8,4iPhone SE
iPhone9,1 , iPhone9,3iPhone 7
iPhone9,2 , iPhone9,4iPhone 7 Plus
iPad2,1 , iPad2,2 , iPad2,3 , iPad2,4iPad 2
iPad3,1 , iPad3,2 , iPad3,3iPad 3
iPad3,4 , iPad3,5 , iPad3,6iPad 4
iPad4,1 , iPad4,2 , iPad4,3iPad Air
iPad5,3 , iPad5,4iPad Air 2
iPad2,5 , iPad2,6 , iPad2,7iPad Mini
iPad4,4 , iPad4,5 , iPad4,6iPad Mini 2
iPad4,7 , iPad4,8 , iPad4,9iPad Mini 3
iPad5,1 , iPad5,2iPad Mini 4
iPad6,3 , iPad6,4iPad Pro (9.7 inch)
iPad6,7 , iPad6,8iPad Pro (12.9 inch)

  1. আইফোন দিয়ে Mac আনলক করার পদ্ধতি (থার্ড-পার্টি অ্যাপ ব্যবহার করে)

  2. আইফোনে 3D Touch ব্যবহার করার সম্পূর্ণ গাইড

  3. আইপড থেকে আইফোন ১২/১১-এ মিউজিক ট্রান্সফার করার উপায়

  4. আপনার আইফোন জেইলব্রেক করার পদ্ধতি