Search
Write a publication
Pull to refresh
6
0
Сергей Петрук @SPetruk

Dev2Dev Lead at Qiwi

Send message

Напиши мне денег: переводы через iMessage

Reading time7 min
Views9.3K

image alt text


iMessage в свежих версиях iOS научился работать со сторонними расширениями. Например, теперь можно добавлять котиков к сообщениям или даже переводить кому-то деньги без дополнительных реквизитов. Это же мечта лентяя — отправлять деньги не выходя из мессенджера, поэтому разработка Яндекс.Денег засела за реализацию.


При разработке модной магии без квестов не обошлось, ведь iMessage практически ничего не рассказывает о получателе сообщения. Нет ни номера кошелька, ни ФИО, ни хотя бы статичного ID. Но мы придумали способ узнать об адресате все необходимое для отправки денег.

ну-ка, ну-ка

IPN для Qiwi на Node.js

Reading time6 min
Views5.4K
Что реализовать возможность оплаты через шлюз оплаты Qiwi достаточно прочитать руководство для разработчика, которое, кстати, на русском. Но для тех, у кого горят сроки и не хочется тратить много времени на разработку, я попробую облегчить процесс разработки своими выкладками с кодом.
Читать дальше →

Haskell. Монады. Монадные трансформеры. Игра в типы

Reading time4 min
Views28K
Еще одно введение в монады для совсем совсем начинающих.

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

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

С обычными функциями все понятно. Если имеется функция типа «a->b», то подставив в неё аргумент типа «a», вы получите результат типа «b».

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

Тенденции и перспективы рынка мобильных приложений: поговорим о деньгах

Reading time8 min
Views46K


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

Гибридные модели монетизации (например, встроенная реклама и покупки из приложения) быстро набирают популярность в мире бизнеса. Большинство исследований предполагают, что встроенная реклама будет основным фактором роста мобильного рынка в ближайшие годы.

Мы в Alconost перевели статью, которая проливает свет на следующие вопросы:

  • Какой доход, в среднем, приносит мобильное приложение?
  • Действительно ли средний доход растет?
  • Какие наибольшие вызовы стоят сегодня перед отраслью мобильных приложений?
  • Какие модели монетизации наиболее популярны на рынке сегодня? Какие станут факторами роста завтра? Какие модели уже отжили свое?

Все нижеприведенные выводы основаны на статистических отчетах и экспертном мнении.
Читать дальше →

Как добавить AppIcon и LaunchScreen в приложение на React Native

Reading time7 min
Views27K

Не занимаясь никогда ранее нативной разработкой под мобильные платформы, и в этот раз решил пойти "легким путем" — освоить React Native. Наибольшей трудностью стало добавление иконки приложения(AppIcon) и экрана загрузки (Launch Screen). О чем и хочу рассказать в данной статье тем, кто осваивает React Native.

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

Почему VIPER это плохой выбор для вашего следующего приложения

Reading time7 min
Views20K

Этот пост является вольным переводом статьи Why VIPER is a bad choice for your next application by Sergey Petrov


За последний год о VIPER писали все кому не лень. Эта архитектура реально вдохновляет разработчиков. Но большинство статей, на самом деле, довольно предвзяты. Они лишь показывают крутизну этого архитектурного паттерна, умалчивая о его негативных сторонах. А ведь проблем у него вовсе не меньше (а может даже и больше) чем у других. И в этой статье я постараюсь объяснить, почему VIPER вовсе не так хорош как о нем говорят, и почему он не подойдет для большинства ваших приложений.


Узнать что не так с VIPER

Обучаемся самостоятельно: подборка видеокурсов по Computer Science

Reading time11 min
Views130K
image

Содержание


  1. Введение в Computer Science
  2. Структуры данных и Алгоритмы
  3. Системное программирование
  4. Распределенные системы
  5. Базы данных
  6. Объектно-ориентированный дизайн и разработка софта
  7. Искусственный интеллект
  8. Машинное обучение
  9. Веб-разработка и интернет-технологии
  10. Concurrency
  11. Компьютерные сети
  12. Разработка мобильных приложений
  13. Математика для программистов
  14. Теория информатики и языки программирования
  15. Архитектура компьютера
  16. Безопасность
  17. Компьютерная графика
  18. Работа с изображениями и компьютерное зрение
  19. Интерфейс Человек-Компьютер
  20. Вычислительная биология
  21. Прочее

