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

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

Размещение рекламы: @tanyasanovna
Download Telegram
Media is too big
VIEW IN TELEGRAM
👋Евгений Jonfir Ёлчев, iOS Developer @ ВКонтакте

🔗Топ-5 ссылок
- Podlodka: Шестая буква SOLID
- Чистая архитектура. Роберт Мартин
- Виктор Юров: Assembler
- Память в Swift от 0 до 1
- Debug Swift debugging with LLDB

👀На чем сфокусироваться в 2023
1. SwiftUI, фреймворк становится все более популярным, нужно быть готовым к тому моменту, когда он станет стандартом в iOS разработке. Стоит уделить внимание алгоритмам сравнения дерева, что бы не было проблем с перформансом и архитектуре.
2. Swift Concurrency. Его уже можно применять в некоторых задачах, а вскоре он может стать основным способом работы с многопоточностью.
3. Выбрать какой-нибудь язык и сделать на нем пет проект для расширения кругозора: haskell, rust, typescript.

🤔Задача для обсуждения в комментах
Сколько существует способов развернуть опционал в Swift?
👍67👎42🤡347💅1
Эволюция системы логов в большом приложении

Ребята из Додо уже писали несколько статей про разные подходы к логированию с помощью os_log. В этот раз на проблему посмотрели с другой стороны, и рассказали, как эволюционировала архитектура системы логов по мере усложнения требований к ней. Код получившегося логгера выложен на GitHub.
👍17👎2😱1💅1
Изображения в Localizable.strings

Если добавить название изображения в Localizable.strings, SwiftUI автоматически подцепит локализованную строчку как accessibility label.
👍43😱18🤡1💅1
Тренды iOS разработки в 2022

Обзор изменений в нескольких областях экосистемы, которые по мнению автора являются ключевыми в этом и следующем году:

🎨SwiftUI
🔃Unidirectional flow
🧱Modularization
👀Testing
😎Accessibility
🔥23👍72💅2
Дизайн макросов выражений в Swift

Помните опубликованный в прошлом году вижн макросов в Swift? Ждать придется не очень долго. На ревью уже находится подробный дизайн и прототипная реализация одной из составляющих – макросов выражений.

Expression macro – это специальный код, начинающийся со знака #, который при компиляции разворачивается в какое-то выражение. У таких макросов есть доступ к синтаксическому дереву программы, как на чтение, так и на изменение. По сути, они заменяют собой любые внешние кодогенераторы.

Репозиторий с примерами макросов
🔥19🤡5👍2😱2💅1
Знакомство с Flutter для iOS разработчиков

Команда Flutter добавила в документацию специальный раздел, который помогает iOS разработчикам познакомиться с фреймворком, сравнив его основные концепции и компоненты с аналогичными в SwiftUI или UIKit.

Похожий документ есть и для языка Dart, где его сравнивают со Swift.
🤡125👍14👎10🔥7😁1💅1
This media is not supported in your browser
VIEW IN TELEGRAM
Как запустить iPhoneOS 1.0 на эмуляторе QEMU

На QEMU запустили полноценную эмуляцию первого iPod Touch с рендерингом девайса и мультитачем. В статье – много деталей про то, как устроены кишочки загрузки операционной системы и куча ссылок для тех, кто захочет закопаться поподробнее.
🔥45💅2
Расскажите, чего хотите от Подлодки в 2023

Команда Podlodka iOS Crew собирает идеи того, как можно улучшить конференции. Если вы приходили на прошлые сезоны или смотрели какие-то видео, проходите небольшой опрос. А заодно, если вам есть чем поделиться, или вы готовы ворваться в программный комитет, оставляйте свои контакты!
🗿25🤔3👍1💅1
Первые подробные слухи про Apple Glasses

- Батарея для очков будет носиться на поясе, очки к ней будут подключаться по MagSafe. Заряда должно хватать на два часа.
- Справа будет находиться Digital Crown, использующаяся для переключения между VR и обычным зрением.
- Вроде как будут две версии ремешка для очков: для проствх пользователей и для разработчиков, но в чем будет отличие, пока не понятно.
- Если вам нужны линзы с плюсом/минусом, они будут крепиться на магнитах.
- Моторчики будут подгонять конструкцию под удобную для вас зрительную дистанцию.
- Существующие iOS приложения будут запускаться в 2D режиме, что бы это ни значило.
- Основными методами управления будут голосовое и hand-tracking. Отдельного игрового контроллера не будет.
- На внешней части устройства будет экран, который показывает окружающим эмоции того, кто носит очки.
- Цена, кажется, будет в районе 3000$.
🤡103👍17🔥9🌭6💅6🗿54🤯31👎1
Как работает модификатор aspectRatio

Aspect Ratio в SwiftUI часто работает не так, как от него ожидается. Чтобы разобраться в том, как именно его использование влияет на процесс лэйаута, автор проводит серию экспериментов.
🔥20👍1💅1
Курсы для начинающих айосеров от Apple

Apple решили собрать свой набор видеоуроков для тех, кто только вкатывается в iOS.

