2. Appery, LLC 2
Платформа на основе облака, которая позволяет
создавать гибридные мобильные приложения для iOS,
Android, Windows Phone
Время разработки: 2010 год – настоящее время
Коротко о проекте
Некоторые компании - пользователи продукта:
7. Appery, LLC 7
Разработчик ПО более 10 лет.
Основная технология: Java.
На проекте Appery.io с 2013 года.
Текущая роль на проекте: Team lead
Как менялась роль на проекте: Senior
Java developer Team lead & Scrum
Master
Текущие задачи:
• создание функциональности продукта,
отвечающей за полный цикл
разработки мобильных приложений.
До Appery.io работал на различных
проектах, начиная от банковских
приложений, заканчивая
корпоративными веб-сайтами компаний-
гигантов Силиконовой долины.
Команда Appery.io
“Appery.io - это продукт компании.
Работа над продуктом требует
более глубокого вовлечения команды в
предметную область. В нашем случае
несколько проще - мы делаем продукт
для таких же разработчиков, как и
мы. Часто мы имеем дело с задачами,
которые находятся за пределами
области знаний нашей команды, и
приходится изучать что-то новое. Не
всегда это интересно, но полезно -
это бесспорно. Поверьте мне на
слово: Appery.io - это проект, на
котором скучать не приходится. К
счастью, у меня сейчас лучшая
команда, с которой я когда-либо
работал”.
Андрей Яковенко
8. Appery, LLC 8
Работает в IT сфере более 6 лет.
На проекте Appery.io с 2012 года.
Текущая роль на проекте:
Senior QA engineer
Как менялась роль на проекте:
Junior QA Middle QA Senior QA
Текущие задачи:
• тестирование редактора по созданию
Custom REST Services;
• тестирование соединений с базами
данных и работа с моделями данных.
Поочерёдно работал на всех частях
проекта .
До работы тестировщиком был
системным администратором,
бухгалтером.
Команда Appery.io
“Appery.io отличается от других
проектов своей сложностью,
потому что, по сути, это
конструктор для создания
приложений, в котором может
быть неограниченное число
исходов для юзеров, и их
невозможно полностью покрыть
тестами. В связи с этим, нужно
искать правильные подходы,
которые могут дать нам
максимальное качество за
имеющееся время и с теми
ресурсами, какие у нас есть”.
Михаил Курганский
9. Appery, LLC 9
Работает в IT сфере более 3 лет.
На проекте Appery.io с 2012 года.
Текущая роль на проекте:
Senior QA engineer.
Как менялась роль на проекте:
Junior QA Middle QA Senior QA
Текущие задачи:
• тестирование мобильных гибридных
приложений;
• тестирование front-end части
платформы.
Благодаря работе на проекте
Appery.io ознакомился с такими
современными фреймворками, как
Ionic, Bootstrap, AngularJS, и основами
автоматизации тестирования.
Команда Appery.io
“Важно, что проект инновационный,
очень мало аналогов, интересно о нем
рассказывать людям. Часто мы сами
проектируем фичи, пытаемся
улучшить юзабилити, предложить
свои идеи. Это дает хороший опыт.
Есть ощущение, что вкладываешь
часть себя в продукт, поэтому
большинство людей в команде
переживают за успешность проекта.
В команде есть старый
сработавшийся “ скелет” людей,
которые несут бесценные знания. Все
знают, что к ним можно обратиться
за решением какой-либо проблемы,
они имеют огромное уважение, у них
можно многому научиться”.
Эдуард Андроник
10. Appery, LLC 10
Разработчик ПО более 4 лет.
На проекте Appery.io с 2012 года.
Текущая роль на проекте:
JavaScript developer (support
команда).
Как менялась роль на проекте:
Junior Java developer Middle Java
developer Middle JavaScript
developer
Текущие задачи: работа в команде
поддержки продукта.
Работал в back end, front end,
support командах Appery.io.
Команда Appery.io
“Appery.io позволяет
разрабатывать гибридные
приложения различной сложности
проще и значительно быстрее,
чем это можно сделать в
простой IDE. Любой желающий
может работать с нашей
платформой, а, если возникают
вопросы, команда поддержки 24/7
придет на помощь. Каждый день
мы сталкиваемся с десятками
различных уникальных задач,
которые необходимо решить в
кратчайшие сроки”.
Сергей Кулибаба
11. Appery, LLC
Некоторые текущие задачи
Возникшие в процессе реализации сложности
Подавляющее большинство компонентов - это структурно-сложные элементы, часто с глубокими зависимостями от настроек
внешних элементов; т. е. компонент может перестроить всю свою структуру под влиянием одной из его настроек. По этой
причине самым сложным являлся слой абстракции, когда компонент должен формировать свою внутреннюю структуру на
лету, сообщая её редактору, и это не должно было нарушить работу самого редактора относительно компонента, и при этом
нужно было сохранять архитектурную совместимость с форматом хранения проекта на сервере и его генерацией в конечное
приложение.
Задача (front end часть проекта)
В визуальном редакторе Appery.io упростить и минимизировать время разработки и добавления новых визуальных
компонентов.
В старом варианте все компоненты были непосредственной частью самого редактора, соответственно, время разработки
было очень продолжительным.
Что было реализовано
В новом редакторе для AngularJS-проектов был продуман подход компонентного SDK (Component SDK), когда компоненты
полностью отделены от редактора. При этом компоненты описываются в декларативном стиле как полу-самостоятельные
сущности, а "мир редактора" для них скрыт за слоем абстракции. Это позволило существенно упростить разработку и
добавление новых визуальных компонентов для пользовательских приложений.
12
Задача (front end часть проекта)
В данный момент задачей является сам по себе факт разработки процесса создания AngularJS-приложения в визуальном
редакторе. Как автоматизировать, упростить, сделать наглядным, визуализировать то, что обычно разработчики делают в коде
в любимой IDE, и при этом остаться в рамках проекта, который поддается автоматической кодогенерации? На этот вопрос мы
и пытаемся ответить при разработке нового функционала для визуального редактора Appery.io.
12. Appery, LLC
Как решается задача
В данный момент происходит замена Code-Mirror на Ace editor, что, возможно, приведёт к решению проблемы.
Как решается задача
Решить перечисленные сложности (а также ряд других) призваны наши текущие активности: Unified project и Server API,
которые позволят объединить компоненты Appery.io в единое целое. В конечном итоге пользователь получит инструменты,
которые позволят ему:
• поддерживать свои приложения в актуальном состоянии менее затратным путём;
• обеспечить должный уровень распределения ролей при разработке приложения (например, разработчик мобильного
приложения, сервиса, базы данных, тестировщик, ... ).
Некоторые текущие задачи
Задача (тестирование)
На данный момент командой автоматизации написано ~5000 Selenium-тестов, настроены еженощные build с помощью
TeamCity на трёх виртуальных машинах; также настроен запуск smoke-набора после каждой сборки тестового окружения.
Сейчас требуют решения следующие задачи: зависание ChromeDriver при наличии на странице Code-Mirror, а также
"съедание" специальных символов при вводе в тот же Code-Mirror в новых версиях FirefoxDriver, из-за чего пока невозможно
обновление до последней версии драйвера.
12
Задача (back end часть проекта)
Элементы проекта Appery.io (мобильное приложение, база данных, серверный код, API Express) могут взаимодействовать друг
с другом. Сложная схема их взаимодействия приводит к таким проблемам обычного пользователя, как:
• невозможность корректного и простого расширения (или изменения) структуры базы данных;
• после того, как пользователь опубликует приложение для продуктивного использования, создание дополнительного
окружения для тестирования и разработки приложения (иными словами, поддержка ALM - Application lifecycle management)
требует существенных усилий;
• адаптация приложения в случае изменения API поставщиком сервиса – достаточно труднозатратный процесс.
13. Appery, LLC
Марина Кузнецова
job-vinnitsa@exadel.com
Skype: mk.attlantida
www.exadel.com www.facebook.com/exadelinc vk.com/exadel.Ukraine
61072, г. Харьков, пр-т Ленина, 27Б, 5 эт., оф. 50921036, г. Винница, ул. Максимовича, 4, оф. 208
Наши офисы в Украине
Надежда Волощук
job-kharkiv@exadel.com
Skype: nadezhda.voloshchuk
13