iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT
12.5K subscribers
696 photos
65 videos
4.07K links
Самые интересные статьи, видео и новости, связанные с iOS разработкой. Не больше трёх материалов в день.

Регистрация в РКН: https://gosuslugi.ru/snet/67b464d698a28c4e866d827a

Размещение рекламы: @tanyasanovna
Download Telegram
Воркшоп по архитектуре Flux

MVVM – отличная архитектура, но при использовании ее со SwiftUI возникает много проблем. 22 августа в 20:00 Ексей Пантелеев расскажет, с какими проблемами приходится сталкиваться, как их можно решить, расширив MVVM с помощью SOA и Coordinator’ов, и покажет, как можно строить архитектуру по принципам Flux.

Вебинар является частью онлайн-курса «iOS Developer. Professional» от OTUS. Партнер курса: Certiport.
🤡61👍14👎4❤‍🔥3
Fucking Format Style

Подробная документация по FormatStyle и ParseableFormatStyle. Удобно смотреть все возможные атрибуты для перевода различных типов данных в локализованные строки.
❤‍🔥26🔥1
Kintsugi – решение конфликтов в project.pbxproj

При конфликте Kintsugi анализирует изменения, сделанные в pbxproj файле, отменяет их, и делает заново.
🤔20🌚5🤡4👎3😱3👍2🔥1
Пропозал по миграции компилятора Swift на Swift

- Важный этап в развитии любого языка – это бутстраппинг. Этот термин означает, что для того, чтобы скомпилировать новую версию компилятора, используется предыдущая версия этого же компилятора.
- Большая часть компилятора Swift написана на С++ и для ее компиляции Swift не нужен
- Исключение – несколько опциональных компонентов, которые уже реализованы на Swift. Среди них – Swift Driver, управляющий процессом компиляции, экспериментальный движок для pattern matching и некоторые SIL passes.
- Автор пропозала предлагает начать переписывать на Swift не только опциональные части компилятора
- Пост интересен в том числе как хороший инсайт в то, как сейчас организован процесс сборки компилятора
👍28👎4🥰2
Allow implicit self for weak self captures, after self is unwrapped

Language Workgroup приняла пропозал, согласно которому можно больше не писать self в замыканиях с weak self после того, как self развернули. Изменения реализуют в одной из следующих версий Swift.

Вот как будет выглядеть код:
button.tapHandler = { [weak self] in
guard let self = self else { return }
dismiss()
}
👍88❤‍🔥14👎5🤔41🔥1
Типовые архитектурные паттерны переоценены

- В реальной жизни дизайн многих систем разрабатывается не так, как в книгах. Их не разрабатывают выделенные архитекторы, не документируют сложными стандартами вроде С4, не используют UML, и не пытаются привести к словарю стандартных архитектурных паттернов банды четырех
- Задача инженера – выработать максимально простую архитектуру, которая поможет решить текущую бизнес-проблему. Соответствие стандартным подходам часто влечет за собой излишнюю сложность
- Главная роль паттернов – в повышении вашей насмотренности
- Чтобы прокачаться в system design, прорабатывайте архитектуру сложных кейсов самостоятельно, запрашивайте фидбэк у коллег, сравнивайте разные варианты дизайна друг с другом, проводите ревью у других людей
👍40👎4🔥4🤡32🤯2
Краткое содержание цикла статей про огромный рефакторинг Slack

- Slack выпустили три статьи: про стабилизацию, модуляризацию и модернизацию кодовой базы
- Основные причины: сложности в масштабировании разработки и желание переехать на новый техстек
- Была разработана понятная стратегия рефакторинга, разбитая на конкретные шаги
- Куча интересных деталей про принятие решений по архитектуре, тулингу, зависимостям
👍14🤡9
Реализация простого watchdog’а

