3D Touch একটি Apple হার্ডওয়্যার প্রযুক্তি যা iPhone ডিসপ্লেতে চাপের বল শনাক্ত করে এবং এর সফটওয়্যার প্রতিস্থাপন Haptic Touch, যা স্পর্শের সময়কালের মাধ্যমে কাজ করে। 3D Touch স্ক্রিন ম্যাট্রিক্সের নীচে ইনস্টল করা ক্যালিব্রেটেড চাপ সেন্সর (Force Touch) ব্যবহার করে এবং হালকা চাপ (peek) এবং গভীর চাপ (pop) এর মধ্যে পার্থক্য করতে দেয়। iOS 13 থেকে শুরু করে, Apple 3D Touch-কে Haptic Touch দিয়ে প্রতিস্থাপন করেছে — একটি প্রযুক্তি যা লং প্রেসের মাধ্যমে স্পর্শকাতর প্রতিক্রিয়া সহ জোরালো চাপ অনুকরণ করে UIContextMenuInteraction।
মূল পয়েন্ট
3D Touch একটি হার্ডওয়্যার ইনপুট প্রযুক্তি যা iPhone 6S (2015)-এ আত্মপ্রকাশ করে। ডিসপ্লের পৃষ্ঠের নীচে, ক্যাপাসিটিভ সেন্সর কাচ এবং ব্যাকলাইটের মধ্যে দূরত্ব মাপে। যখন আপনি আঙুল দিয়ে চাপ দেন, কাচটি মাইক্রোস্কোপিকভাবে বেঁকে যায়, সেন্সরগুলি বিকৃতির পরিমাণ সনাক্ত করে এবং এটি একটি বল মানে (গ্রাম) রূপান্তর করে। iOS তিনটি স্তর আলাদা করে: হালকা স্পর্শ (touch), মাঝারি চাপ (peek, ~200 গ্রাম) এবং গভীর চাপ (pop, ~400 গ্রাম)।
Haptic Touch 3D Touch-এর একটি সফটওয়্যার প্রতিস্থাপন, যা iOS 13 (2019)-এ প্রবর্তিত হয়েছে। চাপ মাপার পরিবর্তে, Haptic Touch একই ক্রিয়াকলাপ সক্রিয় করতে লং প্রেস (~500 মি.সে.) ব্যবহার করে। স্পর্শকাতর প্রতিক্রিয়া একটি "ক্লিক"-এর অনুভূতি অনুকরণ করে, যদিও কোনো শারীরিক চাপ ঘটে না। Apple 3D Touch ডিসপ্লে তৈরির জটিলতা এবং উচ্চ ব্যয়ের কারণে Haptic Touch-এ স্যুইচ করেছে, বিশেষ করে Face ID-সহ OLED প্যানেলে রূপান্তরের সময়।
ঐতিহাসিক পটভূমি: 3D Touch iPhone 6S-এ আবির্ভূত হয় এবং iPhone XS (2018) পর্যন্ত থাকে। iPhone XR (2018) 3D Touch-এর পরিবর্তে Haptic Touch-সহ প্রথম ডিভাইস হয়ে ওঠে। iPhone 11 (2019) এবং iOS 13 থেকে শুরু করে, সমস্ত নতুন iPhone Haptic Touch ব্যবহার করে। iPad কখনো 3D Touch পায়নি — শুধুমাত্র iPadOS 13-সহ Haptic Touch পায়। Apple Watch ডিসপ্লেতে Force Touch প্রযুক্তি ব্যবহার করে (iPhone 3D Touch থেকে আলাদা), যা watchOS 7 এবং Series 6 থেকে সরানো হয়েছে।
Force Touch একটি বল মাপার প্রযুক্তি যা Apple iPhone 6S–XS (3D Touch), MacBook ট্র্যাকপ্যাড (2015+) এবং Apple Watch (Series 1–5)-এ ব্যবহার করে। এটি ডিসপ্লের পরিধির চারপাশে অবস্থিত ক্যাপাসিটিভ সেন্সরের উপর ভিত্তি করে তৈরি। চাপ দিলে, কাচটি মাইক্রন দ্বারা বিকৃত হয়, সেন্সরগুলি দূরত্বের পরিবর্তন নিবন্ধন করে এবং একটি ক্রমাঙ্কন বক্ররেখা ব্যবহার করে বল গণনা করে। সিস্টেম পরিবেষ্টিত তাপমাত্রা (প্রতি 24 ঘণ্টায় ক্রমাঙ্কন) এবং আঙুলের অবস্থান (স্ক্রিনের কেন্দ্র আরও সংবেদনশীল) বিবেচনা করে।
ক্রমাঙ্কন 3D Touch-এর একটি গুরুত্বপূর্ণ দিক। প্রতিটি iPhone কারখানায় পৃথকভাবে ক্যালিব্রেট করা হয়। iOS গতিশীল ক্রমাঙ্কনও সম্পাদন করে: বুট করার পর প্রথম চাপে, সিস্টেম ব্যবহারকারীর সর্বোচ্চ বল জিজ্ঞাসা করে এবং সংবেদনশীলতা সামঞ্জস্য করে। সেন্সরগুলির নির্ভুলতা ±10 গ্রাম, পরিসর — 0 থেকে 500+ গ্রাম। ডেভেলপার UITouch.force (0.0 থেকে সর্বোচ্চ পর্যন্ত স্বাভাবিকীকৃত) বা UITouch.maximumPossibleForce-এর মাধ্যমে বল মান পেতে পারেন।
// 3D Touch উপলভ্যতা পরীক্ষা এবং চাপ বল পড়া
class ForceTouchViewController: UIViewController {
override func touchesMoved(_ touches: Set<UITouch>,
with event: UIEvent?) {
guard let touch = touches.first else { return }
// ডিভাইসে Force Touch সমর্থন পরীক্ষা
guard self.traitCollection.forceTouchCapability
== UIForceTouchCapability.available else {
// ডিভাইস 3D Touch সমর্থন করে না
return
}
// চাপ বল পড়া (0.0 — সর্বোচ্চ)
let force = touch.force // 0.0 ... maximumPossibleForce
let maxForce = touch.maximumPossibleForce
// ভিজুয়ালাইজেশনের জন্য 0.0–1.0 রেঞ্জে স্বাভাবিকীকরণ
let normalizedForce = force / maxForce
// চাপ বলের উপর দৃশ্যমান প্রতিক্রিয়া (উপাদান স্কেল)
forceView.transform = CGAffineTransform(scaleX: 1.0 + normalizedForce * 0.3,
y: 1.0 + normalizedForce * 0.3)
}
}সীমাবদ্ধতা: 3D Touch শুধুমাত্র সক্রিয় স্পর্শের সাথে কাজ করে (UITouch.phase == .began বা .moved)। ছাড়ার পর, বল মান শূন্যে রিসেট হয়। সর্বোচ্চ বল মান ডিভাইসের মধ্যে পরিবর্তিত হয়: iPhone 6S — 6.6666, iPhone 7/X — 20.0 পর্যন্ত (ভিন্ন ক্রমাঙ্কনের কারণে)। গুরুত্বপূর্ণ ক্রিয়াকলাপের জন্য বল ব্যবহার করবেন না — ব্যবহারকারী জানেন না কত জোরে চাপ দিতে হবে। সর্বদা Haptic Touch (লং প্রেস)-এর মাধ্যমে একটি বিকল্প প্রদান করুন।
Peek and Pop iPhone 6S-এ 3D Touch-সহ প্রবর্তিত মূল Apple UX প্যাটার্ন। Peek একটি হালকা চাপ (বল ~0.5–1.0) যা একটি প্রিভিউ কার্ডে সামগ্রীর (ইমেল, লিঙ্ক, ফটো) পূর্বরূপ দেখায়। Pop একটি গভীর চাপ (বল ~2.0+) যা সামগ্রীটি পূর্ণ স্ক্রিনে খোলে। Peek নীচে ক্রিয়াকলাপ (শেয়ার, কপি, উত্তর) সমর্থন করত, যা প্রিভিউ কার্ডে উপরে সোয়াইপ করে অ্যাক্সেসযোগ্য ছিল।
UIKit-এ Peek and Pop বাস্তবায়ন তিনটি উপাদান অন্তর্ভুক্ত করে: UIViewControllerPreviewingDelegate (পদ্ধতি previewingContext(_:viewControllerForLocation:) এবং previewingContext(_:commit:) সহ একটি প্রোটোকল), UIPreviewAction (নীচের ক্রিয়াকলাপ) এবং registerForPreviewing(with:sourceView:) এর মাধ্যমে নিবন্ধন। ডেভেলপার নির্দিষ্ট করত যে Peek-এ কোন ViewController দেখাতে হবে এবং Pop-এ এটি কীভাবে খুলতে হবে। সিস্টেম স্বয়ংক্রিয়ভাবে প্যারালাক্স অ্যানিমেশন এবং পটভূমি অস্পষ্টতা যোগ করত।
| অঙ্গভঙ্গি | বল (স্বাভাবিকীকৃত) | ক্রিয়া | দৃশ্যমান প্রভাব |
|---|---|---|---|
| স্পর্শ (Touch) | 0.0–0.3 | সাধারণ মিথস্ক্রিয়া | উপাদান হাইলাইট |
| হালকা চাপ (Peek) | 0.5–1.0 | সামগ্রী পূর্বরূপ | পটভূমি অস্পষ্ট কার্ড |
| গভীর চাপ (Pop) | 2.0+ | পূর্ণ স্ক্রিন খোলা | কার্ড সম্প্রসারণ অ্যানিমেশন |
| উপরে সোয়াইপ | — | ক্রিয়াকলাপ (শেয়ার, কপি) | UIPreviewAction গ্রুপ |
UIContextMenuInteraction-এ রূপান্তর (iOS 13): Apple UIContextMenuInteraction-এর মাধ্যমে Peek and Pop-কে প্রসঙ্গ মেনু দিয়ে প্রতিস্থাপন করেছে। নতুন API সহজ: UIViewControllerPreviewingDelegate প্রয়োজন হয় না, স্তরক্রমিক মেনু (সাবমেনু), SF Symbols আইকন সমর্থন করে এবং 3D Touch এবং Haptic Touch উভয়ের সাথে সমানভাবে কাজ করে। মাইগ্রেশন: registerForPreviewing iOS 13 থেকে অবচিত। এটি UIContextMenuConfiguration দিয়ে প্রতিস্থাপন করুন, যা স্বয়ংক্রিয়ভাবে ডিভাইসের ক্ষমতার সাথে খাপ খায়।
UIContextMenuInteraction iOS 13 থেকে উপলব্ধ, প্রসঙ্গ মেনুর জন্য একটি আধুনিক iOS API। এটি addInteraction(_:) এর মাধ্যমে যে কোনো UIView-এ যোগ করা হয়। UIContextMenuInteractionDelegate মেনু কনফিগারেশন প্রদান করে: একটি শনাক্তকারী সহ UIContextMenuConfiguration, previewProvider (ঐচ্ছিক, পূর্বরূপের জন্য) এবং actionProvider (UIAction বা UIMenu-এর অ্যারে)। প্রসঙ্গ মেনু 3D Touch (যদি উপলব্ধ) বা Haptic Touch (অন্যান্য ডিভাইসে লং প্রেস) দ্বারা সক্রিয় হয়।
// স্তরক্রমিক মেনু সহ UIContextMenuInteraction
class ContextMenuViewController: UIViewController,
UIContextMenuInteractionDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let interaction = UIContextMenuInteraction(delegate: self)
contextMenuView.addInteraction(interaction)
}
func contextMenuInteraction(_ interaction: UIContextMenuInteraction,
configurationForMenuAtLocation location: CGPoint) -> UIContextMenuConfiguration? {
return UIContextMenuConfiguration(identifier: nil,
previewProvider: { PreviewViewController() }) { _ in
let share = UIAction(title: "শেয়ার করুন",
image: UIImage(systemName: "square.and.arrow.up"),
handler: { _ in self.shareContent() })
let edit = UIAction(title: "সম্পাদনা করুন",
image: UIImage(systemName: "pencil"),
handler: { _ in self.editContent() })
let delete = UIAction(title: "মুছুন",
image: UIImage(systemName: "trash"),
attributes: .destructive,
handler: { _ in self.deleteContent() })
return UIMenu(title: "ক্রিয়াকলাপ", children: [share, edit, delete])
}
}
}UIContextMenuConfiguration previewProvider সমর্থন করে — একটি কন্ট্রোলার যা পূর্বরূপ হিসাবে প্রদর্শিত হয়। যদি previewProvider শূন্য হয়, প্রসঙ্গ মেনু পূর্বরূপ ছাড়া দেখানো হয়। পূর্বরূপের আকার এবং চেহারা কাস্টমাইজ করতে UIContextMenuContentPreviewProvider ব্যবহার করা হয়। প্রসঙ্গ মেনু স্বয়ংক্রিয়ভাবে স্পর্শকাতর প্রতিক্রিয়া (Haptic Touch Engine) এবং আবির্ভাব অ্যানিমেশন (স্কেল + ফেইড) পায়।
Haptic Touch এবং 3D Touch ভিন্ন প্রযুক্তি যা একই ফলাফলের দিকে নিয়ে যায়। 3D Touch হার্ডওয়্যার (ডিসপ্লেতে চাপ সেন্সর), Haptic Touch সফটওয়্যার (লং প্রেস + Taptic Engine স্পর্শকাতর অনুকরণের জন্য)। 3D Touch-এর জন্য উৎপাদন খরচ (অতিরিক্ত সেন্সর স্তর) প্রয়োজন, স্ক্রিনের পুরুত্ব এবং মেরামতের জটিলতা বাড়ায়। Haptic Touch সস্তা, উৎপাদনে সহজ এবং সমস্ত আধুনিক ডিভাইসে (iPhone SE 2020, iPhone 11–16, iPad, iPod touch) উপলব্ধ।
| প্যারামিটার | 3D Touch | Haptic Touch |
|---|---|---|
| নীতি | চাপ মাপা (গ্রাম) | সময় মাপা (মিলিসেকেন্ড) |
| উপলভ্যতা | iPhone 6S–XS (সীমিত) | iPhone XR+, iPad, iPod touch |
| গতি | তাত্ক্ষণিক (~100 মি.সে.) | বিলম্ব সহ (~500 মি.সে.) |
| চাপ স্তর | 2 (peek + pop) | 1 (প্রসঙ্গ মেনু) |
| স্পর্শকাতর প্রতিক্রিয়া | Taptic Engine (ক্লিক অনুকরণ) | Taptic Engine (ক্লিক অনুকরণ) |
| App Store | আইকনে দ্রুত ক্রিয়াকলাপ | আইকনে দ্রুত ক্রিয়াকলাপ |
| ক্রমাঙ্কন | ব্যবহারকারীর বল অনুযায়ী স্বয়ংক্রিয় ক্রমাঙ্কন | প্রয়োজন নেই |
| মেরামতযোগ্যতা | জটিল (ডিসপ্লেতে সেন্সর) | মানক |
UX-এ প্রভাব: 3D Touch-এর গতি বেশি — ব্যবহারকারী জোরে চাপ দিলে সঙ্গে সঙ্গে প্রসঙ্গ মেনু পায়। Haptic Touch-এর 500 মি.সে. বিরতি প্রয়োজন, যা ধীর মনে হয়। তবে, Apple স্পর্শকাতর প্রতিক্রিয়া এবং দৃশ্যমান অ্যানিমেশন দিয়ে এটি পূরণ করে। যেসব ব্যবহারকারী 3D Touch থেকে Haptic Touch-এ স্যুইচ করেছেন তারা প্রায়শই গতির পার্থক্য লক্ষ্য করেন। ডেভেলপারদের জন্য, মাইগ্রেশন স্বচ্ছ: UIContextMenuInteraction উভয় প্রযুক্তিতেই সমানভাবে কাজ করে।
দ্রুত ক্রিয়াকলাপ (Quick Actions) — হোম স্ক্রিনে অ্যাপ আইকনে একটি প্রসঙ্গ মেনু। আইকনে জোরে চাপ (3D Touch) বা লং প্রেস (Haptic Touch) 4টি দ্রুত ক্রিয়াকলাপ দেখায়: "নতুন বার্তা" (Messages), "ফটো তুলুন" (Camera), "অনুসন্ধান" (Safari)। Info.plist কী UIApplicationShortcutItems বা UIApplicationShortcutItem ডেলিগেটের মাধ্যমে বাস্তবায়িত। দ্রুত ক্রিয়াকলাপ iOS 13+ (Haptic Touch) বা 3D Touch-সহ সমস্ত ডিভাইসে উপলব্ধ।
কিবোর্ড ট্র্যাকপ্যাড — iOS কিবোর্ডে জোরে চাপ দিলে এটি ট্র্যাকপ্যাড মোডে সুইচ করে: কীগুলি নিষ্ক্রিয় হয়ে যায় এবং আঙুলের নড়াচড়া কার্সার সরায়। 3D Touch কিবোর্ডের যেকোনো জায়গায় জোরে চাপ দিয়ে ট্র্যাকপ্যাড সক্রিয় করত। Haptic Touch স্পেসবারে লং প্রেস দিয়ে ট্র্যাকপ্যাড সক্রিয় করে। ট্র্যাকপ্যাড মোড 3D Touch-এর সবচেয়ে জনপ্রিয় ব্যবহারগুলির মধ্যে একটি হয়ে উঠেছে — ব্যবহারকারীরা টেক্সট সম্পাদনার সময় সঠিক কার্সার অবস্থানের প্রশংসা করেন।
লিঙ্ক এবং ফটো পূর্বরূপ — Safari-তে একটি লিঙ্কে জোরে চাপ দিলে নেভিগেট না করেই পৃষ্ঠার পূর্বরূপ (peek) দেখায়। একইভাবে: Messages-এ একটি ফটো চাপ দিলে একটি বড় সংস্করণ খোলে। Peek মোডে উপরে সোয়াইপ করলে ক্রিয়াকলাপ দেখায়: "খুলুন", "পড়ার তালিকায় যোগ করুন", "কপি করুন"। এই সমস্ত পরিস্থিতি iOS-এর আধুনিক সংস্করণে UIContextMenuInteraction-এর মাধ্যমে কাজ করে।
অঙ্কন এবং সৃজনশীল অ্যাপ — Procreate, Photoshop এবং অন্যান্য অঙ্কন অ্যাপে, 3D Touch-এর চাপ বল ব্রাশের পুরুত্ব, অস্বচ্ছতা বা রঙের সম্পৃক্তি নিয়ন্ত্রণ করে। অ্যাপগুলি UITouch.force (0.0–1.0) পড়ে এবং এটি টুল প্যারামিটারে রূপান্তর করে। তবে, অঙ্কনের জন্য, iPad-এ Apple Pencil আরও সঠিক চাপ নিয়ন্ত্রণ প্রদান করে (ঢাল এবং আজিমুথ সমর্থন সহ), তাই iPhone-এ সৃজনশীল অ্যাপে 3D Touch কম চাহিদাযুক্ত।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
3D Touch একটি হার্ডওয়্যার প্রযুক্তি যা ডিসপ্লেতে ক্যাপাসিটিভ সেন্সরের মাধ্যমে চাপ বল মাপে (iPhone 6S–XS)। Haptic Touch একটি সফটওয়্যার অনুকরণ যা লং প্রেস এবং Taptic Engine থেকে স্পর্শকাতর প্রতিক্রিয়া ব্যবহার করে। 3D Touch দ্রুত (100 মি.সে. বনাম 500 মি.সে.) এবং দুটি বল স্তর (peek + pop) সমর্থন করে। Haptic Touch iOS 13+ সহ সমস্ত ডিভাইসে উপলব্ধ, যার মধ্যে iPhone XR, সমস্ত iPhone 11–16 মডেল, iPad এবং iPod touch অন্তর্ভুক্ত।
কোডে, traitCollection.forceTouchCapability ব্যবহার করুন। মান .available মানে 3D Touch সমর্থিত, .unavailable মানে না, .unknown মানে এখনও নির্ধারিত হয়নি (traitCollectionDidChange-এর জন্য অপেক্ষা করুন)। Haptic Touch-সহ ডিভাইসে, forceTouchCapability .unavailable ফেরত দেয়, কারণ Haptic Touch হার্ডওয়্যার বল সেন্সর ব্যবহার করে না। ব্যবহারকারীদের জন্য: সেটিংস → অ্যাক্সেসিবিলিটি → টাচ → 3D Touch পরীক্ষা করুন (শুধুমাত্র পুরানো iPhone-এ)।
Apple বিভিন্ন কারণে 3D Touch-কে Haptic Touch দিয়ে প্রতিস্থাপন করেছে: চাপ সেন্সরযুক্ত স্ক্রিনের উচ্চ উৎপাদন ব্যয়, মেরামতের জটিলতা (ডিসপ্লেতে একীভূত সেন্সর), সীমিত ব্যবহারকারী সচেতনতা (অনেকে বৈশিষ্ট্য সম্পর্কে জানতেন না), এবং Face ID-সহ OLED স্ক্রিনে রূপান্তর, যা 3D Touch-এর জন্য ক্যালিব্রেট করা কঠিন। Haptic Touch সস্তা, সহজ এবং বেশি সংখ্যক ডিভাইসে উপলব্ধ।
3D Touch সমর্থিত: iPhone 6S, 6S Plus, 7, 7 Plus, 8, 8 Plus, X, XS, XS Max। iPhone XR-এ 3D Touch নেই (প্রথম Haptic Touch-সহ)। সমস্ত iPhone 11, 12, 13, 14, 15, 16 এবং SE (দ্বিতীয় এবং তৃতীয় প্রজন্ম) মডেল Haptic Touch ব্যবহার করে। iPad-এ কখনো 3D Touch ছিল না। 3D Touch-সহ ডিভাইসে, সংবেদনশীলতা সেটিংসও উপলব্ধ (সেটিংস → অ্যাক্সেসিবিলিটি → টাচ → 3D Touch)।
হ্যাঁ, iOS স্বয়ংক্রিয়ভাবে 3D Touch অনুকরণ করে Haptic Touch-এর মাধ্যমে হার্ডওয়্যার সমর্থন ছাড়া ডিভাইসে। UIContextMenuInteraction API সমস্ত ডিভাইসে সমানভাবে কাজ করে — সিস্টেম নিজেই ট্রিগার (3D Touch বা লং প্রেস) নির্বাচন করে। এটি আপনার কোডের জন্য স্বচ্ছ: প্রসঙ্গ মেনু iOS 13+ সহ সমস্ত ডিভাইসে প্রদর্শিত হয়। আপনার 3D Touch এবং Haptic Touch-এর জন্য পৃথক লজিক লেখার প্রয়োজন নেই — UIContextMenuConfiguration ব্যবহার করুন।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।