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

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @android_broadcast_bot
Download Telegram
Навигация в Swift UI: что изменилось с появлением iOS 16

Разбор улучшений API навигации, которые были представлены в iOS 16:
👉 NavigationView стал deprecated
👉 NavigationLink пополнился новыми конструкторами
👉 Больше возможностей в NavigationPath

#navigation #swiftui #ios16
👎4
Mobile App Refactoring Initiative by Slack (8 мин)

В статье резюмируют зачем, как и чего удалость достичь в результате рефакторинга Slack для Android и iOS
👍6👎5👏1
What is a RunLoop Anyway? Swift and iOS Guide (6 мин)

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

#swift #concurrency
👍7👎3
Слухи от Bloomberg об осенней презентации Apple

👉 iPhone 14 Pro изменит вырез "челку", получит более мощный чип и обновленную камеру
👉 5,4-дюймовый iPhone 14 mini будет заменен 6,7-дюймовой моделью
👉 Новые модели iPhone 14 сохранят чип A15 и вырез в дисплее
👉 Apple Watch Series 8 получит датчик температуры тела, функции для женского здоровья
👉 Возможно появление Apple Watch для спорта и Apple Watch SE

В сентябре планируется выход, iOS 16 и watchOS 9, а в октябре MacOS Ventura вместе с обновленной iPadOS
Как сообщает Bloomberg, Apple работает над обновленным бюджетным iPad с чипом A14 и портом USB-C, а также над новыми моделями iPad Pro с чипами M2, которые выйдут позже в этом году. Компания планирует выпустить новые Mac Mini и MacBook Pro с процессорами на базе M2.

#apple #event #devices
👍8👎3🔥2
App Store Connect API SDK в Swift: создание инструментов разработчика

App Store Connect API представляет собой набор эндпойнтов для:
👉 получения метаданных приложений
👉 управления пользователями в TestFlight
👉 загрузки отчетов о продажах 
👉 просмотра отзывов
👉 работы со сборками XcodeCloud

В статье показан пример создания приложения со списком ваших приложений на SwiftUI 🧠

#AppStore
👍4👎3
​​​​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