iosgr | Технологии

Telegram-канал iosgr - iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

10615

Самые интересные статьи, видео и новости, связанные с iOS разработкой. Не больше трёх материалов в день. Лучшее iOS сообщество в Телеге: @iosgt Размещение рекламы: @tatiana_2209

Подписаться на канал

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Алгоритм реалистичной анимации радара

Для реализации используется алгоритм «Шум Перлина». Интересный факт – за применение этого алгоритма при съемках «Трона» его автор получил Оскар.

Код на SwiftUI

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Превью ТСА 1.0

Если вы используете ТСА, то пора бетатестить первую стабильную версию и оставлять команде фидбэк. Обратная совместимость в основном не сломана, но удалено много старого кода, поэтому что-то может отвалиться.

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Формулы, описывающие относительное восприятие размеров

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

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Репозиторий с подборками кастомных SF Symbols

На прошлой неделе я выкладывал пост с инструкцией по импорту кастомных SF Symbols. Вы можете не только рисовать их сами, но и импортировать уже подготовленные для вас.

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Как следить за позицией указателя в macOS и iPadOS

В последнюю версию SwiftUI завезли новый модификатор onContinuousHover. С его помощью можно следить за относительной позицией указателя мыши, когда он находится внутри границ вьюшки.

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Как избегать ошибок в релизном пайплайне

В отличие от обычных билдов, релизный пайплайн запускается редко. Из-за этого легко пропустить появление в нем проблем, и столкнуться с ними только в сам момент релиза. Например, такие проблемы састо появляются на этапах архивации и загрузки билда в стор.

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

Перевод на русский язык

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

VK подготовили Weekend Offer в команды Дзена, Почты Mail.ru, Антиспама и Маруси для ML- и мобильных разработчиков

Java-разработчиков тоже ищут, в команде ML Дзена (для тех, кто хотел начать развиваться в ML).

Отклики всех причастных ждут до 16 февраля: до этого времени с вами свяжутся HR, коротко расскажут о командах и назначат слот для онлайн-интервью в выходные.

Оставить отклик можно тут

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Конференция Podlodka iOS Crew про инфраструктуру

👀Поддержка AB тестирования и аналитики для большого проекта
👀Выстраивание архитектуры сложных CI/CD скриптов
👀Решение dependency hell с помощью Bazel
👀Работа с App Store Connect API без Fastlane
👀Продвинутые фичи Firebase, Gitlab CI и GitHub Actions

А так, все как вы любите – куча воркшопов, разбор экспертами ваших кейсов, прикладные tips&tricks и куча общения в закрытом сообществе в Телеге.

📆Даты: 27 февраля – 3 марта

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Перевод GitHub Action Runners на self hosted macOS виртуалки

- Cilicon – инструмент для запуска macOS виртуалок, под капотом которого используется Virtualization Framework.
- Авторы Cilicon используют его для того, чтобы экономить на дорогих macOS агентах в GitHub.
- Помимо экономии, они получили профит и в скорости – MacBook Pro на M1 справляются с задачами где-то в 3 раза быстрее обычных агентов.

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Как создавать кастомные SF Symbols

Если вы хотите использовать один из существующих SF Symbols, но он не до конца вас устраивает, его можно подкрутить вручную:

📥Экспортируйте его из SF Symbols через File->Export, и откройте в Sketch
🖌️Подкрутите нужный вам слой
📤Экспортируйте его в SVG и перенесите обратно в SF Symbols

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Как следить за позицией скролла в SwiftUI

ScrollView в SwiftUI, в отличие от UIScrollView из UIKit, не дает простого способа следить за изменением позиции скролла. В статье разбирается, как с помощью GeometryReader можно получать текущий фрейм content view, а потом переводить его в нужную нам систему координат. Как бонус – вспомните, как вообще под капотом работает скролл!

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Ускорение старта приложения DoorDash

DoorDash оптимизировали время старта приложения на 60% с помощью следующего:

🖌️Переезд со String(describing:) на ObjectIdentifier – это помогло избавиться от подкапотных protocol conformance checks.
🤷‍♂️Отказ от использования AnyHashable в пользу все того же ObjectIdentifier.
👀Аудит сторонних фреймворков, и перенос инициализации на время после вызова main().