- Если вы видите в крешлогах код 0x8badf00d – это значит, что приложение прибил системный watchdog, который следит за зависшими приложениями
- Обычно очень сложно понять, а что именно в приложении вызвало зависание
- Помочь отловить причины таких ситуаций может простой самописный watchdog, код которого можно посмотреть здесь
👍16🤡3🤔2
Шаринг кода на Swift между клиентом и сервером

Шарить код можно не только на Kotlin, но и на Swift. В статье разбирается, как настроить сервер на Vapor, вынести часть бизнес-логики в общий Swift package и переиспользовать ее в приложении.
🤡31👍21🔥3🌚2🌭2
Автокомплит для команд Swift Package Manager

Если вы часто работаете с консолью и любите вкладываться в свою продуктивность, то попробуйте настроить автодополнение для SPM. В комплекте с ним идет утилита tooling, которая умеет генерировать shell completion scripts.
🤡9👍6🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Перенос Papers, Please на мобальные устройства

Очень интересная статья про то, как автор известной десктопной инди-игры пошагово адаптировал интерфейс и геймплей к маленьким экранам и тач-скрину.
👍22
Слухи про iPhone 14

- Новая презентация Apple с показом iPhone 14 пока планируется 7 сентября
- Самое заметное – у Pro версии уберут челку и заменят ее на точку с камерой и сенсором FaceID
- Камера станет еще мегапиксельнее, а батарея чуть лучше
- В Apple Watch завезут датчик температуры тела
🤡53👍112👎1
50 сниппетов с полезными анимациями из разных приложений

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

В репозитории содержится несколько десятков примеров таких анимаций из разных приложений. Для каждого из них объясняется контекст его применения и приводится реализация.
👍37🔥6🤡3💯21
Как анимация и вибрация помогли Додо сделать кнопку полезнее

В прошлом посте я поделился паттернами анимаций, которые приносят пользу. Кейс Додо из этой статьи – отличный пример использования таких паттернов на практике.
🤡23🔥152👍2
Conditional Layouts в SwiftUI

- В новой версии SwiftUI появился протокол Layout, который реализуется всеми стандартными контейнерами
- В протоколе две функции: sizeThatFits, которая расчитывает финальный размер контейнера с учетом всех детей, и placeSubviews, которая лэйаутит все дочерние вьюшки
- Новый тип AnyLayout позволяет менять лэйаут внутри контейнера без полной перерисовки вьюшек и сбрасывания стейта
🤯27🔥3😢2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Pow – анимированные переходы для SwiftUI

Вышла Beta версия библиотеки Pow, которая добавляет кучу классных transition’ов для ваших вьюх. Несколько примеров:

💨Blur – при добавлении View переходит из заблюренного в четкое состояние, при удалении – наоборот
⭕️Iris – растущий круг при добавлении, убывающий – при удалении
🪄Vanish – View рассыпается на мелкие кусочки
👏28🤡19👍4❤‍🔥3
Команды Почты и Облака Mail.ru ищут iOS-разработчиков и запускают Weekend Offer

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

В команду Облака Mail.ru приглашают iOS-разработчика, который разделит задачи по развитию продукта, будет участвовать в новых продуктовых запусках и A/B-тестах, принимать технические вызовы в работе с файлами и медиаконтентом, а также улучшать инфраструктуру и автоматизацию.

Успейте зарегистрироваться до 2 сентября!
🤡98👎10👍5🌭4🤬1
Статистика использования SwiftUI, Catalyst и AppKit системными приложениями macOS

- В macOS Ventura 85% приложений используют AppKit, 12% – SwiftUI, 4% – Catalyst
- Доля SwiftUI растет с каждой версией. С Monterey она выросла в 2.5 раза
- Catalyst стагнирует уже пару лет
🔥22👍6🤡4🌭2
Интерактивные туториалы на DocC

DocC, инструмент для генерации документации от Apple, умеет не только генерировать API reference, но и очень крутые пошаговые интерактивные туториалы. Вот, что они позволяют делать:

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

А вот еще один пример того, как можно использовать эти туториалы.
👍27🔥3❤‍🔥2