Леруа мерлен дизайн проект: Студия дизайна

Кухни леруа мерлен в интерьере

Ньюпорт белый Леруа Мерлен кухня

Кухня Руза Леруа Мерлен

Тортора кухня Леруа

Кухня Leroy Merlin белая

Кухня Петергоф Леруа

Кухня Вереск Леруа

Леруа Мерлен Леруа кухни

Кухня Сантьяго Леруа

Кухня Ницца Леруа

Кухня Вереск Леруа Мерлен

Кухня Леда белая Леруа Мерлен

Кухня Сантьяго Леруа

Кухня Ньюпорт белый Леруа

Фрейм светлый кухня Леруа Мерлен

Кухня Ньюпорт Леруа

Кухня Леруа Леда серая

Кухни Леруа Мерлен 2020

Маленькая кухня Леруа Мерлен

Кухня мята Леруа Мерлен

Кухня тортора Леруа Мерлен

Кухня Палома Леруа в интерьере

Кухня Мегион Леруа

Кухня Белла Леруа

Кухни Леруа Мерлен Кемерово

Кухни Мерлин Мерло

Кухня капучино Леруа Мерлен

Кухня Нэнси Леруа

Леруа Мерлен фрейм темный

Леда белая кухня Леруа

Красная кухня Леруа Мерлен

Delinia «Леда серая»

Леруа Нэнси

Кухня Леруа фенс белый

Плитка наcтенная Bastion 20х40

Кухня Петергоф Леруа Мерлен

Кухня в сиреневых тонах

Кухня Берлин Нордик Леруа

Кухни Leroy Merlin

Кухня Бьянка Леруа Мерлен

Кухня Берлин Berlin Леруа Мерлен

Томари кухня Леруа

Кухня Белла Леруа

Стильная кухня в современном стиле Леруа Мерлен

Угловая кухня недорого нежная

Кухня Берлин Леруа Мерлен

Фрейм темный кухня Леруа

Кухня-гостиная Леруа

Фасады Леруа Мерлен

Кухня Томари Леруа Мерлен голубая

Кухня Ньюпорт Леруа Мерлен

Кухня Леда серая Леруа Мерлен

Кухня лофт Леруа Мерлен

Кухня Берлин Нордик Леруа

Проект кухни Леруа Мерлен

Кухня Ницца Леруа Мерлен

Кухня Леруа мята

Кухня Леда белая Леруа Мерлен

Нэнси Леруа Мерлен

Кухня графит Леруа Мерлен

Кухня Палома Леруа

Кухня фрейм Леруа Мерлен

Кухня Леда белая Леруа Мерлен

Леруа Мерлен дизайн проект кухни гостиной

Кухня Леда белая Леруа Мерлен

Кухня шоколад Леруа Мерлен

Кухня венге Леруа Мерлен

Леруа Мерлен фрейм светлый

Кухня фенс мята Мерлен

Кухня Леруа Нэнси мята

Кухня София Грин Леруа Мерлен

Тортора Леруа Мерлен

Мерлен кухня Нэнси Леруа Нэнси

Кухня фенс белая Леруа Мерлен

Кухни Леруа с островом

Кухня Леруа Мерлен зеленая

Кухня Леда белая Леруа Мерлен

Кухни Леруа Мерлен 2022

Кухня Ньюпорт белый Леруа

Леруа Мерлен фрейм светлый

Серая кухня Леруа Мерлен

Кухни леруа мерлен в интерьере

Как разработать дизайн сайта — Блог SendPulse

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

  • Дизайн сайта: подготовка

  • Постановка целей для будущего сайта

  • Выбор типа сайта

  • Выбор платформы для создания сайта

  • Как сделать дизайн сайта

  • Как сделать макет сайта

  • org/ListItem»>

    Полезный и красивый дизайн сайта: советы

  • Примеры красивого дизайна сайтов

  • Дизайн сайта: где искать вдохновение

  • Дизайн сайта: что стоит запомнить

Дизайн сайта: подготовка

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

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

Постановка целей для будущего сайта

Определяемся с целью, например:

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

Чтобы дизайн сайта эффективно работал на эти цели, надо в первую очередь подумать о пользователях. Например, покупатель на сайте интернет-магазина хочет выгодно потратить деньги. Прежде чем решиться на покупку, он собирает всю информацию: смотрит характеристики, фото и видео, читает отзывы, выбирает размер и комплектацию, изучает гарантии, сравнивает товары и откладывает в избранное. Значит, в дизайне карточек товара вы должны учесть все эти действия.

