Рубрика «Блог компании Аркадия»

image

В процессе разработки приложения на фрейворке Sencha Touch для платформы iOS потребовалось реализовать воспроизведение локальных видео и аудио файлов, которые должны быть зашифрованы на сервере перед скачиванием в память мобильного устройства. Дополнительным условием был запрет на создание дешифрованной версии файла на диске, таким образом появилась необходимость делать расшифровку и чтение данных в оперативной памяти. Поэтому стандартный плагин от Cordova для воспроизведения локальных медиа файлов не подходил, хотя опыта разработки на Objective C у меня не было, я решил создать свой, обладающий требуемым функционалом.
Читать полностью »

Custom Video Recorder для iOS приложений - 1 Приложение Камера для iPhone / iPad очень удобно в использовании. Пользователь легко может переключаться из режима фотографирования на видеосъемку. В режиме видеосъемки показывается время съемки и всего одна кнопка (Старт / Стоп). К сожалению, при использовании стандартного UIImagePickerController’а нет возможности контролировать количество кадров в секунду и некоторые другие параметры. Я покажу, как, используя AVFoundation framework, получить доступ к более тонким настройкам камеры, таким как, количество кадров в секунду, качество видео, длительность записи, размер видео файла. Пользователь сразу будет видеть на экране видео в том качестве, в котором оно будет сохранено.
Читать полностью »

image

В этой статье я расскажу о различии возможностей, которые предоставляют iOS-разработчикам языки Swift и Objective-C. Безусловно, разработчики, которые интересовались новым языком от Apple, уже видели немало подобных статей, поэтому я решил акцентировать внимание на тех отличиях, которые действительно влияют на процесс разработки и на архитектуру приложения. То есть, те отличия, которые следует знать, чтобы использовать язык максимально эффективно. Я попытался составить наиболее полный список, удовлетворяющий этим критериям.

Кроме того, рассказывая о новых возможностях, которые Swift привнёс в разработку, я постарался не забыть упомянуть то, что он потерял по сравнению с Objective-C.

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

На момент написания статьи текущая версия Swift — 3.0.1.

Читать полностью »

Как подружить TDD подход при работе с базой данных
История о том, как разрабатывалась система автоматического тестирования методов, взаимодействующих с базой данных, с подробным описанием того, с какими подводными камнями пришлось столкнуться в процессе разработки и внедрения системы в окружение проекта.
Читать полностью »

SSO для красавицы и чудовища - 1
На картинке — глупенькая красавица отдаёт чудовищу учётную запись пользователя.

В одной стране жила была старая некрасивая система администрирования для школ, написанная на Classic ASP. Ею пользовались все учителя, ученики, а так же их родители. И в один прекрасный солнечный день её решили модернизировать. На смену уже устаревшей технологии должна придти современная ASP.Net MVC 5 с новым дизайном.
Однако в одночасье переписать все 6000 asp файлов не представляется возможным, какое-то время старая и новая система должны существовать параллельно.
И вот спустя полгода новая сверкающая (хотя кое-где всё таки проглядывает ржавчина и заплатки, ибо сроки) система приняла первых пользователей.
Следующим шагом необходимо было применить технологию единого входа (SSO) для пользователей, чтобы каждый мог свободно перемещаться между пока ещё глупенькой красавицей и полнофункциональным чудовищем.
Кроме того, одна из крупнейших систем управления обучением (LMS) захотела иметь тесную интеграцию с нашей системой администрирования, включая в себя SSO.
Читать полностью »

История одного конфигурационного «зонтика» - 1
В этой статье я расскажу об опыте поставки и конфигурирования многочисленных взаимосвязанных продуктов (непричастные называют это просто «созданием инсталляторов»).

Итак, представьте разбросанный по нескольким серверам набор приложений: 12 штук. Приложения разнородные, разработаны разными компаниями в разное время. Реализованы различные методы интеграции от примитивных экспортов/импортов через файловую систему, до продвинутой на базе web-сервисов. Приложения используют базы данных SQL Server и Oracle. Все эти приложения работают в сотнях разных окружений конечных заказчиков.