You, Inc. Как развить личные и профессиональные навыки, продать их и выделиться из толпы

Reading time3 min
Views28K


Вокруг нас множество талантливых людей, но не каждый из них успешен. Я уверен, что вы встречали аспирантов, эрудиция которых поражает. Они молоды и умны, но кроме родного вуза о них нигде не знают.

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

Год назад я заинтересовался этим вопросом и выяснил, что построение и продвижение личного бренда не такой сложный процесс, как может показаться сначала. Он строится на простых правилах, о которых я и расскажу в этой статье.
Читать дальше →

Парсинг JSON — это минное поле

Reading time25 min
Views163K
image

JSON — это стандарт де-факто, когда заходит речь о (де)сериализации, обмене данными в сети и мобильной разработке. Но насколько хорошо вы знакомы с JSON? Все мы читаем спецификации и пишем тесты, испытываем популярные JSON-библиотеки для своих нужд. Я покажу вам, что JSON — это идеализированный формат, а не идеальный, каким его многие считают. Я не нашёл и двух библиотек, ведущих себя одинаково. Более того, я обнаружил, что крайние случаи и зловредная полезная нагрузка могут привести к багам, падениями и DoS, в основном потому, что JSON-библиотеки основаны на спецификациях, которые со временем развиваются, что оставляет многие вещи плохо или вообще не задокументированными.

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

Видео докладов с Techleads Meetup #1

Reading time1 min
Views7.4K


15-го октября в Badoo прошел пилотный Techleads Meetup. А сегодня мы выкладываем видео выступлений.

Познавательного Вам просмотра!
Читать дальше →

Интеллект-карты: 5 способов, которые помогли мне превратить хаос в порядок

Reading time6 min
Views245K
«Ментальная карта… Опять эзотерика?» — подумала я, впервые прочитав это название больше полугода назад. Потом вникла, попробовала нарисовать в таком формате свои планы на неделю. Получилось на удивление легко и интересно.
Здесь бы я могла написать, что с тех пор я стала пользоваться картами постоянно, но это не так. Я про них забыла. И вспомнила лишь в августе, когда планировала поездку в отпуск. Вот что из этого получилось.


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

Techleads Meetup в Badoo

Reading time3 min
Views5.6K


Рады сообщить вам, что 15-го октября мы проведем пилотный Techleads Meetup.

Techleads – это митап для лидов, руководителей отделов и CTO, призванный объединить на одной площадке технологии, разработку и управление. Спикеры Techleads-митапа будут делиться своим опытом и расскажут о том, как в их компаниях устроены процессы разработки, тестирования, системного администрирования и не только. Расскажут о самых успешных и эффективных методологиях, а также о том, как делать не стоит.

Программа Techleads митапа #1


"Мобильный веб: назад в будущее"
Виталий Шароватов, Mobile Web Team Lead и Руслан Байрамкулов, Senior Mobile Web QA Engineer (Badoo)


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

Давным-давно для Мобильного веба в Badoo были «тёмные времена». Использовались дизайны нативных платформ и эмитировалось их поведение. Даже релизы случались раз в неделю-две. Около года назад ситуация начала меняться в лучшую сторону. Мобильная веб версия Badoo догнала по количеству фич остальные платформы и показала существенный рост по всем показателям. Теперь мобильный веб релизится каждый день.

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

Лекции Техносферы. 1 семестр. Введение в анализ данных (весна 2016)

Reading time3 min
Views44K
Слушайте и смотрите новую подборку лекций Техносферы Mail.Ru. На этот раз представляем в открытом доступе весенний курс «Введение в анализ данных», на котором слушателей знакомят со сферой анализа данных, основными инструментами, задачами и методами, с которыми сталкивается любой исследователь данных в работе. Курс преподают Евгений Завьялов (аналитик проекта Поиск Mail.Ru, занимающийся извлечением полезных бизнесу знаний из данных, генерируемых поисковым движком и десктопными приложениями), Михаил Гришин (программист-исследователь из отдела анализа данных) и Сергей Рыбалкин (старший программист из студии Allods Team).