Карточка на «Леруа Мерлен» позволяет удобно изучить, сравнить и купить товар

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

При создании дизайна сайта думайте о людях, которые будут им пользоваться. Они должны плавно и удобно идти по сайту до обозначенной вами цели. Не забывайте, что ваша цель должна совпадать с потребностями ЦА. Наша статья поможет разработать функциональный дизайн сайта — сохраняйте в закладки.

Выбор типа сайта

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

Лендинг, или посадочная страница — это такой моносайт, который посвящен одному предмету и имеет всего один CTA. Например, страница конференции с кнопкой «Зарегистрироваться». Скорее всего, в содержании будет описание конференции, список спикеров и докладов и основные тезисы, почему стоит прийти.

Пример дизайна сайта-лендинга конференции SendPulse и eLama

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

Мы составили полную инструкцию, как создать лендинг своими руками с нуля. Забирайте в закладки и создавайте свои лендинги с крутым дизайном.

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

Автоматизация email рассылок

Отправляйте цепочки триггерных сообщений приветствия, брошенной корзины, реактивации, совмещая внутри одной цепочки email, SMS и web push.

Выбор платформы для создания сайта

Теперь предстоит выбрать платформу для создания сайта. Конечно, можно заказать разработку сайта под ключ или найти программиста, скооперировать его с дизайнером, заказать самописную платформу и арендовать хостинг для размещения сайта. Тогда ресурс будет полностью управляемым — сможете воплощать любые дизайнерские идеи и делать сайт любой структуры, чего иногда нельзя сделать на готовых CMS. Но вам придется решать все проблемы самостоятельно — закончилась аренда хостинга, полег сервер, поломался код. Этот способ подходит крупным компаниям, у которых есть хорошие бюджеты на создание и поддержку сайта.

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

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

Как сделать дизайн сайта

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

Как сделать макет сайта

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

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

Создайте карту сайта (это касается многостраничников). Карта сайта — это схема того, как связаны между собой его страницы. Например, есть главная страница, это первый уровень. Она ведет на второй уровень — к разделам, те — на третий, к подразделам, и так далее.

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

Если от руки рисовать сложно, найдите сервис для создания структуры сайта. Можете использовать один из этого списка:

  • Octopus — бесплатно для одного проекта, далее от 8 долларов в месяц.
  • Gloomaps —  простой и бесплатный, но нужно каждые 2 недели заходить в проект, иначе он заархивируется. Проекты только публичные.
  • Flowmapp — бесплатно для одного проекта на максимум 100 Мб. Здесь можно не просто создать структуру из блоков, а для каждого блока сразу выбрать и подредактировать примерное содержимое.
  • Writemaps — простой и лаконичный сервис чисто для быстрого создания карты. Бесплатно на три проекта, далее от 15 долларов в месяц.

Создайте макеты страниц. Это черновики, которые помогут определиться с взаимным расположением элементов, цветовыми сочетаниями, структурой страниц в целом. Макеты можно рисовать от руки на бумаге — подойдет для первых набросков. Если умеете работать в Photoshop или Illustrator — прекрасно, используйте их.

Откройте для себя чат-бота

Выстраивайте автоворонки продаж и отвечайте на вопросы пользователей с помощью чат-бота в Facebook, VK и Telegram.

Те, кто не умеет рисовать или работать в редакторах, могут найти онлайн-конструктор интерфейсов. Большинство из них построено по принципу drag-and-drop. Пользоваться такими просто: находите шаблон нужного элемента, перетаскиваете его на макет и редактируете под себя.

Создание макета сайта в онлайн-сервисе Moqups

Вот несколько таких редакторов (все на английском, но интуитивно понятны):

  • Mockflow — онлайн, бесплатно для одного пользователя и одного проекта на три страницы, далее от 14 долларов.
  • Ninjamock — онлайн, бесплатно для одного проекта на максимум 200 элементов на странице. Далее от 6 долларов.
  • Balsamiq — приложение для Windows или Mac, есть онлайн-версия. Бесплатный триал на 30 дней, далее от 9 долларов в месяц.
  • wireframe|cc — онлайн-сервис. Бесплатный триал на 7 дней, далее от 16 долларов в месяц.
  • Moqups — есть минимальный бесплатный аккаунт, которого хватит для создания простого лендинга. Если нужно больше — от 13 долларов в месяц.

