uk
Feedback
iOS Dev

iOS Dev

Відкрити в Telegram

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

Показати більше
7 880
Підписники
-224 години
-17 днів
-5230 день
Архів дописів
iOS Dev
7 880
Реализация приложения для игры в шахматы на SwiftUI David v.Knobelsdorff недавно создал шахматное приложение от начала до конца с помощью SwiftUI и задокументировал весь процесс в своем блоге. Это объёмный материал (аж из девяти частей), но его стоит прочитать, если вы интересуетесь шахматами или ищете хороший пример создания полноценного приложения на SwiftUI. 1️⃣ Мотивация и терминология. 2️⃣ Зачем нужны pgn-файлы и как с ними работать. 3️⃣ Реализация логики. 4️⃣ Создание набора компонентов. 5️⃣ База данных и кодирование ходов. 6️⃣ FSRS-алгоритм (тут можно почитать про него дополнительно). 7️⃣ Шахматные головоломки. 8️⃣ Использование локального шахматного движка. 9️⃣ Тестирование и выводы. 😃 iOS Dev

iOS Dev
7 880
Невозможно всё знать В университете, когда я писал свою кандидатскую диссертацию несколько лет назад (пусть и не вышел на защиту в итоге, перейдя полностью в коммерческую разработку), мой научный руководитель поделился важной мыслью, которую я добавил в свой арсенал знаний и очень бережно вспоминаю её, когда сталкиваюсь со сложными задачами. Вкратце: весь объём знаний, всё, что придумало человечество на данный момент можно представить в виде круга. Всё, что есть — технологии, идеи и накопленный опыт внутри. И наша задача (тех, кто пытается создать что-то новое), это не выпрыгнуть из него, не изобрести телепорт или какую-то качественно новую технологию, а всего лишь добавить одну точку на окружности. Одну — за которую можно зацепиться всем другим исследователям, которые добавят свои маленькие точки, и дальше может пройти большое количество времени, но принцип станет понятным. С помощью таких маленьких шагов вперёд всегда можно видеть чуть большую картину, а это означает, что и большее количество перспектив. В разработке также, особенно когда мы сталкиваемся с широким полем неизвестности. Как-то я боролся с багом, связанным с CallKit: была проблема исчезающего звука на втором входящем вызове на заблокированном экране телефона (только вдумайтесь в исходные условия), и только благодаря тому, что когда-то я читал про работу с аудиосессиями и создавал несколько плееров, я понимал несколько вариантов развития событий, и, соответственно возможных решений. Иногда в разработке вы можете столкнуться с задачами, на которые не то, что нет ответов на StackOverflow, но будет только один вопрос (и тот ваш, заданный пару лет назад, как в известной шутке). В таком случае придётся искать (и создавать что-то новое). Со стороны для тестировщиков (или для заказчика проекта, или для вашего ПМ) это будет выглядеть, как просто ещё один решённый баг. Но для вас — это маленькая победа, помните о ней. Из таких решённых задач и будет складываться тот пул знаний, который в будущем позволит вам легче справиться с более сложными вещами. Что-то всегда будет ломаться. Объём, нагрузка, требования, новые SDK, новые технологии будут заставлять настраивать проект напильником (по этой причине стоит помнить о подводных камнях сторонних зависимостей). Знать всё невозможно. Но хочется вспомнить о словах человека, который придумал соцсеть с миллиардом (уже двумя) человек: «Move fast and break things» (двигайтесь быстро и ломайте вещи) И если у вас ничего не ломается, то возможно, ваш проект развивается недостаточно быстро? 😃 iOS Dev

iOS Dev
7 880
Создание адаптивной верстки в SwiftUI с использованим Layout-протокола Комбинация UICollectionView и UICollectionViewFlowLayo
Создание адаптивной верстки в SwiftUI с использованим Layout-протокола Комбинация UICollectionView и UICollectionViewFlowLayout в UIKit дает много гибкости и контроля для создания любых нужных нам макетов, но вот в SwiftUI с этим могут быть сложности. Важно обладать навыками для создания верстки, которая хорошо выглядит и в портретной, и в альбомной ориентации экрана. 📖 В этом материале разбирается подход с использованием протокола Layout (доступного с 16 iOS). 😃 iOS Dev

iOS Dev
7 880
Продавайте рекламу в приложении выгодно и зарабатывайте больше 🔝 Недавно Рекламная сеть Яндекса добавила поддержку приложени
Продавайте рекламу в приложении выгодно и зарабатывайте больше 🔝 Недавно Рекламная сеть Яндекса добавила поддержку приложений на React Native, и их теперь можно монетизировать наравне с Android, iOS, Unity и Flutter. Почему сервис Яндекса стоит попробовать: 🔘Простая интеграция рекламного SDK. 🔘Круглосуточная поддержка. 🔘Больше 300 000 прямых рекламодателей. 🔘Заполняемость рекламных блоков до 100%. 🔘Регулярные выплаты. 🤩 Безусловно, доход будет выше, если условия лучше (это аксиома). Полезный бонус для разработчиков У Яндекса есть своя платформа медиации (штука, которая крутит самые выгодные объявления из нескольких рекламных сетей). Потенциально это должно повысить доход, так как пул рекламодателей значительно увеличится. 🔗 Вот тут можно узнать больше (и подключить свое приложение).

