Как стать автором
Обновить
101.36
Рейтинг
ПСБ
Российский универсальный банк с особой миссией
Сначала показывать

Продолжаем избавляться от шаблонного кода: переиспользуемый делегат табличных экранов

Блог компании ПСБ Разработка под iOS *Swift *

Мы продолжаем сражаться с шаблонным кодом в табличных экранах iOS-приложений. 

В предыдущих статьях мы описали мотивы и подход, используемый для решения проблемы дублирования кода из контроллера в контроллер. Также мы показали детальную реализацию и возможности использования источника и провайдера данных для таблиц, которые позволяют ускорять разработку табличных экранов за счет переиспользования реализации протокола `UITableViewDataSource` в соответствии с принципами SOLID.

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

В этой статье рассмотрим, как избавиться и от такого кода. 

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 914
Комментарии 0

Новости

“На Usability-тестах с дворовым парнем” и другие истории о специфике модерации отдельных групп респондентов

Блог компании ПСБ Дизайн мобильных приложений *Дизайн
Tutorial

Привет, Хабр! Меня зовут Маша Нижегородова, я работаю в отделе исследования клиентского опыта ПСБ. В этой статье я собрала стыдные вопросы про особые категории респондентов на UX-исследованиях в банковской сфере и рекомендации по работе с ними.

Я опиралась не на теорию, а на собственный опыт. Конкретнее - 12 неполных лет в качественных исследованиях (GfK, Ipsos), из них пять лет в финтех-рисёче и два года в UX. Плюс год в банке.

В статье будет пять типажей клиентов, которые встречались в моей практике:

Дворовый парень со смартфоном

VIP-клиент

Провинциал

Эксперт

Продвинутый

Каждому типажу дам полное описание и советы по работе.

Интересно? Тогда добро пожаловать под кат :)

Читать про типы респондентов
Всего голосов 15: ↑15 и ↓0 +15
Просмотры 2.6K
Комментарии 2

Приключение на 5 минут: как мы переводили все зависимости на SPM

Блог компании ПСБ Разработка под iOS *Objective C *Xcode *Swift *

Привет, Хабр!

Меня зовут Вильян Яумбаев, в этой статье я расскажу вам про наши приключения на пути к SPM.

В 2015 ПСБ начал разрабатывать проект для бизнеса. Для него, в свою очередь, было нужно приложение. Сперва всё находилось в одном репозитории одного проекта в одном воркспейсе. Первые авторы подключали сторонние зависимости через CocoaPods, поскольку проприетарного менеджера зависимостей ещё не существовало. Но в тот же год в Apple началась работа над Swift Package Manager. Им предстояло встретиться в нашем проекте.

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

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 2.1K
Комментарии 5

Бизнес-конфиги: как мы меняем бизнес-справочники, от которых зависит работоспособность системы

Блог компании ПСБ Git *

Нередкая ситуация: бизнес хочет быстро вносить изменения в такие справочники, как продуктовый каталог и тарифы. Уровень критичности этих справочников — mission/business critical. Самый быстрый вариант — менять сразу на проде. Но если вносить изменения в такие справочники без тестирования, то в случае ошибки рискуешь получить страховки с комиссией в разы больше или меньше нужной, да ещё полный сбой оформления кредитных заявок.

Я посвятил этот пост проблеме бизнес-справочников и предложил несколько вариантов решения, проверенных на котиках на себе. Под катом вас ждут максимум конкретики и программный код С#.

<Погрузиться в изменчивый мир бизнес-справочников/>

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Просмотры 841
Комментарии 2

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

Блог компании ПСБ Веб-дизайн *Разработка веб-сайтов *CSS *HTML *Дизайн
Мегапроект

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

Но порой неизбежно вылезают различия. «Гражданский брак» значит разное для юриста и не-юриста. Обыватель назовёт цифрой то, что математик — числом. Слово «крайний» имеет особое значение для лётчиков и парашютистов.

Дизайнер и фронтенд-разработчик — не чужие друг другу люди. Они работают в соседних кабинетах, вместе ходят в курилку (по крайней мере, так было до повсеместной ковидной удалёнки). Оба делают части одного большого дела и общаются если и не постоянно, то регулярно. И всё же их языки во многом отличаются. Да и не только языки — сами образы мышления.

Мы поговорили с сотрудниками Промсвязьбанка, чтобы составить небольшой… Нет, не разговорник. Понимайник. Возможно, кому-то он поможет общаться с коллегами по ту сторону HTML более конструктивно, эффективно, а главное — приятно.

Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 16K
Комментарии 10

