Быстрая доставка в вашем городе

Техподдержка

Отдел продаж

Санкт-Петербург

Новосибирск

Самара

Пермь

Казань

Крым

Наш блог

Приложение для EctoControl на Android. Как это было.)

Приложение для EctoControl на Android. Как это было.)

Создание мобильного приложения для системы EctoControl на Android

Здесь мы расскажем о нашем первом опыте создания мобильного приложения с нуля – от идеи до реализации. Мы хотим поделиться не только опытом создания продукта как такового, но и показать, что создание непростых, на первый взгляд, проектов – вещь вполне осуществимая даже для людей, не имеющих большого опыта в программировании и дизайне, но сильно увлеченных творческим процессом.

Apps для Ectocontrol. Начало.

По мере производства первых систем мониторинга и управления в 2014 году количество информации, передаваемых от системы к человеку и наоборот неуклонно росло. Отчеты системы, отсылаемые в SMS, уже перестали умещаться даже на экране смартфона, росло число SMS, росла их стоимость. Все объяснялось еще и тем, что необходимо было рассылать одни и те же SMS разным людям, которые имели доступ к системе. Идея разработки Личного Кабинета пришла довольно быстро, он был разработан, протестирован и успешно работает и по сей день.

Зачем изобретать? Почему бы не воспользоваться имеющимися сервисами для сбора и отображения данных?

Во-первых, имеющиеся сервисы чем-то нас постоянно не устраивали. То визуальное структурирование информации не подходит, то протоколы обмена данными казались нам слишком малофункциональными, что-то, да не так. Во-вторых, были сомнения относительно живучести сервисов в долгосрочной перспективе: модификации протокола обмена могли привести к несовместимости с нашими системами, да и банальное отключение серверов поставило бы нас в долгий и весьма болезненный тупик. Ну и если уж совсем быть откровенными, хотелось сделать что-то по-настоящему свое, с плитками и всплывающими окнами.

Сервер ЛК был сделан, появились первые зарегистрированные пользователи. Какие же комментарии по работе нашего ЛК они сделали в первую очередь? Ну да, вы догадались:

Когда же будет приложение?

Тысячи клиентов после запуска личного кабинета в постоянном режиме нам звонили с вопросом: «А не вышло ли приложение EctoControl на Андроид?.», «А где скачать приложение для EctoControl на Iphone?», «А когда будет приложение?», «А почему вы его не делаете?».

Желание пользователя – всегда закон, тем более, что нашей команде делался очередной имиджево-инженерный вызов. – Месяц-два, –сказали мы и приступили.

Казалось, все достаточно просто: мы в приложении эмулируем запросы к API ЛК якобы от браузера, разбираем его ответы, полученные данные интерпретируем для пользователя в виде тех же иконок, плиток и графиков. Приложения теперь делают все кому ни лень, нам даже не нужно иметь такого программиста в штате. Кроме программиста, еще потребуется дизайнер, нарисовать внешний вид. Сейчас поставим им задачу и дело пойдет! Но все оказалось несколько сложнее.

Эскиз. Чертеж. Проект.

Самое первое, что пришлось сделать – это объяснить самим себе: что же мы хотим получить на самом деле? Копию ЛК? Отлично, так и скажем знакомым дизайнерам и программистам. Прошло больше месяца, получилось ЭТО. Мягко говоря, не очень.

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

Заранее не пытаемся мыслить в рамках особенностей интерфейсов, просто рисуем, как сможем, отражая основной функционал и взаимосвязь между элементами. Не боимся указать больше деталей, больше информации. Удалить всегда легко. Придумать сложнее.

Вроде все. Теперь любой поймет, что мы хотим. Ах да, прикладываем 45-ти страничное ТЗ на Личный кабинет с описанием структур данных, таблиц, расшифровкой всей терминологии, с образцами вывода информации в том же ЛК. Разберутся. Может быть.

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

Аутсорс. Бессмысленный и беспощадный.

Поиски исполнителей решили вести на фрилансерских сайтах. Что удивительно, но с услугами дизайнеров особых проблем не возникло. Вопрос с желаемым внешним видом интерфейса и цветовой гаммой решился просто: из всех дизайном, любезно предоставленных Яндекс-картинками, были выбраны наиболее интересные и представлены дизайнеру к анализу. Вот некоторые из них:

Переварив скриншоты, дизайнер выдает следующее:

После утверждения получаем уже целый набор макетов:

Приложение практически готово! Осталось быстро сделать код и можно публиковать. Но проблемы возникли там, где их никто не ожидал. После размещения задачи мы стали принимать отклики людей, готовых взяться за работу. Приведем четыре типичных диалога, повторявшихся от соискателей с завидной регулярностью . ES – Эктострой , FL – фрилансер.

Шаблон 1.
ES – Здравствуйте, вы откликались на нашу работу, вот ссылка с описанием. Чем сможете нам помочь?
FL – Ничем.
ES – Тогда зачем вы откликались на проект?
(FL удалил ES из списка контактов)

