The post has been translated automatically. Original language: Russian
The phone can do much more than show the screen and make calls. It has a dozen sensors, and some of them are used by applications all the time.
The acceleration sensor understands how the phone is moving. It is he who tells you that a person is walking, and he counts the steps.
The rotation sensor tells you how the phone is rotated in space. Thanks to it , the screen turns over, and tilt control works in games.
The magnetic sensor shows the direction to the north. Without it, the map wouldn't know where you're looking.
The light sensor changes the brightness of the screen depending on the lighting. The proximity sensor turns off the screen when the phone is at your ear.
Location detection works from several sources at once: satellites, nearby communication towers, and known access points. There are more accurate satellites on the street , and other sources indoors.
This leads to useful conclusions for development. Sensor data is received frequently, and there is usually no need to process each value: it is enough to average over a short period.
The second conclusion is about accuracy. You should request the highest accuracy of the location only where it is really needed.
And the third one. Each sensor that the application accesses must be understood by the user. A clear explanation of why this data is needed removes most of the questions.
Does your app use sensor data or just the network and the screen?
Пользователь набирает три буквы, и появляется список подходящих вариантов. Выглядит просто, но за этим стоит несколько решений.
Первое решение это источник вариантов. Подсказки могут строиться по справочнику, по истории самого пользователя или по частым запросам всех пользователей.
Второе решение это порядок. Список важно сортировать не по алфавиту, а по вероятности. Частый вариант должен быть первым, иначе подсказки не экономят время.
Третье это опечатки. Человек пишет с ошибкой и всё равно ожидает найти нужное. Поэтому поиск подсказок делают устойчивым к пропущенным и перепутанным буквам.
Четвёртое это скорость. Подсказка полезна, пока она приходит быстрее, чем человек набирает следующую букву. Если ответ идёт секунду, подсказка уже опоздала.
Помогают три приёма. Не отправлять запрос на каждую букву, а делать небольшую паузу. Хранить готовый список частых вариантов рядом, чтобы отвечать без обращения к основному хранилищу. Отменять предыдущий запрос, когда пользователь продолжил печатать.
И пятое, про содержание списка. Пять понятных вариантов работают лучше двадцати. Длинный список читать дольше, чем дописать слово вручную.
Хорошие подсказки заметно сокращают время ввода и уменьшают количество ошибок в данных. Особенно там, где люди вводят адреса и названия.
А вы измеряете, как часто пользователи выбирают подсказку вместо полного ввода?