🎨SwiftUI: интерфейсы, навигация, управление стейтом, хранение данных, многопоточность
🧱UIKit: работа с коллекциями, анимации, системные фреймворки
🛠️Работа с сетью и тесты

В процессе прохождения курса разрабатывается несколько учебных проектов. Курс расчитан на 15 часов.
👍69🫡12🔥3❤‍🔥2💅1
Если ИТ – это ваш конек, то Тинькофф ждет вас 23 января на катке в московском Парке Горького!

Ледовый ИТ-квест, нетворкинг, дискуссии со спикерами в теплом шатре и многое другое. Вечер точно будет насыщенным и приятным. За коньки не беспокойтесь — их выдадут бесплатно.

Не медлите, регистрируйтесь сами и зовите коллег — будет весело!
🤡61👍97👎1💅1
Как предоставлять Export Compliance Information

Помните тот вопрос, который App Store Connect задает каждый раз при заливе новой версии: «Does your app use encryption?» Держите максимально подробный гайд про то, как следует себя вести.

*️⃣В большинстве случаев, если вы не заполните self-classification report, ничего страшного не случится. Но формально это требуется обязательно, даже если вы просто используете https или встроенные в SDK криптографические алгоритмы.
*️⃣Для бесплатных приложений отчет требуется заполнять только один раз, для платных – каждый год. Заполнить и отправить отчет надо в промежуток с 1 января до 1 февраля.
*️⃣Сгенерировать отчет можно здесь. После этого его надо будет отправить на почты [email protected] и [email protected].
*️⃣Если вы не успели отправить отчеты – не критично. Подождите до следующего 1 января.

Перевод на русский язык
👍9💅2
This media is not supported in your browser
VIEW IN TELEGRAM
Коллекция SwiftUI анимаций

Большая подборка сниппетов с анимациями на SwiftUI. Некоторые из них повторяют поведение системных компонентов, а некоторые – уникальные.
👏20👍8🤩3🫡2💅21
Подходы к тестированию в больших компаниях

Огромное обсуждение на форуме Mobile Native Foundation про то, как разные крупные компании подходят к организации тестирования. Ветка довольно старая, но в ней периодически появляются новые истории. Вот несколько интересных хайлайтов:

Испанцы Karumi выложили в опенсорс свои гайды по тестированию (скриншотные тесты, property-based тесты, HTTP стабы)
В Spotify 32.000 тестов разных видов.
Target получают большую часть полезного фидбэка не от тестов, а от программы Beta тестирования в TestFlight.

Если вы занимаетесь организацией процессов релизов или тестирования, то в любом случае рекомендую прочитать всю ветку.
👍14🤡3💅1
7 февраля протухает WWDR сертификат для валидации покупок

🤔Кого затронет проблема:

Тех, кто валидирует покупки, не используя AppTransaction/Transaction API или серверную ручку verifyReceipt, а вместо этого хардкодит сертификат в приложении и проверяет покупку в клиентском коде.

💻Что делать:

- В идеале – отказаться от хардкода сертификата и выбрать один из рекомендуемых методов валидации.
- В худшем случае – обновить захардкоженный сертификат и вспомнить о проблеме снова через несколько лет.

Перевод на русский язык
💅31👍1
Breaking changes в Swift 6

Разработчики Swift стараются развивать язык, не ломая обратную совместимость на уровне исходников. Это значит, что код, компилируемый Swift 4, будет собираться и Swift 5. Для примера, появление Swift Concurrency ничего не сломало в старом коде.

В Swift 6 должно выкатиться много важных для языка изменений, ради которых готовы пожертвовать обратной совместимостью. Большая их часть касается одной из трех областей:

🏇Data-race safety by default
🏎️Performance predictability
🧱Package ecosystem scalability

В Swift 5.8 появится возможность включить часть из этих ломающих фичей, чтобы вы могли заранее подготовить свою кодовую базу к миграции. Но времени еще много, Swift 6 стоит ждать не раньше, чем через год.
👍30💅14😱5🤡1
Обзор линкеров для iOS/macOS

- Линкинг – один из этапов билда, на который может уходить довольно много времени, особенно в случае больших приложений. Если вы оптимизируете скорость сборки, это один из кандидатов на улучшение.
- Apple долгое время не вкладывались в ускорение своего основного линкера, ld64. В 2020 году автор выпустил свой форк этого линкера, zld, который работал на 40% быстрее.
- С тех пор появился третий проект, lld, который в основном поддерживается Google и Meta. Кроме того, Apple существенно улучшили ld64, и постепенно набирает обороты быстрый коммерческий линкер sold.
- Сейчас, если вы хотите получить более быстрый линкинг, разумнее всего использовать lld. Это может вам дать ускорение на 50-80%. Обратите внимание – это верно для дебажных билдов, релизные лучше собирать стандартным линкером.
- В статье автор рассказывает, почему решил прекратить поддержку своего линкера, и насыпает много ссылок про технические детали.

Перевод на русский язык
👍33💅72🗿2