iOS Broadcast
3.31K subscribers
1.69K photos
83 videos
970 links
Подборка новостей и статей для iOS разработчиков.

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @android_broadcast_bot
Download Telegram
​​​​Xcode 14 beta practically confirms iPhone 14 Pro will get an AOD

Последняя бета-версия Xcode 14 подтверждает, что always-on display (AOD) будет в iPhone 14 Pro.

Технология требует низкой частоты обновления для экономии заряда батареи. Ожидается, что iPhone 14 Pro будут оснащены OLED дисплеем, который сможет менять частоту обновления от 120 Гц до 1 Гц.

Также с iOS 16 Apple может представить сторонние виджеты экрана блокировки под названием "Live Activities". Например, для просмотра счета спортивного матча или времени прибытия такси.

Preview SwiftUI в последней бета-версии Xcode 14 имеет новое поведение, которое позволяет разработчику увидеть, как будут выглядеть виджет, когда экран находится в режиме AOD.

#iOS16 #iPhone #неточно
👍9👎2
Как сохранить Enum в UserDefaults

В серии статей проблему делят на два случая и предлагают следующие решения:
1. Для перечислений с raw value все понятно и просто. Нужно лишь сохранять enum в UserDefaults по этому raw value.

2. Для перечислений с associated value нужно сделать так, чтобы перечисление соответствовало протоколу Codable, а затем делать encode/decode перед записью/чтением в UserDefaults. Сделать это можно через Data или Dictionary.

#swift
👍7👎3
🛠️ Что нового в Xcode 14? Некоторые моменты:

👉 Улучшения в редакторе кода. Например, много новых автокомплитов
👉 Автоматическое добавление import'ов заменено на ошибку Xcode с кнопкой Fix It
👉 Xcode может автоматически создать вариации на иконки приложения по размерам
👉 Интерактивные SwiftUI превью
👉 Фокус на скорости: линковка до 2 раз быстрее, сборка на 25%, тесты на 30%. Build Timeline для отображения распределения времени на сборку
👉 Более быстрое скачивание за счет отсутствия SDK для tvOS и watchOS

#Xcode #Updates
7👍4👎3
Custom Layout in SwiftUI

HStack, VStack и Grid в SwiftUI закрывают бОльшую часть потребностей разработки, но иногда бывает нужно создать кастомные Layout. В iOS 16 появилась такая возможность:
1. Создаем view, которая соответствует протоколу Layout
2. Реализуем два обязательных в протоколе метода:
- sizeThatFits(proposal:subviews:cache:), который возвращает размер созданной view
- placeSubviews(in:proposal:subviews:cache:), в котором мы определяем расположение элементов внутри контейнера

#iOS16 #swiftUI
👍6👎2
Что будет с iOS-разработкой в России

Яндекс Практикум взял интервью на волнующую тему, чтобы получить ответы на вопросы:
👉 Как развивалась Apple предыдущие пару лет?
👉 Что изменилось после блокировок со стороны Apple?
👉 Повлияет ли на iOS-разработку запрет отгрузки техники Apple?
👉 Какое будущее у iOS-разработки?

Ответ на последний вопрос получился неоднозначным. С одной стороны в России до сих пор остается большое количество iPhone, но большого роста ожидать не приходится и риски дальнейших санкций сохраняются. 
Надеемся на лучшее, но имеем запасные аэродромы 🛫

Что вы думаете на этот счет? Давайте обсуждать в комментариях

#iOS
👍5👎3
Как уменьшить потребление памяти при использовании UIImage

Использование памяти связано с размерами изображения, а не с размером файла, в связи с чем при отображении HD картинок можно столкнуться с Out of memory exception.

Дело в том, что для отображения изображения на экране, iOS сначала необходимо декодировать и распаковать изображение. Обычно 1 пиксель декодированного изображения занимает 4 байта памяти — 1 байт для красного, 1 байт для зеленого, 1 байт для синего и 1 байт для альфа-канала.

Например, картинка в разрешении 3648 на 5472 будет весить примерно 80 MB 🤯

Автор статьи рассказывает как правильно реализовать отображение картинки и что такое downsampling

#optimization
🔥9👎1
Подтвердилась дата презентации Apple - 7 сентября в 20:00 МСК

Писали раннее ожидаемые в сентябре обновления по информации Bloomberg

А на следующей октябрьской презентации ждем AirPods Pro второго поколения, новый iPad 10-го поколения, обновленный iPad Pro, Apple Silicon Mac Pro

Слоган сентябрьской презентации - Far out, "Далеко".
Как вы думаете, на что он намекает?

#apple #iPhone
🎉3🔥1
За гранью App Store, или Что нового открывает MDM и Supervised для B2B в iOS

В статье рассказывается, что такое Configuration profiles, чем MDM может быть полезен для B2B-приложений, а также о supervised- и BYOD-режимах

