home.social

#swift__разработка — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #swift__разработка, aggregated by home.social.

  1. Я превратил вырез в экране MacBook в динамический элемент пользовательского интерфейса (DynamicNotch для macOS)

    Когда Apple добавила вырез (notch) в MacBook, реакция у многих была примерно одинаковая: он есть — и с ним приходится просто мириться. В отличие от iPhone, где появился Dynamic Island и вырез стал частью интерфейса, на macOS он до сих пор остаётся пассивным элементом. Он не несёт функциональной нагрузки и никак не взаимодействует с пользователем. У меня возник простой вопрос: а что если сделать вырез частью UI, а не ограничением? Так появился проект DynamicNotch .

    habr.com/ru/articles/1025350/

    #swift #swiftui #swift__разработка #macos #utilities #dynamic_island #appkit

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

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

    habr.com/ru/companies/psb/arti

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

  3. MVVM+Coordinator+Factory: Святая Троица внедрения зависимостей

    Эта статья - финальный аккорд в нашей трилогии об архитектуре. Мы уже научились наводить порядок внутри экрана с помощью MVVM и управлять потоками переходов через Coordinator. Но остался один неудобный вопрос: кто создаст все эти зависимости? Если ваш Координатор превратился в свалку из десятка сервисов, которые он просто пробрасывает дальше, значит, пришло время внедрить Factory . Вы узнаете, как разделить создание объектов и управление ими, почему глобальные DI-контейнеры - это яд замедленного действия, и как построить систему, где каждый компонент получает только то, что ему нужно, не зная лишнего. Продолжим

    habr.com/ru/articles/993738/

    #ios #apple #mobile_development #swift #swift__разработка

  4. Сохранение позиции прокрутки и состояния курсора при переходах по навигации в iOS

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

    habr.com/ru/articles/991164/

    #swift__разработка #uikit #ios #ios_development #mobile_development #мобильная_разработка

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

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

    habr.com/ru/companies/psb/arti

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

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

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

    habr.com/ru/companies/psb/arti

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

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

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

    habr.com/ru/companies/psb/arti

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

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

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

    habr.com/ru/companies/psb/arti

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

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

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

    habr.com/ru/articles/972450/

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

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

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

    habr.com/ru/articles/972450/

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

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

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

    habr.com/ru/articles/972450/

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

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

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

    habr.com/ru/articles/972450/

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

  13. К какому компоненту отнести тот или иной класс? Мой опыт разделения функциональности между компонентами

    Привет, меня зовут Антон Огнев, я iOS-разработчик в ПСБ, и в этой статье расскажу о классах, компонентах и зависимостях между ними. Конкретно речь пойдет о том, какие принципы стоит всегда соблюдать при создании и поддержке компонентов, как определить, не рушит ли одна новая зависимость весь проект, как меняются приоритеты по компонентам между стартом новой разработки и зрелым продуктом. Большая часть теории основывается на книге «Чистая архитектура» Роберта Мартина. Я эту книгу читал несколько раз и каждый раз открывал для себя что-то новое, набирался опыта и на многие вещи начинал смотреть иначе. Между пояснением принципов буду делиться историями из собственных компонентных приключений в качестве примеров. Заглянули к себе в компоненты и обнаружили, что там бардак и обобщенные имена типа Cоmmon, Shared, Core, Base, Utils? Это текст для вас: сам был на вашем месте, помогу навести порядок.

    habr.com/ru/companies/psb/arti

    #компоненты #мобильные_приложения #ios #ios_разработка #ios_development #swift #swift__разработка

  14. Строки в Swift

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

    habr.com/ru/articles/948870/

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

  15. Жизненный цикл UIViewController в 2025 году: что изменилось и что устарело

    В 2022 году я написал статью «Жизненный цикл UIViewController» , где подробно разобрал порядок вызова методов и основные сценарии работы с ними. С тех пор прошло больше трёх лет, и в iOS появилось несколько изменений, которые делают старую статью уже не до конца актуальной.

    habr.com/ru/articles/943778/

    #uiviewcontroller #uikit #swift #swift__разработка #вьюконтроллер #ios #ios_разработка

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

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

    habr.com/ru/articles/900634/

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

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

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

    habr.com/ru/articles/896498/

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

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

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

    habr.com/ru/articles/896498/

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

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

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

    habr.com/ru/articles/896498/

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

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

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

    habr.com/ru/articles/896498/

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

  21. Расследуем дело асинхронного программирования с Леонидом Каневским

    История развития асинхронного программирования в языке Swift. Можно относиться к этому как к расследованию нераскрытого дела. Начать расследование

    habr.com/ru/companies/cleverte

    #корутины #ios_developer #swift__разработка #асинхронноепрограммирование #асинхронное_программирование

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

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

    habr.com/ru/articles/887914/

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

  23. Побеждаем Data Race в Swift: Осваиваем инструменты и секреты безопасного кода

    Гонка за данными (Data Race) — одна из самых неприятных ошибок, с которыми может столкнуться разработчик. Она возникает в многопоточной среде, когда несколько операций одновременно пытаются получить доступ к одним и тем же данным, при этом хотя бы одна из этих операций выполняет их изменение. Последствия таких гонок могут быть крайне серьезными: в лучшем случае приложение может упасть с ошибкой, а в худшем — произойдет искажение данных, с которыми работает пользователь. Это может негативно сказаться на дальнейшей работе с этими данными и привести к непредсказуемым результатам работы приложения. Обеспечение корректного доступа к общим ресурсам в многопоточных приложениях — ключевая задача, требующая внимательного подхода и изучения. В этой статье мы рассмотрим как используя инструменты, доступные нам в языке Swift, предотвратить наличие гонки за данными.

    habr.com/ru/articles/860774/

    #swift #swift__разработка #swift_development #swift_5 #swift_6 #ios_development #ios_разработка #многопоточность #многопоточное_программирование #разработка_приложений

  24. Побеждаем Data Race в Swift: Осваиваем инструменты и секреты безопасного кода

    Гонка за данными (Data Race) — одна из самых неприятных ошибок, с которыми может столкнуться разработчик. Она возникает в многопоточной среде, когда несколько операций одновременно пытаются получить доступ к одним и тем же данным, при этом хотя бы одна из этих операций выполняет их изменение. Последствия таких гонок могут быть крайне серьезными: в лучшем случае приложение может упасть с ошибкой, а в худшем — произойдет искажение данных, с которыми работает пользователь. Это может негативно сказаться на дальнейшей работе с этими данными и привести к непредсказуемым результатам работы приложения. Обеспечение корректного доступа к общим ресурсам в многопоточных приложениях — ключевая задача, требующая внимательного подхода и изучения. В этой статье мы рассмотрим как используя инструменты, доступные нам в языке Swift, предотвратить наличие гонки за данными.

    habr.com/ru/articles/860774/

    #swift #swift__разработка #swift_development #swift_5 #swift_6 #ios_development #ios_разработка #многопоточность #многопоточное_программирование #разработка_приложений

  25. Побеждаем Data Race в Swift: Осваиваем инструменты и секреты безопасного кода

    Гонка за данными (Data Race) — одна из самых неприятных ошибок, с которыми может столкнуться разработчик. Она возникает в многопоточной среде, когда несколько операций одновременно пытаются получить доступ к одним и тем же данным, при этом хотя бы одна из этих операций выполняет их изменение. Последствия таких гонок могут быть крайне серьезными: в лучшем случае приложение может упасть с ошибкой, а в худшем — произойдет искажение данных, с которыми работает пользователь. Это может негативно сказаться на дальнейшей работе с этими данными и привести к непредсказуемым результатам работы приложения. Обеспечение корректного доступа к общим ресурсам в многопоточных приложениях — ключевая задача, требующая внимательного подхода и изучения. В этой статье мы рассмотрим как используя инструменты, доступные нам в языке Swift, предотвратить наличие гонки за данными.

    habr.com/ru/articles/860774/

    #swift #swift__разработка #swift_development #swift_5 #swift_6 #ios_development #ios_разработка #многопоточность #многопоточное_программирование #разработка_приложений

  26. Побеждаем Data Race в Swift: Осваиваем инструменты и секреты безопасного кода

    Гонка за данными (Data Race) — одна из самых неприятных ошибок, с которыми может столкнуться разработчик. Она возникает в многопоточной среде, когда несколько операций одновременно пытаются получить доступ к одним и тем же данным, при этом хотя бы одна из этих операций выполняет их изменение. Последствия таких гонок могут быть крайне серьезными: в лучшем случае приложение может упасть с ошибкой, а в худшем — произойдет искажение данных, с которыми работает пользователь. Это может негативно сказаться на дальнейшей работе с этими данными и привести к непредсказуемым результатам работы приложения. Обеспечение корректного доступа к общим ресурсам в многопоточных приложениях — ключевая задача, требующая внимательного подхода и изучения. В этой статье мы рассмотрим как используя инструменты, доступные нам в языке Swift, предотвратить наличие гонки за данными.

    habr.com/ru/articles/860774/

    #swift #swift__разработка #swift_development #swift_5 #swift_6 #ios_development #ios_разработка #многопоточность #многопоточное_программирование #разработка_приложений

  27. Готовый компонент UI свайп-панели c добавлением scrollView, и других элементов ui. (iOS Swift)

    ContainerController компонент пользовательского интерфейса. Это копия свайп-панели из приложения: AppleMaps github.com/mrustaa/ContainerCo Он может: - Анимировано перемещаться 3 позиции Верх / Середина / Вниз можно настраивать позиции - Добавлять несколько ContainerController (друг на друга) в одном контроллере - Добавлять любой тип ScrollView: TableView / CollectionView / TextView и управлять панелью за счет скрола - Панель управляется жестом или прокруткой (вертикально) - Можно закреплять HeaderView на вверху / и FooterView внизу 1) Добавлять фоновый цвет / прозрачность размытия фона 2) Настраивать окружность углов cornerRadius 3) Настраивать тень контейнера - При поднятии наверх = Можно добавить тень фона позади компонента 1) Можно настраивать левые / правые отступы 2) И настраивать левые / правые отступы для ландшафтного разворота

    habr.com/ru/articles/844732/

    #swift__разработка #swipe #panel #designer #tableview #collection #move #gesture #scrollview #uicomponents

  28. Готовый компонент UI свайп-панели c добавлением scrollView, и других элементов ui. (iOS Swift)

    ContainerController компонент пользовательского интерфейса. Это копия свайп-панели из приложения: AppleMaps github.com/mrustaa/ContainerCo Он может: - Анимировано перемещаться 3 позиции Верх / Середина / Вниз можно настраивать позиции - Добавлять несколько ContainerController (друг на друга) в одном контроллере - Добавлять любой тип ScrollView: TableView / CollectionView / TextView и управлять панелью за счет скрола - Панель управляется жестом или прокруткой (вертикально) - Можно закреплять HeaderView на вверху / и FooterView внизу 1) Добавлять фоновый цвет / прозрачность размытия фона 2) Настраивать окружность углов cornerRadius 3) Настраивать тень контейнера - При поднятии наверх = Можно добавить тень фона позади компонента 1) Можно настраивать левые / правые отступы 2) И настраивать левые / правые отступы для ландшафтного разворота

    habr.com/ru/articles/844732/

    #swift__разработка #swipe #panel #designer #tableview #collection #move #gesture #scrollview #uicomponents

  29. Готовый компонент UI свайп-панели c добавлением scrollView, и других элементов ui. (iOS Swift)

    ContainerController компонент пользовательского интерфейса. Это копия свайп-панели из приложения: AppleMaps github.com/mrustaa/ContainerCo Он может: - Анимировано перемещаться 3 позиции Верх / Середина / Вниз можно настраивать позиции - Добавлять несколько ContainerController (друг на друга) в одном контроллере - Добавлять любой тип ScrollView: TableView / CollectionView / TextView и управлять панелью за счет скрола - Панель управляется жестом или прокруткой (вертикально) - Можно закреплять HeaderView на вверху / и FooterView внизу 1) Добавлять фоновый цвет / прозрачность размытия фона 2) Настраивать окружность углов cornerRadius 3) Настраивать тень контейнера - При поднятии наверх = Можно добавить тень фона позади компонента 1) Можно настраивать левые / правые отступы 2) И настраивать левые / правые отступы для ландшафтного разворота

    habr.com/ru/articles/844732/

    #swift__разработка #swipe #panel #designer #tableview #collection #move #gesture #scrollview #uicomponents

  30. Прокачайте свой Swift с @dynamicMemberLookup

    Swift — это мощный язык программирования, который сочетает в себе безопасность типов и выразительность. Однако, несмотря на свою строгую типизацию, язык предоставляет разработчикам возможность использовать динамический доступ к свойствам объекта с помощью атрибута dynamicMemberLookup . Это может быть полезно, например, для работы с динамическими данными или при создании DSL (Domain-Specific Language). С помощью этого атрибута мы можем обращаться к свойствам экземпляра типа, даже если эти свойства явно в нем не определены.

    habr.com/ru/articles/841690/

    #swift #swift__разработка #ios_разработка #ios_разработка_swift #ios_development #swift_development #programming_languages #программирование #разработка

  31. Как встроить распознавание звуков в ваше iOS приложение на Swift с использованием SoundAnalysis

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

    habr.com/ru/articles/840316/

    #ios #ios_development #swift #swift__разработка #swift_development #development #coreml #createml #sound

  32. Swift на FreeBSD

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

    habr.com/ru/articles/837678/

    #freebsd #swift #swift__разработка

  33. От Cocoapods к Tuist+SPM быстрыми шагами

    Не так давно прогремела новость, что Cocoapods переходит в режим поддержки, больше не будет развития, а только поддержка. В связи с этим встал вопрос, что дальше. В начале мы склонялись к чисто Swift Package Manager, но потом пришло понимание, что неплохо было бы уйти от конфликтов в project файле и сделать задел на модульность. В этой статье постараюсь описать полный путь от Cocoapods к Tuist+SPM, затрону то, что было мне было не понятно в других статьях и передать опыт, чтобы облегчить другим переход.

    habr.com/ru/articles/837456/

    #Tuis #iOS #xcode #swift #swift__разработка

  34. Performance Testing для iOS

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

    habr.com/ru/articles/837154/

    #ios #разработка #программирование #performance #performance_tests #mobile #swift #swift__разработка #xcode

  35. Расширяем возможности мобильного приложения на WebView. Опыт Ozon Банк

    Привет, Хабр! Меня зовут Георгий, я руководитель команды Ozon Банк iOS. Я занимаюсь разработкой и развитием мобильного направления финансовых продуктов Ozon. Сегодня хочу поделиться опытом нашей команды по запуску мобильного приложения на WebView. Часто разработчики используют только встроенный API взаимодействия JavaScript c нативными кодом, например Web API, но нам этого оказалось мало, и мы расширили спектр возможностей подхода web-native. Внутри статьи я расскажу, какой подход выбрал, как к этому пришёл и как обошёл возникшие проблемы. Подчеркну плюсы и минусы использования своего решения и в конце предложу несколько идей дальнейшего развития выбранного пути.

    habr.com/ru/companies/ozontech

    #webview #swift__разработка #ozon #ozon_tech #web_bridge #ozon_банк #ios

  36. Введение в тестирование на Swift Testing

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

    habr.com/ru/articles/823396/

    #swift #testing #swift__разработка #swift_development #xcode #xctest

  37. AI: типовые задачи iOS разработчика

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

    habr.com/ru/articles/820487/

    #swift__разработка #swift #swiftui #ai #ml #machine_learning #deep_learning

  38. Reflection в iOS: как посмотреть содержимое любой сущности

    В Swift, как и во многих других языках программирования, есть возможность получать информацию о структуре объекта в Runtime. Для этого в языке есть специальный механизм — Reflection. С его помощью можно просматривать содержимое любых сущностей, не зная о них абсолютно ничего. Меня зовут Светлана Гладышева, я iOS-разработчик в Тинькофф. Расскажу, какие возможности есть у Reflection в Swift, в чем ограничения и подводные камни. Рассмотрим его применение на примерах и узнаем, для чего его можно использовать в повседневной работе. А еще поговорим о том, как можно отключить Reflection в проекте и на что это может повлиять.

    habr.com/ru/companies/tinkoff/

    #ios #swift__разработка #swift #reflection

  39. Что можно и что нельзя делать с Async/Await

    Синтаксис async/await, введенный в Swift 5.5, значительно упростил асинхронное программирование, сделав его более доступным и интуитивно понятным. Однако, как и любой мощный инструмент, он может быть использован неправильно. Здесь я хочу рассмотреть пять распространенных ошибок, которые разработчики часто допускают при использовании async/await и предложить стратегии их избегания. Ошибка 1: Необработка Ошибок Асинхронные функции Swift могут вызывать ошибки, так же как и их синхронные аналоги. Однако многие разработчики, особенно те, кто только начинает работать с синтаксисом async/await, могут упускать обработку ошибок, что приводит к сбоям или непредсказуемому поведению. Решение Синтаксис do-catch в Swift - ключ к обработке ошибок из асинхронных функций. Обернув вызов асинхронной функции в блок do-catch, вы можете перехватить и обработать любые выброшенные ошибки, предотвратив сбои и обеспечивая предсказуемое поведение вашего приложения.

    habr.com/ru/articles/776196/

    #async/await #concurrency #ios #swift #swift__разработка #swift_development #ios_разработка #ios_app #ios_development

  40. Рефакторинг Swift

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

    habr.com/ru/articles/774868/

    #swift #swift__разработка #ios #ios_development #ios_разработка #refactoring #codestyle #programming