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

Лучшее iOS сообщество в Телеге: @iosgt

Размещение рекламы: @tanyasanovna
Download Telegram
В iOS 15.4 Apple впервые за семь лет пересмотрели свое отношение к поддержке PWA (Progressive Web Applications, стандарт такой для мобильного веба), и наконец-то реализовали поддержку веб-пушей и части других API, которые дают доступ к разным нативным фичам iOS. Это важно, потому что PWA – хорошая альтернатива другим кроссплатформенным решениям, которые позволяют быстро сделать прототип своего продукта.
https://firt.dev/ios-15.4b
В обсуждении подходов к работе с диплинками в Mobile Native Foundation разработчики из AirBnb рассказали про свой подход.

Их цель – сделать так, чтобы каждая продуктовая команда отвечала за свои конкретные диплинки, логику их обработки и навигации. Чтобы это работало, core-команда реализовала плагинную систему, в которой каждый диплинк – это плагин, инжектящийся в общий URL handling сервис. Если стало интереснее, почитайте комментарий с деталями.
https://github.com/MobileNativeFoundation/discussions/discussions/144#discussioncomment-2008969
Держите памятку с главными шорткатами для Xcode, которые могут полностью заменить собой мышь или тачпад.
https://swiftcraft.io/static/images/xcode-keyboard-only-workflow-print.pdf
В открытый доступ выложили все доклады недавней конференции iOS Conf SG 2022. Я пролистал плейлист, и самыми интересными показались следующие:
Continuous Feature Delivery with Scenario Driven App Development процесса
Swift Concurrency Under the Hood
Special Effects with SwiftUI
Кажется, подошел к концу цикл статей про Microapps Architecture. Напоминаю, что это – развитие идей модульной архитектуры, построенное вокруг SwiftPM.

Можете прочитать последнюю статью про Dependency Injection, а можете, если откладывали, пройтись по всему циклу:
SwiftPM Basics
Feature Modules
Resources and Localization
Dependency Injection
🔥Начинаем текстовый Q&A с Александром Зиминым (@azimin) про:
- Работу в стартапах
- Запуск своих проектов
- Из iOS-разработчика в продуктовый менеджмент
- NFT, запуск больших проектов
- Жизнь на Бали, жизнь в Лондоне

💬Как принять участие в обсуждении:
1. Пишите любой вопрос комментарием к этому посту
2. Используйте реплаи при дальнейшем общении

📆Заканчиваем в 13 часов, так что не откладывайте!
Ексей Пантелеев в нашем чате уже рассказывал про то, почему всем iOS разработчикам пора вкатываться в AR. Да и Apple вот уже в этом году должны будут показать новые носимые устройства и перевернуть индустрию. Короче, время разобраться и потрогать лидар руками пришло! Лучший способ вкатиться в тему – сходить на вебинар Ексея про ARKit и RealityKit и попробовать что-то собрать своими руками.

👉 14 февраля, 20 часов, регистрация по ссылке https://otus.pw/gbM0/
Если вы любите учиться через изучение кода других проектов, то вот вам куча идей для вдохновения. По ссылке – витрина open source приложений для macOS с возможностью фильтрации по используемому фреймворку: AppKit, SwiftUI, Electron.
https://www.oss.wiki/
Async функции в Swift поддерживают возможность их отмены. Это довольно удобная возможность, которая могла бы пригодиться и для синхронных операций. Например, для JSONDecoder. В статье – размышления про то, как могла бы работать отмена синхронных операций.
https://oleb.net/2022/sync-functions-cancellation/
Команда Kickstarter делится историей постепенного переезда их приложения на GraphQL и как он повлиял на доменную модель и архитектуру приложения.
https://building.kickstarter.com/apollo-integration-fun-on-ios-2c2d9e012d45
😎Сколько вам надо утечек, чтобы поверить, что AR/VR очки от Apple уже где-то совсем рядом? Мне хватит тех двух, что появились в последние дни (App Store upload logs и коммит в dyld). А пока мы ждем RealityOS и откладываем на них 3.000$, самое время прочитать наш еженедельный дайджест топовых материалов!

🔥Самые заплюсованные вами посты за неделю
Создание рабочей группы по С++ интеропу в Swift
Полный цикл статей про Microapps Architecture
Памятка с шорткатами для Xcode

🔄Async/await не перестает приносить нам новые статьи каждую неделю. В этот раз сразу две, и обе классные!
Управление памятью с async/await
Как могла бы работать отмена синхронных функций

🔢Не пропустите два материала про довольно редко встречающиеся числовые типы данных.
Decimal
NSMeasurement

💬Кстати, в пятницу мы очень лампово в течение двух часов закидывали вопросами Сашу Зимина. 90+ комментариев – это круто! Я пока не добрался их обработать, но совсем скоро выложу отдельной заметкой, обещаю!