Установить и сконфигурировать все это стоит немалых трудов и ресурсов. Хорошо, установили. А обновления, которые для бухгалтерских систем должны выпускаться в соответствии с изменениями в законодательстве? Масштабирование приложений? А новый функционал? Что насчет новых клиентов с их «особенными» конфигурациями? Вручную – дорого и долго, если у вас, скажем, 150 клиентов и хотя бы 2 обновления такого «монстра» в год.
Читать полностью »

Новый год на носу и пора запланировать участие в интересных конференциях. Коллеги из Mail.ru уже несколько лет подряд делятся обзором российских событий (вот список на 2015 год, ждем аналогичного обзора на 2016), а я решил пройтись по зарубежным.

11 лучших зарубежных девелоперских конференций в 2016 году - 1

Почему импортные конференции? Российские тоже очень интересны, но иногда хочется совместить приятное с полезным: не только послушать умных людей и наладить новые связи на профильных для нас рынках США и Западной Европы, но и посмотреть какой-нибудь приятный город.
Читать полностью »

Введение

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

Раз плюнуть, скажете вы – берём векторную карту торгового центра в svg и дополняем её данными. Красиво, современно, быстро. Даже есть готовые решения типа jVectorMap.

Только вот векторных карт нужных торговых центров нет, есть только те картинки, что предоставлены владельцами центров. Абсолютно разные по стилистике и наполнению. А большое количество центров (порядка 300) не позволяет перерисовать их в вектора быстро и дёшево. Да и добавление новых торговых центров потребует дополнительной работы.

Поэтому было решено использовать HTML5 canvas и для разметки карты, и для показа данных.

Выбор фреймворка

Работать напрямую с canvas API не очень удобно, но уже понапридумана куча инструментов для облегчения работы. Требования к фреймворку в нашем случае:

  1. Объектная модель поверх canvas API.
  2. Способность отрисовывать и масштабировать картинку.
  3. Интерактивность:
    • возможность манипуляции объектами на этапе разметки карты,
    • возможность масштабирования и перемещения по карте.
  4. Возможность экспорта/импорта размеченных объектов.
  5. Наличие детализированных событий.
  6. Высокая скорость отрисовки.

Под рассмотрение попали fabric.js, EaselJS, Raphaël, Paper.js и Processing.js.
Всем требованиям удовлетворяет fabric.js. Учитывая имеющийся небольшой опыт работы с ним, было решено взять его за основу. Далее в примерах использовалась версия 1.4.4.

Читать полностью »

Вступление

Некоторое время назад мне была поставлена задача найти оптимальный способ программного управления удалённым IIS и реализовать его в виде некоего модуля. Задача интересная, с множеством трудностей, поэтому хочется поделиться своим опытом.

Вот список основных требований к реализуемому модулю:

  • Возможность выполнения основных операций с IIS:
    • создание сайта
    • создание virtual application
    • создание virtual directory
    • настройка bindings для сайтов, включая установку сертификатов SSL
    • создание пулов приложений с детальной настройкой
  • Поддержка параллельной работы с несколькими IIS на разных серверах фермы
  • Поддержка IIS версии 8.0 (более ранние версии поддерживать не нужно).

Одним словом, модуль должен был уметь практически всё, что можно сделать через IIS Manager.
Читать полностью »

Вступление

Вторая часть обзора будет посвящена сервису HockeyApp, с первой частью обзора можно ознакомиться тут.

По всей видимости, Miscrosoft решила не отставать от компании Apple, в результате чего в начале декабря было объявлено о приобретении HockeyApp (подробнее в блоге HockeyApp и на сайте Microsoft). В отличие от Apple, Microsoft не стала урезать функционал сервиса или ограничивать список поддерживаемых платформ. В пресс-релизе говорится, что сервис продолжит свою работу без изменений, а в дальнейшем получит развитие, о подробностях которого мы узнаем позже.

Система оценки: сервисы оцениваются по 10-балльной шкале по каждому из разделов (Регистрация и интеграция, Основной функционал, Дополнительный функционал, Continuous Integration). Суммарная оценка позволит определить победителя (итоговое заключение войдет в последнюю часть обзора).

Читать полностью »