iOS Dev
7 880
Как запретить создание скриншотов для важных экранов в Swift Для этого пригодится элегантное решение с применением свойства isSecureTextEntry с помощью кастомного модификатора. 📖 В этой статье автор делится необходимыми шагами с примером кода. 😎 Кстати, способ актуален и для записи видео с экрана девайса. ⭐️ Больше примеров и необычных решений здесь. 😃 iOS Dev

iOS Dev
7 880
Шифр Виженера или приключение на одну минуту Наверняка вы знаете про шифр Цезаря (даже если никогда не думали про Римскую имп
Шифр Виженера или приключение на одну минуту Наверняка вы знаете про шифр Цезаря (даже если никогда не думали про Римскую империю). Но если в шифре Цезаря каждая буква алфавита сдвигается на несколько позиций, шифр Виженера состоит из последовательности нескольких шифров Цезаря с различными значениями сдвига. Для шифрования нужню юзать таблицу алфавитов (она же tabula recta или квадрат Виженера). Например, для латиницы это будет таблица из строк по 26 символов, причём каждая следующая строка сдвигается на несколько позиций. Таким образом, в таблице получится 26 различных шифров Цезаря. 🚀 Но давайте к делу! У меня есть одна проходка на конференцию Podlodka, которую я решил разыграть между самыми быстрыми и внимательными читателями нашего канала. В канале я спрятал ключевое слово, подсказка — этот пост. Используйте ключевое слово к этой строке: qck_fvzy_14_UYxpuF и вы получите код билета на конференцию. Всем удачи (для дешифрования можете использовать любые алгоритмы, сервисы, в общем - самый быстрый способ, но регистр важен!). И ещё, пожалуйста, поделитесь в комментариях найденным кодом (после активации), чтобы остальные читатели знали, когда можно остановиться. 😃 iOS Dev

iOS Dev
7 880
iOS-разработчикам, которые хотят прокачать свои навыки работы с многопоточностью – совсем скоро стартует Podlodka iOS Crew! С
iOS-разработчикам, которые хотят прокачать свои навыки работы с многопоточностью – совсем скоро стартует Podlodka iOS Crew! С 11 по 15 ноября лучшие эксперты разберут многопоточность, Swift Concurrency и алгоритмы в формате удобных онлайн-сессий. В программе: 🔹 Александр Андрюхин проведёт нас через особенности Swift Concurrency, которых ты точно не знал 🔹 Swift 6 глазами Александра Априамашвили – как переход на новую версию поможет в повседневной работе. 🔹 Антон Марченко расскажет, как async в алгоритмах делает их быстрее. 🔹 Александр Сычев раскроет механизмы работы Thread и объяснит, как это важно для работы с многопоточностью. Здесь только прикладная польза, реальные примеры и свежий опыт. Присоединяйтесь 👉 https://podlodka.io/ioscrew А промокод сообщества ios_crew_14_2Oh9k0 даёт скидку в 500 руб🥳

iOS Dev
7 880
Разрешено ли у вас использовать ChatGPT (и аналоги) в компании?
Anonymous voting

iOS Dev
7 880
🔥 Огненный шейдер на Swift (нативное решение на Metal) Пару лет назад я уже пробовал запилить нечто подобное в одном из чатов на комбинации эффектов частиц, но был ограничен технологиями нашего времени не все выглядело так, как должно. В этом году под 31 октября я решил повторить опыт, уже с использованием Metal, и вышло, как мне кажется, гораздо лучше. На видео не используются никакие текстуры, только натив. Описал весь опыт, источники и привёл пример кода на Swift эксклюзивно здесь. 😃 iOS Dev

iOS Dev
7 880
Реализация размытия экрана в режиме многозадачности 🔑 Повышение уровня конфиденциальности важно при разработке современных приложений (особенно мессенджеров или банковских приложений). 📖 В этой статье показан простой способ размытия контента, когда пользователь переходит в многозадачный (или фоновый режим). 😃 iOS Dev

iOS Dev
7 880
Работа с таймерами в Swift Таймеры в Swift используются постоянно: для планирования отложенных или повторяющихся задач. В ста
Работа с таймерами в Swift Таймеры в Swift используются постоянно: для планирования отложенных или повторяющихся задач. В статье, затрагивающей моменты создания и работы с таймерами, автор напоминает несколько важных моментов: 🔘 Зачем вообще нужны таймеры в Swift. 🔘 Повторяющиеся (и не повторяющиеся) таймеры. 🔘 Как запланировать повторяющиеся задачи. 🔘 Что такое tolerance и как runloop modes влияют на работу таймера. 📖 В канале есть ещё один неплохой разбор таймеров (ведь как известно, даже Apple допускает ошибки). 😃 iOS Dev

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

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

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

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

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

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

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

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

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