👀Напоминаю, что в Good Reads есть и другие каналы: @leadgr, @droidgr и @qa_channel. Если бы я был вами, я бы точно подписался! Смотрите, какой там кайф.
Как быть, если вы постоянно попадаете в ловушку "Я все сделаю сам"
Обзор новых возможностей Postman, которые могут пригодиться и мобильщику
Поучительная история про разработчика, который стал тимлидом, а затем вообще все скиллы растерял и смог после 40 лет вернуться на работу программиста только очень окольным путем

Мне очень важны ваши положительные реакции, это какая-то абсолютно иррациональная зависимость. Поэтому отсыпьте их и не жалейте!
Даю подсказку: ❤️🥰👍🔥. А в комментариях жду любые идеи по развитию дайджеста и канала!


#digest
Community-driven коллекция советов по работе с Xcode: дебаггинг, шорткаты, рефакторинг, работа с симулятором и другие категории. Встречаются и устаревшие статьи, так что будьте внимательны.
https://xcode-tips.github.io/
Интересный подход к архитектуре SDK финансового сервиса, который содержит в себе и бизнес-логику, и разные пользовательские экраны с логикой перехода между ними. Команда уперлась в несколько проблем:
- Любой код надо править сразу на трех платформах
- Изменений в UI было много, а пользователям для их получения надо было пересобирать приложения

Чтобы порешать это, команда провела большой рефакторинг вокруг нескольких идей:
- Перенести всю логику на бэкенд, чтобы минимизировать дублирование кода
- Представить весь UI в виде ноукод направленного графа, тоже хранить его на бэкенде, а клиент превратить в рендерилку

В статье очень много деталей про то, как в итоге работает эта архитектура, с какими проблемами столкнулись при переходе на нее. Советую почитать всем, кто поддерживает похожие SDK или интересуется серверным рендерингом.
Менять работу не страшно, когда всё взвесишь

Skyeng ищет мобильных разработчиков уровня senior и middle+. На удалёнку или в московский офис. Сейчас в команду можно попасть за 2 дня: без нудных собеседований, долгих общений с эйчарами и тестовых заданий. Два интервью по полтора часа: техническое и с руководителем команды.

Ребята провели более 40 независимых бесед и узнали, что ценят и с какими трудностями сталкиваются мобильные разработчики, чтобы вы прошли тест и сравнили своё текущее место с работой в Skyeng. Тот самый случай, когда размах бренда и красивые строки в Линкедине — не единственное преимущество.

Кликайте, если вы Android-разработчик

Кликайте, если вы iOS-разработчик

Ещё Skyeng предлагает бонус, если вы посоветуете друзей: 100 000 рублей за друга мобильного разработчика уровня сеньор и мидл+
В утренней статье наткнулся на доклад, который оказался довольно известным в индустрии, но который я почему-то пропустил раньше – Boundaries от Gary Berhardt. Он рассказывает про концепцию разделения всей логики приложения на две части:
🌝Ядро, описанное чистыми функциями, без каких-либо внешних зависимостей
🌚Императивная оболочка, прослойка между ядром и окружающим миром

Из этой довольно простой идеи вырастает множество других. Про часть из них можно послушать в докладе, а про другие – почитать в этой заметке.
На прошлой неделе мы провели текстовый Q&A с Александром Зиминым. Прошло, кажется, огненно – спасибо всем, кто поучаствовал! Я думал попробовать собрать текстовый дайджест, но получается так себе – гораздо интереснее читать дискуссию от начала до конца прямо в комментариях к посту. Обязательно полистайте, если вам интересно получить новый взгляд на то, куда iOS-разработчику развиваться дальше, как начинать и не бросать свои пет-проекты и какую страну для эмиграции выбрать.

Поставьте этому сообщению 👍, если нужно продолжать проводить такие сессии. А если есть идеи конкретных гостей или тем – пишите в комментарии!
Красивый способ работы с SFSymbols в коде. Заворачиваем названия нужных символов в Enum и реализуем для него экстеншн со свойством, которое возвращает изображение и функцией, которая к этому изображению применяет какую-то конфигурацию.
Линкер – это специальная программа, которая собирает в один исполняемый файл несколько скомпилированных отдельно объектных файлов. Напрямую с линкером вы скорее всего работаете редко, максимум – в Build Settings какие-нибудь флаги выставляете или разбираетесь с багами при экзотическом способе подключения фреймворка к проекту.

Но если для общего развития вам интересно разобраться с тем, как линкеры устроены и по каким принципам работают – держите серию коротких статей, написанных очень понятным языком.
А помните, был такой Auto Layout? Хороший твиттер-тред, который напоминает про фундаментальные провалы в дизайне системы. Мой любимый тоже упоминается в треде – Visual Format Language, который давал описывать уравнения с помощью нечитаемого ASCII арта. Которые не проверялись на этапе компиляции и крешились в рантайме. Великолепно!

🔥 Расскажите в комментариях про то, от каких решений в Auto Layout больше всего пригорало у вас!