Как стать автором
Обновить
87.75
red_mad_robot
№1 в разработке цифровых решений для бизнеса
Сначала показывать

Стратегии в Moxy (часть 1)

Время на прочтение7 мин
Количество просмотров41K

Разработанный нами с Юрой фреймворк Moxy получил широкое распространение в разработке под Android. Он обеспечивает реализацию MVP паттерна при работе с Activity, Fragment и View, полностью отделяя “callback hell” их жизненного цикла от презентера.

Данное поведение реализовано за счет сущности ViewState, которая проксирует вызовы методов между Presenter и View, при этом сохраняя некоторые из них в очереди на основании специальных стратегий. При пересоздании View вызываются не все методы, а только те, которые находятся в очереди на данный момент.

В данной статье мы расскажем, как работают стратегии, предоставляемые “из коробки”, и в каких случаях стоит применять каждую из них. О механизм работы стратегий изнутри и написании кастомных стратегий читайте в Части 2.
Читать дальше →

Как мы делали приложение международной программы лояльности PINS: кейс

Время на прочтение8 мин
Количество просмотров11K
В конце 2016 года мы выпустили мобильное приложение для международной программы лояльности PINS, которая объединяет более 700 поставщиков товаров и услуг и работает преимущественно на севере Европы и в России. Но география расширяется, количество партнеров и пользователей PINS увеличивается, поэтому приложение задумывалось как масштабируемый инструмент адресного обслуживания всех его пользователей — где бы они ни находились. В рамках разработки перед нами стояло несколько интересных задач. В их числе — обеспечить поддержку шести европейских языков, реализовать ряд географических функций и сделать максимально простую процедуру регистрации.


Читать дальше →

Vysor — удобный инструмент для тестирования

Время на прочтение3 мин
Количество просмотров26K

Привет, Хабр! В этой статье я хочу рассказать об удобном инструменте для работы QA-инженера. Это Vysor — расширение, доступное в интернет-магазине Google, которое позволяет делать скриншоты и записывает видео с мобильных устройств.

Читать дальше →

Развитие продукта: два года работы над мобильным приложением банка «Открытие»

Время на прочтение8 мин
Количество просмотров13K
Привет, Хабр! Мы уже писали о том, как в ноябре прошлого года затеяли работу над самым крупным обновлением мобильного банка «Открытие» за все время его существования. В этой статье мы расскажем про процессы — про то, как развиваем продукт совместно с Открытие Digital.


Читать дальше →

Docker swarm mode (режим роя)

Время на прочтение11 мин
Количество просмотров98K

На хабре уже писали про Docker swarm mode (режим роя), который является новой фичей версии 1.12. Данная опция внесла небольшую путаницу в головы тех, кто знаком с отдельно стоящей реализацией Docker Swarm имевшей распространение ранее и не отличавшейся удобством настройки и использования. Однако, после добавления Swarm в коробку с Docker все стало намного проще, очевиднее и функциональнее.

Подробнее о том, как устроен новый кластер Docker контейнеров с точки зрения пользователя, а также о простом и удобном способе разворачивания сервисов Docker на произвольной инфраструктуре далее под катом.
Читать дальше →

Разбор: как и зачем применять PureComponent в React

Время на прочтение3 мин
Количество просмотров115K

29 Июля вышел React 15.3, и первым пунктом в release-notes значилось добавление поддержки React.PureComponent, который заменяет своего предшественника pure-render-mixin. В этой статье обсудим, почему же этот компонент так важен и где его использовать.
Читать дальше →

Новая зимняя стажировка для разработчиков в Redmadrobot

Время на прочтение3 мин
Количество просмотров11K


Привет, Хабр! Мы открываем набор на третью стажировку для разработчиков в Redmadrobot. Старт 19 января 2017 года, продолжительность программы 7-8 недель. Сбор заявок до 25 декабря.
Интересно? Подробности под катом.

Как мы делали бота для банка «Открытие»

