Telegram Web Link
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Разбор режимов наложения в Swift: примеры и возможные варианты

Режимы наложения (blend modes) играют важнейшую роль в дизайне. Они необходимы при работе с фото, создании эффектов освещения, и, например, используются для достижения эффекта глубины в изображениях.

💬 Как следуют из названия, при использовании такого режима происходит смешивание цвета нескольких слоев пикселей с помощью математических формул для определения степени влияния каждого пикселя на конечное изображение.

Можно комбинировать любое количество слоев, но минимально необходимо только два — базовый и сам слой наложения.

📖 В этой статье подробно рассматриваются различные режимы наложения (и математические формулы), способы реализации и примеры использования.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
💸Динамика зарплат разработчиков в первой половине 2024 года

🤩 Зарплаты разработчиков на Objective-С продолжают оставаться самыми высокими в этом исследовании (несмотря на снижение до 342 000 ₽), далее идут разработчики на Elixir и Scala.

🔼 В целом, зарплаты выросли почти по всем языкам программирования. У Swift весьма существенный рост, аж на +11% (272 000 ₽).

По компаниям: самой щедрой компанией считается Авито — медиана 351 000 ₽. Также в пятерке лидеров — Райффайзенбанк, Холдинг Т1, Иннотех и VK.

🔗 Вся статистика доступна на хабре.

💰 Сравнить динамику можно с этим постом.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Вышло мощнейшее интервью с Крисом Латтнером

Такие видео появляются крайне редко. Поэтому если у вас найдется время, обязательно постарайтесь взглянуть на диалог с создателем Swift, LLVM, Clang и других продуктов.

Интересно, что Крис отвечает не только на очевидные вопросы, но и делится инсайдами, а также рассказывает, как проект из потенциально интересного лишь паре сотен человек с 2010 до 2016 года прошел огромный путь и стал опенсорсным. Кстати, затрагиваются и интересные моменты, когда приходилось рассказывать профессионалам с годами опыта на Objective-C о преимуществах нового языка и какие сложности были на этом пути.

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Как решить проблему missing package product

🔨 Один из самых неприятных багов в Xcode возникает, когда случайно удаляется файл Package.resolved, что и приводит к ошибке missing package product.

Это возможно, например, при изменении веток в гите, а в зависимости от размера проекта — таких ошибок могут быть десятки (иногда даже сотни).

Большинство возможных решений на форумах сводятся к магической комбинации очистки проекта (cmd-shift-K), удаления DerivedData/, или использования File > Packages > Reset Package Caches (или закрытия и повторного открытия Xcode).

📖 Все это занимает время, но Джесси Сквайрс советует проверить настройки git, или даже автоматизировать это с помощью Makefile.

📖 Напомню, что в канале есть разбор того, почему загрузка пакетов с помощью Swift Package Manager занимает слишком много времени.

А про основы Git для iOS-разработчиков можно почитать вот тут.

И, конечно, подписывайтесь на iOS IQ — там ещё больше полезного контента.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Миграция проекта на Swift 6: неполное руководство

Наверняка, многие проходили несколько итераций апгрейда кодовой базы (кто-то даже с Objective-C, и до сих пор какой-то процент кода может быть написан на нём и в ваших текущих проектах).

Задача миграции всегда стоит особняком, это кропотливая, тяжёлая и совсем не быстрая работа, а одна из сложностей при оптимизации — показать ценность для бизнеса. Бывает непросто объяснить, почему нам нужно что-то менять, если и так всё работает. Но иногда это просто необходимо.

Конечно, при переходе на Swift 6 могут быть проблемы, да и что говорить, часто мы не всё можем контролить напрямую (те же зависимости CocoaPods или SPM), поэтому приходится искать варианты.

📖 В этом материале есть ответы на вопросы, возникающие при миграции, разбор ошибок и даже описание багов в самом Swift.

📖 А шаги, которые можно предпринять уже сейчас — описаны в этом посте.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Разбор Grid View в SwiftUI: LazyVGrid, LazyHGrid, Grid, GridRow

Для создания нужного лэйаута в SwiftUI можно использовать LazyVGrid, если нужно вертикальное отображение, и LazyHGrid (если горизонтальное). Тем самым мы сможем добиться нужного эффекта, при этом адаптируемого к различным ориентациям и размерам экрана.

