Опубликовали записи с конференции SwiftConnection, мой топ 8:
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍5❤1
Замеряем производительность iOS
В прошлом году появилось новое приложение Threads, которое стало самым быстрорастущим в истории, набрав 100 миллионов пользователей за пять дней. Сегодня число пользователей превышает 200 миллионов в месяц. Команда разработкт выросла с небольшой группы опытных инженеров до более чем сотни разработчиков. Перед командой стояла непростая задача, создать и сохранить ощущение быстродействия приложения для наилучшего первого пользовательского опыта. Команда выделила 4 метрики производительности, над которыми они сфокусировались:
🟢 FIRE. Задержка отрисовки изображений. Он показывает, сколько людей не смогли загрузить картинку
🟢 TTNC. Время до завершения запроса. Показывает, как быстро загружается новая лента
🟢 cPSR. Он показывает, как часто людям удаётся загрузить картинку, текст или видео
🟢 Задержка навигации. Это важно для удобства пользователей. Чтобы её измерить, они провели отдельный тест.
Люблю читать статьи от бигтеха, в них часто есть практики которые привычны для корпорации но не очевидны рядовым разработчикам. Мне показались эти метрики важными для формирования пользовательского опыта, но мало кто думает о них при запуске приложения стартапа новой соц. сети
В прошлом году появилось новое приложение Threads, которое стало самым быстрорастущим в истории, набрав 100 миллионов пользователей за пять дней. Сегодня число пользователей превышает 200 миллионов в месяц. Команда разработкт выросла с небольшой группы опытных инженеров до более чем сотни разработчиков. Перед командой стояла непростая задача, создать и сохранить ощущение быстродействия приложения для наилучшего первого пользовательского опыта. Команда выделила 4 метрики производительности, над которыми они сфокусировались:
Люблю читать статьи от бигтеха, в них часто есть практики которые привычны для корпорации но не очевидны рядовым разработчикам. Мне показались эти метрики важными для формирования пользовательского опыта, но мало кто думает о них при запуске приложения стартапа новой соц. сети
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Очередная пятница, очередная статья "на подумать". Ситуация: продакт просит внедрить функции X, Y и Z в систему. Команда самоорганизуется и реализует проект. В итоге попадаем в ситуацию:
Чья вина такого исхода?
Причина, по которой произошел описанный выше сценарий "программист не виноват", заключается в том, что инженеры слишком сосредоточились на поставленной перед ними непосредственной задаче, в то время как им следовало бы сосредоточиться на проблеме, стоящей за этой задачей, задавая себе такие вопросы, как:
На мой взгляд, инженер любого уровня должен задаваться вопросом, а зачем я делаю эту задачу. Техническое совершенство кода не дает хороший пользовательский опыт, а продакт не всегда знает как можно решить ту или иную задачу. Я убежден что нужно подключаться к проработке задач и подходить к своей работе осознанно. Или это не проблема инженера?)
Please open Telegram to view this post
VIEW IN TELEGRAM
Swiftrocks
Focus not on the task, but on the problem behind the task
Being able to look at the bigger picture is critical when writing code. In this post, we'll take a brief look at what this means and how you can do it.
👍5
Реализуем UICollectionViewFlowLayout в SwiftUI
Гибкое размещение элементов в зависимости от их размера и дисплея не тривиальная задача, с которой мы встречаемся довольно часто. В UIKit это реализовывалось в UICollectionView через FlowLayout. В SwiftUI в
Гибкое размещение элементов в зависимости от их размера и дисплея не тривиальная задача, с которой мы встречаемся довольно часто. В UIKit это реализовывалось в UICollectionView через FlowLayout. В SwiftUI в
iOS 16
появился протокол Layout
. В статье детально разбирается реализация аналогичного Layout
для тех у кого минимальный таргет ниже iOS 18
. Для тех у кого выше, можно сделать еще проще. Так же в статье рассматриваются вопросы необходимости оптимизации производительности👍2
Ежегодно, App Store Awards отмечаются самые лучшие и популярные приложения в App Store, а также их разработчики. 45 финалистов в 12 различных категориях.
На мой взгляд, AppStore "фичиринг" и особенно награды это неформальный способ коммуникации Apple с сообществом о том, что ценится в приложении. Что я заметил:
Есть исключения, но 2/3 критериев всегда удовлетворены.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Переходы через зум
Мне всегда нравились переходы через зум, это было частью магии iOS когда она называлась еще iPhoneOS, но с iOS 18 в SwiftUI сделать такой переход стало значительно проще.
🟢 Переходы с масштабированием доступны для навигации push/pop и полноэкранных переходов
🟢 В SwiftUI переходы между масштабами легко реализовать с помощью модификаторов navigationTransition и matchedTransitionSource
🟢 В UIKit можно настроить исходное представление и View назначения с помощью свойства preferredTransition
🟢 Исходное представление может быть любым, но должно соответствовать View, который запускает переход
🟢 Жесты, такие как сжатие, прокрутка по вертикали и горизонтали, доступны для интерактивного изменения масштаба
Материалы:
🟣 WWDC24 переходы через зум в SwiftUI и UIKit (14 мин.)
🟣 Официальный туториал Apple по реализации переходов через зум в UIKit
Мне всегда нравились переходы через зум, это было частью магии iOS когда она называлась еще iPhoneOS, но с iOS 18 в SwiftUI сделать такой переход стало значительно проще.
Материалы:
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥1
Параметризованные тесты в Swift помогают проверять функции с различными входными данными. Все рассматривается на примере теста для разделения измерений частоты сердечных сокращений на зоны в приложении CardioBot:
@Test
позволяет передавать параметры тестовым функциямPlease open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🥽 RealityKit. Симуляция стекла через прозрачные объекты
На старте карьеры, после получения навыков iOS разработки, я заинтересовался разработкой игр. Собрал несколько демок в Unity, реализовал проект с одногрупниками по замене старого тренажера современной игрой и потерял интерес. Я понял что в разработке игр нет никакой магии, но много костылей. Vision Pro возродил интерес к этой области. Просто посмотрите, как это красиво!
🔵 Рендеринг прозрачных объектов в 3D-системах сложен. Стекло является наиболее распространенным прозрачным предметом. Эту задачу обычно решают через прозрачные объекты. В этом подходов множество нюансов
🔵 При низкой металлизации - стекло потеряет отражения, при высокой - станет слишком темным.
🔵 Непрозрачность стекла: слишком высокая - стекло будет выглядеть твердым и потеряет прозрачность, слишком низкая - стекло станет слишком прозрачным и потеряет отражения
🔵 Стеклянные предметы, созданные таким образом, выглядят искусственно.
🔵 Имитация преломления стекла с помощью излучения окружающей среды - лучший подход.
🔵 Преломление фона можно смоделировать, контролируя нормали отражения.
На старте карьеры, после получения навыков iOS разработки, я заинтересовался разработкой игр. Собрал несколько демок в Unity, реализовал проект с одногрупниками по замене старого тренажера современной игрой и потерял интерес. Я понял что в разработке игр нет никакой магии, но много костылей. Vision Pro возродил интерес к этой области. Просто посмотрите, как это красиво!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2