Разработка приложения под iOS для работы с камерой телефона

Цена договорная • наличный расчёт, безналичный расчёт
01 октября 2018, 02:01 • 8 откликов • 64 просмотра
Общее описание:
Планируется некий стенд, на котором в ряд будут установлены телефоны одной модели. К каждому телефону будет подключен провод а-ля гарнитурный (Jack), по которому будет передаваться сигнал (увеличение/уменьшение громкости).

На всех телефонах будет запущено приложение, которое при получении сигнала по кабелю делает фотографию (или начинает записывать видео, в этом случае видео записывается до получения повторного сигнала), и отправляет получившийся файл по FTP на компьютер в локальной сети.

Требования к интерфейсу Интерфейс.
Предполагается два экрана: основной (с видоискателем) и экран с настройками.
Переход с основного экрана на экран настроек предлагается делать свайпом влево.

  1. Основной экран.
    На него просто выводится изображение с камеры. В верхней части порядковый номер устройства, который задается в настройках.
    В момент фотографирования нужно “моргнуть” белым экраном и воспроизвести стандартный звук затвора, после чего показать сделанное фото на экране и держать до указанного в настройках таймаута, после чего снова показывать изображение с камеры.
    В режиме съемки видео нужно просто “моргнуть” белым экраном в момент начала записи и отобразить иконку-индикатор записи (красный кружок) в правом верхнем углу. После завершения записи, соответственно, индикатор нужно спрятать.
  2. Экран с настройками.
    На нем выводятся группы различных настроек, в конце нужно две кнопки: “Записать” и “Прочитать”.

    1. Общие настройки:

      1. Режим съемки (фото-видео) - переключатель на две позиции.
      2. Префикс файла - текстовый инпут.
      3. Порядковый номер устройства - циферный инпут.
    2. Настройки подключения к FTP:

      1. Статус подключения - любой индикатор с двумя статусами - онлайн и оффлайн.
      2. Адрес FTP-сервера - текстовый инпут.
      3. Логин - текстовый инпут.
      4. Пароль - инпут для ввода пароля.
      5. Путь к файлу с настройками - текстовый инпут.
      6. Период считывания файла с настройками (сек) - циферный инпут.
    3. Настройки фото:

      1. ISO.
      2. Выдержка.
      3. Баланс белого.
      4. Компенсация экспозиции.
      5. Настройка фокуса.
      6. Разрешение.
      7. Таймаут отображения фото (мс)
    4. Настройки видео:

      1. ISO.
      2. Выдержка.
      3. Баланс белого.
      4. Компенсация экспозиции.
      5. Частота кадров.
      6. Настройка фокуса.
      7. Разрешение.
Требования к функциональности
  1. Хранение настроек на устройстве.
    Настройки должны храниться на устройстве, любое изменение настроек должно быть транзакционным - т.е. если вдруг приложение крашится в момент изменения настроек - при следующем запуске должны подгрузиться старые настройки. Так же настройки не должны сбрасываться при любых других ошибках.
  2. Подключение к FTP-серверу.
    Приложение должно автоматически в фоне подключаться к FTP-серверу, указанному в настройках и отображать на экране настроек статус подключения - онлайн - значит, подключение установлено, оффлайн - значит, подключения нет. В случае, если подключение было разорвано, приложение должно “стучаться” на сервер с периодом в 5 секунд и таймаутом в 10 секунд.
  3. Сохранение и чтение настроек с FTP.
    По нажатию на кнопку “Записать” настройки должны сохраняться на устройстве, а также, в случае, если указан адрес FTP-сервера, настройки должны выгружаться в файл настроек, путь к которому указан в настройках (Путь к файлу с настройками).
    При нажатии на кнопку “Прочитать”, приложение должно считать файл с настройками по указанному пути (Путь к файлу с настройками) и применить их на текущем устройстве.
  4. Требования к файлу с настройками.
    Файл с настройками должен включать в себя все изменяемые настройки, за исключением:
    “Общие” - “Порядковый номер устройства”
    “Настройки подключения к FTP” - “Адрес”, “Логин”, “Пароль”, “Путь к файлу с настройками”
    Формат файла должен быть текстовым и структурированным а-ля XML или JSON. Структура должна повторять структуру настроек - т.е. настройки должны группироваться согласно описанию выше.
  5. Автоматическая синхронизация настроек.
    Во время работы приложения на основном экране в фоне должны синхронизироваться настройки с FTP-сервера (если указан адрес и путь к файлу с настройками) с периодом, указанным в настройке “Настройки подключения к FTP” - “Период считывания файла с настройками (сек)”. Во время работы на экране с настройками автоматическая синхронизация проводиться не должна.
  6. Режим “Фотосъемка”.
    В этом режиме на основном экране показывается видоискатель - изображение с камеры. При этом камера настроена согласно настройкам “Настройки фото”.
    При получении сигнала “-” (уменьшение громкости) с гарнитуры (проводной или bluetooth) или кнопки на корпусе, должна происходить блокировка фокуса/экспозиции.
    В момент поступления сигнала “+” (увеличение громкости) с гарнитуры (проводной или bluetooth) или кнопки на корпусе, происходит две вещи:

    1. Приложение делает фотографию, “моргает” белым экраном со звуком затвора и отображает сделанный снимок с таймаутом, указанным в настройках (“Настройки фото” - “Таймаут отображения фото (мс)”). После завершения таймаута приложение возвращается на основной экран.
    2. Сделанная фотография сохраняется в файл формата JPEG согласно настройкам (“Настройки фото”) и отправляется на FTP-сервер с названием файла в формате “{prefix}{number}.jpg”, где prefix - настройка “Общие настройки” - “Префикс файла”, number - настройка “Общие настройки” - “Порядковый номер устройства”.
  7. Режим “Видеосъемка”.
    В этом режиме на основном экране показывается видоискатель - изображение с камеры. При этом камера настроена согласно настройкам “Настройки видео”.
    При получении сигнала “-” (уменьшение громкости) с гарнитуры (проводной или bluetooth) или кнопки на корпусе, должна происходить блокировка фокуса/экспозиции.
    В момент поступления сигнала “+” (увеличение громкости) с гарнитуры (проводной или bluetooth) или кнопки на корпусе, начинается запись видео, при этом экран должен так же “моргнуть” белым цветом. Так же в правом верхнем углу должен появится индикатор записи видео (красный кружок).
    При повторном поступлении сигнала “+” запись видео прекращается, индикатор скрывается, видео сохраняется в файл с соответствующими настройками (“Настройки видео”), с использованием кодека h265, если частота кадров 240 fps и h264 для меньших частот. Формат названия файла по аналогии с фотографией - “{prefix}{number}.mp4”, где prefix - настройка “Общие настройки” - “Префикс файла”, number - настройка “Общие настройки” - “Порядковый номер устройства”.
  8. Автоотключение экрана.
    Во время работы приложения на любом экране дисплей устройства не должен автоматически отключаться. Всегда должна быть включена подсветка