Применение Server-based MDM:
👉 Поддержка Lost mode. Может быть полезно, если сотрудник организации потеряет устройство
👉 Контроль новых установленных приложений
👉 Отслеживание установленных рутовых сертификатов
👉 Отслеживание роуминга — взаимодействия с GSM-сетями
👉 Разные политики безопасности и доступа к устройству, например политики Face-ID или Touch-ID, если они доступны, а также определять парольные политики
👉 Раскатывать корпоративные приложения
👉 Управлять обновлениями ОС

Если вам интересно больше узнать о MDM, то совсем недавно вышло интервью с разработчиком такой системы и ее особенностях в Android

#security
👍4👎1
Часто работает из отпуска четверть программистов, а иногда – каждый второй

Сервиса SuperJob провел опрос с целью узнать, часто ли россиянам приходится работать из отпуска. В опросе приняли участие 3000 граждан, имеющих постоянную работу и вот что выяснилось касательно программистов:

🌴 25% часто работают
🌴 47% иногда работают
🌴 8% ответили "нет, так как нет такой необходимости"
🌴 9% принципиально не работают во время отпуска

#оффтоп
🤩3👍1👎1
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
🔥 Touchlab сделал мобильное приложение для Droidcon NYC на Android и iOS, использую Compose для каждой из платформ 😮

Это первый production на Compose iOS, который сделали еще даже до появления dev preview Compose iOS

iPhone у меня нет чтобы оценить приложения, но может вы сможете когда оно опубликуется (на момент выхода поста проходит ревью)

👉 Исходники приложения на GitHub
🤯9👎2
Structs, Classes, and Actors in iOS Interviews

Если хотите освежить в памяти теорию по value и reference типам, вспомнить, что такое акторы, статическая и динамическая диспетчеризация и потокобезопасность, welcome читать полезную статью 😎

#swift
👍8👎2🔥1
Danger. Автоматизируем ревью на CI и пишем свой плагин

Лучше автоматизировать все, что можно автоматизировать. Поэтому проверку кодстайла и MR тоже делегируем 🤖
О том, как реализовать свой плагин для Danger на Kotlin DSL, читайте в статье

#tools
👍6👎3🔥3
iOS Screen Navigation Engine at Revolut

В статье описан кастомный подход к навигации - Revolut Flow Engine - автомат конечных состояний для обработки flow.

Используемые сущности:
👉 FlowState - описывает состояние и логику его изменения в зависимости от примененного к нему действия
👉 FlowStep - enum с этапами
👉 Flow - возвращает следующий FlowStep в зависимости от поданного FlowState
👉 FlowPerformer - воспроизводит этапы и их логику
👉 FlowRunner - вызывает все выше в одну строчку
👉 FlowEngine - единственный на все приложение, вызывает FlowPerformer и его апдейты

Данный подход к навигации позволяет вызывать flow без дублирования кода из любого места в приложении и легче реализовать test-driven development

#navigation
👍7👎1🤔1
Autocompletion for Swift Package Manager Commands (2 мин)

Делаем свою рутину удобнее, используя алиасы для команд SPM.
Добавить в ~/.zshrc plugins=(... swiftpm)

#SPM
👍4👎1
Few ways of improving your iOS APP performance in Swift (4 мин)

Советы по оптимизации iOS приложений:
👉 Optimization level в настройках проекта (-O для наибольшей производительности)
👉 CompilationMode: Whole Module увеличит время компиляции, но может улучшить перфоманс
👉 Уменьшаем использование динамической диспетчеризации (используем модификаторы final, private, fileprivate и internal)

#performance
2👍2👎1
Create Custom View Components in SwiftUI (4 мин)

В статье описаны способы создания кастомной view на SwiftUI:
👉 через структуру, которая соответствует протоколу View
👉 через Computed Property в extension к родительской view
👉 в функции, чтобы конфигурировать с помощью аргументов

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

#swiftUI
👍3👎2
Memento Pattern with SwiftUI

Memento - один из поведенческих дизайн паттернов банды четырёх. Какую проблему он решает?

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

В паттерне есть следующие роли:
👉 Caretaker ответственен за хранение стека состояний объекта. Он держит ссылку на originator и пользуется его возможностями
👉 Originator хранит текущее состояние объекта, может создать объект и воссоздать объект по данному состоянию
👉 Memento Object - и есть сам объект, который создает Originator и ссылку на который хранит caretaker.

#architecture
👍3👎21
Apple открыла подписку для разработчиков на сервис Xcode Cloud

C 30 августа 2022 года разработчики могут оформлять платные подписки на сервис Xcode Cloud. Цены начинаются с 50 долларов в месяц и доходят до 400. До декабря 2023 года действует бесплатный пробный план на 25 часов.

#xcode
👍4👎4
The Best and Fastest Ways to Install Xcode on your Mac

Известные способы установить Xcode:
👉 App Store — просто, но долго
👉 Apple’s Website — быстрее (рекомендовано автором)
👉 Через командную строку — еще быстрее, но сложнее
👉 Через Xcodes — лучшее решение?

А вы сталкивались с проблемами при установке Xcode?

#xcode
👍2