TGViewer
Мобильная разработка #1 Мобильная разработка #1 @developer_mobila · 3.81K subscribers
Post #1626 844
Как я создал персональную систему компонентов для iOS-приложений

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

Зачем мне понадобилась такая система?

Причины были простыми:
* Повторное использование кода
* Быстрый запуск MVP
* Единый визуальный стиль
* Простота поддержки

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


Как я начал
Всё началось с анализа моих предыдущих проектов. Я выписал повторяющиеся элементы и разбил их по категориям:

* Кнопки
* Ячейки таблиц
* Навигационные элементы
* Модальные окна
* Формы

Затем я создал отдельный фреймворк на Swift — MireComponents, который можно подключать к любому проекту через Swift Package Manager.


Архитектура
Я структурировал компоненты следующим образом:

* UIComponents/: визуальные элементы с минимальной логикой
* ViewModels/: логика взаимодействия и состояния
* Themes/: цвета, шрифты и отступы
* Helpers/: утилиты и расширения

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


Пример: Кнопка


public final class MCButton: UIButton {
public init(title: String, style: MCButtonStyle) {
super.init(frame: .zero)
setup(title: title, style: style)
}

private func setup(title: String, style: MCButtonStyle) {
setTitle(title, for: .normal)
backgroundColor = style.backgroundColor
layer.cornerRadius = style.cornerRadius
// Прочие стили...
}
}


Таким образом, я могу создать кнопку всего одной строкой:


let button = MCButton(title: "Продолжить", style: .primary)


Использование
В каждом новом проекте я просто добавляю зависимость на MireComponents и начинаю сборку интерфейса. Это упрощает работу и сохраняет единообразие.


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

https://medium.com/@mireabot/how-i-created-a-personal-component-design-system-for-ios-apps-d3f9be6f426c

#ios

👉 @developer_mobila
  • 👍 2
More from @developer_mobila
  1. Sep 14, 2026Как разрабатывать приложения для iPhone на iPad Звучит как противоречие: iPad стал вполне…
  2. Aug 24, 2026🧪 Как заставить XCUITest работать с интерфейсом глубиной более 100 уровней Инженеры Циана…
  3. Jul 25, 2026🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.r…
  4. Jul 8, 2026🕵️‍♂️ «Я спрятал ключ в константу»: Как Джуны дарят доступы хакерам Вы интегрировали крут…
  5. Jun 25, 2026👾 Androguard: Швейцарский нож для реверс-инжиниринга Android Если вы занимаетесь пентесто…
  6. Jun 22, 2026Живой космос на Metal: как я переписывал фон мобильной игры и поднимал FPS с 20 до 120 В м…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →