Kaazing framework + CoreData, non ARC
Требования к приложению:
- iOS 6 и выше
- Universal app (iPhone + iPad, поддержка всех возможных размеров экранов)
- Ручная работа с памятью (без ARC)
- Минимум кода
- Максимальная стабильность во всех ситуациях
- Максимальная скорость реакции
- Понятный читаемый код
- Построение интерфейса по максимуму перенести в Storyboard
Описание: Приложение должно подключаться к EchoTest-серверу посредством WebSocket-ов и обеспечивать обмен данными по трем протоколам: XML, JSON, бинарные данные.
Детали: Приложение отсылает сформированные пользователем данные в выбранном пользователем формате (XML, JSON или бинарные данные). Данные отправляются в базу посредством CoreData. Отдельный объект-слушатель при внесении данных в базу пытается отправить их на Echo-сервер (http://www.websocket.org/echo.html), после чего дожидается подтверждения получения от сервера и оповещает пользователя об этом подтверждении.
Интерфейс: Один экран, на нем 3 UIViewController-а: 1й) Занимает верхнюю половину экрана. На нем располагаются данные:
а) Состояние подключения
б) Скроллящееся многострочное текстовое поле с логами о всех данных/состояниях сокета со временной отметкой (изменение состояния сокета, данные об ошибках сокета, принятые и отправленные пакеты). Информация об отправленных/принятых пакетах тут должна быть в чистом формате (NSString)
в) Область для отправки данных: в.1) Текстовое однострочное поле в.2) Switch типа “On/Off” (представленное в протоколе в виде BOOL-значения) в.3) SegmentControl для протокола передачи данного сообщения: XML/JSON/Binary в.4) Кнопка “Отправить"
2й) Занимает левую нижнюю четверть экрана. Он в себе содержит TableView со всеми отправленными/поставленными в очередь пакетами, с полной информацией о каждом в удобном для пользователя виде, временем отправки и статусом: отправлено/ожидает отправки. Как только пользователь нажимает на кнопку описанную в пункте 1.в.4 - данные попадают в базу, а оттуда в эту таблицу.
3й) Занимает правую нижнюю четверть экрана. Содержит в себе информацию о всех принятых пакетах.