Почему многие неверно реализуют MVVM или способы создания абстракций

Привет, Хабр! Меня зовут Кирилл Маканков, я iOS-разработчик в ПСБ. Сегодня хочу поговорить про особенности реализации MVVM. Не с практической, а с теоретической стороны. С практической стороны этот архитектурный шаблон давно уже объезжен и в хвост, и в гриву. А вот теоретических исследований, особенно применимых к Swift (и в общем, и к SwiftUI в частности), не так уж и много. Давайте вместе попробуем закрыть этот пробел и обосновать с теоретической точки зрения те или иные вариации реализаций в нашей ежедневной работе. Мобильным разработчикам на ObjC, Java и Kotlin данное исследование и обсуждение тоже будет полезно. Присоединяйтесь! Если Вы уже хорошо знакомы с MVVM, то в конце приведен опрос об используемой лично Вами реализации. Давайте вместе определим, какая из реализаций самая популярная.

https://habr.com/ru/companies/psb/articles/1010690/

#swift #swift__разработка #swift_development #абстракция #mvvm #архитектура #архитектура_приложений #архитектура_androidприложений

Почему многие неверно реализуют MVVM или способы создания абстракций

Привет, Хабр! Меня зовут Кирилл Маканков, я iOS-разработчик в ПСБ.   Сегодня хочу поговорить про особенности реализации MVVM. Не с практической, а с теоретической стороны. С практической...

Хабр

Сравнение ИИ для участия в контесте по вайбкодигу

Рассказываю, как я делала приложение: "AI тамагочи" с помощью разных ИИ (ChatGPT, Claude, Perplexity и Cursor)

https://habr.com/ru/articles/983168/

#сезон_ии_в_разработке #ios #xcode #chatgpt #claude #cursor #perplexity #swiftui #swift_development

Сравнение ИИ для участия в контесте по вайбкодигу

В ноябре (2025) проходило соревнование по вайбкодингу от Яндекса. У меня было 2 свободных дня на праздниках, поэтому решила поучаствовать и выбрала тему из списка: "AI тамагочи". У меня некоторая...

Хабр

Снепшот-тестирование SwiftUI View в legacy-проекте: обходим ограничения

Снепшот-тестирование — один из немногих надёжных способов контролировать визуальную целостность SwiftUI-компонентов. Но что делать, если ваш проект ограничен Xcode 13.3 и Swift 5.6, а большинство компонентов дизайн-системы обёрнуты в UIViewRepresentable? Меня зовут Денис Третьяков, я iOS-разработчик в ПСБ. В этой статье расскажу, как мы организовали снепшот-тестирование SwiftUI-компонентов в условиях жёстких ограничений, с какими проблемами столкнулись и как их решили.

https://habr.com/ru/companies/psb/articles/978374/

#снэпшоты #снэпшот #тестирование #тестирование_мобильных_приложений #тестирование_приложений #swift #swiftui #swift__разработка #swift_development #ios

Снепшот-тестирование SwiftUI View в legacy-проекте: обходим ограничения

Снепшот-тестирование — один из немногих надёжных способов контролировать визуальную целостность SwiftUI-компонентов. Но что делать, если ваш проект ограничен Xcode 13.3 и Swift 5.6, а большинство...

Хабр

Camera Control в iOS 18: полный разбор архитектуры и интеграции

Привет, Хабр! Меня зовут Илья, и последние несколько недель я провёл в дебрях документации Apple, исходников AVFoundation и видео с WWDC, разбираясь с новой фичей iPhone 16 — Camera Control. В этой статье расскажу, как устроена архитектура этой системы, почему интеграция сложнее, чем кажется, и дам рабочий код для интеграции в ваше приложение.

https://habr.com/ru/articles/972882/

#camera_control #swift_development #apple #development #new_features

Camera Control в iOS 18: полный разбор архитектуры и интеграции

Привет, Хабр! Меня зовут Илья, и последние несколько недель я провёл в дебрях документации Apple, исходников AVFoundation и видео с WWDC, разбираясь с новой фичей iPhone 16 — Camera Control. В этой...

Хабр

Apple Developer бесплатные курсы для обучения в iOS

Евгений предоставляет открытый доступ к фундаментальным материалам по Swift: от установки и настройки Xcode до базовых конструкций языка, работы с циклами, классами, замыканиями, дженериками и многим другим. Курс разбит на 66 небольших глав, которые проходят комфортно и последовательно. Подходит: начинающим с нуля Язык: RU 🔗 https://lazyload.academy/articles/list/ios/prepare-to-course Также на сайте доступен платный модуль по SwiftUI (76 глав) и модуль по многопоточности. Доступ открывается через Boosty — 1250 ₽/мес (стоимость полностью оправдана объёмом материала). Подробнее

https://habr.com/ru/articles/972450/

#ios #ios_programming #ios_development #ios_разработка #swift #swiftui #swift__разработка #swift_development #xcode #приложение_для_iphone

LazyLoad

Строки в Swift

Привет, Хабр! Сегодня поговорим о теме, которая вроде бы знакома каждому разработчику, но при этом часто остаётся в тени. Речь пойдёт о строках в Swift. Каждый, кто писал или пишет приложения на этом языке, так или иначе работает со строками. Но задумывались ли вы когда-нибудь, как они устроены внутри? В этой статье я постараюсь приоткрыть завесу и рассказать, какие тайны скрывают строки в Swift.

https://habr.com/ru/articles/948870/

#string #swift_string #swift #swift__разработка #swift_development

Строки в Swift

Привет, Хабр! Сегодня поговорим о теме, которая вроде бы знакома каждому разработчику, но при этом часто остаётся в тени. Речь пойдёт о строках в Swift. Каждый, кто писал или пишет приложения на этом...

Хабр

Swift: Шаблонный бэкенд с использованием Vapor

В мобильную разработку приходят различными путями. Некоторые рождаются с девайсом в руках, других ведет извилистая дорога вдоль серверов, майнфреймов, дестопных приложений. Но каждый кто в нее попадает ощущает свою незащищенность с тыла, если нет надежного партнера в лице бэкенд –разработчика. И, буквально, каждый мобильщик ожидает, что необходимый API будет готов хотя бы за один спринт, до того, как в нем возникнет необходимость. Конечно же, мир IT разработки редко допускает такую роскошь – за нее требуется бороться с ПМ и бизнес-аналитиком. К тому же не редки ситуации, когда то, что должно быть сделано «на вчера», будет готово «на послезавтра». Те кто имеют достаточно опыта как в наземном, так и подземном мире – берут инициативу с свои руки, и сами предлагают клиент-серверный интерфейс. Для мобильного мира C# и Java – падения из рая в ад – это довольно естественный процесс, поскольку присущие им платформы изначально целились на поддержку т емных сил бэкенда. То ли дело Swift – познавшему небо – не легко дается жизнь на льдине, вместе с ластоногими. Получить лучшее из обоих миров, и не потерять темп позволяют некоторые экзотические решения, наподобие Perfect и Vapor. Однако, они в большей степени отвечают на вопрос «Как?» вместо того, чтоб предложить какое-нибудь удовлетворительное минимальное решение. С другой стороны, как правило, исходные требования мобильной команды довольно умерены и стереотипны от одного приложения к другому. Обычно требуется поддержка и управления такими сущностями как аккаунт пользователя, профиль, продукт и изображения.

https://habr.com/ru/articles/900634/

#swift #swift__разработка #swift_development #vapor #docker #rest #linux

Swift: Шаблонный бэкенд с использованием Vapor

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

Хабр

Google AI Studio: макеты Figma -> iOS приложение на Gemini 2.5 Experimental

Gemini 2.5 Experimental воспроизводит в SwiftUI с поразительной точностью стили текста и функциональные возможности прототипов, подготовленных дизайнерами в Figma . Особенно это касается разработки русскоязычных UI. Выдаёт полноценный изобретательный SwiftUI код, демонстрируя высокий потенциал Gemini 2.5 в преобразовании Figma-макетов в рабочий iOS-код.

https://habr.com/ru/articles/896498/

#swiftui #swift__разработка #swift_development #ai #gemini_ai #figma #ios_development #ios_programming #ios_разработка

Google AI Studio: макеты Figma -> iOS приложение на Gemini 2.5 Experimental

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

Хабр

Руководство по использованию unsafe в Swift

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

https://habr.com/ru/articles/887914/

#swift #development #unsafe #performance #optimization #macos #swift__разработка #swift_development #ios_development #ios

Руководство по использованию unsafe в Swift

В этой статье мы рассматрим различные подходы для работы с небезопасными операциями в языке программирования Swift. Swift предоставляет несколько способов для работы с указателями и низкоуровневой...

Хабр

Использование ChatGPT o3-mini и DeepSeek при создании iOS приложения Countries “Страны Мира”

Что делает “животворящая” конкуренция? Появление DeepSeek, позволило бесплатным подписчикам ChatGPT получить доступ к “рассуждающей” ChatGPT o3-mini. Я предложила этим двум ИИ создать довольно простое на первый взгляд тестовое iOS приложение Countries, которое показывает все страны Мира по регионам (Европа, Азия, Латинская Америка и т.д.) и для каждой страны её название и флаг, a также численность населения population, размер ВВП (валового внутреннего продукта) gdp и расположение страны на карте Мира. Использовались данные Всемирного банка (World Bank), но мы не сообщали ИИ ни сайты, ни структуры данных, всё это ИИ должен найти сам и использовать их при создании iOS приложения. Раньше я отдавала предпочтение Clause 3.5 Sonnet при создании iOS приложений, прибегая к ChatGPT 4.o1 для решения отдельных проблем. Но появление "рассуждающих" ChatGPT o3-mini и DeepSeek изменили всё. iOS разработка поднялась на новый уровень, и пока лидером в этой гонке для меня является ChatGPT o3-mini (даже в бесплатном варианте). Он способен вас приятно удивить.

https://habr.com/ru/articles/880824/

#chatgpt_o3 #swiftui #swift_development #swift_6 #concurrency #asynchronous #map #deepseek

Использование ChatGPT o3-mini и DeepSeek при создании iOS приложения Countries “Страны Мира”

Что делает “животворящая” конкуренция?  Появление “думающей” DeepSeek, позволило бесплатным подписчикам ChatGPT получить доступ к “рассуждающей” ChatGPT o3-mini.  Сразу же появилось желание...

Хабр