Тут можно представить себя художником, который сначала набрасывает контуры, а затем прорисовывает детали — от общего к частному. Для начала распределите по странице крупные блоки: например, где будут хедер и футер, элементы основного содержимого, какого размера будет пустое пространство между ними. Затем начинайте работать с более мелкими блоками.

Чтобы продумать все мелкие детали и их расположение, думайте в первую очередь о том, как люди будут использовать страницу. Постарайтесь разработать дизайн сайта так, чтобы пользовательский путь был комфортным и стимулировал клиента вернуться снова. Аналогично поступайте со всеми прочими страницами: продумайте, как люди будут их использовать, и соответственно разрабатывайте дизайн.

Полезный и красивый дизайн сайта: советы

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

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

Строгое оформление страницы на сайте юридической фирмы

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

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

Пример использования модульной сетки в дизайне сайта

Не переборщите. Избегайте обилия шрифтов, цвета, множества геометрических форм. Всегда проверяйте — а нужна ли здесь эта кнопка, линия, фон? Если элемент не несет никакого смысла, смело убирайте. Мы давно переросли нулевые годы и стиль «дорого-богато», пусть дизайн сайта будет в первую очередь функциональным.

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

Помните о правиле близости. Элементы, стоящие рядом, воспринимаются как связанные. Если вы будете следовать правилу близости, читателю будет проще — сравните два примера ниже. В примере справа подзаголовок легко считывается. В примере слева сложно понять, относится ли он к одному из блоков текста или вообще находится там сам по себе

Располагайте рядом объекты, которые связаны друг с другом по смыслу

Оставляйте достаточно воздуха. Это правило работает в паре с правилом близости. Соблюдайте пространство между элементами, не лепите блоки друг на друга, иначе страницу будет сложно читать.

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

CTA кнопка призывает пользователя оставить заявку

Избегайте фотостоков. Когда делаешь сайт, всегда есть соблазн пойти на фотосток и найти нейтральных изображений под главную страницу. Это опасно, потому что самые удачные картинки с первых страниц уже много раз использованы до вас, и посетители сайта наверняка увидят их не в первый раз. Стоковые иллюстрации создадут ощущение «подержанного» сайта, ненастоящего. Лучше сделайте свои фотографии — пусть будет не глянцево, зато по-настоящему.

Совет! Многие правила в дизайне можно применить к разным форматам — не только сайтам, но и к письмам, баннерам, иллюстрациям. Сохраните себе наш гайд по оформлению email рассылок и заглядывайте в него, когда нужна будет подсказка.

Примеры красивого дизайна сайтов

Подобрала десятку сайтов с хорошим дизайном из разных сфер. Смотрите, вдохновляйтесь, делайте свои.

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

Дизайн сайта по продаже одежды

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

Сайт дизайнера интерьеров

Номер три в подборке — дизайн сайта юридического сервиса. Хорошо подобрана цветовая гамма: черно-белая основа с темными малиновыми акцентами. Присмотритесь к форме кнопок — ровно срезанные углы вписываются в строгий дизайн сайта, но оживляют его. Хорошо продуман момент с CTA кнопками, они есть в каждом блоке с информацией и дублируют основной посыл блока.

Дизайн сайта юридического сервиса

Следующий дизайн — сайт косметической компании. Цвета подобраны в яркой фруктовой гамме в цвет упаковок товара и логотипа, прямоугольные блоки перемежаются с абстрактными цветовыми фигурами.

Дизайн сайта косметической компании

Следующий дизайн сайта не совсем обычный — это сайт инновационного города Иннополис в Республике Татарстан. Главная страница представлена в виде майндкарт, элементы которых оживают при наведении курсора. В подразделах — аккуратная блочная верстка с яркими фотографиями.

Дизайн сайта инновационного города в Татарстане

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

Дизайн сайта для продажи квартир в ЖК Санкт-Петербурга

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

Дизайн интернет-магазина по продаже чая и чайных напитков

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

Дизайн сайта издания Time

Это сайт башни Space Needle — главной достопримечательности американского города Сиэтла. Здесь круто поработали с фото: большое изображение в шапке сайта погружает в атмосферу вечернего города. Градиентный фон имитирует цвет неба на закате.

Дизайн сайта американской достопримечательности — башни Space Needle

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

Дизайн сайта креативного маркетингового агентства