Начиная с iOS 16, нам также доступен вариант создания Grid с использованием GridRow.

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Развёрнутый гайд по работе с App Store Connect API

Выполнение действий вручную на сайте App Store Connect, вероятно, наиболее распространенный способ для разработчиков управлять и отслеживать состояние приложений в App Store.

Но некоторые задачи могут занимать неоправданно много времени, поскольку для их выполнения нужно постоянно повторять одни и те же действия. Да и не всегда сайт показывает корректное описание ошибок (при заливке скриншотов, например).

Вот библиотеки, которые могут помочь при работе с App Store Connect API:

🔗 appstoreconnect-swift-sdk (c её помощью я написал собственное решение для управления отзывами и частичной автоматизации обновлений в аппсторе)
🔗 Bagbutik
🔗 asc-swift

Ниже перечислил статьи, демонстрирующие способы создания собственных средств автоматизации с помощью App Store Connect API

1️⃣ Как отправлять запросы к App Store Connect API.

2️⃣ Расчет среднего рейтинга отзывов.

3️⃣ Работа с provisioning profiles.

4️⃣ Создание и удаление сертификатов.

Кстати, если вы хотите узнать, что скрывается за сертификатами для Code Signing, в канале есть общий пост, а здесь большой разбор.

Например, вы можете узнать подробнее про понятия .der и .pem, цепочку доверия, Certificate signing request, что происходит при переподписывании кода в App Store и многое другое.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Swift Translation API: примеры реализации

Для перевода до анонса этого фреймворка в пет-проектах я использовал или Google Translate API, или DeepL (знаю, что многие юзают решение от OpenAI).

📶 Но для них нужно интернет-соединение (что логично), и деньги (DeepL, например, имеет премиум-акк, на котором нужно платить за объём знаков).

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

Посмотрим, что будет после выхода в прод, будет ли перевод на платную модель, как с Weather API или оставят все фичи, как есть.

📖 А уже сейчас можно посмотреть на пример создания приложений с новым фреймворком и почитать прекрасный разбор API здесь.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Анимации в SwiftUI — подборка репозиториев на Github

Реализация эффектов в приложениях может быть и интересной, и сложной задачей одновременно.

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

🔗 Open SwiftUI Animations — 4 000

🔗 SwiftUI-Animations — 1 800

🔗 kavsoft-swiftui-animations — 460

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Паттерны навигации в SwiftUI

NavigationStack улучшил навигацию, обеспечив динамическую и программную маршрутизацию, вместе с тем появились способы централизации маршрутов для всего приложения.

📖 В этой статье рассмотрены общие варианты навигации, которые можно использовать при создании приложений:

🔘 Базовая навигация при использовании List
🔘 Динамическая программная маршрутизация
🔘 Глобальная маршрутизация в SwiftUI
🔘 Реализация навигации c использованием Environment Values.
🔘 Реализация навигации для TabView.

📖 А вот тут можно почитать про особенности NavigationPath, принципы работы и отличия от UINavigationController в UIKit.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Ещё один шаг вперёд

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

К такому можно отнести работу с криптографией, для кого-то многопоточку, а для кого-то сложную вёрстку.

Когда я делал приложение, то изначально преследовал две цели: во-первых, заюзать как можно больше фишек из новых версий iOS, во-вторых, что гораздо более прозаично — сделать инструмент, который будет интересно не только изучать, но и соревноваться.

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

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

Когда-то я читал любопытное мнение, что программист переходит на новый уровень, когда изучает второй язык. Мне оно кажется справедливым (и может пригодиться в неожиданные моменты).

Этот канал — способ поделиться самыми разными областями знаний мобильного сообщества.

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

Кроме подборок материалов по Metal, я буду делиться и своими опытами, пусть не всегда удачными или «правильными», но совершенно точно необычными.

Сделайте ещё один шаг вперёд уже сегодня, подпишитесь на бусти или в телеграме (код шейдера с видео уже там).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🥳 Создание файла из кода в буфере обмена в Xcode 16

Одна из наиболее приятных (если не топовых) фич в новом Xcode — новая возможность рефакторинга (и не только).

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

При этом Xcode ещё и сам подберёт и задаст подходящее название (например, как на гифке).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
2024/09/27 04:18:40
Back to Top
HTML Embed Code: