uk
Feedback
iOS Dev

iOS Dev

Відкрити в Telegram

👨‍💻Автор: Виктор Грушевский (@Viktorianec) ⚒️ База: https://boosty.to/ios_dev | 🤖 @iOSIQBot | https://iosiq.ru 🍏Канал об iOS-разработке, алгоритмах и архитектурах ⭐️ Подготовка к собесам ⭐️ Код. Много кода. #ios #mobile #swift

Показати більше
7 879
Підписники
+124 години
-17 днів
-5130 день
Архів дописів
iOS Dev
7 879
И ещё одно нововведение (более приятное) в App Store Connect Будет полезным для инди-разработчиков (и для команд маркетинга/о
И ещё одно нововведение (более приятное) в App Store Connect Будет полезным для инди-разработчиков (и для команд маркетинга/оптимизации и так далее). В sales и trends всегда была опция для статистики по приложениям за все время (lifetime), а вот в аналитике добавили только сегодня. Можно отследить всё количество показов по приложениям, выручку, лайф-тайм краши и так далее. Полезно для составления отчётов и в целом любопытно посмотреть на то, какой путь проделало то или иное приложение. 🤩 Посмотреть можно на вкладке аналитики в списке пресетов. 😃 iOS Dev

iOS Dev
7 879
ℹ️ Новое требование к обновлениям приложений в ЕС Начиная с сегодняшнего дня, для отправки обновлений приложений в App Store на территории Европейского Союза (ЕС) владельцам аккаунтов или администраторам программы Apple Developer Program необходимо ввести статус трейдера в App Store Connect. Если вы являетесь трейдером, вам нужно будет предоставить информацию о себе, прежде чем вы сможете отправить свое приложение на проверку. Начиная с 17 февраля 2025 года, приложения без статуса трейдера будут удаляться из App Store в ЕС до тех пор, пока статус трейдера не будет предоставлен и проверен в целях соблюдения Закона о цифровых услугах. Несколько рекомендаций по заполнению статуса - здесь. 😃 iOS Dev

iOS Dev
7 879
Что вы используете для хранения данных на клиенте (можно несколько вариантов)
Anonymous voting

iOS Dev
7 879
Что вы используете для хранения данных на клиенте (можно выбрать несколько)
Anonymous voting

iOS Dev
7 879
Отрисовка графики на Apple Vision с помощью Metal Rendering API Материалов по Apple Vision Pro очень мало (а приложений чуть
Отрисовка графики на Apple Vision с помощью Metal Rendering API Материалов по Apple Vision Pro очень мало (а приложений чуть больше, но если вы что-то делали, поделитесь в комментариях, очень интересно). Когда дело доходит до рендеринга, большинство разработчиков выбирают уже известные игровые движки вроде Unity или высокоуровневые API Apple (чекайте RealityKit). Однако есть и другой вариант, который был доступен с самого начала: создание собственного движка рендеринга с помощью Metal API. Несмотря на сложность, такой подход позволяет получить полный контроль над конвейером рендеринга, вплоть до каждого байта. Нашёл любопытную статью (которую сохранил и себе для будущих экспериментов), в которой рассматривается множество интересных моментов: 📖 Создание и настройка LayerRenderer. 📖 Vertex Amplification (и описание примеров с Vertex/Fragment шейдерами). 📖 Обновление и энкодинг для кадров. 📖 Поддержка стереоскопического и не-VR рендеринга дисплея. 📖 Рекомендации и советы. Если сейчас это кажется не слишком актуальным, то через несколько лет, на мой взгляд, подобные устройства будут повсеместно (например, для медицины или работы с высокотехнологичными процессами в целом, да даже ремонтировать авто на продвинутых с сервисах с авто-подсказками чем не бизнес-идея). 😃 iOS Dev

iOS Dev
7 879
Проектирование сетевого слоя в iOS Конечно, идеального решения не существует. Но есть несколько хороших примеров (отправных т
Проектирование сетевого слоя в iOS Конечно, идеального решения не существует. Но есть несколько хороших примеров (отправных точек) для создания модульного, расширяемого и тестируемого сетевого слоя в iOS. В двух больших статьях автор рассказывает о своём подходе к реализации на примерах: 📖 Проектирование API-клиента (создание запросов, пример реального варианта использования, авторизация + логирование). 📖 Вторая часть посвящена модульным и интеграционным тестам. 😃 iOS Dev

iOS Dev
7 879
Как работать с passkeys в iOS-приложении Passkeys используются для аутентификации пользователей без использования пароля (пос
Как работать с passkeys в iOS-приложении Passkeys используются для аутентификации пользователей без использования пароля (после WWDC 23 Apple даже добавила фразу: При использовании passkey с сервера нечего красть). Сама пара public + private ключ создается каждый раз при генерации новой учетки. Чтобы получить доступ к контенту пользователи могут использовать PIN-код или биометрию. 📖 Здесь есть полезный материал о том, как настроить passkeys в вашем приложении и пример реализации на github. 😃 iOS Dev

iOS Dev
7 879
Рисование кастомных фигур в SwiftUI: примеры и код В SwiftUI Shape-протокол опредеяет контур нашей вью. Он используется для р
Рисование кастомных фигур в SwiftUI: примеры и код В SwiftUI Shape-протокол опредеяет контур нашей вью. Он используется для рисования и проектирования своих собственных фигур или контролов разной сложности 📖 В этом материале можно познакомиться с созданием не только простых вещей (вроде треугольников), но и с гораздо более интересными примерами с анимациями. 😃 iOS Dev

iOS Dev
7 879
Как работать со Swift Data и Core Data в фоновом режиме Хотя SwiftData намного проще в настройке, фреймворк унаследовал многи
Как работать со Swift Data и Core Data в фоновом режиме Хотя SwiftData намного проще в настройке, фреймворк унаследовал многие проблемы Core Data (включая те, которые останавливали многих разработчиков от использования Core Data в своих приложениях). Одна из самых больших проблем — управление моделями в различных контекстах. Модели Swift Data и Core Data небезопасно использовать совместно в разных потоках (они не Sendable и не thread-safe). Apple даже указывает на это в своем руководстве. 📖 Пол в своем блоге рассматривает эту проблему с различных сторон и приводит свой вариант решения с использованием одного контейнера и выполнением всей нужной работы в бэкграунде. Большой гайд по работе со Swift Data есть в нашем канале и вот тут. 😃 iOS Dev

iOS Dev
7 879
Исследование причин зависаний приложений — серия уроков от Apple 📖 Вышла новая серия туториалов от Apple, в которой новички
Исследование причин зависаний приложений — серия уроков от Apple 📖 Вышла новая серия туториалов от Apple, в которой новички могут узнать, как использовать Instruments для анализа производительности, ресурсов и поведения приложений. Затронуты темы, связанные с улучшением как отзывчивости, потребления памяти и анализ сложных ситуаций во время работы приложения. Для удобства отметил главы в формате теории (📖) и практики (🛠) Первая часть 📖 Начало работы с инструментами 🛠 Идентификация причины зависания Вторая часть 🛠 Анализ активности главного потока 📖 Определение частоты выполнения 🛠 Сокращение нагрузки на основной поток 🛠 Выполнение работы асинхронно 📖 Понимание синхронных (и асинхронных зависаний) 🛠 Обеспечение выполнения работы в фоновом потокеКстати, в закрытой базе знаний есть большой раздел, в котором можно посмотреть на разные подходы к отладке приложений (и узнать про некоторые приёмы и советы). 😃 iOS Dev

iOS Dev
7 879
Будьте внимательны к UserDefaults: история о труднодоступных ошибках и потерянных данных Хотя UserDefaults и удобный инструме
Будьте внимательны к UserDefaults: история о труднодоступных ошибках и потерянных данных Хотя UserDefaults и удобный инструмент (и стандарт, который использует все или почти все) с массой удобных фич (просто обмениваться данными, автоматическая сериализация/десериализация и так далее), есть кейсы, когда стоит использовать что-то ещё. Например, два пункта, при которых точно стоит избегать использования UserDefaults: 🔘 Не нужно хранить конфиденциальные данные в UserDefaults (для этого есть кейчейн). 🔘 Следует избегать больших объемов данных в UserDefaults (правильнее юзать Core Data или Swift Data, или Realm, хотя поддержка большей части экосистемы остановлена). 📖 Вышла отличная статья от Кристиана Селига с разбором таких примеров, а ещё там есть интересные ситуации, когда данные могут быть недоступны (и при чём тут prewarming), и как предотвратить потерю вашей информации в UserDefaults. 😃 iOS Dev

iOS Dev
7 879
ReviewBuddy — приложение для трекинга оценок в AppStore или как сменить регион, не внося изменения в Apple ID Время от времен
ReviewBuddy — приложение для трекинга оценок в AppStore или как сменить регион, не внося изменения в Apple ID Время от времени я стараюсь облегчить жизнь в разработке и для своих проектов, и для целей компании (раз, два). Иногда необходимо видеть, как приложение выглядит в том или ином аппсторе, но нативной опции для переключения у нас нет (либо можно чекать в браузере каждый раз через несколько действий). Поэтому около месяца назад я решил потратить выходные и часть отпуска на исследование возможностей, как же можно переключать аппстор (и вообще, что на это говорит Apple, спойлер — можно, но со скрипом). Наверняка, многие знают про опцию поиска приложений (и способ для проверки доступности новой версии через https://itunes.apple.com/search). Но ведь её можно использовать и для поиска оценок/формирования средневзвешенной. Поэтому я внедрил несложный механизм запросов с помощью уже не такого новомодного async/await и написал алгоритм трекинга оценок для любого приложения в аппсторе. Бонусом впилил историю, просмотр отзывов (а отвечать на них можно в Starly), копирование айдишников и урлов и возможность шаринга оценок по любому приложению. А вот с переключением аппсторов вышло интереснее (для этого можно использовать кастомные схемы, если кому интересно — покопайте вот тут) и с помощью этого можно переключать дефолтный стор (но, конечно, без возможности скачивания приложений или покупок). Цель — для девелоперов чекнуть их (и не только их приложения) в других странах. В итоге поставленных целей удалось добиться, для хранения истории юзал SwiftData, а самый сложный момент — было биться с ревью-командой, в итоге потратил на переписку около месяца, чтобы показать, как именно запрашиваются рейтинги и что происходит внутри. 🔗Скачать приложение можно здесь. 🎆 Поддержать — вот тут. 💸 Промокод (для инди-разработчиков и тех, кому нужно — можно использовать этот на фулл-версию на год). 😃 iOS Dev

iOS Dev
7 879
Расширенный поиск с помощью AI по сессиям WWDC 🤩 Неплохая идея (автор - Мэтт Спир), с помощью которой можно сразу получить с
Расширенный поиск с помощью AI по сессиям WWDC 🤩 Неплохая идея (автор - Мэтт Спир), с помощью которой можно сразу получить саммари по фичам и посмотреть доступные сессии по теме. 📖 А вот тут можно посмотреть на подборку лучших сессий с WWDC24 (Swift, Perfomance, Debugging). 😃 iOS Dev

iOS Dev
7 879
Утечка памяти: детектив в Xcode Недавно Джейкоб Бартлетт столкнулся с забавной ошибкой, связанной с диплинками. 🔎Суть пробле
Утечка памяти: детектив в Xcode Недавно Джейкоб Бартлетт столкнулся с забавной ошибкой, связанной с диплинками. 🔎Суть проблемы была в том, что при нажатии на push-уведомление некоторые пользователи сообщали, что экран пушился дважды (приложение открывалось, но сам переход дублировался). 📖 В итоге разработчик провел целое расследование, а к чему оно привело, можно прочитать тут. Спойлер: для поиска пригодится этот пост. 😃 iOS Dev

iOS Dev
7 879
Подборка докладов с iOS Conf SG 2024 🤩 Наш читатель посетил iOS-конференцию в Сингапуре и поделился своим топом лучших докла
Подборка докладов с iOS Conf SG 2024 🤩 Наш читатель посетил iOS-конференцию в Сингапуре и поделился своим топом лучших докладов: 📺 Understanding our users – полезное видео, в котором разбираются основы того, что спрашивать у пользователей, чтобы развивать продукт в нужном направлении. 📺 Swift beyond Apple platforms — о возможностях и проблемах использования Swift от веб-разработки до работы во embedded-системах. 📺 The Swift Actor Pitfall: Understanding and Managing Reentrancy – разбор неочевидной и простой ошибки, связанной со swift concurrency. Нельзя пройти стороной и миграцию кодовой базы на async/await. 🔗 А весь плейлист с докладами доступен вот тут. Кстати, в канале есть обзоры и других конференций: 🔗 Подборка докладов с конференции Swift Craft 🔗 Доклады с конференции try! Swift Tokyo 2024 😃 iOS Dev

iOS Dev
7 879
Приглашаем на Mobile PeerLab #2 — камерную встречу для мобильных разработчиков 10 октября в Москве во второй раз пройдет Peer
Приглашаем на Mobile PeerLab #2 — камерную встречу для мобильных разработчиков 10 октября в Москве во второй раз пройдет PeerLab от экспертов Райдтеха Яндекс Go. Специалисты разберут кейсы, которые предложат участники: поговорят о DI-архитектуре, легаси и скорости сборки, сравнят KMP и Flutter, объяснят, чем отличаются техлиды от фичалидов, и поделятся советами о тестировании фичей. После разбора кейсов гостей ждет afterparty, feature dev консультация и активности в реальной качалке — будем тренировать прогерские мышцы! Реальные кейсы и ответы экспертов Яндекса на ваши вопросы о мобильной разработке — регистрируйтесь и зовите коллег! Обратите внимание, количество мест ограничено. После регистрации обязательно дождитесь подтверждения заявки.

iOS Dev
7 879
Реализация загрузчика файлов в SwiftUI Вполне вероятно, что вам приходилось решать задачу отслеживания прогресса загрузки нес
Реализация загрузчика файлов в SwiftUI Вполне вероятно, что вам приходилось решать задачу отслеживания прогресса загрузки нескольких файлов. 📖 Маттео Манфердини в своём блоге написал огромный материал о своём подходе к созданию загрузчика файлов (и дополнил свою прошлую реализацию). Статья разбита на несколько частей: 1️⃣ Загрузка файлов и как трекать прогресс скачивания. 2️⃣ Реализация архитектуры для загрузки нескольких файлов. 3️⃣ Трекаем прогресс с помощью Swift Concurrency. 4️⃣ Создание интерфейса SwiftUI для управления загрузкой. 🛠 Код проекта доступен на github 😃 iOS Dev

iOS Dev
7 879
Как работать с MeshGradient в iOS 18 В iOS 18 появилась возможность создавать mesh-градиенты. В целом, это лёгкий в использов
Как работать с MeshGradient в iOS 18 В iOS 18 появилась возможность создавать mesh-градиенты. В целом, это лёгкий в использовании способ создания необычных эффектов. Например, вы можете посмотреть на мою реализацию или на вариант создания анимации в стиле Siri. 📖 В этом посте довольно подробно описано, что из себя представляют mesh-градиенты, как их можно использовать и анимировать, чтобы они выглядели действительно приятно. 😃 iOS Dev

iOS Dev
7 879
Как делать великолепные приложения Я очень редко делюсь роликами c интервью (только если речь не про персон калибра Барбары Лисков). В канале очень много примеров анимаций, поэтому пройти мимо автора вот этого протипа (и этого, и многих других) нельзя. 📺 В этом видео Джанум делится многими деталями (и своим опытом в Apple, Netflix, Airbnb), в том числе: - Уровни анимации. - Почему шейдеры имеют большое значение (и как они работают) - Как реализована анимация загрузки для Arc. - Про собственный анимационный движок Wave (есть обзорный пост в канале). - Изучение принципов флюидного дизайна при работе на iPad и многим другим. Рекомендую посмотреть не только разработчикам, но и поделиться с дизайнерами подходами Джанума к созданию по-настоящему уникальных анимаций. ✅Кстати, вот тут есть целый раздел, в котором разобраны необычные и сложные анимации на реальных примерах. 😃 iOS Dev

iOS Dev
7 879
Реализация перетаскивания элементов с помощью жестов в SwiftUI 📖 Несложный пример, в котором показан один из возможных подходов, как работать с перетаскиванием элементов интерфейса с помощью жестов в SwiftUI. 🛠 Само решение доступно на github. 😃 iOS Dev