Рубрика «Блог компании REDMADROBOT» - 7

Команда наших Android-разработчиков побывала на Droidcon 2016 в Москве и осталась не слишком довольна мероприятием. Мы делимся своим мнением про программу, доклады и общую атмосферу на Droidcon и призываем сообщество к дискуссии. Надеемся, что открытое обсуждение конференции будет способствовать ее улучшению в будущем.

Московский Droidcon 2016: взгляд со стороны - 1
Читать полностью »

image

8 октября в Москве и 9 октября в Санкт-Петербурге пройдет первый в России международный Testathon — хакатон для тестировщиков. Партнер мероприятия — Facebook.

В программе хакатона помимо соревновательной части заявлена Q&A-сессия — на вопросы участников Testathon ответят представители ведущих мировых QA-команд.

Подробности программы и регистрация: testathon.coЧитать полностью »

В статье «Moxy — реализация MVP под Android с щепоткой магии» мы рассказывали, как побороть проблему жизненного цикла и разделить код своего Android-проекта на слои. Однако MVP (даже при умной кодогенерации view state в Moxy) заставляет писать огромное количество лишнего кода (создавать связанные друг с другом классы и интерфейсы presenter и view). На самом деле эту работу за вас должен делать робот! :) Настало время еще сильнее уменьшить boilerplate при помощи кастомизации шаблонов Android Studio под Moxy.

MVP на стероидах: заставляем робота писать код за вас - 1


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

iOS 10: Notification Content Extension - 1

В этой статье речь пойдет о новой возможности в iOS 10 — Notification Content Extension. Это разновидность расширения, которая позволяет отображать пользователю собственный интерфейс при взаимодействии с уведомлением (remote или local). И отдельно коснемся того, что можно, а что нельзя делать в этом новом расширении — в том числе насколько оно гибко настраивается и конфигурируется.
Читать полностью »

iOS 10: новое в создании анимаций - 1

Не так давно на WWDC 2016 был анонсирован обновленный интерфейс работы с интерактивными анимациями в iOS 10: теперь у разработчиков появился гибкий инструмент их создания, управления и модификации. В этой статье речь пойдет о том, какие произошли изменения и что из себя представляет новое API.
Читать полностью »

image
В этой заметке речь пойдет о HTTP-кэшировании (перевод) и его использовании совместно с фреймворком Django. Мало кто будет спорить с утверждением о том, что применение HTTP-кэширования — очень правильная и разумная практика разработки веб-приложений. Однако именно в этом функционале Django содержит ряд ошибок и неточностей, которые очень сильно ограничивают практическую пользу от такого подхода. Например, до сих пор актуален баг #15855, заведенный в апреле 2011 года, который может приводить к очень неприятным ошибкам в работе веб-приложения.

Middleware vs. explicit decorator

В Django есть два стандартных способа включения HTTP-кэширования: через активацию UpdateCacheMiddleware/FetchFromCacheMiddleware, либо через декорирование функции представления при помощи декоратора cache_page. У первого способа имеется один существенный недостаток — он включает HTTP-кэширование для всех без исключения представлений (view) проекта, зато второй содержит тот самый баг #15855. Если бы не этот баг, то вариант с использованием cache_page являлся бы более предпочтительным. Плюс, такой вариант хорошо согласуется с важнейшим из постулатов The Zen of Python, что «явное лучше неявного».Читать полностью »

В жизненном цикле мобильного продукта рано или поздно наступает момент, когда нужно радикально обновиться. Потому что за время, прошедшее с запуска, выросли требования бизнеса и ожидания клиентов, изменились возможности платформы и средства разработки — и обновления становится невозможно реализовать путем “косметического ремонта”. В мире мобильных приложений жизненный цикл ПО составляет 2-3 года против 10-15 лет в обычном Enterprise-сегменте. Для нас с командой “Открытие Digital” момент радикального обновления мобильного банка настал в конце прошлого года.

Как мы обновили и переписали iOS-приложение банка «Открытие»: кейс - 1
Читать полностью »

Запуск cron внутри Docker-контейнера - 1
Так уж вышло, что запуск cron в Docker-контейнере — дело весьма специфическое, если не сказать сложное. В сети полно решений и идей на эту тему. Вот один из самых популярных (и простых) способов запуска:

cron -f

Но такое решение (и большинство других тоже) обладает рядом недостатков, которые сходу обойти достаточно сложно:

  • неудобство просмотра логов (команда docker logs не работает)
  • cron использует свой собственный Environment (переменные окружения, переданные при запуске контейнера, не видимы для cron заданий)
  • невозможно нормально (gracefully) остановить контейнер командой docker stop (в конце концов в контейнер прилетает SIGKILL)
  • контейнер останавливается с ненулевым кодом ошибки

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

iMessage в iOS 10: новые возможности для разработчиков - 1

На WWDC 2016 Apple представила обновление iMessagе. По презентации Keynote могло показаться, что не произошло ничего интересного: добавлены стикеры, большие эмоджи и анимированные фейерверки. Но на самом деле Apple представила целую новую платформу и открыла Messages для разработчиков. Подробно об этом было рассказано на лекциях iMessage Apps and Stickers, Part 1 и Part2. Для тех же, кто пока не успел их посмотреть, но хоть немного заинтересован, ниже будут рассмотрены новые возможности для разработчиков.

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

Автоматизация развертывания Docker-контейнеров на произвольной инфраструктуре - 1

Контейнеризация приложений сегодня является не просто модным трендом. Объективно такой подход позволяет во многом оптимизировать процесс серверной разработки путем унификации поддерживаемых инфраструктур (dev, test, staging, production). Что в итоге приводит к значительному сокращению издержек на протяжении всего цикла жизни серверного приложения.

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js