Безопасность — главная проблема последнего десятилетия. Корпорации заявляют о промышленном шпионаже, крупные авиалинии блокируют вылеты из-за подозрений на взлом, Apple обещает миллион долларов любому, кто найдёт уязвимость в ядре любого их продукта и раздает исследователям специальные версии iPhone с возможностью поставить процессор на паузу и проследить путь каждого байта. Если вы цените своё спокойствие (и душевное равновесие ваших пользователей), не инвестируйте в биткоины, инвестируйте в безопасность.
Apple Confirms $1 Million Reward For Anyone Who Can Hack An iPhone
Forbes сообщило о том, что Apple собирается запустить программу по поиску багов в iOS и предоставить участникам специальные устройства с более широкими возможностями для поиска уязвимостей. Доступ будет только по приглашениям, а награды обещают вплоть до 1 000 000$.
Phantom types in Swift
Написание хорошего API — не самая простая задача, особенно когда дело касается функций, принимающих различные типы, а проверки на корректную реализацию хочется выполнять во время компиляции приложения. В этой ситуации приходят на помощь фантомные типы. Термин взят из Haskell, а реализацию автор подсмотрел в стандартной библиотеке от Apple. Как и всегда, не стоит переусердствовать и применять данный подход для решения любой проблемы при проектировании.
Array vs Set: Fundamentals in Swift explained
Краткий гайд по коллекциям Array и Set. Описана разница в принципах реализации, инициализации, производительности и особенностях работы с Core Data.
Unit Testing Asynchronous Code in Swift
Примеры тестирования асинхронного кода с хорошими пояснениями, использованием XCTestExpectation, моков и возможностью поковыряться в исходниках, прилагаемых к статье.
Combine vs. RxSwift: Should you switch to Combine?
Наконец-то новые темы для пятничных холиваров! Что лучше — RxSwift или Combine. Будем обсуждать разницу в именовании, возможности для обработки ошибок, совместимость и, конечно же, производительность.
Swift best practices
Разработчики PinpointKit поделились своими принципами и правилами разработки на Swift.
OpenCombine
Наверняка многим уже не терпится попробовать Combine на боевых проектах, но для этого придётся отказаться от поддержки iOS младше 13-ой версии. Что ж, есть решение. Фреймворк OpenCombine, имитирующий имплементацию библиотеки от Apple. Для работы понадобится Swift пятой версии.
CombineX(中文)
Ещё одна попытка имплементации Combine, но более молодая, а как следствие — с большим количеством багов ^_^
SwiftPM Library
Подумываете о переходе с Cocoapods/Cartage на SPM? Теперь это намного проще с базой большинства библиотек, поддерживающих этот менеджер.
Designing for iOS 13
Какие есть особенности при разработке дизайна для iOS 13? Здесь описаны самые значимые по мнению автора изменения. Использование новой символьной библиотеки SF Symbols, поддержка тёмной темы и попытки возвращения к скевоморфизму,
Using grey, shade and tint in UI design
Нельзя просто так разбрасываться всеми оттенками серого в своем дизайне. А как можно?
Hypothesis-Driven Design
Очередная попытка переосмысления UX-историй и управления ожиданиями.
Debug like a Pro (v2)
Если для вас LLDB — это маленькое окошко терминала, в котором можно написать `po`, а брейкпоинт — синий ярлычок, который останавливает выполнение программы в опредёленном месте, то посмотрите этот доклад и научитесь контролировать всё связанное с жизненным циклом вашего приложения (от макросов в брейкпоинтах до изменения UI в реальном времени через дебаггер).
How to maintain focus as a Software Developer
Концентрация — это не только огромные наушники или пустой офис, это ещё и подход к организации своих задач. В статье автор упорядочивает несколько советов, применимых в разработке.
How I side project
Постоянно откладываете работу над своими проектами? Статья о концентрации не особо помогла? Давайте попробуем ещё раз. Автор делится своим набором инструментов и принципов при разработке проектов «just for fun».