Vivid money что это
Выходцы из «Тинькофф» запустили в Германии конкурента Revolut
Экс-топ-менеджеры Тинькофф Банка запустили в Европе мобильное приложение и карту Vivid Money для управления личными финансами через смартфон. В ближайшем будущем в приложении появятся и инвестиционные продукты. Основной инвестор проекта — TCS Group (головная компания Тинькофф Банка и «Тинькофф страхования»), говорится в сообщении европейской компании, поступившем в РБК.
Как устроена компания
Компания Vivid Money была основана в 2019 году в Берлине двумя топ-менеджерами TCS Group: старшим вице-президентом Тинькофф Банка по развитию бизнеса Артемом Ямановым и вице-президентом по разработке новых продуктов Александром Емешевым, которые покинули должности в банке. Всего в команде Vivid Money числится 130 человек, говорится в сообщении компании.
TCS Group является основным инвестором проекта и контролирующим акционером компании. О том, что группа Олега Тинькова планирует инвестировать €25 млн в создание финтех-компании в Европе, стало известно в феврале текущего года, группа не исключала и дополнительных вложений в дальнейшем. Как уточнил представитель «Тинькофф», группа частями перечислит инвестиции до €25 млн до конца года. По словам представителя Vivid Money, инвестиционных переводов от TCS Group пока не было, но планируется проведение инвестиционных раундов, в которых TCS Group станет основным инвестором. Акциями компании также владеют Яманов и Емешев, однако доли акционеров не раскрываются.
Группа будет помогать сервису не только деньгами, но и экспертизой, говорил «Ведомостям» предправления Тинькофф Банка Оливер Хьюз. Однако, по его словам, у банка нет необходимости в создании европейского подразделения.
Сервис запущен в Германии в партнерстве с немецким SolarisBank, который предоставляет свою лицензированную платформу для онлайн-банкинга, и международной платежной системой Visa. Компания также планирует выйти на другие европейские рынки в этом году.
Для чего нужен сервис
Приложение Vivid Money позволяет открывать банковские счета более чем в ста валютах, совершать платежи и переводы, снимать наличные, а также получать кешбэк за покупки до 10%. К счету открывается цифровая карта Visa, которую также можно получить в металлическом виде. Как говорится на сайте сервиса, счет можно открыть как со стандартным, так и с премиальным обслуживанием. В первом случае услуга будет бесплатна, во втором ее стоимость составит €9,90 после трех месяцев бесплатного обслуживания.
Снятие наличных бесплатно до €200 или €1000 в месяц, после чего комиссия составит 3%. Обслуживание карты — €1. За переводы, платежи и обмен валюты комиссия не взимается. В ближайшее время в приложении также будут запущены инвестиционные продукты: клиенты смогут инвестировать в акции американских и европейских компаний, а также в биржевые инвестиционные фонды (ETF).
Как «Тинькофф» конкурирует с Revolut
Основатель TCS Group Олег Тиньков в своем Instagram в феврале 2020 года (на данный момент запись удалена) заявлял, что готов лично фондировать новый проект, и допустил, что он составит конкуренцию британскому финтех-стартапу с российскими корнями Revolut. Этот сервис был основан в 2015 году, он также представляет собой приложение и карту, с помощью которых можно экономить на валютных платежах, расплачиваться по всему миру без комиссий за конвертацию и совершать трансграничные переводы.
Во сколько оценивается Revolut
По словам Олега Тинькова, он вел переговоры с сооснователем Revolut Николаем Сторонским о покупке сервиса, но безрезультатно. В октябре 2018 года Тинькофф Банк заявил о запуске на российском рынке аналогичного сервиса, позволяющего клиентам с дебетовой картой банка расплачиваться в 30 валютах, избегая больших комиссий за конвертацию. В том же месяце на форуме «Финополис» Тиньков раскритиковал Revolut. Модель такого стартапа — собирать деньги с инвесторов раунд за раундом, но в России таких инвесторов нет, отметил он. По мнению Тинькова, финтех-компании выигрывают от регуляторного арбитража (то есть от непопадания под регулирование): «Легко открывать 3 млн счетов, когда не соблюдаются простейшие регуляторные требования [конкретной страны]. Естественно, транзакции у них дешевле. Я тоже так хочу, но это не есть конкурентное преимущество». В ответ Сторонский заявил, что преимущество стартапов перед банками состоит в скорости автоматизации процессов и более гибком ценообразовании.
Revolut смог стать популярным в Европе сервисом благодаря отсутствию комиссий за конвертацию валют, переводы и платежи (например, в Европе за оплату по карте держатель может платить банку или ПС 2–5% от суммы платежа), говорит руководитель группы по оказанию консультационных услуг компаниям финансового сектора КПМГ в России и СНГ Наталья Ракова. По ее словам, Vivid Money запускается в правильное время: «Аппетит к цифровым банковским услугам стремительно нарастает по всему миру, в том числе в Европе. При этом традиционные банки — лидеры европейского банковского рынка далеко не так продвинуты в этом направлении, как даже российские банки. Поэтому перспективы у проекта, безусловно, хорошие». Ответа от конкурентов можно ждать уже в ближайшее время, считает эксперт.
Конто в немецком банке с бонусной программой и трейдингом
Обзор финансового стартапа Vivid — мобильное приложение, бесплатный расчётный счёт, солидный кэшбэк и инвестиции.
Застоявшееся тихое болото немецкого финансового сектора давно требует модернизации. Отрадно видеть появление на рынке современных банковских услуг, не требующих комиссии за ведение счёта и другие операции. Вдвойне приятно, когда растормошить сонное царство банкиров в Германии пытаются соотечественники.
Немецкий финтех-стартап с российскими корнями
Проект Vivid основали бывшие управляющие Тинькофф-Банк Александр Емешев и Артём Яманов. Выйти на немецкий рынок удалось заключив партнёрство с Solarisbank. Немецкая компания имеет необходимые в Германии банковские лицензии и предоставляет инфраструктуру для проведения денежных операций.
Стартап борется с конкурентами за тугие кошельки бюргеров на самом передовом фронте. Но просто встать в один ряд с прочими немецкими директ-банками с бесплатным счётом для новичка недостаточно. Стратегия “быть как все” не сулит огромного притока клиентов. Поэтому драйвером роста стала идея совместить современный банкинг с привлекательными бонусными программами.
До конца ноября 2020 действует акция — возврат за покупки в супермаркетах 10%.
Открыть аккаунт в Vivid меня побудила акция 10% возврата за покупки в немецких продуктовых супермаркетах Lidl и Aldi. Эти магазины-дискаунтеры принципиально не участвуют в многочисленных системах кэшбэка в Германии, предпочитая развивать собственные сервисы. Тем удивительнее выбор финтех-стартапа. Привлечение клиентов немецкие гиганты банку не оплачивают. Получается, за девиз “никто кроме нас не платит кэшбэк в Lidl” приходится платить из рекламного бюджета банка. Оцените красоту маркетингового хода!
Привлечь внимание — первая важная задача. Vivid это удаётся. Следующий этап — удержание. Банку не удержать клиента без предоставления удобного и надёжного банковского сервиса.
Открытие счёта в Vivid
Регистрация в системе сделана по современным стандартам. Заходим на страничку сайта, оставляем email.
Через несколько минут получаем приглашение скачать мобильное приложение. Устанавливаем и проходим процесс регистрации.
Услуги Vivid в Германии доступны только жителям страны. Поэтому нельзя зарегистрироваться в системе на адрес в другом государстве.
Стартапам важно выделяться на фоне конкурентов. Вертикальная сиреневая карта VISA — забавно и цепляет.
После введения обязательной информации требуется пройти видео-идентификацию. В настройках приложения доступны английский и немецкий языки для службы поддержки. До нажатия на кнопку расположитесь в тихом и хорошо освещённом месте.
Это самая сложная часть процедуры открытия счёта. Операторы стороннего сервиса IDNOW торопятся, говорят быстро, понимать тарабарщину на иностранном языке сложно. Если это первый опыт проверки личности по видео, сразу сообщите работнику и попросите говорить медленнее.
Потерпев неудачу не расстраивайтесь, попробуйте с другим оператором.
После успешной идентификации приложение разблокирует доступ к счёту и сгенерирует виртуальную дебетовую карту VISA, которую можно добавить в GooglePay или ApplePay для оплаты в интернете или мобильным телефоном через NFC.
Металлическая карта мультяшного лунтикового цвета придёт по почте через 1-2 дня. Она не содержит надписей. Номер, CVC и срок действия хранятся только в приложении.
Карта достаётся клиенту бесплатно и насовсем, независимо от тарифа.
Металлическую карту VISA необычного вертикального дизайна присылают в красивой упаковке.
Тарифов в Vivid два: стандартный и Prime. На первые 3 месяца банк дарит прайм-аккаунт бесплатно. Затем владелец счёта выбирает, перейти на обычный тариф или остаться на платном за 9,90€ в месяц.
Vivid Standard
Vivid Prime
Вдобавок к стандартным опциям:
ВАЖНО: смена тарифа на платный без согласия клиента невозможна. Никаких подстав.
В первые 3 месяца банк даёт возможность оценить прайм-аккаунт. Затем необходимо подтвердить выбор тарифа и согласиться на платный вариант.
Инвестиции из кэшбэка Vivid
Несложно посчитать, что Prime выгоднее за счёт бонусов, если активно пользоваться приложением.
Я гипотетически “окупил” прайм-тариф в первый месяц за 3 похода в супермаркет, получив назад по 10% в ALDI и LIDL. Конечно, будет легкомысленно предполагать, что банк останется таким щедрым долгое время. Акции ограничены по сроку действия.
Но менять тип аккаунта разрешается в любой момент. Не нравится план акций на следующие дни — уходим на стандартный счёт. Prime действует до конца оплаченного периода и затем становится бесплатным. А если бонусы перевешивают — остаёмся.
Кэшбэк в Vivid привязывается к курсу акций на выбор клиента.
Главная маркетинговая “фишка” Vivid — возможность привязки бонусных денег к курсу некоторых акций. Работает это так:
Я добросовестно искал подвох в документации на сайте Vivid и в отзывах. Но не обнаружил ничего компрометирующего. Даже лимит на заработок от роста курсов отсутствует. Заработать можно, потерять первоначально вложенную сумму нельзя.
Банк не является брокером и не даёт возможности реально торговать на бирже. Привязка к курсам акций пока что виртуальная. Но в планах развития на 2020 значится добавление трейдинга.
Мультивалютные кошельки Vivid
Счёт по умолчанию открывается в евро, но хранить деньги разрешается и в других валютах. Курсы валют предоставляются Европейским Центральным Банком. За конвертацию иногда взимается комиссия путём небольшого снижения курса.
Приложение позволяет создать виртуальный кошелёк в евро или в иностранной валюте.
Например, я открыл в приложении новый Pocket и добавил российский рубль. Затем перевёл с основного счёта в созданных кошелёк 5€ и конвертировал в рубли. Получилась сумма в иностранной валюте эквивалентная 4,97€. Банк взял 3 цента за операцию.
Многовалютность полезна для хранения денег в другой валюте или для использования за границей. Карту разрешается привязывать к любому кошельку. В поездке в другую страну можно конвертировать евро в требуемую валюту и изменить привязку карточки или заказать за 20€ дополнительную.
Конвертация возможна в десятки разных валют. Тариф Prime поддерживает более сотни.
Валюты разрешается менять минуя евро. Рубли переводятся в доллары, доллары в юани, юани в фунты стерлингов по желанию клиента и по курсу европейского центробанка.
Новому кошельку сразу присваивается отдельный IBAN. Можно получать деньги сразу на новый счёт, минуя “главный”. Обратная сторона такого свойства кошельков — отсутствие функции удаления.
Денежные переводы и запросы на оплату в Vivid
Банковские переводы в евро внутри ЕС осуществляются в стандартном порядке в течение одного рабочего дня. В этом смысле Vivid совершенно обычный немецкий банк.
В мгновенных переводах между клиентами банка тоже нет ничего сверхъестественного. Достаточно указать в настройках “видимость” для других вивидовцев и можно отсылать и получать деньги в течение секунды.
Создание запроса на получение денег через ссылку очень пригодится частным предпринимателям.
А вот функция “запросить деньги” обычна для платёжных систем, а не банков. Пользователь приложения может послать сообщение на любой номер мобильного телефона. В SMS помещается ссылка. Клиент Vivid нажав на линк сразу переходит к оплате. А новичкам после регистрации предлагается бонус до 20€ на запрошенную сумму. Оплатить запрос обычным банковским трансфером тоже не запрещается.
Адресат запроса получает SMS со ссылкой, которая ведёт клиентов в приложение. Остальные регистрируются и получают до 20€ бонуса или платят по реквизитам.
Операции с наличностью
Как и большинство директ-банков без филиалов, Vivid “не дружит” с наличкой. Единственная возможность добавить деньги на новый счёт — перевести сумму из другого банка. Или получить зарплату.
Да, это недостаток по сравнению с обычным финансовым институтом. Поэтому я рекомендую Vivid, если класть деньги через другие счета не проблема. Я использую параллельно несколько счетов, открытых в разных типах немецких банков, поэтому затруднений с переводом наличности не возникает.
Снять минимум 50€ через карту можно в любом банкомате мира, работающем с VISA. Комиссия не взимается до месячной суммы 200€ на стандартном аккаунте и до 1000€ на Прайме. Дальше 3%, но не менее 1€.
Обращайте внимание на описание сборов за операцию в банкомате. О дополнительных комиссиях обязательно сообщается на экране.
Вывод: Vivid не предназначен для операций с наличкой. Выгода клиента кроется в безналичном расчёте с кэшбэком.
Vivid Money – это банковский сервис в Германии. С помощью приложения можно получать, тратить, инвестировать и экономить деньги. За €1 пользователь получает виртуальную карту, за €20 — ее металлическую версию.
Приложение позволяет открывать валютные счета и расплачиваться за границей по выгодному курсу, торговать долями акций и инвестировать в них без комиссии, покупать, хранить и обменивать криптовалюту.
В Vivid Money можно создавать дополнительные учетные записи — «карманы»: перемещать деньги между ними, добавлять пользователей, создавать на конкретные расходы.
Vivid Money основали в 2019 году два бывших вице-президента TCS Group Артем Яманов и Александр Емешев. Главные партнёры сервиса — немецкий SolarisBank и Visa.
Европа достойна качественного онлайн банка.
Согласен! Можете посоветовать нео-банк для малого бизнеса в Европе?
Я не знаю в какой вы стране. Сейчас популярны бизнес-аккаунты Revolute, N26, Qonto общеевропейском масштабе.
Я же говорю, что после PSD2 от ЕЦБ, этих нео- стало как грибов после ливня. Они все +- одинаковые, наверное, вам лучше самому решить исходя из того, какие услуги вам наиболее необходимы. Я за уже рабочие истории, те кого я назвал + да, Wise. Для фанатов Модульбанка есть его итальянская версия от тех же персонаже 🙂
https://finom.co/it-it/
TransferWise (теперь Wise)
Разве у них есть сервис для бизнеса?
есть. и лучше всех озвученных
Зачем транслировать ерунду?)
https://wise.com/gb/business/ 2 года, полёт нормальный. IBAN, VAT, документы по запросу с эцп и мокрыми печатями. Русскоязычный саппорт. Рекомендую.
Пента вроде только с немцами
Очередной проект белых воротничков из России, чтобы было куда в Европе перекачивать бабло братвы, когда санкции совсем припекут.
Юнит-экономика не про инновации, а про потребление.
Развивать этот сервис 🤷
Интересная модель, не очень популярная в Европе, по сути это финансовый стартап под чужой банковской лицензией Solarisbank. Обычно стараются получить свою лицензию EMI, как делал Револют. Нет никаких данных о количестве клиентов, а это очень важно, чтобы оценить адекватность такой высокой оценки компании. Не понятно, какие плюсы для бизнеса-клиентов, а это очень важно, так как основную прибыль дают именно они, а не физики, которые разбалованы обилием необанков с бесплатным обслуживанием. Но, в любом случае, молодцы что за такой короткий срок так высоко раскрутили свою оценку, посмотрим что будет дальше.
Бывшие топ-менеджеры «Тинькофф» запустили в Германии конкурента Revolut
Экс-топ-менеджеры «Тинькофф банка» запустили в Германии новый сервис Vivid Money, сообщает РБК. Vivid Money представляет собой мобильное приложение и карту, с помощью которых клиент может управлять личными средствами. В ближайшем будущем в приложении также появятся инвестиционные продукты. Основным инвестором проекта стала TCS Group (головная компания «Тинькофф банка» и «Тинькофф страхования»).
Сервис запущен совместно с международной платежной системой Visa и немецким банком SolarisBank, предоставляющим платформу для онлайн-банкинга. В этом году Vivid Money может появиться и на других европейских рынках.
В феврале этого года TCS Group сообщила о том, что собирается инвестировать 25 млн евро в создание финансовой компании в Европе. Основатель TCS Group Олег Тиньков в Instagram уточнял, что готов лично фондировать новый проект. По его мнению, новый проект будет конкурировать с британским стартапом Revolut. Этот сервис был основан в 2015 г. Он также представляет собой приложение и карту, с помощью которых можно экономить на валютных платежах, расплачиваться по всему миру без комиссий за конвертацию и совершать трансграничные переводы.
Рассылки «Ведомостей» — получайте главные деловые новости на почту
Хотите скрыть рекламу? Оформите подписку и читайте, не отвлекаясь
Наши проекты
Контакты
Рассылки «Ведомостей» — получайте главные деловые новости на почту
Ведомости в Facebook
Ведомости в Twitter
Ведомости в Telegram
Ведомости в Instagram
Ведомости в Flipboard
Решение Федеральной службы по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор) от 27 ноября 2020 г. ЭЛ № ФС 77-79546
Учредитель: АО «Бизнес Ньюс Медиа»
И.о. главного редактора: Казьмина Ирина Сергеевна
Рекламно-информационное приложение к газете «Ведомости». Зарегистрировано Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор) за номером ПИ № ФС 77 – 77720 от 17 января 2020 г.
Любое использование материалов допускается только при соблюдении правил перепечатки и при наличии гиперссылки на vedomosti.ru
Новости, аналитика, прогнозы и другие материалы, представленные на данном сайте, не являются офертой или рекомендацией к покупке или продаже каких-либо активов.
Сайт использует IP адреса, cookie и данные геолокации Пользователей сайта, условия использования содержатся в Политике по защите персональных данных
Все права защищены © АО Бизнес Ньюс Медиа, 1999—2021
Любое использование материалов допускается только при соблюдении правил перепечатки и при наличии гиперссылки на vedomosti.ru
Новости, аналитика, прогнозы и другие материалы, представленные на данном сайте, не являются офертой или рекомендацией к покупке или продаже каких-либо активов.
Все права защищены © АО Бизнес Ньюс Медиа, 1999—2021
Решение Федеральной службы по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор) от 27 ноября 2020 г. ЭЛ № ФС 77-79546
Учредитель: АО «Бизнес Ньюс Медиа»
И.о. главного редактора: Казьмина Ирина Сергеевна
Рекламно-информационное приложение к газете «Ведомости». Зарегистрировано Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор) за номером ПИ № ФС 77 – 77720 от 17 января 2020 г.
Сайт использует IP адреса, cookie и данные геолокации Пользователей сайта, условия использования содержатся в Политике по защите персональных данных
Как мы стартовали Vivid Money для iOS
Архитектура
Для начала мы определились с архитектурой проекта. Я имею ввиду не только архитектуру экранов/модулей, но и все остальные архитектурные решения. Конечно, рассказать обо всех из них в этом разделе не получится, поэтому затронем только архитектуру модулей, экранов и инъекцию зависимостей.
Архитектура проекта
Так как предполагалось, что проект будет большим и поделенным на продукты, мы решили разделить его на несколько модулей. Это помогает лучше структурировать код, а также облегчает разработку в продуктовых командах. Архитектура модулей выглядит так:
На схеме присутствует 4 слоя:
Core. Это проекты, которые либо не связаны с приложением и могут быть использованы где угодно, либо те, от которых зависят все вышестоящие слои.
Platform. В этом слое 2 проекта. DesignKit содержит все, что связано с UI приложения: от цветов и шрифтов до готовых компонентов или даже экранов. Platform служит основной для всех фича-проектов и основного приложения. Там содержатся сервисы, общие экраны, конфигурации, сущности и так далее.
Features. Проекты, в которых разрабатываются отдельные фичи или целые продукты. Эти проекты не связаны между собой, что позволяет быстрее их разрабатывать, проще тестировать и не смешивать код из разных продуктов.
App. Объединяет все проекты воедино.
Архитектура экранов
Мы решили подобрать что-то, что удовлетворяло бы нашим потребностям и не содержало ничего лишнего. В итоге мы пришли к VIP (View, Interactor, Presenter). Мы сохранили основы VIPER, но убрали Router и Entity. Такое разделение модуля помогает лучше его протестировать. Также разделение пригодилось в некоторых местах, где потребовалось использовать разные реализации view или interactor (да, это не миф).
Router мы заменили на Coordinator. Это хороший паттерн, который позволяет сделать модули независимыми друг от друга и сосредоточить всю логику переходов в рамках одной user story внутри одного класса.
Инъекция зависимостей
Мы не используем библиотеку для инъекции зависимостей. На этом хотелось бы закончить, но, кажется, надо дать этому небольшое объяснение.
Во-первых, мы не очень любим подключать сторонние фреймворки, особенно те, которые можно легко заменить своим решением. Во-вторых, мы не нашли практической пользы от фреймворков для DI.
В нашем проекте инъекция зависимостей проста и состоит из двух частей:
Класс Container, который содержит все зависимости, объявленные в виде переменных. Этот класс расширяется в каждом проекте и закрывается протоколом. Если, например, нужно получить зависимость из модуля Platform, нужно написать следующий код: let d = (Container.shared() as PlatformContainer).dependency Если не писать код в одной строке, он будет выглядеть чуточку лучше.
Управление сторонними зависимостями
По части управления зависимостями у нас все было как в большинстве проектов – мы использовали CocoaPods. Во-первых, это уже проверенный менеджер зависимостей; во-вторых, его поддерживают почти все open-source библиотеки.
Как бы мы этого ни хотели, но спустя некоторое время у нас появилось относительно много зависимостей, без которых мы бы не могли обойтись (Firebase, Amplitude и прочие похожие фреймворки), и их постоянная пересборка занимала много времени (конкретное время сложно посчитать из-за постоянно меняющейся кодовой базы и самих зависимостей). Тогда мы решили попробовать Carthage.
Также были попытки использовать SPM, но на тот момент был ряд проблем, которые не позволили это сделать: отсутствие поддержки кастомных конфигураций сборки, проблемы с обновлением библиотеки при изменении ее версии, отсутствие поддержки SPM некоторыми библиотеками. Но мы надеемся на то, что проблемы будут решены, и мы сможем полностью перейти на этот менеджер зависимостей.
Тестирование
В самом начале разработки мы мечтали об отсутствии ручных тестировщиков, что позволило бы нам сделать короткие релизные циклы и избавиться от человеческого фактора при проверке функционала. К сожалению, были обстоятельства, не позволившие добиться этого на старте, но мы уверенно движемся в этом направлении. В любом случае, нам надо было подумать над организацией тестирования продукта. В итоге мы пришли к тому, что будем писать и Unit, и UI тесты.
В Unit тестах мы используем фреймворк SwiftyMocky, который помогает генерировать моки для типов и предоставляет множество полезных функций для тестирования. По уже устоявшейся парадигме мы тестируем, используя структуру Given-When-Then, чтобы все тесты выглядели однотипно и были логически структурированы.
Unit тесты в основном пишутся на общие компоненты (утилиты, сервисы, и т.д.) и классы со сложной бизнес-логикой (в большинстве случаев это Presenter и Interactor), которую будет достаточно проблематично проверить в UI тестах.
UI тесты у нас появились значительно позже. В них мы тоже не стали выдумывать ничего особенного и сделали несколько вспомогательных классов для реализации паттерна Page object.
UI тесты в нашем проекте делятся на 2 типа: компонентные и end-to-end. Компонентные тесты проверяют работу отдельного экрана или его части с использованием моков, а end-to-end тесты проверяют некоторую цепочку экранов и используют реальное API, но на dev контуре.
Также в качестве теста мы внедрили snapshot тесты, но говорить об их пользе пока рано. В идеале хотелось бы использовать их для тестирования компонентов из дизайн системы.
Генерация API клиентов
Наш бэкенд разделен на микросервисы, из чего следует, что и в приложении мы обращаемся к нескольким API. Следить за каждым и обновлять код вручную – слишком трудозатратная задача, и мы решили это автоматизировать.
Каждый микросервис имеет swagger спецификацию, с помощью которой мы генерируем фреймворки, используя Swagger Codegen. Мы немного изменили шаблоны для генерации, чтобы они удовлетворяли нашим требованиям, и автоматизировали процесс обновления фреймворка в CI.
Каждый сгенерированный API клиент находится в отдельном репозитории и добавлен в проект с помощью Carthage.
По части генерации API клиентов есть улучшения, которые можно сделать, но такой подход уже дал огромный прирост к скорости разработки и избавил от необходимости ручного обновления API.
Код-стандарт
Нам нужно было сделать некоторые шаги к тому, чтобы код был понятен всем в любом месте приложения и разрабатывался быстро. Таких шагов было сделано несколько.
Далее были описаны:
Правила работы с репозиторием: как называть ветки, как писать сообщения к коммитам и так далее;
Процесс выполнения задачи: какие задачи можно брать, приоритеты задач, статусы задач, как создать пул-реквест;
Используемые паттерны и механизмы: как решать типовые задачи (кэшировать данные, создавать сервисы и тому подобное);
Терминология: типичные названия методов или бизнес-определений в коде.
Все это помогает нам разрабатывать одинаково и не заниматься решением проблем, которые уже решены.
Также мы используем Danger CI для проверки пул-реквестов. Список наших правил на данный момент небольшой: проверка на заполнение нужных полей в пул-реквесте, проверка на количество внесенных изменений, поиск TODO, замечания от Swiftlint и пара рекомендательных сообщений. Это помогает не упускать в них важных деталей и напоминать о вещах, о которых можно легко забыть.
Автоматизация
В проекте с большой кодовой базой и растущим числом разработчиков не обойтись без автоматизации. Поэтому верным решением будет уделить этому внимание в самом начале проекта.
Мы написали несколько своих скриптов, которые автоматизируют работу:
Скрипт для генерации VIP модулей, который ускоряет разработку экранов.
Скрипт для генерации фича-проектов.
Скрипты для скачивания локализации, фича-тогглов, удаленной конфигурации и некоторых ресурсов, нужных для приложения. Про этот пункт можно рассказать немного подробнее. Дело в том, что мы скачиваем свежие версии всех этих ресурсов в момент запуска приложения, но на случай проблем с загрузкой мы предусмотрели вариант дефолтной версии ресурсов, которая близка к настоящей. И, чтобы каждый раз не скачивать все эти файлы вручную, мы написали эти скрипты, которые запускаются перед сборкой приложения на CI.
Во избежание merge-конфликтов в файлах проекта мы используем XcodeGen, который генерирует файлы проекта по yaml спецификациям.
Также мы создали приложение для Mac OS, которое предоставляет интерфейс для вызова всех наших скриптов. Оно было очень простым и мало востребованным, но в данный момент мы его перерабатываем, чтобы упростить работу с проектом.
Настройка проекта
Так как проект у нас не самый простой в настройке, а требующий некоторых утилит и вызовов различных скриптов, мы решили упростить его настройку.
Сначала это был исполняемый файл, который надо было запустить, чтобы скачались все зависимости (ruby, brew, python, и так далее) и выполнились необходимые настройки. Но позже мы реализовали настройку проекта через Ansible. Это позволило нам держать все в одном месте и настраивать не только компьютеры сотрудников, но и билд-агенты.
Подводя итоги
Мы рассказали коротко о тех вещах и том опыте, который мы накопили, когда только начали делать первые шаги в проекте.
Мы планируем и дальше делиться своим опытом разработки, так как считаем это важной частью развития комьюнити. Чтобы мы делали это лучше, пишите комментарии и конструктивную критику. Будем очень признательны.