iOS Такой 🍏
3.39K subscribers
420 photos
10 videos
2 files
301 links
IT | Подкасты | Apple | iOS Материалы | Swift

Реклама: @new_repository

Тёплый чат: https://t.me/+tzWmsOMTPpFjMzAy

Бусти: boosty.to/dimov_ios
Download Telegram
Разговоры про Apple

Друзья, всем привет!
Сегодня у нас лайтовый эфир на поговорить.

А побеседуем мы о новинках, похоливарим насчет ИИ и порассуждаем о высоком. Приятного просмотра!

#digest
Мастерство работы в SwiftUI

Инсайдерские советы и приемы для оптимизации производительности приложений.
SwiftUI постепенно набирает силу и становится предпочтительным выбором для создания приложений. В этом посте мы рассмотрим важные моменты, которые помогут вам повысить производительность и эффективность разработки приложений.

Содержание статьи

- Redux или MVVM?
- Используйте
@StateObject и @ObservableObject
- Создавайте
@Published переменные с осторожностью
- Разбивайте содержимое body на более мелкие части для минимизации времени компиляции
- Предпочтите
@State для анимации вместо @Published
- Объявляйте объекты Observable в определенном месте, чтобы избежать ненужного обновления UI
- Найдите, какое изменение данных вызывает обновление представления SwiftUI
- Используйте LazyHStack и LazyVStack, если у вас длинный список
- Есть ли что-нибудь похожее на viewDidLoad()?
- Используйте UIKit компоненты непосредственно в SwiftUI
- Модификатор с условиями
- Избегайте совместного использования .padding и .frame
- Используйте GeometryReader с умом
- Эпизодическое использование AnyView
- Обязательное используйте ID в Foreach и List
- Предпочитайте использовать текст, а не метку
- Используйте Group для возврата нескольких экземпляров представления
- Используйте .fixedSize(), чтобы указать, что фрейм не изменяется
- Напутственные слова


#digest
😱 AnyView — зло SwiftUI

Автор статьи провел несколько тестов, чтобы сравнить скорость отрисовки и использование памяти при использовании AnyView и других альтернативных подходов.

Он пришел к выводу, что AnyView может существенно замедлять работу SwiftUI, особенно при большом количестве элементов в иерархии представлений. Также дал несколько советов, как избежать AnyView и использовать более эффективные способы работы с разными типами представлений.

#digest
SwiftUI Interview Questions.pdf
27.8 KB
Вопросы по SUI

Если вы готовитесь к собеседованию на SwiftUI проект или просто работаете с SwiftUI, но хотите расширить свои знания, вот список хороших вопросов, которые помогут вам подготовиться

#digest #собеседование
Автор:
@eleev
Как снять логи при краше мобильного приложения?

При тестировании приложений в большинстве случаев, мы сталкиваемся со сбоем приложения. И в таких ситуациях очень важно уметь собирать логи с устройства, чтобы максимально быстро пофиксить ошибки.

Подробная статья как снимать логи крешей приложений разными способами в iOS/Android.

Как получить логи с iOS?
- Непосредственно на самом девайсе.
- Через Xcode.

#digest
Как массив хранит ссылки? Сильно или слабо?

Правильный ответ — сильно.
А как сделать слабо? Использовать NSPointerArray

#digest
This media is not supported in your browser
VIEW IN TELEGRAM
Конфигурация поведения отскока ScrollView в SwiftUI

Конфигурация поведения отскока ScrollView позволяет определить, отскакивает ли прокручиваемое представление при достижении конца его содержимого. Независимо от того, идет ли речь о горизонтальной или вертикальной прокрутке списка, вы можете настроить оба направления с помощью модификаторов вида в SwiftUI.

В данной статье приводятся различные примеры кода и подробно рассказывается как достичь такого состояния.

#digest
🌐Как выглядит установка альтернативного магазина

• Возможно в будущем добавят RuStore и у всех будет доступ ко всем удалённым приложениям.
Ожидаемо
Forwarded from Воробей
Альтернативные сторы умерли сразу как их анонсировали. Их тупо невыгодно делать:

– Владелец платит за каждую установку магазина 0.5€ в год
– У разработчика бесплатно 1 млн установок, но дальше платит за каждую установку приложения 0.5€ в год
Как через Push-уведомления на iPhone утекают данные пользователей

Исследователь безопасности Томми Мыск (Tommy Mysk) продемонстрировал, как push-уведомления на iPhone могут использоваться популярными приложениями для скрытой отправки данных о пользователе.

В новом ролике, рассказывающем об этой практике, Мыск рассказал о том, как некоторые приложения для iOS используют функцию, представленную в iOS 10, которая позволяет приложениям настраивать push-уведомления. Эта функция, изначально предназначенная для того, чтобы приложения могли обогащать уведомления дополнительным контентом или расшифровывать зашифрованные сообщения, похоже, была использована некоторыми разработчиками для других действий. Согласно выводам Мыска, различные популярные приложения, включая TikTok, Facebook, Twitter, LinkedIn и Bing, используют короткое время фонового исполнения, предоставленное для такой настройки уведомлений, для отправки аналитической информации.

