А какими сенсорами смартфона пользуетесь вы?
Производители смартфонов и «умных» часов начиняют устройства датчиками, к которым есть доступ для разработчиков. Но начинающие разработчики забывают об этом и не пользуются всеми возможностями устройств. Поэтому недостаточно изучить язык для разработки. Изучите API, дающий доступ к датчикам, которыми начинены даже дешевые модели мобильных гаджетов.
Сложные математические расчеты никто не делает на смартфонах, но если пользователь хочет, что бы его девайс помогал при занятиях спортом или находил скидки в магазинах, то он ищет приложения для этого. Поэтому разработчик должен не только чётко позиционировать свои продукты, но и следить за тем, что бы они соответствовали железу, на котором будут запускаться, а также ожиданиям пользователей.
Посмотрим подробнее на датчики и сенсоры, которые имеются в устройствах и чем они могут расширить функционал приложения.
Положение в пространстве
Акселерометр (accelerometer, G-Sensor, датчик ориентации и ускорения), наверное, самый важный сенсор. Именно он определяет поворот устройства в пространстве, меняя режим интерфейса между портретным и ландшафтным. G-Sensor регистрирует ускорение в трех плоскостях, а операционная система вычисляет пространственное положение корпуса и усилие, с которым оно было произведено.
К сожалению, этот сенсор насколько прост, настолько и неточен. Если поворачивать устройство медленно, то он может просто не сработать или работать с большой погрешностью.
Тут на сцену выходит следующий датчик положения — гироскоп (gyroscope), который регистрирует положение в пространстве даже неподвижного устройства. Он гораздо точнее акселерометра, часто всего его показания применяются в играх, где очень важна точность.
Однако гироскоп есть не во всех устройствах: он дороже акселерометра, и производители часто на нем экономят. Учитывайте это и честно пишите в описании приложения о том, на каких устройствах программа будет работать безупречно, а на каких — с погрешностью.
Геопозиционирование
Важная функция мобильного устройства — возможность привязки своего местоположения к карте местности или к плану крупного здания. Для этого служит модуль GPS, который определяет положение устройства по спутникам. Но не все так просто.
Многие разработчики считают, что GPS сделает за них всю работу. Вне города или часто даже вне помещения это так, но в реальной городской жизни его возможностей не достаточно — точность GPS для гражданского использования ограничена. А внутри зданий или в метро он может вообще не работать.
Однако есть сенсоры, которые работают в связке с GPS. Это геомагнитный датчик (geomagnetic field sensor, магнитометр), который реагирует на магнитные поля земли, и geomagnetic rotation vector sensor — геомагнитный датчик, объединенный с акселерометром. Их использование в сочетании с сигналами WiFi и базовых станций поможет там, где не справляется GPS.
Многие программисты не в курсе, что барометр (pressure sensor) обычно встраивают в смартфоны не для того, чтобы определять атмосферное давление, а для того, чтобы вычислять высоту или перепады высот при перемещении внутри здания, где сигналы спутников обычно не доступны. А модули NFC и RFID нужны не только, чтобы оплачивать покупки, но и для их поиска на полках. В моделях подороже можно задействовать один из редких сенсоров — датчик Холла (Hall sensor). Он чувствителен к изменениям магнитных полей. Умельцы используют его для поиска скрытой электропроводки и превращают смартфоны в металлоискатели.
В совокупности набор датчиков позволяет построить очень точную систему навигации даже внутри помещений. Как это использовать — вопрос другой.
Медицина, спорт и безопасность
Описанные сенсоры — не весь арсенал современного мобильного гаджета. Ведь есть еще сканеры сетчатки глаз и отпечатков пальцев, дозиметры, шагомеры, термометры, влагометры, датчики освещенности и влажности. Их используют для безопасности, при занятиях спортом и присмотра за больными людьми.
Возможности мобильных устройств ограничены лишь фантазией разработчиков приложений и наличием того или иного сенсора. Осталось лишь побольше узнать о них, а также подводных камнях эксплуатации.
Тем, кто хочет разрабатывать под мобильные устройства, рекомендуем профессию «Разработчик мобильных приложений».