fa
Feedback
iOS Dev

iOS Dev

رفتن به کانال در Telegram

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

نمایش بیشتر
8 002
مشترکین
+424 ساعت
+427 روز
+8130 روز
آرشیو پست ها
iOS Dev
8 002
Работа с таймерами в Swift Таймеры в Swift используются постоянно: для планирования отложенных или повторяющихся задач. В ста
Работа с таймерами в Swift Таймеры в Swift используются постоянно: для планирования отложенных или повторяющихся задач. В статье, затрагивающей моменты создания и работы с таймерами, автор напоминает несколько важных моментов: 🔘 Зачем вообще нужны таймеры в Swift. 🔘 Повторяющиеся (и не повторяющиеся) таймеры. 🔘 Как запланировать повторяющиеся задачи. 🔘 Что такое tolerance и как runloop modes влияют на работу таймера. 📖 В канале есть ещё один неплохой разбор таймеров (ведь как известно, даже Apple допускает ошибки). 😃 iOS Dev

iOS Dev
8 002
Комплексное руководство по работе с KeyPath в Swift В мире Swift KeyPath - это мощная, но часто недооцениваемая функция. Цель
Комплексное руководство по работе с KeyPath в Swift В мире Swift KeyPath - это мощная, но часто недооцениваемая функция. Цель этой статьи — глубоко изучить функциональные особенности KeyPath, раскрыть возможности и помочь использовать её в процессе разработки. 📖 В материале описаны свойства, приведены примеры как читать/устанавливать значения через KeyPath и использовать KeyPath в качестве параметра. 5 вещей, которые вы могли не знать о KeyPaths можно проверить в этом посте. 😃 iOS Dev

iOS Dev
8 002
iOS IQ — карта контента базы знаний Как и прежде, я продолжаю развивать закрытую базу, в которой создаю собственные подборки
iOS IQ — карта контента базы знаний Как и прежде, я продолжаю развивать закрытую базу, в которой создаю собственные подборки вопросов, интересных особенностей Swift, анимаций, кода и не только. На сегодняшний день многие используют её (и я том числе) в качестве не только подготовки, но и проведения собеседований, поэтому хочу добавить комментарий — что в любом случае, ответы на вопросы это здорово, но путь рассуждения не менее важен. 🤩 А подписавшись сегодня, вы получите доступ к нескольким важным разделам:
Подготовка к собеседованиям: - Мок-собесы с публичным доступом (сейчас несколько десятков на русском и английском языках). - Вопросы для подготовки по секциям (сотни примеров на разные темы) - Частные узкие темы (с поиском проблем в коде). - System Design. Мои советы и большая подборка материалов. Алгоритмы: - Сложность алгоритмов. - Разбор десятков задач с контестов (в том числе и от яндекса). - Популярные методы решения задач (с примерами). Архитектуры: - Все паттерны проектирования банды четырёх. Общая информация и примеры реализации на Swift. - Архитектурные заблуждения. - Реализация в реальных приложениях. Необычные эффекты: В этом разделе я делюсь анимациями, подходами к созданию и десятками примеров. Инструментарий. Полезные советы при работе с Xcode, терминалом и симулятором. 🧠 В бесплатном приложении есть большое количество подборок вопросов, с которыми можно попробовать справиться. Пока мое свободное время уходит на обновление, вы можете попробовать поставить там рекорд (хоть сейчас это и довольно непросто).
Всю следующую неделю действует специальное вводное предложение (в телеграм по-прежнему немного выгоднее). 😃 iOS Dev

iOS Dev
8 002
Анимация переходов между view в SwiftUI Transitions (или переходы) улучшают пользовательский опыт, делая взаимодействие более плавным и приятным. При смене интерфейса визуально подчеркивается связь между различными элементами пользовательского интерфейса. В качестве примеров, где используются такие анимации, можно привести: 🔘Навигация между экранами. 🔘Добавление (или удаление) элементов из списка. 🔘Показ модальных вьюх. 📖 Разбор создания таких эффектов (и их комбинаций) можно почитать в этой статье. 🔗В канале есть ещё и пример таких переходов с использованием Metal. 😃 iOS Dev

iOS Dev
8 002
🤩 Image Playground в действии Пока мы ждём выкатки API для разработчиков, некоторые счастливчики на бете успели потестить функциональность. Похвалитесь, кто был в листе ожидания, получили ли доступ? В Европе пока все эти фичи (даже в бете) недоступны. 😃 iOS Dev

iOS Dev
8 002
Как создавать привлекательные анимации Люди все чаще выбирают инструменты, ориентируясь на общие впечатления, а не только на функциональность. Приложение, которое делает то, что вы ждёте и так, как вы хотели бы видеть — вот что выделяет продукт. В частности, это одна из основных причин, почему компании инвестируют в дизайн-инженеров. Умение создавать приятные анимации — сложная задача (для которой нужен опыт и знания). 📖 Эмиль Ковальски рассказывает о таких анимациях, приводит примеры (не только для iOS-платформы) и даёт советы, как можно улучшить впечатление пользователей. ✅В свою очередь, самыми интересными примерами я делюсь здесь. 😃 iOS Dev

iOS Dev
8 002
Как начать использовать Swift Testing 📖 В этой статье автор делится своим взглядом на то, что нужно знать для начала работы
Как начать использовать Swift Testing 📖 В этой статье автор делится своим взглядом на то, что нужно знать для начала работы с новым фреймворком Swift Testing. Рассмотрены основные возможности Swift Testing (а ещё его отличия и улучшения по сравнению с XCTest). 📺 А вот здесь этот материал представлен в формате видео. 📖 Кстати, в канале есть ещё один вариант разбора отличий и преимуществ по сравнению с XCTest. 😃 iOS Dev

iOS Dev
8 002
Какую минимальную версию iOS вы поддерживаете на вашем рабочем проекте?
Anonymous voting

iOS Dev
8 002
Технические собеседования в iOS IQ В канале регулярно появляются уникальные вопросы, разборы, и примеры того, что актуально с
Технические собеседования в iOS IQ В канале регулярно появляются уникальные вопросы, разборы, и примеры того, что актуально сейчас в разработке. Но помимо этого и полезных для сообщества приложений у нас есть база знаний, в которой я стараюсь делиться интересным опытом и необычными кейсами из нашей сферы. Она обновляется постоянно, и уже сейчас там доступно:
Подготовка к собеседованиям: - Мок-собесы с публичным доступом (сейчас несколько десятков на русском и английском языках). - Вопросы для подготовки по секциям (сотни примеров на разные темы) - Частные узкие темы (с поиском проблем в коде). - System Design. Мои советы и большая подборка материалов. Алгоритмы: - Сложность алгоритмов. - Разбор десятков задач с контестов (в том числе и от яндекса). - Популярные методы решения задач (с примерами). Архитектуры: - Все паттерны проектирования банды четырёх. Общая информация и примеры реализации на Swift. - Архитектурные заблуждения. - Реализация в реальных приложениях. Красим кнопки Необычные эффекты: В этом разделе я делюсь анимациями, подходами к созданию и десятками примеров. Инструментарий. Полезные советы при работе с Xcode, терминалом и симулятором
Подпишитесь, и вы получите доступ к полезным темам, разборам, эффектам и многому другому (это возможно и прямо здесь, в телеграм). 😃 iOS Dev

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

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

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

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

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

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

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

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

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