Рисуем интерактивный линейный график на iOS с помощью Charts

Блог компании ПСБ Разработка под iOS *Разработка мобильных приложений *

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

В этой статье я расскажу о библиотеке Charts и покажу на реальном примере, как создать свой первый график. 

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 1.4K
Комментарии 3
Представьте, что вы оказались в шахте: перед вами каменный монолит, в котором что-то поблёскивает — куски золота, не иначе. Блеск заманчивый, но вокруг грубый камень. В разработке часто возникает похожая ситуация: полезный юзерам код со всех сторон окружён камнем в виде инфраструктуры, конвертеров данных и легаси. На помощь приходит микросервисная архитектура: огромную глыбу можно раздробить на кусочки, в каждом из которых камня поменьше, а полезного кода — побольше. ПСБ предлагает разработчикам .NET и Java поддаться золотой лихорадке: посмотрим, кто лучше добывает полезный код из монолита. Присоединяйтесь к своей команде и работайте на общую победу: в зачёт идёт каждый правильный ответ.
Нужно больше золота
Всего голосов 31: ↑23 и ↓8 +15
Просмотры 21K
Комментарии 19

Онбординг для новичков: кейс ПСБ на хакатоне «Цифровой прорыв»

Блог компании ПСБ Хакатоны
Из песочницы

В декабре мы участвовали в хакатоне «Цифровой прорыв» со своим кейсом. Мы просили участников разработать программное решение для онбординга 
новых IT-специалистов банка.

Задача состояла в том, чтобы объединить информацию из нескольких систем. И команды справились. Например, предложили web- + Android- + iOS-версии системы для хранения данных банка, чтобы новичку было удобно знакомиться с проектами, командой, правилами работы, системой и её архитектурой. Решения содержали разные варианты проверки знаний нового IT-специалиста. Так новичкам будет проще адаптироваться к работе в банке.

Если честно, мы думали, что предложенные решения можно будет использовать в качестве концепции в рамках дизайн-макетов — такой кликабельный прототип, но никак не ждали готовое решение. А у многих получилось его сделать.

В этой статье решили поделиться задачей, решениями и впечатлениями, так что если интересуетесь темой — добро пожаловать под кат.

Читать далее
Всего голосов 12: ↑10 и ↓2 +8
Просмотры 6.5K
Комментарии 8

Сканируй это: как мы геймифицировали коммуникацию на IT-конференции с помощью телеграм-бота

Блог компании ПСБ Контент-маркетинг *Карьера в IT-индустрии Конференции Лайфхаки для гиков

Команда ПСБ уже несколько лет активно участвует в ИТ-конференциях. Мы любим наблюдать за ходом мероприятий и добавлять интерактивности в происходящее. Поэтому мы решили создать своего чат-бота, чтобы он помогал участникам знакомиться и общаться друг с другом.

Мы не сможем показать техническую часть, как это реализовано, но расскажем всё остальное:

- как мы привлекали участников,

- функционал чат-бота,

- как выглядела геймификация,

- какие получили результаты.

Если вы тоже задумываетесь о подобном чат-боте для будущих конференций — наш опыт может вам пригодиться.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 2.7K
Комментарии 3

«Международный  отчёт по качеству»: тренды QA и опыт ПСБ

Блог компании ПСБ Тестирование IT-систем *Тестирование веб-сервисов *Исследования и прогнозы в IT *
Из песочницы

Привет, Хабр!

Меня зовут Татьяна Бельская, я работаю управляющим по обеспечению качества в Промсвязьбанке. Мы с коллегами отвечаем за процессы, которые влияют на качество работы всех наших систем.

У меня возникла потребность исследовать мировые тенденции QA, чтобы понимать, какие технологии сейчас актуальны, какие из них мы используем, насколько мы в тренде как компания и что стоит взять на вооружение. Исследование показало, что большая часть статистики и прогнозов основывается на данных «Мирового отчёт по качеству» (World Quality Report), поэтому я решила обратиться к первоисточнику. Анализ этой информации был чрезвычайно полезен при составлении стратегии развития нашего направления на ближайшие несколько лет. В этой статье я разобрала пять направлений отчета. Хочу поделиться итогами анализа и обсудить их с сообществом. Например, было неожиданно узнать, что в среднем по мировой статистике автоматизировано только 15–20% всех тестов, включая регресс. Если вам интересны тренды тестирования и что будет влиять на QA в 2022-м году — добро пожаловать под кат!

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 3K
Комментарии 0

«Горячие» и «холодные» Feature toggles: принципы работы

Блог компании ПСБ Разработка под iOS *Разработка мобильных приложений *

