swift
-
Хабрахабр
Продолжаем избавляться от шаблонного кода: переиспользуемый делегат табличных экранов
Мы продолжаем сражаться с шаблонным кодом в табличных экранах iOS-приложений. В предыдущих статьях мы описали мотивы и подход, используемый для решения проблемы дублирования кода из контроллера в контроллер. Также мы показали детальную реализацию и возможности использования источника и провайдера данных для таблиц, которые позволяют ускорять разработку табличных экранов за счет переиспользования реализации протокола `UITableViewDataSource` в соответствии с принципами SOLID. Однако,…
Читать далее » -
Хабрахабр
Swift. Менеджер сетевых запросов
По крайней мере в последнее десятилетие, количество приложений, которым требуется доступ в интернет, неимоверно возросло. Причем для большинства проектов требуется только выполнение REST запросов и загрузка изображений, с созданием preview. В связи с чем, необходим своего рода менеджер сетевых запросов для загрузки данных из сети. Далее будет представлен NetworkManager, с помощью которого выполняются REST запросы, а также загружаются файлы, в…
Читать далее » -
Хабрахабр
Переход на SwiftUI: внедряем TabView взамен UITabBarController
Внедрение SwiftUI (далее — SUI) в уже существующее приложение, написанное на UIKit, в середине 2022 г. уже не является вопросом времени, а скорее, определяется наличием соответствующих навыков. Перевод приложения Утконоса – одного из лидеров e-commerce на российском рынке – на SUI мы начали в конце 2020 года, когда подняли минимальную поддерживаемую версию iOS до 13-ой (и, да, мы не стали ждать 14-ой). Этому же способствовала поставленная долгосрочная задача полного редизайна…
Читать далее » -
Хабрахабр
Переход на SwiftUI: внедряем TabView взамен UITabBarController
Внедрение SwiftUI (далее — SUI) в уже существующее приложение, написанное на UIKit, в середине 2022 г. уже не является вопросом времени, а скорее, определяется наличием соответствующих навыков. Перевод приложения Утконоса – одного из лидеров e-commerce на российском рынке – на SUI мы начали в конце 2020 года, когда подняли минимальную поддерживаемую версию iOS до 13-ой (и, да, мы не стали ждать 14-ой). Этому же способствовала поставленная долгосрочная задача полного редизайна…
Читать далее » -
Хабрахабр
Method Dispatch
Вы когда-нибудь задумывались над тем, как компилятор понимает, какую функцию и откуда вызвать? Постараемся разобраться. Что такое Method Dispatch? Method Dispatch - это алгоритм, который решает, какой метод должен вызываться в ответ на сообщение. Его цель заключается в том, чтобы проинформировать процессор о том, где он может найти код для вызова метода в памяти. Swift имеет три типа method dispatch:…
Читать далее » -
Хабрахабр
Copy-on-write
Познакомился я с этой темой на одном из собеседований, когда мне задали вопрос о том, что есть какая-то большая структура и сколько памяти будет занято, если переменную с экземпляром этой структуры присвоить другой переменной. Тогда, вспоминая о том, что происходит при взятие подстроки, я ответил, что объем памяти не изменится и ошибся. Ну и уже после собеседования полез читать о…
Читать далее » -
Хабрахабр
Дайджест недели от Apple Pro Weekly News (23.05 – 29.05.22)
В этом дайджесте: Конференция разработчиков WWDC22 уже через неделю и теперь есть подробное расписание, магазины техники Apple в России частично закрываются, а саму компанию нещадно штрафуют. А также новинки, обновления и слухи. Всё это и многое другое в свежей подборке событий от Apple Pro Weekly News. Конференция разработчиков Apple WWDC22 уже на следующей неделе 6 июня стартует долгожданная неделя Apple…
Читать далее » -
Хабрахабр
Правильно подключаем тяжелые зависимости к Xcode проекту через Swift Package Manager
В этой статье я расскажу о проблемах с которыми я столкнулся при подключении тяжелых зависимостей к iOS проекту с помощью Swift Package Manager и о способе их решения. Тяжелые зависимости Для начала давайте определим понятие тяжелой зависимости. Под тяжелой зависимостью я понимаю такую зависимость в которой есть большое кол-во исходного кода. Самый распространённый пример такой зависимости — Firebase. Это набор сервисов…
Читать далее » -
Хабрахабр
Дайджест недели (мобильная разработка) – #1
Привет, Хабр! Каждую неделю, в своем телеграм-канале Mobile Native, я публикую дайджест с интересными и полезными материалами (новости, статьи, инструменты, библиотеки и т.д.) для мобильных разработчиков. Решил попробовать публиковать эту рубрику и на Хабре. Посмотрим, что из этого получится. Android 🤖 • Dependency Inversion Principle: How Google Developers write code• Как мы используем фича-флаги в мобильном приложении QIWI Кошелек• Google запускает…
Читать далее » -
Хабрахабр
Как использовать Kotlin Multiplatform ViewModel в SwiftUI и Jetpack Compose
Мы в IceRock Development уже много лет пользуемся подходом MVVM, а последние 4 года наши ViewModel расположены в общем коде, за счет использования нашей библиотеки moko-mvvm. В последний год мы активно переходим на использование Jetpack Compose и SwiftUI для построения UI в наших проектах. И это потребовало улучшения MOKO MVVM, чтобы разработчикам на обеих платформах было удобно работать с таким подходом. 30 апреля 2022 вышла новая…
Читать далее »