Шаблон 2.
ES – Здравствуйте, вы откликались на нашу работу, вот ссылка с описанием. Чем сможете нам помочь?
FL – Я готов взяться! Прямо сейчас!
ES – Но мы толком не обсудили ТЗ, все ли вы верно поняли, какие будут сроки, оплата…
FL – Это будет стоить (недорого) рублей! Аванс 50% и я начинаю!
ES – Но мы не можем авансировать работу вот просто так. Нужно обговорить проект целиком, понять, сможем ли мы его сделать вместе.
FL – Вы ничего не понимаете в программировании, вы мне не доверяете, вы такие же, как все.
(FL удалил ES из списка контактов)

Шаблон 3.
ES – Здравствуйте, вы откликались на нашу работу, вот ссылка с описанием. Чем сможете нам помочь?
FL – Здравствуйте. Я ознакомился с ТЗ, работу сделаю за такое-то время, будет использовать фреймворк такой-то, сервер насторим так-то, результаты в процессе посмотрите вот так, я раньше делал подобные проекты, вот тут, тут и тут посмотрите. Стоить будет (адекватно) рублей.
ES – Отлично! Давайте тогда встретимся, обсудим детали и вперед!
FL – Я живу далеко от вас, кто мне оплатит самолет?
ES – Мы сами прилетим. Завтра устроит?
FL – Завтра я не могу, и вообще уезжаю на лето к бабушке, давайте в чате все решим.
ES – Давайте созвонимся в чате сейчас!
FL – Я не разговариваю голосом. Только пишу в чате. Так удобнее. Ну в крайнем случае вы позвоните, а я все равно буду отвечать текстом в чате. И никаких личных встреч. Никогда. Это утомляет.
ES – Чат – это неоперативно, неинформативно. Как единственное средство связи он нам неудобен.
FL – Вы ничего не понимаете в программировании, вы мне не доверяете, вы такие же, как все.
(FL удалил ES из списка контактов).

Шаблон 4.
ES – Здравствуйте, вы откликались на нашу работу, вот ссылка с описанием. Чем сможете нам помочь?
FL – Здравствуйте! Наш технический департамент обработал ваше ТЗ и мы с радостью сообщаем, что после прояснения ряда технических вопросов наш филиал в Лос-Анжелесе с удовольствием сделает это приложение. Стоимость разработки составит от (цена маленького самолета) до (цена большого самолета). Вы готовы?
(ES удалил FL из списка контактов).

В итоге от поиска одиночных исполнителей отказались и выбрали компанию со штатом сотрудников и опытом разработок.

Когда же все круги ада были пройдены и исполнитель найден, мы сформулировали для себя основные требования к кандидату: только личные встречи (как минимум – периодические телефонные переговоры), только тщательная проработка ТЗ, только согласования плана-графика работ, только каждодневный контроль выполнения. Вне зависимости от заявленной суммы, качество сделанной работы всецело будет завесить от личных качеств кандидата и его команды.

Создание приложения.

Сначала на основе дизайнерских макетов делаем верстку приложения, расставляя все графические элементы интерфейса по своим местам, затем добавляем весь необходимый программный функционал. Начинаем с версии под Android, его легче публиковать. После публикации приложения в Google Play перенесем весь имеющийся функционал в iOS-версию, не забывая о привычных для яблочников элементах интерфейса.


И снова сталкиваемся с очередной проблемой: в процессе доработок сайта ЛК меняется код сайта, формат обмена данными между javascript страниц браузера и сервера. Мы привыкли так легко и непринужденно это делать, что совершенно не подумали над тем, что любое изменения ЛК чревато неработоспособностью приложений, которые пытаются имитировать тот же браузер. И тогда было принято решение о создании API, позволяющего обращаться к серверу ЛК напрямую в узаконенном нами формате. API не только разделил понятия фронтенда и бэкенда для нашего сайта и мобильных приложений, но и позволил нашим пользователям в перспективе писать свои приложения для визуализации данных и управления объектами! Выглядит это так:


Публикация.

Публикация в Google Play прошла без особых заминок. Нужно всего лишь было заполнить формы, поставить чекбокс тут, тут, и вот тут, где галочка, оплатить 25$ в счет развития Андроида и все, через 3 часа скачивайте и пользуйтесь.


Установить из Google Play

С App Store все было сложнее. Куча вопросов с публикацией, который мы очень долго решали и решили). Ну это уже совсем другая история!

Заключение.

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

Подпишись
на рассылку

Подпишитесь на обновления блога, чтобы не пропускать полезные статьи

Поиск по тегам:

Оставить комментарий

* поля обязательны для заполнения
Капча
1 комментарий
Александр
22.01.2018 20:11
Спасибо, за отлично проделанную работу, Ваше решение оказалось мне более приятно по душе, с технологической точки. Я пересмотрел достаточное количество "аналогичных систем", чем то до сих пор пользуюсь, но медленно вытесняю в Вашу пользу. Хотелось бы на будущее получить беспроводные датчики открытия дверей.
Ответить