Лекция 1. Введение в Python


Из первой лекции вы узнаете, что такое анализ данных, какие инструменты используют для анализа данных, а также как работает Python.


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

Какое окно оценки игры интегрировать в свою мобилку

Reading time3 min
Views12K
Наш партнер, аналитическая компания Playliner, подготовила для блога программы "Менеджмент игровых интернет-проектов" исследование о предложениях оценить игру. Под катом вы найдете информацию о том, какие бывают типы предложений, и какие фичи используют разработчики, чтобы повысить оценку игры в сторе. А также выводы и анализ преимуществ и недостатков различных вариантов интеграции этой механики в вашу игру.


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

Ключевые навыки успешной Agile-команды или как сделать так, чтобы Agile заработал?

Reading time14 min
Views29K

Дмитрий Лобасев (lobasev.ru)


Давайте погрузимся в механику гибких процессов и вместе подумаем, как сделать так, что вот, приходите вы, например, с конференции и как менеджер говорите: «Так, ребята, всем Kanban с понедельника!» или «Всем Scrum!». А ребята смотрят на вас – ну, а какой у них выбор? Сказали Scrum, значит, Scrum… Идут, что-то делают, пытаются сделать Scrum, делают какие-то ритуалы, приплясывают возле доски по утрам, ходят, что-то еще делают. Но что-то не работает.

Мой доклад, как раз, этому и посвящен. Давайте рассмотрим механику Agile-процессов – как сделать так, чтобы все-таки это приносило ценность.

Вот как было задумано:



Ну, и получается на выходе:


Рекордное время: как мы увеличили скорость запуска приложения Почты Mail.Ru на iOS

Reading time21 min
Views16K


Скорость запуска — критически важный фактор для долгосрочного успеха приложения. Она особенно важна для таких приложений как Почта Mail.Ru, которые запускают по многу раз в день с целью быстро проверить новые письма во «Входящих».

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

Как пасти котов. Наставление для программистов, руководящих другими программистами

Reading time7 min
Views142K
Привет, Хаброжители!
У нас вновь вышла книга Дж. Рейнвотера.

image«Как пасти котов» — это книга о лидерстве и руководстве, о том, как первое совмещать со вторым. Это, если хотите, словарь трудных случаев управления IT-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды программистов. Даже если вы еще месяц назад были блестящим и дисциплини-рованным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руко-водства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач. В таком случае без этой книги вам не обойтись. А может быть, вы — опытный менеджер, желающий пересмотреть свои принципы лидерства? Тогда, опять же, эта книга для вас. Вне зависимости от возраста, пола и социального статуса она поможет вам укрепить свои позиции в роли лидера программистов. Материал изложен довольно компактно и легко укладывается в голове. Стоя в книжном магазине и раздумывая, что же купить, задайте себе один простой вопрос: «Нужно ли мне совершенствовать свои лидерские навыки?» Полагаю, вы ответите: «Да», — а значит, данная книга окажется для вас небесполезной.
Читать дальше →

iOS 10: Notification Content Extension

Reading time5 min
Views19K

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

Страх и ненависть и пагинация

Reading time8 min
Views27K

А в чем проблема?


Типичная пагинация


Как бы нам не хотелось этого отрицать, практика показывает, что подавляющее большинство своего времени типичный iOS-разработчик проводит за работой с табличками. Проектирование сервисного слоя — это интригующе, разработка универсального роутинга в приложении — захватывающе, а от настройки гибких политик кэширования вообще крышу сносит, но работа с табличными интерфейсами — это наши серые будни. Иногда луч света все же попадает и в эту область, и вместо очередной возни с constraint'ами перед нами может встать задача реализации постраничной загрузки — или, как это модно называть в мобильных приложениях, infinite scroll'а.


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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity