Решения за мобилни приложения
Мобилното приложение не е умалено копие на настолен интерфейс. От него се очаква да работи при прекъсване на връзката, изтощена батерия или заети ръце.
Дали дадено мобилно приложение е използваемо на терен, най-често се определя не от дизайна на екраните. Много по-решаващо е какво се случва при прекъсване на връзката, кога се синхронизират данните и кое устройство се счита за меродавно, ако две от тях променят един и същ запис.
Изборът на платформа и технология за разработка се определя от сценария на използване. Полево приложение, изискващо задълбочен достъп до хардуера на устройството, и приложение, предимно показващо данни, нямат един и същ правилен отговор.
Приложения, които приемат наличието на връзка за задължително условие, с времето стават неизползваеми на терен.
Ние ли сме подходящият партньор?
Мобилното приложение не е отговор на всяка нужда. Ако потребителят седи зад бюро и работата протича в браузър, отделно приложение само добавя тежест по поддръжка и версии, без да носи нищо в замяна.
Да, нека поговорим
- Работата се извършва на терен, изправено и често с една ръка
- Необходим е достъп до хардуера на устройството — камера, местоположение, баркод, NFC
- Необходимо е въвеждане на данни дори там, където няма връзка
Не, някой друг ще го направи по-добре
- Приложението само би умалило вече съществуващ уеб интерфейс
- Броят потребители и честотата на използване не оправдават тежестта по магазина и версиите
- Реалната нужда е отчетност — тя обикновено се решава по-евтино откъм уеб страна
С какво се занимаваме
- Избор на платформа и технология според сценария на използване
- Офлайн работа и локално съхранение на данни
- Синхронизация на данни и разрешаване на конфликти
- Проектиране на API от страна на сървъра
- Достъп до хардуера на устройството — камера, местоположение, баркод, NFC, Bluetooth
- Инфраструктура за push известия
- Проектиране на удобство за използване в полеви условия
- Публикуване в магазини за приложения и управление на версии
Как процедираме
Сценарии на използване
Определяме къде, при какви условия и с каква честота ще се използва приложението. Условията на терена предварително определят по-голямата част от решенията за интерфейса.
Проектиране на потока от данни
Именно тук решаваме кои данни ще останат на устройството, кога ще се синхронизират и как ще се разрешават конфликти.
Договор за API
Изготвяме интерфейса от страна на сървъра, преди да започне разработката на приложението. Така двата екипа напредват паралелно.
Разработка и тестове на терен
Тестваме приложението на реални устройства и в реални условия на употреба. Не считаме тестването само в емулатор за достатъчно.
Публикуване и версии
Ние самите се занимаваме с процесите по магазините за приложения и заедно с вас определяме политиката за версиите. Поддържаме съвместимостта на старите версии със сървъра в рамките на преходен период.
Нашите технически решения
- Приложението се проектира така, че да остане полезно дори без мрежова връзка. Полевият персонал може да въвежда данни там, където няма връзка, а щом такава се появи, данните се синхронизират. Приложения, които приемат наличието на връзка за задължително условие, с времето стават неизползваеми на терен.
- Какво се случва, когато две устройства променят един и същ запис, се решава още на етап проектиране. Ако това правило бъде добавено по-късно, част от натрупаните дотогава данни вече е станала несъгласувана.
- Не всички потребители обновяват приложението едновременно. Серверният интерфейс се разработва така, че да поддържа функционирането на старите версии; в противен случай потребителите, които не са обновили, остават извън системата.
- Проследяването на местоположение, фоновата синхронизация и честотата на известията се настройват с оглед на времетраенето на батерията. Приложение, което бързо изтощава батерията, се изключва от потребителя, дори когато технически работи коректно.