Когда смотрите на такие невероятные сайты, помните две вещи. Во-первых, они очень требовательны к скорости интернета и устройства просмотра. Если со скоростью плохо — эффект теряется. Во-вторых, вы можете достичь своих KPI и без миллионных трат на сайт, просто работайте под свою ЦА и постоянно анализируйте результаты.

Дизайн сайта: где искать вдохновение

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

Вот сайты, на которые можно заглянуть:

  • Behance
  • Dribbble
  • Awwwards
  • SiteSee
  • Land-book
  • 99designs
  • Pinterest

Дизайн сайта: что стоит запомнить

Дизайн сайта — это не просто красивые шрифты и странички. Это создание удобного ресурса, который параллельно решает задачи и пользователей, и своего владельца.

Начните создание дизайна сайта с подготовки, она состоит из трех шагов:

  • поставьте цели;
  • выберите тип сайта — лендинг или многостраничник;
  • выберите платформу, на которой будете создавать сайт.

Непосредственно при разработке дизайна сайта следуйте этим трем шагам:

  • соберите референсы — примеры, которые вам понравились;
  • отрисуйте карту сайта, если у вас многостраничник;
  • создайте шаблоны страниц.

Помните о восьми правилах в дизайне сайта:

  • Задавайте ожидания. Пусть дизайн производит такое же впечатление, которое вы хотите произвести на людей.
  • Используйте модульную сетку при верстке страницы.
  • Используйте минимально необходимое количество цветов, шрифтов, элементов.
  • Делайте дизайн, который можно адаптировать под разные размеры экрана.
  • Сближайте элементы, которые связаны по смыслу.
  • Оставляйте достаточно свободного пространства.
  • Выделяйте CTA.
  • Избегайте картинок в фотостоков.

Начните с малого — сделайте простой лендинг по нашей инструкции. Он поможет собрать базу email адресов, пригласить людей на мероприятие, собрать заявки на ваши услуги и не только. И обязательно регистрируйтесь в сервисе рассылок SendPulse — сайт в комплексе с рассылками и чат-ботами работает гораздо эффективнее.

примеров из практики: Leroy Merlin | Kotlin Многоплатформенный мобильный

Leroy Merlin ↗ помогает людям во всем мире улучшить условия жизни и образ жизни, помогая им проектировать дома их мечты и воплощать их в жизнь.

Мобильное приложение Leroy Merlin помогает покупателям искать товары, совершать покупки в Интернете и находить ближайший магазин. Российский филиал «Леруа Мерлен» имеет магазины в 64 городах, ежемесячно мобильным приложением пользуются 1,5 млн человек.

Решение использовать Kotlin

До 2018 года у Leroy Merlin уже были мобильные приложения для iOS и Android для клиентов. Оба приложения имели нативную реализацию с дублированием доменной логики и очень старый унаследованный код с огромными затратами на управление. Чтобы сделать их более управляемыми, гибкими и экономичными, компания решила их переписать.

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

У нас было 2 варианта, которые могли бы помочь нам ускорить процесс: во-первых, просто нанять больше людей, а во-вторых, использовать технологию, которая позволила бы нам обмениваться знаниями и опытом между командами iOS и Android. Мы выбрали второй вариант и начали искать подходящую технологию, помня, что безопасность, качество и стабильность наших приложений имеют первостепенное значение.

Нам потребовалось некоторое время, чтобы найти кроссплатформенное решение с интеграцией пользовательского интерфейса. Это был критический момент, потому что мы хотели использовать полностью общий подход. Мы рассматривали как Flutter, так и React Native. Это был май 2019 годаа КММ не был широко известен, поэтому мы его пока не рассматривали.

У нас также есть еще одна команда инженеров, которые разрабатывают внутреннее мобильное приложение для сотрудников компании. Они используют React Native в производстве, так что это была первая технология, на которую мы обратили внимание. Но React Native не оправдал наших ожиданий из-за качества кода. При масштабировании приложения React Native теряет качество, поэтому этот вариант мы не учитывали.

Конечно, мы могли бы создать приложение с помощью Flutter, но, изучив эту технологию глубже, мы обнаружили, что у этого подхода есть две основные проблемы. Первая проблема была с наймом, потому что мало кто знает Dart. Это означало, что проект не будет масштабируемым, потому что у нас возникнут проблемы, если нам понадобится написать какой-то нативный код.

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

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

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

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