В этой статье мы расскажем про принципы безопасной работы с переключателями функционала – Feature Toogles: 

— Что из себя представляют переключатели функционала и для чего их использовать.

— Какие проблемы возникают при неправильном использовании.

— Что такое «горячие» и «холодные» переключатели, и как они способны решить проблемы из прошлого пункта. 

— Реализация «холодных» toogle-ов с помощью условной компиляции и линковки.

Наверняка статья не станет откровением для опытных разработчиков, но пригодится их младшим товарищам.

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 2.6K
Комментарии 0

Падал прошлогодний снег, или как SCRUM-мастер ёлку наряжал

Блог компании ПСБ Управление проектами *Agile *

Начало декабря. Утро понедельника. В переговорной собралась команда для обсуждения планов на спринт.

Накидали несколько задач из бэклога. По требованиям — всё понятно, по срокам — всё адекватно, но в воздухе чувствуется какая-то недосказанность.

Владелец продукта кивнул, принимая тяжёлое, но важное для команды решение, и твёрдо произнёс: «Нам нужно поставить ёлку».

Читать далее
Всего голосов 48: ↑47 и ↓1 +46
Просмотры 10K
Комментарии 10

Сад из обломков монолита: как ПСБ перешел на Scrum

Блог компании ПСБ Управление разработкой *Управление проектами *

Мы не внедряли Sсrum ради Scrum’а — мы хотели дать клиентам онлайн-доступ к продуктам и сервисам банка и использовать обычный проектный подход, а не кросс-функциональные команды. Но у этой задачи была особенность, которая вынудила нас прийти к гибкой методологии.

Я, Константин Ахметов, начальник отдела разработки розничных кредитных технологий ПСБ, и я расскажу, почему мы решили использовать фреймворк Scrum для диджитализации продуктов банка.

Читать далее
Всего голосов 21: ↑18 и ↓3 +15
Просмотры 4.5K
Комментарии 19

Responder Chain, или как правильно передавать действия пользователя между компонентами

Блог компании ПСБ Разработка под iOS *Разработка мобильных приложений *Swift *

Эту статью я решил написать под впечатлением от выступления Евгения Ртищева (@katleta) на конференции Mobius. Так же как и в его докладе, в этой статье я хочу показать, как можно, используя подзабытые нативные средства iOS, без труда выполнять простые и очень частые задачи.

Я расскажу о том, как предельно легко перенаправлять действия пользователя внутри приложения без ненужных усложнений — с помощью нативного инструмента под названием Responder Chain.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 4.4K
Комментарии 0

Как переиспользуемый провайдер данных помогает сократить код в iOS-приложении

Блог компании ПСБ Разработка под iOS *Разработка мобильных приложений *Проектирование и рефакторинг *Swift *

В мобильных приложениях табличные экраны занимают значительное место в общем объёме интерфейса. Это происходит благодаря их возможности отображать большое количество контента. Но есть и обратный эффект — программирование таких экранов порождает много однотипного кода.

В прошлых своих статьях мы начали решать проблему шаблонного кода и его размножения путём введения нового подхода, а также поговорили об универсальном источнике данных для реализованных экранов. В этом тексте мы рассмотрим очередную подчасть нашего решения — конфигурируемый контроллер и фабрики для соединения всех компонентов воедино. Подробно и в деталях покажем, как реализовывать View-слой, придерживаясь принципов SOLID.

Вне зависимости от того, какую архитектуру (MVC, MVVM, VIPER и др.) вы используете, компоненты из этой статьи помогут сократить время разработки, поиска и исправления ошибок и добавления нового функционала.

Читать далее
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 1.6K
Комментарии 5

Android: как подружить ваше приложение с Google Ассистентом?

Блог компании ПСБ XML *Разработка под Android *Kotlin *Голосовые интерфейсы *

Многие из вас прекрасно знают, что такое Google Ассистент. Это голосовой помощник, подобный Siri, Алисе, Алексе и другим. Когда пользователь что-то говорит, Google Ассистент понимает это с помощью natural language understanding (NLU). NLU преобразует человеческую речь в специальную структуру данных, которую уже можно обработать.

У разработчиков Android есть возможность интегрировать NLU в свои приложения через специальный api, который называется App Actions. Точнее, существует два вида интеграции: мы можем получить и использовать Deep Link из речи пользователя или получить данные из приложения, не открывая его, и показать их прямо в Google Ассистенте через Slice.

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 5.1K
Комментарии 7

Исправление неоднозначных ограничений без перезапуска приложения