Перевод на русский язык

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Как работает очистка URLCache

В документации нигде не рассказано, как URLCache ведет себя при достижении лимита по памяти. Очевидное предположение о том, что под капотом используется LRU алгоритм неверно – на практике URLCache удаляет вообще все закешированное, как только упрется в лимит.

Автор попробовал отнаследоваться от URLCache и переопределить это поведение, так как в целом документация предполагает такой сценарий. Но это оказалось очень плохой идеей.

Перевод на русский язык

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Пропозал по добавлению в Swift `package` – нового модификатора видимости

Если вы хотите сделать какие-то функции доступными всем модулям внутри пакета, но при этом недоступными другим пакетам, нормальной возможности для этого у вас нет. Приходится все объявлять public, но это сильно усложняет дальнейшую поддержку публичного API.

В пропозале предлагается добавить в Swift новый модификатор видимости – package. Он делает символы публичными в рамках текущего пакета, но при этом они не доступны его внешним пользователям. В первую очередь фича будет полезна авторам библиотек, поэтому, если среди вас такие есть, залетайте в обсуждение и накидывайте на вентилятор – продлится оно до 8 февраля.

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Как экономить на GitHub Actions

Раннеры на macOS стоят в 10 раз дороже, чем на Linux, поэтому думать об оптимизации расходов точно имеет смысл. В статье предлагается несколько техник:

🛠️Пересмотрите все задачи, которые гоняются на macOS, и вынесите независимые от операционки на Linux. Например, можно вынести прогон SwiftLint или SwiftFormat.
🫰Настройте фильтры, чтобы не гонять билды при изменениях в README или других ресурсах.
🏎️Запускать только одну джобу в моменте, и дать возможность свежим джобам убивать уже запущенные.

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Книга The Swift Programming Language теперь публикуется с помощью DocC

DocC – инструмент для генерации спеки, документации и туториалов. Где-то полгода назад рабочая группа по документации Swift решила докрутить его, чтобы с его помощью можно было собирать и публиковать официальную книгу по синтаксису языка. Начиная со Swift 5.8 это стало возможным.

Почему это важная новость:
- Это отличный проект для догфудинга длинного контента. Например, в DocC ради книги добавили новую навигацию и ручной контроль над «See also».
- Контрибьютить в книгу может кто угодно. Если хотите что-то написать, разбирайте issues. Или, как вариант, подхватите перевод на русский язык.

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Работа с таймером

Обычно основным триггером изменений в приложенит является пользовательский ввод – нажатие кнопочек, жесты, запись текста. Большая часть архитектурных подходов заточена именно под стандартный флоу – пользователь что-то делает с приложением, мы отслеживаем это изменение, меняем стейт, отражаем его в UI. Но все становится гораздо интереснее, когда в приложении появляется еще один триггер изменений стейта – например, таймер.

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

Открытый урок входит в большой курс «iOS Developer» от OTUS
📆Дата: 22 февраля, 20:00
👉Регистрация

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Ограничения работы с ML на девайсе

Если вы планируете запускать нейронку прямо на пользовательском девайсе, то стоит быть готовым к разным проблемам и ограничениям. Список основных – в статье.

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Цвета и цветовые пространства

Вы красите кнопки, но делаете это без уважения к цветам. Чтобы исправить ситуацию, мы записали выпуск Подлодки про то, что такое цвета, какие бывают цветовые пространства и чем они различаются, как они выглядят в картинках и градиентах и как отображаются на экранах.

Вдогонку – хорошая статья за авторством гостя про историю развития цвета в CSS и новый формат OLKCH.

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Как прокачать работу с i18n в вашем приложении

На первый взгляд, в локализации нет ничего сложного – закидываешь строки в Localizable.strings, отдаешь каким-нибудь переводчикам, и готово. Но не все так просто. С ростом кодовой базы, размера команды или частоты релизов вы начнете сталкиваться с ограничениями такого подхода.

Ребята из OTUS делают классный открытый урок про разные техники работы с локализацией и полезные инструменты, которые могут упростить вам жизнь. В программе воркшопа:

