Перейти к содержанию
  • Регистрация
Kitty

[Корпоративное] контроль персонала

Рекомендуемые сообщения

Мой опыт создания приложения для андроида в С++ Builder Берлин.

Приложение предназначено для контроля прихода-ухода персонала на работу. Знакомый руководитель стоматологического центра попросил.
Использовался этот маячок beacon:
Bytereal-iBeacon
Обязанности сотрудника при приходе и уходе с работы:
- сотрудник запускаем мобильное приложение
- далее подносит телефон к маячку

Мобильное приложение фиксирует отметку в базу данных SQL lite. Уведомляет пользователя в интерфейсе программы и дополнительным push уведомлением.
Отметки можно посмотреть на самом телефоне или выслать руководителю по почте. Телефон превращается во что-то вроде магнитной карты учета прихода-ухода с хранением данных. Интерфейс на прилагаемом рисунке.

Что положительного:
- Задача решена быстро на с++ и не надо тратить время на изучение чего-то другого. Для корпоративного решения то, что нужно.
- Студия упала во время разработки только два раза. В С++ Builder XE6-7 при наличии достаточного кол-ва кода в проекте для андроида студия падала каждые две минуты.
- Учитывая стоимость маячков это перспективная линия для всякого рода приложений  связанных с биконами. Положительный опыт.

Что отрицательного:
- При попытке активировать TFDQuery в инспекторе объектов, возникает ошибка LiveBindings и уже нельзя сохранить проект. Только закрытие без сохранения и повторное открытие студии.
- Не удалось показать картинку на вкладке История. В дизайнере она есть, на устройстве странным образом исчезает. Не победила.
- Попытка удалить StyleBook и затем настроить новый, привела к тому, что в дизайнере все отлично, а на устройстве стилизация полностью исчезает. Не победила.  Спасла резервная копия приложения.
- Были мысли расширить приложение, но в текущей версии C++ Builder невозможно создавать сервисы для андроида. Наличие сервиса позволило бы дополнительный не гласный контроль. Например, если человек отлучился уже в течение рабочего дня.
Судя по дорожной карте и в следующей версии С++ Builder 10.2 в пролете создания сервисов для андроида.  :(

Выводы:
Больше всего времени я тратила не на программирование, а на пункты из отрицательного. Пытаясь понять, что происходит, но безуспешно.
Поскольку задача все же решена то, в общем, все хорошо, но без полного ощущения счастья. :)

Просьба:
Может что-то посоветуете еще по функционалу или интерфейсу для приложения такого типа? Может, есть что-то полезное, что можно добавить в такой тип мобильного приложения?

Спасибо.

 

ibeacon.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что, все работники используют только андроид? А iOs или win mobile (или как там его)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

как по мне интерфейс немного не удобный. информации слишком мало чтобы её предоставлять в табличном режиме.

Можно было бы сделать что-то типа карточек или каких нить панелек с картинками-статусами.

Не хватает живости приложению.

На счёт минусов: не используйте Табы, просто TLayout переключайте по кнопкам (TTabControl ужасно прожорлив)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата

информации слишком мало чтобы её предоставлять в табличном режиме.

Там если за период делать выборку отметок, то бывает таблица заполнена на весь экран и надо еще и пальцем прокрутить чтобы увидеть все. :)

Изменено пользователем Kitty

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Kitty сказал:

Там если за период, то бывает таблица заполнена на весь экран и надо еще и пальцем прокрутить чтобы увидеть все. :)

ну так нужно отделять историю от дневных отметок.

Дневные отметки можно показать как-то красиво, а история в таблице

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

дневная отметка. выдавалась бы фотка кто вошел/вышел ну и так доп инфа: должность. кабинет где работает. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Интерфейс. Кратко: Нерациональное использование места на некоторых скринах. Теперь подробнее, мне не нравится когда Табы в несколько строк, может быть стоило бы придумать что-то с МультиВью и вынести туда основные пункты меню(Отметки и История). Контроллы на третьем скрине занимают 50% экрана - не хорошо, например, вы выделили целую строку под два слова: "От" и "До", при этом говорите, что там может выводиться море табличной информации... Пользователь ведь, ставит приложение не для того, чтобы любоваться контроллами занимающими половину экрана, ему нужно увидеть как можно больше информации... Тоже мнение и насчёт второго скрина + выше уже вам подсказали насчёт дневных отметок.