Наконец, у нас появилась технология, которая позволила нам совместно использовать бизнес-логику, создавать пользовательские интерфейсы для конкретных платформ в соответствии с рекомендациями и одновременно обеспечивать скорость и качество нативных форм. И это можно написать на языке Kotlin, родном для платформы Android. Мы поняли, что это именно то, что нам нужно для нашего проекта.

Как KMM использовался в продукте

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

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

  • UI (презентация)
  • Домен (уровень бизнес-логики)
  • Данные (уровень источника данных)

Сначала мы переместили только уровень данных, но затем изменили наш процесс и начали перемещать все остальное, включая варианты использования домена. Единственные части KMM, которые мы не используем, — это пользовательский интерфейс и функции, специфичные для платформы, такие как Apple и Google Pay.

Внутри библиотеки мы используем Ktor, Kotlin Serialization и Coroutines. Мы используем оболочку Rx для адаптации платформы, потому что наши платформы используют Rx, но в будущем мы планируем использовать только Coroutines на Android.

Чтобы улучшить работу функционала корзины пользователя, нам необходимо сделать ее полностью независимой без какой-либо синхронизации с сайтом. Это означает, что с кешем предстоит много работы. Поэтому, чтобы хорошо выполнить эту задачу, мы начали использовать библиотеку SQLDelight для кэширования API. Как только мы закончим эту задачу, мы перенесем больше основных функций приложения в KMM.

Плюсы и минусы

Проблемы, которые мы обнаружили при использовании Kotlin Multiplatform Mobile:

  • Наши разработчики iOS обнаружили, что необходимо потратить значительное количество времени на ознакомление и приобретение навыков работы с Gradle, средой разработки и функциями языка .
  • Тестировать на устройстве сложнее, и процесс контроля качества обычно сложнее.
  • iOS Interop, который в настоящее время является Obj-C.

Прибыль:

  • До KMM основные функции, такие как корзина пользователя, требовали примерно 40–60 часов работы для каждой платформы (80–120 часов для обеих), не считая тестирования. С KMM мы можем сократить сроки до 50-70 часов для обеих платформ. Таким образом, используя KMM, мы ожидаем значительного сокращения времени разработки.
  • Производительность и качество нативных форм. Мы разделяем только бизнес-логику между платформами и используем собственный код для каждого пользовательского интерфейса. Этот подход дает нам наибольшую производительность с минимальным количеством стандартного кода.

Простота найма и поддержки. KMM работает на Kotlin, и найти разработчиков для Kotlin очень легко, потому что почти каждый Android-разработчик уже знает его. А благодаря близости к JVM-языкам почти каждый бэкенд-разработчик может работать и с Kotlin, и с KMM.

Идентичная логика на обеих платформах значительно снижает расхождения. На самом деле у нас изначально была проблема в дополнение к дублированию бизнес-логики. Иногда у нас были разные реализации функции на каждой из двух платформ. Мы выпустили наши версии для iOS раньше версий для Android. Иногда мы решали внести некоторые исправления в логику после выхода iOS, и иногда это приводило к тому, что мы внедряли эти исправления только в Android и забывали об iOS. Конечно, это не было правилом, но время от времени случалось. KMM помогает нам избежать этих проблем, потому что если вы что-то исправляете, вы исправляете это на обеих платформах одновременно. Но будьте осторожны: это также означает, что ошибки появятся на обеих платформах.

Предложения, советы и рекомендации.

Допустим, вы решили использовать КММ (хороший выбор). Но в вашей команде есть iOS-разработчики, которые не знакомы с Kotlin и не умеют им пользоваться. Вам обязательно нужно будет помочь им адаптироваться к новому языку. Мы обнаружили, что создание базы знаний Kotlin и KMM значительно облегчает этот процесс. Каждый раз, когда вы сталкиваетесь с проблемой в чем-то (развертывании, добавлении библиотек и т. д.), создавайте документацию и делитесь ею со всеми разработчиками, тогда они смогут обратиться к ней позже и решить, как что-то делать.

Важный момент — не навязывать КММ командам, особенно команде iOS. Нужно объяснить, что с KMM разработчики iOS не перестанут работать с экосистемой Swift или Apple. У нас есть разработчики, которые работают с KMM, и разработчики, которые этого не делают. Важно объяснить, что Kotlin не означает, что вы предпочитаете Android. Это общее решение. Эти пояснения важны, потому что, если вы не проясните эти моменты для разработчиков iOS, они могут отвергнуть этот подход.