Время на прочтение5 мин
Количество просмотров13K
Недавно мы с банком «Открытие» запустили банковского бота с платежными функциями для физических лиц в Facebook Messenger. Сейчас клиентам «Открытия» доступна оплата мобильной связи, с помощью бота можно найти ближайший банкомат или офис банка, узнать курс валют, выяснить, как заказать карту, позвонить в банк и записаться на выплату от Агентства по страхованию вкладов. В этой статье мы расскажем о работе над проектом.

Читать дальше →

Docker: деплой master-slave конфигурации PostgreSQL

Время на прочтение5 мин
Количество просмотров12K


В предыдущем материале я рассказывал о проекте для автоматизации деплоя Docker контейнеров, разработка которого стартовала в начале этого года. Прошло несколько месяцев, Fabricio был значительно улучшен и доработан, и сегодня я хочу рассказать об одном из последних нововведений — об автоматическом деплое master-slave конфигураций для PostgreSQL.

Запуск PostgreSQL в контейнерах — не самая популярная идея, и тому есть разумное объяснение: ни к чему добавлять дополнительные сетевые задержки к и без того довольно загруженному сервису. Но существует ряд случаев когда такое решение все же можно применить. Например, когда вы полностью доверяете Docker БД не испытывает серьезных нагрузок, но при этом важна возможность дублирования/реплицирования хранимых данных на несколько серверов. Либо просто для тестирования и отладки настроек перед применением их на боевых серверах.

Чтобы не утомлять читателя (и пользователя) большим количеством текстовой информации, я решил, что неплохо было бы уже привести «живые» примеры использования Fabricio на реально работающих контейнерах — согласитесь — лучше один раз увидеть.
Читать дальше →

Enums + Associated Values = Swift

Время на прочтение5 мин
Количество просмотров34K

Swift — значит быстрый. Быстрый — значит понятный, простой. Но достичь простоты и понятности непросто: сейчас в Swift скорость компиляции так себе, да и некоторые моменты языка вызывают вопросы. Тем не менее возможность перечислений (enum'ов), про которую я расскажу (associated values — присоединяемые значения) — одна из самых крутых. Она позволяет сократить код, сделать его понятнее и надёжнее.



Читать дальше →

Система сборки Xcode: advanced tutorial

Время на прочтение7 мин
Количество просмотров41K
image
Конфигурация проекта в Xcode выглядит, как пульт управления космическим кораблем. Зачастую люди понимают, как работает система сборки, но путают термины. В этой статье мы пройдемся по структуре проекта, таргетам, настройкам конфигураций и воркспейсам. Поехали!
Читать дальше →

Московский Droidcon 2016: взгляд со стороны

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


Читать дальше →

Открыта регистрация на первый в России международный Testathon

Время на прочтение1 мин
Количество просмотров5.1K
image

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

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

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

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

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

Читать дальше →

Ближайшие события

Как мы написали чат для приложения банка «Открытие»

Время на прочтение9 мин
Количество просмотров20K
В новое приложение банка «Открытие» мы встроили чат для поддержки клиентов, и это стало, пожалуй, одной из самых крупных и сложных историй в рамках масштабного обновления. Сделать чат, соответствующий требованиям банка по функциональности и защите информации, оказалось вовсе не тривиальной задачей.


Читать дальше →

iOS 10: Notification Content Extension

Время на прочтение5 мин
Количество просмотров19K

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

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

Время на прочтение5 мин
Количество просмотров20K


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

Дорабатываем HTTP-кэширование в Django

Время на прочтение10 мин
Количество просмотров10K
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, что «явное лучше неявного».
Читать дальше →

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

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


Читать дальше →

Запуск cron внутри Docker-контейнера

Время на прочтение6 мин
Количество просмотров77K

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

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

Информация

Сайт
redmadrobot.ru
Дата регистрации
Дата основания
Численность
501–1 000 человек
Местоположение
Россия