А 4 скрин - это меню Сервис? Зачем там две кнопки "Закрыть"?

Просили посоветовать, а получилось покритиковал немного... Не претендую на лучшие мысли в плане интерфейса, но считаю, что он перегружен контроллами. Если что, обидеть не хотел...

p.s. В маркете, вроде видел подобные приложения, попробуйте посмотреть их и оценить, возможно получится почерпнуть что-то уникальное/новое/более правильное для вашего приложения.

 

"Хочешь сделать хорошо - делай лучше, чем у конкурентов" (c) :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата

не используйте Табы, просто TLayout переключайте по кнопкам (TTabControl ужасно прожорлив)

Это очень полезная для меня информация!

Цитата

Дневные отметки можно показать как-то красиво, а история в таблице

Да, так конечно будет лучше. Надо подумать. :)
Просто когда начинала делать проект, то делала для себя как знакомство с FMX. Это потом знакомый узнал и захотел иметь такое. Когда я делала проект, я представляла любой усредненный бизнес. А что если дневных отметок тоже может быть много? Например, курьерская компания. Курьер многократно приходит-уходит из центрального офиса. Сидит ждет оформления заказа и т.п. Получил заказ ушел, потом пришел за новым. Отметок много. Поэтому интерфейс делался сразу для любого вида бизнеса. :)

Цитата

дневная отметка. выдавалась бы фотка кто вошел/вышел ну и так доп инфа: должность. кабинет где работает.

Я так понимаю, что для этого нужна серверная часть с однократной предварительной регистрацией пользователя и продвинутой базой данных из нескольких таблиц. Так конечно лучше, но начинать большое клиент-серверное приложение, не зная толком FMХ, наверное неправильно. Однако двигаться надо в этом направлении т.к. серверная часть, я так думаю, это то, что и нужно для таких приложений.

Цитата

Контроллы на третьем скрине занимают 50% экрана - не хорошо,

Это точно. Я думаю надо убрать кнопку Очистить и расположить контролы в один ряд. Все равно кнопка Показать обновляет грид, а кнопка Очистить особо и не нужна. Она просто закрывает запрос  и грид становиться пустым.

Цитата

может быть стоило бы придумать что-то с МультиВью и вынести туда основные пункты меню(Отметки и История)

Пока смутно представляю как это должно выглядеть. Надо подумать. :)

Цитата

А 4 скрин - это меню Сервис?

Да.

Цитата

Зачем там две кнопки "Закрыть"?

Не знаю, как там соблюсти симметричность? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я бы логику работы приложения сделал по другому - не хранил ничего на телефоне пользователя, ибо люди врут и оставлять данные учета им на откуп не очень хорошо. Удалить все, пользователь может просто очистив данные приложения в настройках и обвинить в этом разработчика. И самое обидно вы не докажете обратное.

Проще и надежнее было бы отправлять на сервер запрос по http с хешем логина/пароля/id маячка(есть такое у них?). Приложение сильно бы упростилось - человек подошел к маячку, запустил приложение, приложение идентифицирует маячек, замешивает хеш и отправляет на сервер, сервер отвечает подтверждением приема данных и приложение демонстрирует подтверждение пользователю.

Привязка приложения к работнику, как я понял, не осуществляется? Т.е. только по письму полученному от работника? Кто ему мешает отослать поддельное письмо с компьютера? Благо исходящие письма с примерами он может посмотреть в яндексе.

Привязку приложения удобно осуществить с помощью однократного считывания QR кода, с экрана компьютера отдела кадров. В коде зашифровать необходимую для идентификации информацию, в том числе информацию о адресе API сервера конкретного предприятия, дабы не привязывать приложение к одному.

Отсутствие сервера конечно резко снижает эффективность приложение. А так можно было бы натолкать маяков в туалеты, курилки, близлежащие пабы и контролировать рабов сотрудников на полную катушку ;-)

Изменено пользователем Евгений Корепов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Большое спасибо. Буду внедрять сервер.

Подделать письмо у работника не получиться. Письмо содержит вложение файл SQllite базы даных с расширением *.s3db Там все информация которую можно посмотреть через админ утилиту SQllite. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Перенесем из положительного в отрицательное падение С++ Builder. Не много добавилось кода и студия стала падать гораздо убедительнее. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...