🐞Проблемы с разработкой и тестированием локализации
🛠Кодогенерация с помощью SwiftGen и R.swift
🔢Тонкости работы с плюрализмом в строках
🇬🇧Автоматизация ревью строковых констант с помощью Localinter
💸Платформы для профессиональных переводов строк

Воркшоп является частью онлайн-курса «iOS Developer. Professional» от OTUS
📆16 февраля в 20:00
👉Регистрация

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

stroughtonsmith/109830044685225096">ChatGPT и сториборды

Еще один пример того, как ChatGPT может помогать в рутине. Берете XML сториборды, скармливаете его нейронке, в ответ получаете практически готовый SwiftUI код.

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Эволюция архитектуры iOS приложения Facebook

10 лет быстрого роста команды и постоянно меняющихся требований привели архитектуру Facebook к следующему состоянию:

🤯Классов настолько много, что Xcode не может их загрузить.
📦Apple SDK практически нигде не используется напрямую, вокруг всего написаны свои абстракции.
🛠️Куча кодогенерации на Buck.
⏰Если отключить кастомные механизмы кеширования, билд приложения занимает сутки.

В статье разбирается, как кодовая база дошла до такого состояния и как принимались технические решения.


Перевод на русский язык

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Play – инструмент для работы с дизайном интерфейсов на iOS

Кажется, это первый полноценный редактор UI на мобильных устройствах. Из интересного:

*️⃣Импорт из Figma
*️⃣Разработка интерактивных макетов с поддержкой жестов
*️⃣В макеты можно встраивать нативные контролы iOS

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Как ускорить инкрементальный билд, если вы используете SwiftLint

warning build: Run script build phase 'SwiftLint' will be run during every build because it does not specify any outputs

Если вы видите такой ворнинг в своем проекте, то статья помодет не только избавиться от него, но и существенно ускорить инкрементальный билд, благодаря тому, что SwiftLint будет запускаться не всегда.

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Темизация кастомных компонентов SwiftUI

Большой гайд по использованию SwiftUI view style API для того, чтобы переиспользовать стили между различными кастомными компонентами в приложении. Помимо цветов, выравнивнивания и других визуальных параметров, темизации так же поддаются и параметры accessibility.

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Новые Tech Talks от Apple

👀Обзор последних фичей iOS из призмы тех, кто разрабатывает enterprise приложения
👀Metal Performance HUD с данными о производительности графики в реалтайме
👀Поддержка SharePlay в Game Center
👀Миграция на App Intents
👀Подключение Apple Pay к приложению

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Лучший способ показывать пароль при логине

Не очень очевидный, но очень милый способ показывать и прятать введенный пароль.

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Доступ к командной строке из XCTest

Представьте, что вы сможете получить доступ к консоли прямо из тела теста. Это может открыть много неочевидных полезных возможностей:

📱Дергать недоступные через XCTest API фичи симулятора – отправку пушей, подмену локации, захват экрана
🎁Настраивать полноценный внешний мок-сервер
💻Выполнять любые действия с macOS через AppleScript

Реализация довольно очевидная – поднимаете локальный HTTP сервер, он дергает нужные команды в консоли, и возвращает их результат обратно в тест.

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Большое исследование тимлидов и руководителей разработки

Из айосеров обычно получаются лучшие руководители разработки, потому что если ты познал покраску вьюшек, то познал практически все. Поэтому очень жду вашего участия в моем новом исследовании тимлидов. Если вы руководите кем-то, проходите его сами, а если руководят вами, отправляйте своему тимлиду! Результаты будут в открытом доступе в конце марта.

🤔Какие навыки для руководителей самые важные
💰По каким критериям оценивают их работу
💻Сколько времени уходит на написание кода
👋Как попадают в профессию, и куда из нее уходят
📚Полезные для развития каналы, курсы и книги

👉Пройти опрос

Читать полностью…

iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT

Sketch теперь импортирует файлы из Figma

Очень-очень радостная новость. Если вы любите использовать Sketch, и сидите в Figma только из-за предпочтений дизайнеров или кого-то еще в команде, теперь вы сможете легко импортнуть .fig в Sketch.

Читать полностью…
Подписаться на канал