#digest
Что лучше: бесконечная прокрутка, пагинация или дополнительная загрузка?

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

А что лучше?
Как обычно, всё зависит от задач:
- если нужна структурность, очевидная навигация и разбивка на одинаковые порции — то пагинация;
- если нужно максимально долго удержать читателя на сайте — то бесконечная прокрутка (именно так делают все соцсети);
- если хочется бесконечности, но нужен подвал (или нужно измерить, насколько глубоко читатель хочет изучить сайт) — то дополнительная загрузка.
Эффекты перехода с прокруткой в iOS 17 в SwiftUI

Apple добавила в iOS 17 эффекты перехода прокрутки, которые позволяют анимировать поведение объектов при их появлении в поле зрения и за его пределами. Существует ряд атрибутов, которые можно изменять, таких как размер, видимость, а также поворот объекта.

Небольшая статья с примерами кода и различной реализцией. Так же в статье вы найдете исходный код.
⚡️В России создадут магазин приложений для iPhone

• Для того, чтобы NashStore заработал на территории РФ, вероятно, нужно будет выбрать в качестве региона одну из стран Европы.
Использование Combine с SwiftUI для управления состояниями

Combine — это функциональный фреймворк реактивного программирования от Apple. Он предоставляет декларативный Swift API для длящейся обработки значений. Эти значения могут представлять собой события пользовательского интерфейса, сетевые ответы, события по расписанию и многие другие виды асинхронных данных.

При использовании со SwiftUI Combine помогает писать чистый, реактивный код, реагирующий на изменения состояния во времени. В основе Combine лежат издатели и подписчики: издатели издают события, а подписчики прослушивают эти события.

Примечание: В этой статье используется жестко заданный список шуток. В реальном приложении вы замените его сетевым кодом для получения шуток с сервера. Много кода, примеров.
Сколько нужно времени, чтобы научиться печатать вслепую?

И как это сделать. Несколько советов от нового канала по ios-разработке

🕶️ Печать вслепую даёт +10 к харизме программиста.
🧠 Кроме того, она позволяет меньше отвлекаться от экрана, поэтому даёт еще +10 к интеллекту.

Большинство людей печатает не глядя на клавиатуру, нативно научившись этому по ходу жизни. В принципе этого хватает для 80% случаев, однако, когда работаешь с цифрами, скобками и специальными символами, приходиться отвлекаться и искать их.

Короче, мысль вы поняли. Нам с вами musthave научится печатать вслепую.

Сколько нужно времени, чтобы научиться?

Расскажу про себя, примерно за 7-8 месяцев я не отвлекаюсь на клавиатуру, я знаю, где расположены символы, однако печатаю пока довольно медленно: 100-125 знаков в минуту и делаю 5-10% ошибок. Но прогресс ощущается, поэтому скажу так:

за год, страясь, но без особого напряга - научитесь. Будете довольны точно 💯

А в следующем посте топ 5 советов для обучения слепой печати
Как устроен @State в SwiftUI

Может показаться, что @State или @Binding — это какие-то ключевые слова, которые появились в языке специально, чтобы поддерживать SwiftUI. Но сами по себе эти @Штуки не являются частью языка, ею является property wrapper.

Эта конструкция используется не часто, появилась только в Swift 5.1. Поэтому тем, кто подзабыл, подробно можно почитать вот тут.

Если кратко, то property wrapper’ы позволяют разделить код на 2 части: одна определяет само свойство, другая — как это свойство хранится.

Сегодня предлагаю вместе разобраться в том, как он устроен.
🍏Apple решила смягчить свою политику в отношении CarPlay

• Теперь автопроизводители смогут получать лицензию на CarPlay у Apple и адаптировать её под свой стиль и потребности.
🍏У iPhone 16 Pro появятся два новых цвета: Desert Titanium и Titanium Gray
Навигация в SwiftUI

Навигация, пожалуй, одна из сложнейших частей SwiftUI. Набор инструментов сейчас сильно ограничен и содержит множество проблем – таких, как крэши и неопределенное поведение.

Спикер рассмотрел нюансы и внутренности текущего API, а также подход к работе с ним, включая UIKit-расширения для недостающих методов.
HeadHunter представил рейтинг лучших работодателей

HeadHunter представил ежегодный «Рейтинг работодателей России». По итогам 2023 года первую строчку среди самых популярных у соискателей компаний занял Альфа-банк.

Самые популярные для работников компании в области «IT и интернет»:

Яндекс (2 место в общем рейтинге)
Ozon (7)
VK (8)
Тинькофф (13)
2ГИС (18)


В рейтинге «Самых высокоразвитых HR процессов» на первом месте Группа НЛМК. Лучшие HR-процессы в области IT:

VK (5)
Appfox (16)
Автомакон (28)
Лига Ставок (29)
КРОК (40)
Skyeng (50)