گوشی هوشمند مدرن فقط یک دستگاه محاسباتی نیست، بلکه مجموعهای از سنسورهای قدرتمند است. دوربین، شتابسنج، ژیروسکوپ، NFC، اسکنر صورت — همه اینها از طریق APIهای پلتفرم در دسترس توسعهدهندگان است. قابلیتهای سختافزاری به شما امکان میدهد برنامههایی بسازید که با دنیای فیزیکی تعامل دارند: از ردیابهای تناسب اندام تا بازیهای واقعیت افزوده. در این مقاله، تمام سنسورها و APIهای اصلی برای iOS و Android را پوشش خواهیم داد. برای جزئیات بیشتر، مستندات رسمی سنسورهای Android را ببینید.
نکات کلیدی
قابلیتهای سختافزاری گوشی هوشمند شامل دهها سنسور است که دادههایی درباره محیط و موقعیت دستگاه جمعآوری میکنند. این دادهها از طریق Sensors API (Android) و Core Motion (iOS) در دسترس هستند. سنسورها به سه دسته تقسیم میشوند: سنسورهای حرکت (شتابسنج، ژیروسکوپ)، سنسورهای موقعیت (مغناطیسسنج)، و سنسورهای محیطی (فشارسنج، نور، دما).
شتابسنج شتاب دستگاه را در سه محور (x, y, z) بر حسب m/s² اندازهگیری میکند. برای موارد زیر استفاده میشود: تشخیص جهت صفحه (چرخش خودکار)، شمارش گام (ناوبری عابر پیاده)، تشخیص حرکات (تکان دادن برای لغو)، بازیهای کنترل با شیب. Android Sensor.TYPE_ACCELEROMETER و Core Motion CMMotionManager (iOS) دادههای خام را با فرکانس تا 200 هرتز ارائه میدهند.
ژیروسکوپ سرعت زاویهای چرخش دستگاه را در سه محور (rad/s) اندازهگیری میکند. برخلاف شتابسنج، ژیروسکوپ تحت تأثیر گرانش قرار نمیگیرد، که آن را برای ردیابی چرخشها ایدهآل میکند. کاربردها: تثبیت ویدئو، برنامههای VR/AR، ناوبری داخلی، کنترلکنندههای بازی. Sensor.TYPE_GYROSCOPE (Android) و CMMotionManager (iOS) APIهای اصلی هستند.
مغناطیسسنج میدان مغناطیسی زمین را در سه محور (µT) اندازهگیری میکند و به عنوان قطبنمای الکترونیکی عمل میکند. در برنامههای ناوبری برای تعیین جهت شمال استفاده میشود. مغناطیسسنج به تداخل از اشیاء فلزی و بلندگوها حساس است؛ کالیبراسیون لازم است (حرکت مشخصه شکل هشت). Sensor.TYPE_MAGNETIC_FIELD — API Android.
فشارسنج فشار جو (hPa) را اندازهگیری میکند و برای تعیین ارتفاع از سطح دریا با دقت تا 1 متر استفاده میشود. سنسور مجاورت هنگام تماس تلفن به گوش، صفحه را خاموش میکند. سنسور نور محیط، روشنایی صفحه را تنظیم میکند. همه این سنسورها از طریق SensorManager واحد (Android) یا CMMotionManager (iOS) برای اکثر سنسورهای حرکت قابل دسترسی هستند.
دوربین یکی از پرتقاضاترین مؤلفههای سختافزاری است. در Android، دسترسی از طریق CameraX (API Jetpack مدرن) یا Camera2 (API سطح پایین) است. CameraX به طور خودکار چرخه حیات را مدیریت میکند، از Preview, ImageCapture, ImageAnalysis (تحلیل فریم ML) و VideoCapture پشتیبانی میکند. در iOS، دوربین از طریق AVFoundation در دسترس است: AVCaptureSession ضبط را مدیریت میکند، AVCaptureDevice پارامترها (فوکوس، ISO، تعادل سفید) را پیکربندی میکند.
میکروفون برای ضبط صدا، کنترل صوتی و تشخیص گفتار استفاده میشود. در Android — MediaRecorder یا AudioRecord؛ در iOS — AVAudioRecorder. دسترسی به دوربین و میکروفون نیاز به مجوز کاربر دارد: Manifest.permission.CAMERA و RECORD_AUDIO (Android)، NSCameraUsageDescription و NSMicrophoneUsageDescription (iOS) — رشتههایی در Info.plist که دلیل استفاده را توصیف میکنند.
در IT Sectr، ما بیش از 20 پروژه با دوربینهای سفارشی پیادهسازی کردهایم: از اسکنرهای QR کد تا برنامههای دارای فیلترهای AR. نتیجه کلیدی: در Android، CameraX هفتهها زمان توسعه را در مقایسه با Camera2 صرفهجویی میکند، در حالی که در iOS، AVFoundation کنترل کامل بر پارامترهای عکسبرداری میدهد. مثال گرفتن تصویر پایه از طریق CameraX:
class CameraFragment : Fragment() {
private lateinit var imageCapture: ImageCapture
fun startCamera() {
val processCameraProvider =
ProcessCameraProvider.getInstance(requireContext())
processCameraProvider.addListener({
val cameraProvider = processCameraProvider.get()
val preview = Preview.Builder()
.build()
.also {
it.setSurfaceProvider(viewFinder.surfaceProvider)
}
imageCapture = ImageCapture.Builder()
.setCaptureMode(ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY)
.build()
val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA
cameraProvider.bindToLifecycle(
this, cameraSelector, preview, imageCapture
)
}, ContextCompat.getMainExecutor(requireContext()))
}
}
قابلیتهای سختافزاری بیومتریک به کاربران اجازه میدهد با استفاده از اثر انگشت یا چهره وارد برنامه شوند. iOS از Face ID (دوربین TrueDepth، 30.000 نقطه نامرئی) و Touch ID (اسکنر اثر انگشت خازنی) استفاده میکند. Android از BiometricPrompt استفاده میکند که اسکنر اثر انگشت (خازنی یا فراصوت) و Face Unlock (دوربین + ML) را ترکیب میکند. Face ID امنتر از Touch ID است: احتمال تطابق 1:1.000.000 در مقابل 1:50.000.
NFC (ارتباط میدان نزدیک) یک فناوری ارتباط بیسیم با برد تا 10 سانتیمتر است. برای موارد زیر استفاده میشود: پرداختهای بدون تماس (Google Pay, Apple Pay)، خواندن برچسبهای NFC (پوسترهای هوشمند، کارتهای ویزیت)، تأیید (مدارک، بلیطها)، انتقال داده (Android Beam — منسوخ). Core NFC (iOS) و NfcAdapter (Android) APIهای اصلی هستند. در iOS، NFC فقط برای خواندن در دسترس است (به جز پرداختهای Apple Pay).
Bluetooth/BLE (Bluetooth کم انرژی) — برای اتصال دستگاههای خارجی: هدفون، دستبندهای تناسب اندام، سنسورهای پزشکی، قفلهای هوشمند. Core Bluetooth (iOS) و android.bluetooth (Android) — API برای اسکن، اتصال و تبادل داده. BLE از نظر انرژی کارآمد است: یک دستگاه میتواند سالها با باتری کار کند. در iOS، عملکرد BLE در پسزمینه نیاز به فعالسازی Background Modes → Uses Bluetooth LE accessories دارد.
قابلیتهای سختافزاری سلامت: HealthKit (iOS) — فریمورک اپل برای جمعآوری دادههای سلامت. کاربر اجازه خواندن و نوشتن انواع داده خاص را میدهد: گامها، ضربان قلب، خواب، کالری، وزن، فشار خون. تمام دادهها در مخزن محافظتشده ذخیره و از طریق iCloud همگامسازی میشوند. HealthKit یک رابط واحد برای نوشتن HKQuantitySample و خواندن از طریق HKSampleQuery یا HKStatisticsQuery فراهم میکند.
Google Fit — پلتفرم گوگل برای دادههای تناسب اندام در Android. API به دو مجموعه تقسیم میشود: Sensors API (دادههای واقعی از سنسورهای دستگاه — گامها، کالری) و History API (خواندن/نوشتن دادههای تاریخی). Google Fit همچنین دادهها را از سایر برنامههای تناسب اندام (Strava, Runkeeper) از طریق مجوز جمعآوری میکند. در iOS، Google Fit از طریق REST API در دسترس است.
Core Motion (iOS) — فریمورک برای کار با سنسورهای حرکت بدون تراشه اختصاصی: شتابسنج، ژیروسکوپ، گامشمار (CMPedometer)، ارتفاعسنج (CMAltimeter). CMPedometer گامها، مسافت طیشده، سرعت و تعداد طبقات بالا رفته را شمارش میکند. در Android، قابلیتهای مشابه توسط Sensor.TYPE_STEP_COUNTER و Step Detector ارائه میشود. تمام دادههای تناسب اندام نیاز به رضایت صریح کاربر دارند.
واقعیت افزوده (AR) و یادگیری ماشین روی دستگاه اوج قابلیتهای سختافزاری گوشی هوشمند هستند. ARKit (Apple, iOS 11+) از دوربین، ژیروسکوپ، شتابسنج و LiDAR (در مدلهای Pro) برای ردیابی فضای اطراف استفاده میکند. ARCore (Google) معادل Android با ردیابی صفحه، تشخیص تصویر و تخمین نور است. هر دو فریمورک از Visual Inertial Odometry (VIO) — ترکیبی از دوربین و سنسورهای اینرسی استفاده میکنند.
ML Kit (Google) — SDK برای یادگیری ماشین در Android و iOS. شامل APIهای آماده: تشخیص متن (OCR)، اسکن بارکد، تشخیص چهره، تشخیص حالت، ردیابی اشیاء، تشخیص متن در تصاویر و پردازش زبان طبیعی. ML Kit کاملاً روی دستگاه کار میکند — دادهها به سرور ارسال نمیشوند، که حریم خصوصی و عملکرد آفلاین را تضمین میکند.
Core ML (Apple) — فریمورکی برای ادغام مدلهای ML در برنامههای iOS. مدلها (mlmodel) از TensorFlow, PyTorch یا Keras از طریق Core ML Tools تبدیل میشوند. Vision — فریمورک برای بینایی کامپیوتر: تشخیص چهره، متن، بارکد، تراز افقی. ترکیب Vision و Core ML امکان ساخت خطوط لوله ML زمان واقعی را فراهم میکند: گرفتن فریم → تحلیل Vision → پیشبینی Core ML → بهروزرسانی UI — همه روی دستگاه با تأخیر کمتر از 50 میلیثانیه.
سوالات متداول
گوشی هوشمند مدرن شامل شتابسنج، ژیروسکوپ، مغناطیسسنج (قطبنما)، فشارسنج، سنسور مجاورت، سنسور نور محیط، اسکنر اثر انگشت، دوربین، میکروفون، NFC، Bluetooth, Wi-Fi, GPS است. مدلهای پرچمدار همچنین دارای LiDAR، مانیتور ضربان قلب و سنسور دما هستند.
Face ID احراز هویت بیومتریک صورت با استفاده از دوربین TrueDepth (پروجکشن 30.000 نقطه) است. Touch ID احراز هویت اثر انگشت از طریق اسکنر خازنی است. Face ID امنتر است (1 در 1.000.000 در مقابل 1 در 50.000) و بدون تماس کار میکند.
روش مدرن CameraX (کتابخانه Jetpack) است. CameraX کار با دوربین را ساده میکند: به طور خودکار چرخه حیات را مدیریت میکند، از Preview, ImageCapture, ImageAnalysis و VideoCapture پشتیبانی میکند. برای پروژههای قدیمی از Camera2 API استفاده میشود.
NFC امکان میدهد: خواندن و نوشتن برچسبهای NFC (پوسترهای هوشمند، کارتهای ویزیت)، پرداختهای بدون تماس (Google Pay, Apple Pay)، انتقال داده بین دستگاهها، تأیید مدارک، باز کردن درها، استفاده از کارتهای حمل و نقل. در iOS، NFC فقط برای خواندن در دسترس است (به جز Apple Pay).
ARKit فریمورک اپل برای واقعیت افزوده در iOS است. ARCore معادل گوگل برای Android است. هر دو از ردیابی صفحه، تشخیص تصویر و تخمین نور پشتیبانی میکنند. ARKit از LiDAR استفاده میکند (در iPad Pro/iPhone Pro) برای موقعیتیابی دقیقتر.
خلاصه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.