Хочется в эту пятницу немного с вами похолливарить на тему развития Swift как языка, для этого нашел стаью, которая неплохо описывает развитие Swift как языка и его текущие эволюционные проблемы.
История Swift
Управление языками программирования
Python: Доброжелательный пожизненный диктатор
Rust: Управляемый сообществом продукт с открытым исходным кодом
Kotlin: Поддержка корпорации проекта с открытым исходным кодом
Стимулы в управлении языками программирования
Swift: Пожизненный корпоративный диктатор
Приоритеты и задержки в Swift
Философия дизайна Криса Латтнера
Проблемы с управлением и сообществом
Технический долг и компиляторы
Apple и Swift
Надежда на будущее Swift
Лично я очень люблю Swift и радуюсь его развитию и внедрению всего нового, ведь не обязательно использовать все. Но и разделяю мнение что мы все дальше уходим от концепции простого языка с понятными конструкциями. Что вы думаете по этому поводу?
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👏14
Есть множество сценариев, в которых требуется изменять содержимое экрана или реагировать на попытку сделать скриншот экрана. Если в UIKit с этим все разобрались, то про SwiftUI многие забывают. В статье разбирается SwiftUI модификатор, интегрированный с UIKit, для скрытия контента во время создания снимков экрана
hideWithScreenshot
будет создан на основе UITextField
с isSecureTextEntry
для скрытия содержимогоPlease open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
iOS Broadcast
Очень интересный пример, почему Combine актуален даже в мире Swift Concurrency. При миграции на Swift 6 включаются проверки на потенциальные проблемы с многопоточностью и работа с NotificationCenter требует обеспечения явной потокобезопасности. Эту ошибку легко исправить с Combine, интеграция с NotificationCenter у которого давно реализована:
🔵 Объединяем 3 паблишера в один поток данных
🔵 Явно указываем что хотим получать ивенты в главном потоке
🔵 Не забываем про то что assign захватывает сильной ссылкой и либо добавляем
Publishers.MergeMany
receive(on: DispatchQueue.main)
[weak self]
либо вспомогательную функцию weakAssign
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍1
Опубликовали записи с конференции 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