Блог компании ПСБ Разработка под iOS *Objective C *Xcode *Swift *
Перевод

Примечание

Слова layout, autolayout и constraints я перевёл, соответственно, как вёрстка, автовёрстка и ограничения.

Работа с автовёрсткой

Проблемы автовёрстки решать непросто. Запуская приложение, надеешься, что все установленные ограничения работают корректно, а получаешь кучу ошибок автовёрстки в логах консоли.

Interface Builder неплох как визуальный редактор вёрстки. В нём есть индикация некорректных граничных параметров. Однако ваша вёрстка может отличаться от видимой в IB. На экран приложения могут влиять различные параметры — например, ответы на сетевые запросы или локально сохранённые данные. Более того, могут быть экраны, частично или полностью построенные на информации, заданной сервером. От сервера может поступать вообще всё что угодно, в том числе шрифты, цвета и формы.

Кажется, остаётся только вручную разбирать гигантский лог ошибок автовёрстки. Но есть и другие варианты.

Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 1.2K
Комментарии 2

Избавление от шаблонного кода: как будет выглядеть источник данных?

Блог компании ПСБ Разработка под iOS *Разработка мобильных приложений *Проектирование и рефакторинг *Swift *

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

●      Подробно расскажем про переиспользуемый провайдер табличного источника данных,

●      Покажем использование на конкретном примере,

●      Опишем результат с позиции SOLID,

●      Обсудим достоинства и недостатки подхода.

В основе решения лежат принципы SOLID. Цель состоит в том, чтобы составляющие элементы нашего подхода были независимыми, не влияющими друг на друга.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 2.1K
Комментарии 0

Как мы перестали плодить шаблонный код при работе с табличными представлениями в iOS

Блог компании ПСБ Разработка под iOS *Swift *

Девять из десяти экранов любого iOS-приложения имеют табличный вид. Неважно, как реализовано это представление — на UITableView или UICollectionView, но для его реализации необходимо каждый раз писать шаблонный код:

1) реализация табличного источника данных (UITableViewDataSource);

2) реализация табличного делегата (UITableViewDelegate);

3) реализация обратных уведомлений вью об изменениях данных;

4) типичный код по работе с различными коллекциями (плоские, секционные списки на основе массивов, упорядоченных множеств и прочих коллекций) и преобразование их к табличным структурам для источника данных коллекции;

5) все предыдущие пункты придётся повторить, если вы вдруг решите использовать UICollectionView.

Такое большое количество шаблонного кода значительно увеличивает время разработки, тестирования и ревью. Для уменьшения time-to-market мы в ПСБ создали микромодуль, который скрывает в себе весь шаблонный код. Новый модуль представляет собой набор абстрактных реализаций, лёгких в переиспользовании и достаточно универсальных для использования в 90% общих задач. В этой статье расскажем подробности.

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 3.3K
Комментарии 6

Как мы автоматизируем iOS: настройка Gitlab CI + Fastlane + Firebase + ItunesConnect

Блог компании ПСБ Разработка под iOS *DevOps *
✏️ Технотекст 2021

В основном идея использования CI/CD для iOS, да и для других платформ, — это автоматизация рутинной работы. Когда мы работаем над одним приложением, можем вручную собирать небольшой проект. Но команда растёт, хочется тратить время эффективнее, чем вручную собирать проект или объяснять новичкам, что же там с Code-signing нужно делать.

Пожалуй, самое рутинное и самое важное занятие, которое берёт на себя CI, — это прогон тестов. Нет зелёных тестов? В master не попадёшь. А с ростом команды вероятность того, что кто-то вольёт в master нерабочий код, будет только увеличиваться. Нужна автоматизация.

В этой статье я хочу подробно рассказать о пути настройки Gitlab CI + Fastlane + Firebase + Testflight. Примеры приводятся на основе одного проекта, в котором участвовали 10 разработчиков. В конце будут описаны проблемы, с которыми мы сталкивались, и их решения.

Для кого будет полезен этот опыт? Для всех, кому нужен CI/CD и кто сидит на Gitlab. Для Github будет другая связка, например с Travis, — остальные компоненты неизменны. В нашей команде все используют Gitlab CI, Fastlane вместо голого xcodebuild для быстроты и удобства разработки, Firebase и Testflight.

Если у нас бесплатный Gitlab и мы укладываемся в лимит Firebase, то получаем бесплатное решение по настройке CI/CD.

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 8K
Комментарии 6

Информация

Дата основания
Местоположение
Россия
Сайт
www.psbank.ru
Численность
свыше 10 000 человек
Дата регистрации
Представитель
Ларионов Владимир