Forwarded from Android Broadcast (Кирилл Розов)
GitHub больше не основывается на Git, а начинает фокусироваться на Copliot технологиях (заявление тут). Это не значит что функционал с репами уйдёт, просто меняется приоритет компании, что уже можно было наблюдать весь год. GitHub Copilot Chat станет доступен всем в декабре 2023 и будет доступен на сайте и мобильных приложениях. Конечно подписку придется оформлять!
Что еще интересного в анонсе:
👉 Представили GitHub Copilot Enterprise - Copilot, который персонализируется под бизнес (39$ за пользователя в месяц)
👉 Безопасность GitHub тоже прокачали с AI (подробности тут)
👉 GitHub Copilot в рамках партнерской программы начнет интеграцию с другими сервисами для расширения знаний ассиcтента
#github #copilot #tooling
Что еще интересного в анонсе:
👉 Представили GitHub Copilot Enterprise - Copilot, который персонализируется под бизнес (39$ за пользователя в месяц)
👉 Безопасность GitHub тоже прокачали с AI (подробности тут)
👉 GitHub Copilot в рамках партнерской программы начнет интеграцию с другими сервисами для расширения знаний ассиcтента
#github #copilot #tooling
👎12👍5
Выходные - идеальное время для пет проекта. И если вы давно мечтали облегчить свою жизнь при помощи CLI утилиты, в блоге Swift появился туториал:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9👎3
Еще один доклад с Swift Connection 2023 которым захотелось поделиться после просмотра. Как сделать мобильное приложение доступным без интернета, если сеть ему нужна. Детально рассматриваются проблемы, с которыми сталкиваются разработчики подобных приложений и способы их решений.
👉 Отличие кеша от персистентного реляционного хранилища
👉 Сохранение консистентности состояния приложения
👉 Способы мержить конфликты незаметно для пользователя
👉 CRDT - Бесконфликтные реплицированные типы данных
Очень хорошо разложил по полочкам как сложно сделать работающее в фоне приложение и почему вам это скорее всего не нужно, с чем я абсолютно согласен 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👎1
Очень полезное нововведение в Xcode 15.1, позволяющее удобно отловить лишнее место перерисовки SwiftUI View. Статья показалась мне на столько полезной, что сделал перевод. Уделите 6 минут, будет полезно!
👉 Что такое обновляемый SwiftUI экран
👉 Проблема Массивных SwiftUI View
👉 Использование LLDB для отладки изменений
👉 Использование _logChanges в Xcode 15.1
👉 Решаем проблемы с перерисовкой в SwiftUI
👉 Отладка изменений с помощью кода. Что такое
@self
и @identity
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15👎1
Forwarded from AvitoTech
Делимся материалами с Avito iOS meetup #10 🕊️
📺 Async / Await. Лучшие практики, советы и особенности
Максим Сурков (МТС) — рассмотрит structured concurrency в Swift, поговорит о async/await, actors, tasks и проведёт аналогии с уже существующими инструментами для работы с многопоточностью
📺 SwiftUI — уже пора?
Тимур Долотказин (Авито) расскажет про свой опыт перехода на новый (старый) фреймворк, подводные камни и выводы, к которым он пришёл.
📺 Гармония статики и динамики: погружаемся в mergeable libraries
Александр Сычев (Тинькофф Страхование) о новом решении Apple – mergeable libraries, он рассмотрит их внутреннее устройство и разберёт, как можно интегрировать их в свои iOS-проекты.
Ссылка на наш плейлист.
Фотографии с мероприятия лежат в альбоме Вконтакте🔵
#iOS_avitotech #avitoiOSmeetup
Максим Сурков (МТС) — рассмотрит structured concurrency в Swift, поговорит о async/await, actors, tasks и проведёт аналогии с уже существующими инструментами для работы с многопоточностью
Тимур Долотказин (Авито) расскажет про свой опыт перехода на новый (старый) фреймворк, подводные камни и выводы, к которым он пришёл.
Александр Сычев (Тинькофф Страхование) о новом решении Apple – mergeable libraries, он рассмотрит их внутреннее устройство и разберёт, как можно интегрировать их в свои iOS-проекты.
Ссылка на наш плейлист.
Фотографии с мероприятия лежат в альбоме Вконтакте
#iOS_avitotech #avitoiOSmeetup
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13👎1
В исходниках макросов обнаружил атрибут
@_marker
который, как оказалось, служит для тех случаев, когда код имеет значение для Compile-time safety, проверки типов, но не несет пользы в runtime. Этот Атрибут, по мнению Apple, используется в Sendable 😀. Он может пригодиться и нам, для тех случаев когда протокол используется только в определенной конфигурации
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👎1
🔥 BIGO Ads появилась в мобильной медиации Яндекса
Глобальная рекламная сеть стала 13-й среди доступных при подключении мобильной медиации Яндекса или в рамках Простой монетизации.
Если в вашем приложении есть реклама, явно нужно добавить ее в список для аукциона, это даст прирост стоимости показа за счет конкуренции среди рекламодателей.
Поддерживаются стандартные баннеры, полноэкранная реклама и Rewarded Ads (те самые бонусные жизни за просмотр рекламы). Особенный прирост даст, если вашим приложением будут пользоваться на Ближнем Востоке, в России и в странах Южной и Юго-Восточной Азии.
Подключить BIGO Ads вы можете уже сейчас или отдать настройку экспертам Простой монетизации. А вам останется получить оплату одним платежом.
#ads #яндекс
Глобальная рекламная сеть стала 13-й среди доступных при подключении мобильной медиации Яндекса или в рамках Простой монетизации.
Если в вашем приложении есть реклама, явно нужно добавить ее в список для аукциона, это даст прирост стоимости показа за счет конкуренции среди рекламодателей.
Поддерживаются стандартные баннеры, полноэкранная реклама и Rewarded Ads (те самые бонусные жизни за просмотр рекламы). Особенный прирост даст, если вашим приложением будут пользоваться на Ближнем Востоке, в России и в странах Южной и Юго-Восточной Азии.
Подключить BIGO Ads вы можете уже сейчас или отдать настройку экспертам Простой монетизации. А вам останется получить оплату одним платежом.
#ads #яндекс
👎2
Apple опубликовала документацию по API ManagedAppDistribution, подтверждающую, что он в первую очередь предназначен как решение MDM (mobile device management). Это приоткрывает нам завесу тайны как будет устроен Side-loading сторонних приложений в обход
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9👎1
Сколько раз вы попадали в ступор при разборе крашей от пользователей? Действительно, Swift предоставляет гораздо меньше контекста в стектрейсе чем доступно у коллег c Android + Kotlin. С новым релизом Swift 5.9 все изменится! Бектрейсер имеет ряд полезных функций, включая:
👉 Обработка сбоев внепроцессно
👉 Умное встроенное отображение исходного кода программы
👉 Возможность приостановки и проверки сбойной программы или даже вызова отладчика для отладки
👉 Поддержка Swift Concurrency
👉 Цветное выделение для удобочитаемости
👉 Расширенные параметры настройки (документация)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11👎1
Forwarded from Android Broadcast (Кирилл Broadcast)
Apple интегрирует в iMessage поддержку RCS (Rich Communication Services) - обмен сообщениями с богатыми возможностями по сравнению с SMS/MMS. Например, появится статус о прочтение, индикатор набора сообщения и др.
Apple был бы не Apple. Синим цветом все также будут отмечаться сообщения для iMessage, а все остальные зелёным.
Достойных приверженцев компании отмечают отдельным цветом, но это и причина для булинга подростков со стороны сверстников из-за отсутствия iPhone и продвижения техники компании. Бизнес такое бизнес и лицемерие: на презентациях забота обо всем и всех, а в реале только прибыль!
#apple #rcs
Apple был бы не Apple. Синим цветом все также будут отмечаться сообщения для iMessage, а все остальные зелёным.
Достойных приверженцев компании отмечают отдельным цветом, но это и причина для булинга подростков со стороны сверстников из-за отсутствия iPhone и продвижения техники компании. Бизнес такое бизнес и лицемерие: на презентациях забота обо всем и всех, а в реале только прибыль!
#apple #rcs
👍7👎7👏1
Пару месяцев назад команда фреймворка XCTest поделилась с сообществом новой опенсорсной Swift библиотекой на основе макросов с взгядом на будущее тестирования Swift. Я уже рассказывал про swift-testing и, как указано в ее документации, она предназначена для проверки концепции нового API тестирования для Swift, основанного на макросах и интегрированного в Swift так же, как и XCTest.
Библиотека предназначена для получения обратной связи от нас свами и скоро заменит XCTest. В статье автор делится своим опытом интеграции на основе самых базовых примеров. Если заинтересовались, можно так же посмотреть гайд по предполагаемой миграции с XCTest от Apple. Если у вас есть предложения, еще не поздно высказать свое мнение на форуме Swift
@Suite
struct WifiParserTests {
func requiredFields() throws {
let wifi = "WIFI:S:wifi;P:password;;"
let network = try sut.parse(wifi: wifi)
#expect(network.hidden == nil)
#expect(network.security == nil)
#expect(network.ssid == "wifi")
#expect(network.password == "password")
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👎1
Forwarded from Android Broadcast (Кирилл Розов)
📺 Tracer — альтернатива Crashlytics. Другой взгляд на аналитику ошибок в приложениях (43 мин)
Tracer – система аналитики ошибок от команды OK.Tech с поддержкой Android и iOS. Эту систему используют почти все крупные бизнес-юниты VK: Одноклассники, ВКонтакте, Дзен, Юла, Почта, RuStore. По мнению команды – получилось хорошо, поэтому решили выйти в public и поделиться сервисом со всеми, он бесплатный.
Кирилл Попов рассказал про отличия Tracer от Crashlytics в части работы с крэшами и ANR. Провел демонстрацию других инструментов команды: профайлеров, мониторинга утечек памяти и мониторинга утечек файлов на диске. Также Кирилл рассказал как это всё реализовано на бэкенде.
#tooling
Tracer – система аналитики ошибок от команды OK.Tech с поддержкой Android и iOS. Эту систему используют почти все крупные бизнес-юниты VK: Одноклассники, ВКонтакте, Дзен, Юла, Почта, RuStore. По мнению команды – получилось хорошо, поэтому решили выйти в public и поделиться сервисом со всеми, он бесплатный.
Кирилл Попов рассказал про отличия Tracer от Crashlytics в части работы с крэшами и ANR. Провел демонстрацию других инструментов команды: профайлеров, мониторинга утечек памяти и мониторинга утечек файлов на диске. Также Кирилл рассказал как это всё реализовано на бэкенде.
#tooling
👍2👎1
Если вам тоже нравится изучать что-то новое через примеры, то пришло время разобраться с Шейдерами в SwiftUI!
Inferno — это набор шейдеров для SwiftUI. Важно что эти шейдеры разработаны так, чтобы их было легко читать и понимать даже новичкам, поэтому вы обнаружите, что каждая строка кода перефразирована на простом английском языке, а также общее объяснение используемого алгоритма в верхней части каждого файла.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13👎1
Протоколы не так просты как кажутся. Статья в деталях рассматривает путаницу, которая может возникать при работе с протоколами в Swift:
👉 Динамическая диспатчеризация с протоколами
👉 Протоколы с типами или дженерики
👉 Протоколы вводящие ограничения при компиляции
👉 Ассоциированые типы
👉 Кодогенерация реализации протоколов
Понимание поведения протоколов во время компиляции и исполнения делает разработку гораздо более приятной и предсказуемой, а использование протоколов на стадии архитектуры позволяет ввести четкие границы и снизить когнитивную нагрузку.
Ну и для прохождения собеседования полезно 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👎1
Классный гайд для тех кто только задумывается о том, как тестировать Swift Concurrency, ведь код с async/await требует другого подхода к написанию тестов
👉Тестирование асинхронного кода
👉Unit тестирование UI логики используя
@MainActor
👉Предотвращение дедлока в XCTestExpectation
👉Unit тестирование конкурентного кода через серийное исполнение
Если же вы столкнулись с более глубокими концептуальными проблемами в тестировании Swift Concurrency, очень советую посмотреть секци про тестирование из докладов:
Из них можно узнать, почему
await Task.yield()
не самый элегантный способ решить проблему и как без него выстроить тестирование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👎1
Анимации были киллер фичей SwiftUI с момента его появления, мы могли быстро создавать плавную анимацию в SwiftUI, единственным недостатком было управление анимацией. Всякий раз, когда нам нужно запустить многоэтапную анимацию или ограничить анимацию определенной частью иерархии View. В статье разбирается актуальный подход к анимациям в SwiftUI:
👉Использование модификатора animation
👉Ограничение скоупа анимации при помощи
ViewBuilder
замыкания👉Транзакционные анимации с ограничением скоупа
К сожалению, как обычно со SwiftUI, новый подход не имеет бекпорта на старые версии iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👎1
В статье в деталях рассматривается способ добиться того же поведения с помощью модификатора
.frame
.
Идея не новая и уже активно применяется для оптимизации нагруженных элементов в коллекциях, как один из пунктов оптимизации скрола. Я уверен что это стоит знать, но не стоит применять до возникновения необходимости, т.к оптимальный перформанс будет при ручном лейауте фреймами, а SwiftUI нужен для 99% остальных задач, где нужна не максимальная оптимизация, а читаемость и скорость разработки. На мой взгляд, Spacer гораздо более понятный и предсказуемый компонет, не просто так он появился в первой версии SwiftUIPlease open Telegram to view this post
VIEW IN TELEGRAM
👍10👎1
Очень полезная сессия, которую точно стоит посмотреть! Live Activities появились начиная с версии IOS 16.1 на всех моделях iPhone, но популярность начинают обретать только сейчас. На сессии рассматривается на примерах, как лучше всего создавать Live Activities, которые отображаются:
👉 На экране блокировки
👉 В режиме ожидания (StandBy)
👉 На динамическом острове (Dynamic Island)
Особенно это полезно для разработчиков которые ходят, как я, не с iPhone Pro серии и не имеют реального опыта взаимодействия с Dynamic Island и StandBy режимом
#wwdc23
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7👎1