Еще одна проблема с iOS — локальная среда Kotlin. Если вы хотите добавить зависимость от вашего локального модуля KMM в качестве модуля через интеграцию с Cocoapods, это означает, что вам необходимо создать собственный код Kotlin для этого модуля. Это усложняет сборку проектов, влияет на разработчиков iOS, которые не хотят работать с мультиплатформой, и увеличивает время сборки проекта. Мы исправили эту проблему, изменив файл Cocoapods Podspec. Мы изменили источник нашей библиотеки Kotlin с Git на URL-адрес с готовым к работе zip-архивом с Apple Framework. И теперь разработчики iOS работают с KMM так же, как и с любой другой предварительно созданной зависимостью Cocoapods.

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

Контакты

Алексей Гладков, Архитектор мобильных технологий, Leroy Merlin [email protected]

Слава Корниенко, старший разработчик Android в Leroy Merlin vyacheslav. [email protected]

За leroymerlin.fr: Micro Frontends | Жюльен Де Соуза | ADEO Tech Blog

Все началось с идеи совместного использования и глобализации решения, которое уже хорошо зарекомендовало себя. Как бы мы повторно использовали все, что узнали о создании мощных веб-сайтов для всех наших бизнес-подразделений? Поэтому мы приступили к преобразованию веб-сайта Leroy Merlin France (LMFR) в решение с большей масштабируемостью и модульностью, чтобы мы могли охватить более широкую аудиторию и быстрее внедрять инновации с помощью новых функций.

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

  • Сокращение времени выхода на рынок
  • Повышение автономности команды
  • Повторное использование, когда это возможно
  • Повышение производительности и, прежде всего, масштабируемости
  • Достижение уровня доступности, соответствующего нашим бизнес-требованиям

Мы решили перенести нашу инфраструктуру на GCP и преобразовать архитектуру нашего программного обеспечения.

С ростом популярности онлайн-покупок примерно с 2008 года веб-сайт Leroy Merlin France быстро расширяется. У нас большие амбиции на будущее!.

Веб-сайт организации примерно в 2008 году был создан следующим образом:

Единая команда и единая кодовая база, cira 2008

В то время у нас была одна команда, работающая над веб-сайтом на единой кодовой базе. Сотрудничать было легко, а разработки шли быстро.

Когда количество людей, работающих на сайте, увеличилось, мы стали сталкиваться в основном с организационными трудностями. Многие люди работали над одним и тем же кодом над несколькими функциями одновременно. Эти трудности заставили нас перегруппироваться в групп функций (FT), чтобы выделить различные функциональные области, связанные с веб-сайтом. В 2014 году родился новый способ работы:

Несколько команд и единая кодовая база, cira 2014

Эта методология позволила нам продолжить разработку, но мы продолжали сталкиваться с другими трудностями, такими как:

  • Требуется большая координация между командами, особенно для развертывания, когда мы должны синхронизировать все разработки, выполняемые каждым FT на уникальной кодовой базе.
  • Нет реальной автономии команд, где связь между каждым FT все еще очень сильна.

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

Для решения нашей проблемы были придуманы различные сценарии:

Несколько команд и несколько кодовых баз: дизайн единого приложения

  • Раздельный код, одна кодовая база на команду
  • Требуется реализация процесса сборки и выпуска
  • Однако команды по-прежнему не полностью автономны во время развертывания

Несколько команд и несколько кодовых баз, дизайн нескольких приложений

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

Несколько команд и несколько кодовых баз, несколько приложений и серверов

  • Агрегация системы на веб-страницы
  • Архитектура микросервисов и микроинтерфейсов

Этот окончательный ответ не что иное, как то, что известно как микроинтерфейсы, поддерживаемые микросервисами работа на нескольких серверах

MFE — это архитектурная концепция системы, которая расширяет микросервисы до внешнего интерфейса. Эта концепция позволяет создавать многофункциональные браузерные приложения на основе микросервисов.

Термин «микрофронтенды» впервые появился в журнале ThoughtWorks Technology Radar в конце 2016 года. быть явным в отношении зависимостей между ними. Выбор технологий, кодовые базы, команды и процессы выпуска должны работать и развиваться независимо друг от друга, без чрезмерной координации.

Интерфейсное приложение Monolith

Интерфейс монолита

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

Приложение микроинтерфейса

Интерфейс микроинтерфейса

Фрагменты HTML, управляемые каждым приложением

Интерфейс микроинтерфейса — это приложение, которое реагирует на набор сокращенных функций в пределах той же функциональной области.

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

Это также позволяет создать автономную команду для каждого из этих приложений, за которое они теперь несут полную ответственность.

  • Облегчает реорганизацию команд

Внедрение новой функции

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

  • Улучшение расширения функциональности

Расширение функциональности

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

  • Развертывание одного обновления независимо от других команд

Независимое развертывание

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

Это также позволяет группам реализовать непрерывное развертывание своего приложения.

  • Тонкая настройка производительности приложений

Управление производительностью каждого приложения

Каждый микроинтерфейс или функция можно масштабировать индивидуально с точки зрения производительности.

  • Повышение отказоустойчивости

Изоляция ошибок каждого приложения

Теперь ошибки изолированы, поэтому каждое приложение не будет оказывать отрицательного влияния на другое приложение.

Каждое приложение теперь возвращает фрагмент HTML, разработанный его функциональной группой. Необходимо объединить эти фрагменты в полноценную веб-страницу.

Агрегатор приложений

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

  • SEO
  • Проблемы с модулем перезаписи для включения URL-адресов CDN
  • Расширенные настройки фрагментов (кэш TTL, откат, тайм-аут и т. д.)
  • Управление ошибками и концепция первичного фрагмента
  • Параллельная загрузка объединенных фрагментов
  • Chunk HTTP-фрагментов (т.е. мы начинаем отправлять ответ клиенту, когда некоторые фрагменты еще не разрешены, чтобы сократить общее время загрузки)

Наш агрегатор КОБИ был задуман!

KOBI

Итак, разработка решения KOBI началась в 2017 году.

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

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

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

После успеха первого шага переплатформенность остальной части сайта смогла постепенно продолжиться. Сегодня 90% сайта было переплатформено. Окончание этого проекта ожидается в этом году.

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

Нам нужен надежный, гибкий и быстрый инструмент развертывания.

Прежде чем говорить о нашем текущем решении для развертывания, вот история наших средств развертывания веб-сайта leroymerlin. fr.

С января 2011 года по май 2013 года мы запустили современную версию сайта, работающую на виртуальных машинах и выделенных физических серверах от традиционной хостинговой компании. Приходилось ждать несколько дней, пока каждый заказ будет выполнен.

Для производственных выпусков все команды записывались в текстовый файл, а пакеты RPM приложения отправлялись на хост по FTP. Эти развертывания на ВМ заняли до 2 дней.

С мая 2014 года мы начали автоматизировать наши серверы с помощью стека Puppet/Rundeck/Foreman.

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

Когда мы начали использовать Puppet, у нас было два огромных преимущества:

  • У нас была гарантия, что все наши серверы установлены одинаково.
  • Мы смогли помочь командам разработчиков функций развернуть их в рабочей среде.

В ноябре 2016 года, чтобы быстрее реагировать на увеличение трафика от наших пользователей, было принято решение перенести инфраструктуру сайта в дата-центр с пропускной способностью «по требованию». Мы могли бы запросить новые физические серверы для размещения наших виртуальных машин за 4 часа. Благодаря Puppet миграция приложений стала автоматической.

Затем, в июне 2017 года, мы начали работать над переносом нашего сайта на контейнеры Docker. Для размещения нашего API мы выбрали решение Red Hat OpenShift. Это позволило установить локальное решение для хостинга Kubernetes как можно ближе к нашим устаревшим сервисам.

Наконец, в 2019 году было принято решение перенести инфраструктуру сайта в публичное облако.

Поэтому в январе 2021 года мы выполнили нашу последнюю миграцию. Устаревшие виртуальные машины, которые еще не были преобразованы в API, были переустановлены в Google Compute Engine. Кроме того, все наши API были перенесены из OpenShift в Google Kubernetes Engine. Turbine, приложение для развертывания в кластерах Kubernetes, разработанное внутри ADEO, позволило нашим разработчикам осуществить беспрепятственную миграцию. Мы могли бы использовать одни и те же схемы развертывания в OpenShift и GKE.

Использование докеров в GKE.

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

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

Теперь мы успешно перешли в облако и находимся на пути к архитектуре микросервисов. Что дальше?

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

Мы ожидаем, что качество нашей платформы поднимется до так называемого уровня «Global Ready». Это набор характеристик, которым должен соответствовать каждый продукт, чтобы иметь возможность поддерживать наш бизнес в глобальном масштабе.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *