mastodon.world is one of the many independent Mastodon servers you can use to participate in the fediverse.
Generic Mastodon server for anyone to use.

Server stats:

9K
active users

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

0 posts0 participants0 posts today
Habr<p>Swift: Шаблонный бэкенд с использованием Vapor</p><p>В мобильную разработку приходят различными путями. Некоторые рождаются с девайсом в руках, других ведет извилистая дорога вдоль серверов, майнфреймов, дестопных приложений. Но каждый кто в нее попадает ощущает свою незащищенность с тыла, если нет надежного партнера в лице бэкенд –разработчика. И, буквально, каждый мобильщик ожидает, что необходимый API будет готов хотя бы за один спринт, до того, как в нем возникнет необходимость. Конечно же, мир IT разработки редко допускает такую роскошь – за нее требуется бороться с ПМ и бизнес-аналитиком. К тому же не редки ситуации, когда то, что должно быть сделано «на вчера», будет готово «на послезавтра». Те кто имеют достаточно опыта как в наземном, так и подземном мире – берут инициативу с свои руки, и сами предлагают клиент-серверный интерфейс. Для мобильного мира C# и Java – падения из рая в ад – это довольно естественный процесс, поскольку присущие им платформы изначально целились на поддержку т емных сил бэкенда. То ли дело Swift – познавшему небо – не легко дается жизнь на льдине, вместе с ластоногими. Получить лучшее из обоих миров, и не потерять темп позволяют некоторые экзотические решения, наподобие Perfect и Vapor. Однако, они в большей степени отвечают на вопрос «Как?» вместо того, чтоб предложить какое-нибудь удовлетворительное минимальное решение. С другой стороны, как правило, исходные требования мобильной команды довольно умерены и стереотипны от одного приложения к другому. Обычно требуется поддержка и управления такими сущностями как аккаунт пользователя, профиль, продукт и изображения.</p><p><a href="https://habr.com/ru/articles/900634/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/900634/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/swift" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift</span></a> <a href="https://zhub.link/tags/swift__%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift__разработка</span></a> <a href="https://zhub.link/tags/swift_development" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift_development</span></a> <a href="https://zhub.link/tags/vapor" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>vapor</span></a> <a href="https://zhub.link/tags/docker" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>docker</span></a> <a href="https://zhub.link/tags/rest" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>rest</span></a> <a href="https://zhub.link/tags/linux" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>linux</span></a></p>
Habr<p>Google AI Studio: макеты Figma -&gt; iOS приложение на Gemini 2.5 Experimental</p><p>Gemini 2.5 Experimental воспроизводит в SwiftUI с поразительной точностью стили текста и функциональные возможности прототипов, подготовленных дизайнерами в Figma . Особенно это касается разработки русскоязычных UI. Выдаёт полноценный изобретательный SwiftUI код, демонстрируя высокий потенциал Gemini 2.5 в преобразовании Figma-макетов в рабочий iOS-код.</p><p><a href="https://habr.com/ru/articles/896498/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/896498/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/swiftui" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swiftui</span></a> <a href="https://zhub.link/tags/swift__%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift__разработка</span></a> <a href="https://zhub.link/tags/swift_development" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift_development</span></a> <a href="https://zhub.link/tags/ai" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ai</span></a> <a href="https://zhub.link/tags/gemini_ai" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>gemini_ai</span></a> <a href="https://zhub.link/tags/figma" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>figma</span></a> <a href="https://zhub.link/tags/ios_development" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios_development</span></a> <a href="https://zhub.link/tags/ios_programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios_programming</span></a> <a href="https://zhub.link/tags/ios_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios_разработка</span></a></p>
Habr<p>Расследуем дело асинхронного программирования с Леонидом Каневским</p><p>История развития асинхронного программирования в языке Swift. Можно относиться к этому как к расследованию нераскрытого дела. Начать расследование</p><p><a href="https://habr.com/ru/companies/clevertec/articles/892348/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/cleverte</span><span class="invisible">c/articles/892348/</span></a></p><p><a href="https://zhub.link/tags/%D0%BA%D0%BE%D1%80%D1%83%D1%82%D0%B8%D0%BD%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>корутины</span></a> <a href="https://zhub.link/tags/ios_developer" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios_developer</span></a> <a href="https://zhub.link/tags/swift__%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift__разработка</span></a> <a href="https://zhub.link/tags/%D0%B0%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%BD%D0%BE%D0%B5%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>асинхронноепрограммирование</span></a> <a href="https://zhub.link/tags/%D0%B0%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>асинхронное_программирование</span></a></p>
Habr<p>Руководство по использованию unsafe в Swift</p><p>В этой статье мы рассматрим различные подходы для работы с небезопасными операциями в языке программирования Swift. Swift предоставляет несколько способов для работы с указателями и низкоуровневой памятью</p><p><a href="https://habr.com/ru/articles/887914/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/887914/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/swift" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift</span></a> <a href="https://zhub.link/tags/development" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>development</span></a> <a href="https://zhub.link/tags/unsafe" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>unsafe</span></a> <a href="https://zhub.link/tags/performance" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>performance</span></a> <a href="https://zhub.link/tags/optimization" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>optimization</span></a> <a href="https://zhub.link/tags/macos" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>macos</span></a> <a href="https://zhub.link/tags/swift__%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift__разработка</span></a> <a href="https://zhub.link/tags/swift_development" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift_development</span></a> <a href="https://zhub.link/tags/ios_development" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios_development</span></a> <a href="https://zhub.link/tags/ios" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios</span></a></p>
Habr<p>Побеждаем Data Race в Swift: Осваиваем инструменты и секреты безопасного кода</p><p>Гонка за данными (Data Race) — одна из самых неприятных ошибок, с которыми может столкнуться разработчик. Она возникает в многопоточной среде, когда несколько операций одновременно пытаются получить доступ к одним и тем же данным, при этом хотя бы одна из этих операций выполняет их изменение. Последствия таких гонок могут быть крайне серьезными: в лучшем случае приложение может упасть с ошибкой, а в худшем — произойдет искажение данных, с которыми работает пользователь. Это может негативно сказаться на дальнейшей работе с этими данными и привести к непредсказуемым результатам работы приложения. Обеспечение корректного доступа к общим ресурсам в многопоточных приложениях — ключевая задача, требующая внимательного подхода и изучения. В этой статье мы рассмотрим как используя инструменты, доступные нам в языке Swift, предотвратить наличие гонки за данными.</p><p><a href="https://habr.com/ru/articles/860774/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/860774/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/swift" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift</span></a> <a href="https://zhub.link/tags/swift__%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift__разработка</span></a> <a href="https://zhub.link/tags/swift_development" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift_development</span></a> <a href="https://zhub.link/tags/swift_5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift_5</span></a> <a href="https://zhub.link/tags/swift_6" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift_6</span></a> <a href="https://zhub.link/tags/ios_development" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios_development</span></a> <a href="https://zhub.link/tags/ios_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios_разработка</span></a> <a href="https://zhub.link/tags/%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE%D0%BF%D0%BE%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>многопоточность</span></a> <a href="https://zhub.link/tags/%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE%D0%BF%D0%BE%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>многопоточное_программирование</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>разработка_приложений</span></a></p>
Habr<p>Готовый компонент UI свайп-панели c добавлением scrollView, и других элементов ui. (iOS Swift)</p><p>ContainerController компонент пользовательского интерфейса. Это копия свайп-панели из приложения: AppleMaps <a href="https://github.com/mrustaa/ContainerController" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/mrustaa/ContainerCo</span><span class="invisible">ntroller</span></a> Он может: - Анимировано перемещаться 3 позиции Верх / Середина / Вниз можно настраивать позиции - Добавлять несколько ContainerController (друг на друга) в одном контроллере - Добавлять любой тип ScrollView: TableView / CollectionView / TextView и управлять панелью за счет скрола - Панель управляется жестом или прокруткой (вертикально) - Можно закреплять HeaderView на вверху / и FooterView внизу 1) Добавлять фоновый цвет / прозрачность размытия фона 2) Настраивать окружность углов cornerRadius 3) Настраивать тень контейнера - При поднятии наверх = Можно добавить тень фона позади компонента 1) Можно настраивать левые / правые отступы 2) И настраивать левые / правые отступы для ландшафтного разворота</p><p><a href="https://habr.com/ru/articles/844732/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/844732/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/swift__%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift__разработка</span></a> <a href="https://zhub.link/tags/swipe" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swipe</span></a> <a href="https://zhub.link/tags/panel" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>panel</span></a> <a href="https://zhub.link/tags/designer" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>designer</span></a> <a href="https://zhub.link/tags/tableview" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>tableview</span></a> <a href="https://zhub.link/tags/collection" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>collection</span></a> <a href="https://zhub.link/tags/move" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>move</span></a> <a href="https://zhub.link/tags/gesture" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>gesture</span></a> <a href="https://zhub.link/tags/scrollview" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>scrollview</span></a> <a href="https://zhub.link/tags/uicomponents" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>uicomponents</span></a></p>
Habr<p>Прокачайте свой Swift с @dynamicMemberLookup</p><p>Swift — это мощный язык программирования, который сочетает в себе безопасность типов и выразительность. Однако, несмотря на свою строгую типизацию, язык предоставляет разработчикам возможность использовать динамический доступ к свойствам объекта с помощью атрибута dynamicMemberLookup . Это может быть полезно, например, для работы с динамическими данными или при создании DSL (Domain-Specific Language). С помощью этого атрибута мы можем обращаться к свойствам экземпляра типа, даже если эти свойства явно в нем не определены.</p><p><a href="https://habr.com/ru/articles/841690/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/841690/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/swift" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift</span></a> <a href="https://zhub.link/tags/swift__%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift__разработка</span></a> <a href="https://zhub.link/tags/ios_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios_разработка</span></a> <a href="https://zhub.link/tags/ios_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_swift" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios_разработка_swift</span></a> <a href="https://zhub.link/tags/ios_development" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios_development</span></a> <a href="https://zhub.link/tags/swift_development" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift_development</span></a> <a href="https://zhub.link/tags/programming_languages" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming_languages</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>программирование</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>разработка</span></a></p>
Habr<p>Как встроить распознавание звуков в ваше iOS приложение на Swift с использованием SoundAnalysis</p><p>В мире, где ваш телефон умеет угадывать настроение по плейлисту, почему бы не научить его распознавать звуки вокруг? С помощью фреймворка SoundAnalysis это проще, чем кажется. Мы расскажем, как легко и с минимальными потерями для душевного здоровья интегрировать распознавание звуков в ваше iOS-приложение.</p><p><a href="https://habr.com/ru/articles/840316/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/840316/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/ios" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios</span></a> <a href="https://zhub.link/tags/ios_development" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios_development</span></a> <a href="https://zhub.link/tags/swift" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift</span></a> <a href="https://zhub.link/tags/swift__%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift__разработка</span></a> <a href="https://zhub.link/tags/swift_development" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift_development</span></a> <a href="https://zhub.link/tags/development" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>development</span></a> <a href="https://zhub.link/tags/coreml" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>coreml</span></a> <a href="https://zhub.link/tags/createml" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>createml</span></a> <a href="https://zhub.link/tags/sound" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>sound</span></a></p>
Habr<p>Swift на FreeBSD</p><p>Новый, модный и красивый язык разработки от Apple прямо на ваших глазах будет с особым цинизмом пропатчен, собран из исходников и запущен на FreeBSD. Опять.</p><p><a href="https://habr.com/ru/articles/837678/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/837678/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/freebsd" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>freebsd</span></a> <a href="https://zhub.link/tags/swift" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift</span></a> <a href="https://zhub.link/tags/swift__%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift__разработка</span></a></p>
Habr<p>От Cocoapods к Tuist+SPM быстрыми шагами</p><p>Не так давно прогремела новость, что Cocoapods переходит в режим поддержки, больше не будет развития, а только поддержка. В связи с этим встал вопрос, что дальше. В начале мы склонялись к чисто Swift Package Manager, но потом пришло понимание, что неплохо было бы уйти от конфликтов в project файле и сделать задел на модульность. В этой статье постараюсь описать полный путь от Cocoapods к Tuist+SPM, затрону то, что было мне было не понятно в других статьях и передать опыт, чтобы облегчить другим переход.</p><p><a href="https://habr.com/ru/articles/837456/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/837456/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/Tuis" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Tuis</span></a> <a href="https://zhub.link/tags/iOS" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>iOS</span></a> <a href="https://zhub.link/tags/xcode" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>xcode</span></a> <a href="https://zhub.link/tags/swift" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift</span></a> <a href="https://zhub.link/tags/swift__%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift__разработка</span></a></p>
Habr<p>Performance Testing для iOS</p><p>Все мы любим, когда приложение, которым пользуемся работает отзывчиво, быстро, а так же те операции, которые мы хотим совершить происходили максимально быстро: буть то банковское приложение, буть то приложением в коммерции и тд. Но как мы можем отслеживать и мерить метрики скорости нашего приложения? Этим вопросом задаются многие разработчики и компании, которые получили негативную реакцию или думают наперед, когда кодовая база и сложность приложения будет расти. Существует два пути: либо мы изучаем на реальных пользователях нашего приложения, либо мы ищем какой-то другой способ, который позволяет нам статистически проверить гипотезу.</p><p><a href="https://habr.com/ru/articles/837154/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/837154/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/ios" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>разработка</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>программирование</span></a> <a href="https://zhub.link/tags/performance" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>performance</span></a> <a href="https://zhub.link/tags/performance_tests" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>performance_tests</span></a> <a href="https://zhub.link/tags/mobile" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>mobile</span></a> <a href="https://zhub.link/tags/swift" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift</span></a> <a href="https://zhub.link/tags/swift__%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift__разработка</span></a> <a href="https://zhub.link/tags/xcode" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>xcode</span></a></p>
Habr<p>Расширяем возможности мобильного приложения на WebView. Опыт Ozon Банк</p><p>Привет, Хабр! Меня зовут Георгий, я руководитель команды Ozon Банк iOS. Я занимаюсь разработкой и развитием мобильного направления финансовых продуктов Ozon. Сегодня хочу поделиться опытом нашей команды по запуску мобильного приложения на WebView. Часто разработчики используют только встроенный API взаимодействия JavaScript c нативными кодом, например Web API, но нам этого оказалось мало, и мы расширили спектр возможностей подхода web-native. Внутри статьи я расскажу, какой подход выбрал, как к этому пришёл и как обошёл возникшие проблемы. Подчеркну плюсы и минусы использования своего решения и в конце предложу несколько идей дальнейшего развития выбранного пути.</p><p><a href="https://habr.com/ru/companies/ozontech/articles/828186/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/ozontech</span><span class="invisible">/articles/828186/</span></a></p><p><a href="https://zhub.link/tags/webview" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>webview</span></a> <a href="https://zhub.link/tags/swift__%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift__разработка</span></a> <a href="https://zhub.link/tags/ozon" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ozon</span></a> <a href="https://zhub.link/tags/ozon_tech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ozon_tech</span></a> <a href="https://zhub.link/tags/web_bridge" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>web_bridge</span></a> <a href="https://zhub.link/tags/ozon_%D0%B1%D0%B0%D0%BD%D0%BA" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ozon_банк</span></a> <a href="https://zhub.link/tags/ios" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios</span></a></p>
Habr<p>Введение в тестирование на Swift Testing</p><p>XCTest является основным инструментом для тестирования в Swift и широко используется разработчиками. Однако, новая библиотека Testing предлагает дополнительные возможности и синтаксический сахар, который делает процесс тестирования еще более удобным и мощным. В данной статье мы рассмотрим основные аспекты тестирования на Swift, включая использование библиотеки Testing.</p><p><a href="https://habr.com/ru/articles/823396/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/823396/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/swift" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift</span></a> <a href="https://zhub.link/tags/testing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>testing</span></a> <a href="https://zhub.link/tags/swift__%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift__разработка</span></a> <a href="https://zhub.link/tags/swift_development" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift_development</span></a> <a href="https://zhub.link/tags/xcode" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>xcode</span></a> <a href="https://zhub.link/tags/xctest" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>xctest</span></a></p>
Habr<p>AI: типовые задачи iOS разработчика</p><p>Бурное развитие технологий генеративных нейронных сетей за последние полтора года вызвало волну желания стекхолдеров отметить наличие искусственного интеллекта в каждом приложении, которое они оплачивают. Как правило, без указания области применения. Это поставило перед разработчиками нетривиальную задачу – найти точку приложения силы в проектах, которые такого поворота не предполагали.</p><p><a href="https://habr.com/ru/articles/820487/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/820487/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/swift__%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift__разработка</span></a> <a href="https://zhub.link/tags/swift" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift</span></a> <a href="https://zhub.link/tags/swiftui" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swiftui</span></a> <a href="https://zhub.link/tags/ai" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ai</span></a> <a href="https://zhub.link/tags/ml" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ml</span></a> <a href="https://zhub.link/tags/machine_learning" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>machine_learning</span></a> <a href="https://zhub.link/tags/deep_learning" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>deep_learning</span></a></p>
Habr<p>Reflection в iOS: как посмотреть содержимое любой сущности</p><p>В Swift, как и во многих других языках программирования, есть возможность получать информацию о структуре объекта в Runtime. Для этого в языке есть специальный механизм — Reflection. С его помощью можно просматривать содержимое любых сущностей, не зная о них абсолютно ничего. Меня зовут Светлана Гладышева, я iOS-разработчик в Тинькофф. Расскажу, какие возможности есть у Reflection в Swift, в чем ограничения и подводные камни. Рассмотрим его применение на примерах и узнаем, для чего его можно использовать в повседневной работе. А еще поговорим о том, как можно отключить Reflection в проекте и на что это может повлиять.</p><p><a href="https://habr.com/ru/companies/tinkoff/articles/808139/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/tinkoff/</span><span class="invisible">articles/808139/</span></a></p><p><a href="https://zhub.link/tags/ios" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios</span></a> <a href="https://zhub.link/tags/swift__%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift__разработка</span></a> <a href="https://zhub.link/tags/swift" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift</span></a> <a href="https://zhub.link/tags/reflection" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>reflection</span></a></p>
Habr<p>Что можно и что нельзя делать с Async/Await</p><p>Синтаксис async/await, введенный в Swift 5.5, значительно упростил асинхронное программирование, сделав его более доступным и интуитивно понятным. Однако, как и любой мощный инструмент, он может быть использован неправильно. Здесь я хочу рассмотреть пять распространенных ошибок, которые разработчики часто допускают при использовании async/await и предложить стратегии их избегания. Ошибка 1: Необработка Ошибок Асинхронные функции Swift могут вызывать ошибки, так же как и их синхронные аналоги. Однако многие разработчики, особенно те, кто только начинает работать с синтаксисом async/await, могут упускать обработку ошибок, что приводит к сбоям или непредсказуемому поведению. Решение Синтаксис do-catch в Swift - ключ к обработке ошибок из асинхронных функций. Обернув вызов асинхронной функции в блок do-catch, вы можете перехватить и обработать любые выброшенные ошибки, предотвратив сбои и обеспечивая предсказуемое поведение вашего приложения.</p><p><a href="https://habr.com/ru/articles/776196/" rel="nofollow noopener noreferrer" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/776196/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/async" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>async</span></a>/await <a href="https://zhub.link/tags/concurrency" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>concurrency</span></a> <a href="https://zhub.link/tags/ios" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios</span></a> <a href="https://zhub.link/tags/swift" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift</span></a> <a href="https://zhub.link/tags/swift__%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift__разработка</span></a> <a href="https://zhub.link/tags/swift_development" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift_development</span></a> <a href="https://zhub.link/tags/ios_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios_разработка</span></a> <a href="https://zhub.link/tags/ios_app" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios_app</span></a> <a href="https://zhub.link/tags/ios_development" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios_development</span></a></p>
Habr<p>Рефакторинг Swift</p><p>Swift, как и любой другой язык программирования, может стать беспорядочным и сложным в обслуживании без надлежащей организации и структуры. В этой статье мы рассмотрим, как вы можете профессионально реорганизовать свой код, улучшая не только свою собственную производительность, но и производительность вашей команды.</p><p><a href="https://habr.com/ru/articles/774868/" rel="nofollow noopener noreferrer" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/774868/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/swift" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift</span></a> <a href="https://zhub.link/tags/swift__%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swift__разработка</span></a> <a href="https://zhub.link/tags/ios" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios</span></a> <a href="https://zhub.link/tags/ios_development" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios_development</span></a> <a href="https://zhub.link/tags/ios_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ios_разработка</span></a> <a href="https://zhub.link/tags/refactoring" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>refactoring</span></a> <a href="https://zhub.link/tags/codestyle" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>codestyle</span></a> <a href="https://zhub.link/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a></p>