fa
Feedback
iOS Dev

iOS Dev

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

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

نمایش بیشتر
7 999
مشترکین
+424 ساعت
+427 روز
+8130 روز
آرشیو پست ها
iOS Dev
8 000
Ну что, время итогов алгоритмического конкурса Я не ожидал столько вариантов решения, но очень рад, что вы решили поучаствовать и проверить себя. Эта задача — интерпретация одной из популярных литкодовских (вот тут можно почитать условие). И хотя было несколько достойных кандидатов, я решил выбрать двоих победителей среди всех присланных. 🏆 Решение Дмитрия - 55 символов. 🏆 Решение Вовы - 54 символа. Победители уже получили 🎩 white (1) hat (2), надеюсь, отсылка к цвету очевидна. И, хотя вот эта версия от Игоря не прошла все кейсы, но бонус всё-таки улетел (до 12:42 была лазейка в условиях задачи). 🚀 Поддержите бустом канал, если вы хотели бы видеть больше таких задач. В следующий раз можем выбрать что-то посложнее. 😃 iOS Dev

iOS Dev
8 000
Коллекционер и аукцион Попробуем новый формат - с вас самое короткое решение задачи, с меня подарок в телеграм (сегодня это б
Коллекционер и аукцион Попробуем новый формат - с вас самое короткое решение задачи, с меня подарок в телеграм (сегодня это будет white hat 🎩). Сама задача:
Вам дан массив цен картины prices, где prices[i] это цена картины в i-день. Вы хотите добиться максимальной прибыли для коллекционера, выбрав оптимальный день для покупки и другой день для последующей продажи. Верните максимальную прибыль, которую вы можете получить от перепродажи. Если заработать не получится, нужно вернуть 0. Пример 1 Input: prices = [12,1,4,3,6,2] Output: 5 Ответ здесь 5, так как мы можем купить картину на 2 день и продать её на 5 день, получив прибыль 5 = 6 - 1 Пример 2 Input: prices = [12,11,10,9,8,7] Output: 0 Здесь ответ 0, так как мы не можем получить прибыль, купив картину в любой из дней. Присылайте в комментарии ваши варианты решения задачи на Swift, но помните, что решение задачи должно быть максимально коротким (не обяательно самым быстрым). [UPD 12:42] - тест-кейсы должны быть пройдены все. Подсчёт символов решения будет внутри этой функции, включая пробелы (учтите при отправке ваших решений): func maxProfit(_ p: [Int]) -> Int { }
Решения присылайте в комментарии (внимание - вы можете решать олдскульно или пользоваться любыми средствами от Grok до Cursor). Итоги в 16:00 по мск. 😃 iOS Dev

iOS Dev
8 000
iOS IQ - апдейт по прогрессу базы и бонус для новых подписчиков Безусловно, практика в нашей работе должна быть на первом мес
iOS IQ - апдейт по прогрессу базы и бонус для новых подписчиков Безусловно, практика в нашей работе должна быть на первом месте (и об этом я пишу в канале буквально с самого первого поста). Я постоянно стараюсь облегчить жизнь не только благодаря фичам с оптимизацией на работе, но и делаю полезные утилиты: Lines (если у вас ещё есть код на Objective-C), ReviewBuddy, iOS IQ (кстати, уже в разработке новые интересные темы) и целый ряд других приложений. Многое из моих реальных задач связано с шифрованием, а также работой с большим объёмом данных. Поэтому в базе есть не только непростые вопросы, но и все решённые задачи с CodeRun (несколько десятков от прошлых к сложным), множество примеров непростых анимаций (включая Metal), а также разбор реальных ситуаций, которые могут возникать в нашей работе. При этом iOS IQ постоянно наполняется вопросами на самые разные темы.
➡️Вопросы на чтение кода ➡️Многопоточность ➡️DispatchQueue: практические вопросы (две части) ➡️Swift Concurrency ➡️Память: ARC, side table, флаги, утечки ➡️UIKit (теория + практика, две части) ➡️Компилятор Swift ➡️Основы: URLSession, UICollectionView и т.д.)
✅Присоединяйтесь, всю неделю будет действовать вводное предложение: 💰в бусти и ⭐️ в телеграм. Ах да, ещё недавно был редизайн (так что можно заглянуть хотя бы ради нового оформления). 😃 iOS Dev

iOS Dev
8 000
Работа с модификатором task в SwiftUI: примеры, особенности, приоритеты ➡️ Модификатор task можно использовать в качестве инструмента для выполнения асинхронного кода. Как рекомендует автор следующего материала, стоит задуматься о применении этого модификатора в частности для случаев, когда есть комбинация отдельных блоков onAppear и Task. 📖 В этой статье рассмотрены различные опции использования task в реальном проекте. 🛠 А вот тут можно посмотреть на этот проект. 😃 iOS Dev

iOS Dev
8 000
Как на самом деле работает Swift Concurrency 📖 Виталий Батраков в своём блоге рассказывает о том, что такое асинхронные функ
Как на самом деле работает Swift Concurrency 📖 Виталий Батраков в своём блоге рассказывает о том, что такое асинхронные функции, как создавать и работать с Task и не только. Например, в статье разбираются Default concurrent/Serial/Main executors и как именно они формируют общую картину. 🔗 Напомню, в канале есть и глоссарий по Swift Concurrency. Кстати, здесь можно проверить свои силы в вопросах на примерах кода (в приложении часть из них тоже есть). 😃 iOS Dev

iOS Dev
8 000
WWDC25 К сожалению, в этом году лотерея была не на моей стороне. С другой стороны - будет больше времени на то, чтобы детальн
WWDC25 К сожалению, в этом году лотерея была не на моей стороне. С другой стороны - будет больше времени на то, чтобы детальнее рассмотреть все фичи. 🐱 Кстати, если кто планирует ехать, в эти дни в Сан-Франциско будет как минимум CommunityKit-конфа и OneMoreThing (если её решатся провести снова). А мне пока остаётся смотреть на старые фотки из Apple Visitor Center. Если кому-то выпало нормально очков удачи и вы выиграли билет на ивент, поделитесь радостью в комментариях) 😃 iOS Dev

iOS Dev
8 000
Эффект свечения текста в комбинации с numericText Показал пример несложной анимации, при этом довольно приятной по ощущениям (нужен массив с несколькими цветами, несколько теней и contentTransition с numericText). ✅Код этого и других примеров (в том числе с Metal доступен 💰тут и ⭐️ в телеграм). 😃 iOS Dev

iOS Dev
8 000
Современные практики для работы с URL в Swift Использование современных API в Foundation для построения (и дальнейшей работы)
Современные практики для работы с URL в Swift Использование современных API в Foundation для построения (и дальнейшей работы) с URL не только упрощает наш код, но и снижает риск возникновения ошибок и возможных крашей. 📖 В своей статье Джон Санделл разбирает импакт от StaticString, макросов, как прийти к виду let url = #staticURL("https://t.me/iosdev"), например, а также опции построения сложных запросов с помощью фич из iOS 16. ✅ Кстати, про особенности и свойства URLSession можно узнать из этого поста. 😃 iOS Dev

iOS Dev
8 000
Вышел Xcode 16.3 с нативной интеграцией вайб-кодинга! Ночью вышел Xcode 16.3 и Swift 6.1, а вместе с ним и новый режим програ
Вышел Xcode 16.3 с нативной интеграцией вайб-кодинга! Ночью вышел Xcode 16.3 и Swift 6.1, а вместе с ним и новый режим программирования. На этой неделе в Европе официально разрешили Apple Intelligence и Тим Кук просто шокировал общественность, написав в X: «Нам пришлось принять сложное решение. Всё больше разработчиков стало доверять ИИ, всё больше процессов интегрируется и вместе с тем мы вынуждены сохранять гонку не только с Google и OpenAI, но и с самим временем. Поэтому мы решили выпустить из беты режим вайб-кодинга в Xcode. Никакого Leetcode, никаких мыслей, теперь только х-к, х-к и в продакшн (какие-то буквы, к сожалению, пропущены).» Буквально месяц назад Сергей Брин призвал ходить коллег в офис и работать 60 часов в неделю, но Apple сыграли на опережение как всегда. Разработчики в Купертино сидели по 120 часов с понедельника по субботу, приходя в 4 утра. Новая инновация уже вызвала целую волну сокращений в Кремниевой долине и даже затронула бигтехи в РФ. Сообщества с десятками тысяч читателей уже запустили курсы по подписке, как обойти новые процессы собеседований. Теперь они предлагают работать и скручивать опыт, ведь как известно, для работы с новым ИИ теперь необходимо как можно меньше навыков. Чистое, незамутнённое алгоритмами сознание теперь имеет преимущество перед разработчиками с 10+ опыта. Тим Кук добавил, что новый режим стал частью долгосрочного плана и подчеркнул, что канал iOSDev всё знал ещё два года назад. 😃 iOS Dev

iOS Dev
8 000
Архитектура SwiftData: паттерны и практики SwiftData ознаменовала важный шаг вперёд в области хранения данных. Она была призв
Архитектура SwiftData: паттерны и практики SwiftData ознаменовала важный шаг вперёд в области хранения данных. Она была призвана заменить Core Data чем-то более интуитивным: тем, что будет проще интегрировать в SwiftUI. Однако осталось несколько важных вопросов. Как именно мы должны проектировать приложение на её основе? Должны ли мы целиком полагаться на @Model и @Query, или можно абстрагировать их за протоколами для обеспечения гибкости? Как быть с бизнес-логикой? Да и как в целом нужно структурировать код для обеспечения надёжности и тестируемости в будущем. 📖 В этой масштабной статье можно узнать ответы на эти и другие вопросы: 🔘 Как структурировать модели данных 🔘 Где разместить бизнес-логику 🔘 Как писать модульные тесты 🔘 Как настроить работу Preview в Xcode 🔘 Как интегрировать CloudKit 🔘 Как работать с изменениями в слоях в будущем. 😃 iOS Dev

iOS Dev
8 000
ℹ️ Вышел первый стабильный релиз Swiftly - официального менеджера версий Swift Хотя актуальный релиз Swift по дефолту включен в Xcode, иногда может понадобиться другая версия для создания сервисов или, например, каких-либо инструментов командной строки. Установка надежной версии Swift (с нужными зависимостями) требовала действий вручную, которые, очевидно, могли приводить к ошибкам. 🛠 В этом релизе swiftly стал частью Swift toolchain. Кроме этого, добавлена и поддержка macOS для того, чтобы сделать возможной установку Swift отдельно от Xcode. Среди базовых фич: ➡️ Установка нескольких тулчейнов (и стабильные релизы, и снэпшоты). ➡️ Обновление установленных тулчейнов до актуальной версии. ➡️ Проверка доступных для установки тулчейнов с помощью list-available. ➡️ Совместное использование предпочитаемого тулчейна в качестве настройки проекта с помощью файла .swift-version. ➡️ Выполнение заданной команды с помощью подкоманды run. 📖 Официальная новость на сайте Swift. 😃 iOS Dev

iOS Dev
8 000
Разделение или работа в команде Удивительно, как в нескольких компаниях сразу идеи о том, как важно отделять рабочее от всего
Разделение или работа в команде Удивительно, как в нескольких компаниях сразу идеи о том, как важно отделять рабочее от всего остального, вышли буквально на мировой уровень. 📺 Несколько лет назад появился сериал Разделение, о котором я даже написал пару строк (и по случайному совпадению он завершал один из небольших квестов в нашем канале). К слову, линия мистера Милчека с его перфоманс-ревью и последующей рефлексией возможно найдет ответ и у некоторых разработчиков. 🎮 А ведь кроме этого вышла сначала it takes two, а в этом году не менее чудесная Split Fiction, в которой, к слову, секретное послание оставил и геймдизайнер. Пожалуй, крайне важная часть — умение работать в команде, ведь далеко не всегда всё зависит от мобильного клиента, или конкретно от разработчика. Тесное взаимодействие команд дизайна, тестирования, реализации на сервере и формирование продуктовых задач, которые попадают в спринт достигается за счёт синергии всех участников процесса. Кроме этого, одна из основных составляющих нашей работы состоит как раз в сложности разделения. Тяжело перестать думать о баге или какой-нибудь важной фиче, которую вот-вот и вы выкатите на прод, особенно перед релизом. И это может влиять и на менталку, и на какие-то дела вне работы. Поэтому довольно важно научиться разделять рабочие моменты и все, что находится за пределами, какой бы сложной и важной та или иная не казалась на первый взгляд. 🔄 Главное помнить, что умение переключать контекст - важнейший скилл. Не только в работе, но и в жизни. И это далеко не самый простой навык. 😃 iOS Dev

iOS Dev
8 000
12–13 апреля проводим Weekend Offer Mobile Устроиться в Яндекс за выходные — реально. Ищем крутых Android- и iOS-разработчиков с опытом работы от 3 лет, готовых работать в офисном или гибридном режиме в России. Подавайте заявку до 9 апреля — и всего за 2 дня пройдите все технические собеседования. После сможете пообщаться с нанимающими командами и выбрать ту, которая покажется самой интересной. Если всё сложится хорошо, сразу же пришлём вам офер. Узнать подробности и зарегистрироваться. Реклама. ООО "Яндекс". ИНН 7736207543

iOS Dev
8 000
Swift init() - особенности, примеры использования и подводные камни 📖 Статья, на первый взгляд полезная новичкам, на самом д
Swift init() - особенности, примеры использования и подводные камни 📖 Статья, на первый взгляд полезная новичкам, на самом деле описывает несколько проблем, с которыми могут столкнуться разработчики. Кирилл, который уже делился своим разбором Grand Central Dispatch, акцентирует внимание на нескольких важных аспектах. Например, почему UIView.init() всегда вызывается без параметров, а init(frame:) и init(coder:) переопределяются. Или, например, когда именно нужен required-инициализатор. Статья разбита на следующие логические блоки: Работа со структурами: - Memberwise initializer. - Optionals, var vs let. - Retaining a memberwise initializer. Работа с классами: - Designated initializer. - Convenience initializer. - Уменьшаем количество override. - Помощь компилятора. - required initializer: дженерики, протоколы, Self(), final. - UIView() и что скрывает документация. 😃 iOS Dev

iOS Dev
8 000
Как эффективно работать со SwiftUI в продакшене? Внедрение в существующие проекты, тестирование, производительность, архитект
Как эффективно работать со SwiftUI в продакшене? Внедрение в существующие проекты, тестирование, производительность, архитектура — вопросов по-прежнему много. Как сделать так, чтобы всё работало? Новый сезон онлайн-конференции Podlodka iOS Crew (31 марта – 4 апреля) будет посвящен SwiftUI. Глубокие доклады, технические разборы и реальные кейсы от опытных разработчиков. Сессии идут утром и вечером, можно совмещать с работой. 💡 Где печется SwiftUI — Георгий Остроброд (JigSpace, Latook Software) объяснит, как связаны SwiftUI и Metal, и покажет магию визуальных эффектов. 🛠 Как макросы изменили навигацию — Михаил Рубанов (Dodo Engineering) покажет, как макросы упрощают код, помогают объединять SwiftUI и UIKit и создают удобную навигацию, которую легко тестировать. 🏗 Архитектурные паттерны в SwiftUI — Борис Бугор (Aiphoria.AI) сравнит MVVM, Redux и TCA, чтобы выбрать лучший подход к управлению состоянием. 🔄 Из SwiftUI в UIKit и обратно — Дмитрий Куркин (Xymatic) разберёт грамотную интеграцию этих фреймворков без хаков. Конференция сосредоточена на практической пользе – всё, что узнаете, можно сразу применять в работе. 👉 Билеты и подробности: https://podlodka.io/ioscrew 🎟 А наш промокод iosdev15 дает скидку в 500р🥳

iOS Dev
8 000
Spectrum ring — реализация на Metal в iOS В рамках экспериментов по изучению возможностей шейдеров попробовал разложить несколько цветов в непрерывный ряд (и дополнил парой красивых эффектов). Варианты использования спектра вообще довольно значительны (от стандартного colorPicker в iOS до реализации самых разных волн и анимаций в музыкальных плеерах). ✅Реализация, референсы и код на SwiftUI+Metal уже доступен 💰тут и ⭐️ в телеграм. 🎆 В канале доступны и другие красивые эффекты. 😃 iOS Dev

iOS Dev
8 000
Как улучшить архитектуру кода с помощью принципов SOLID (с примерами на Swift) Эти принципы помогают сократить количество хао
Как улучшить архитектуру кода с помощью принципов SOLID (с примерами на Swift) Эти принципы помогают сократить количество хаоса на проекте с течением времени. Да и следование SOLID облегчает в целом сопровождение кода, тестирование и потенциальное масштабирование. Наш читатель Максим Егоров (уже знакомый вам по примеру работы с Network-фреймворком) в этот раз решил затронуть базу и показал на несложных примерах потенциальные ошибки, которые могут нарушать принципы, сформулированные Робертом Мартином, а ещё привёл варианты их исправления. 📖 Прочитать статью целиком можно здесь. 🧠 Напомню, что в приложении вы можете проверить себя не только в знании этих принципов, но и в других важных темах. 😃 iOS Dev

iOS Dev
8 000
Стратегии, позволяющие избежать мерж-конфликтов в проектах Xcode Каждый, кто работал в более-менее большой команде разработчи
Стратегии, позволяющие избежать мерж-конфликтов в проектах Xcode Каждый, кто работал в более-менее большой команде разработчиков (что уж там, даже двоих человек иногда достаточно), наверняка сталкивался с конфликтами при слиянии изменений. 📖 Tuist выпустили неплохой материал с разбором, почему такие проблемы вообще возникают, и как с этим может быть связан файл project.pbxproj в Xcode. А ещё они описали несколько вариантов решения: от использования workspace и SwiftPM до buildable folders в Xcode 16. 🔗 Кстати, вот тут можно познакомиться и с другими возможными причинами мерж-конфликтов. 😃 iOS Dev

iOS Dev
8 000
UIKit: подборка практических и теоретических задач (II часть) В новом блоке разобрал важные вещи, без которых сложно представ
UIKit: подборка практических и теоретических задач (II часть) В новом блоке разобрал важные вещи, без которых сложно представить нашу с вами работу (затронул hitTest, относительно новый automatic trait tracking и не только). В нашем канале много уделяется и SwiftUI, например в опросе несколько десятков человек попросили разобрать непростые анимации, к которым мы обязательно будем возвращаться. Кстати, если ещё не прошли опрос - самое время.
🧠 Что вы получите, подписавшись сегодня: ➡️Вопросы на чтение кода ➡️Многопоточность ➡️DispatchQueue: практические вопросы ➡️Swift Concurrency ➡️Алгоритмы: терминология и примеры ➡️Память: ARC, side table, флаги, утечки ✅А также доступ к ранним релизам приложения iOS IQ, несколько десятков важных тем, тонну теории и многое другое.
Получить доступ можно 💰тут и ⭐️ в телеграм. 😃 iOS Dev

iOS Dev
8 000
Динамическая адаптация к доступному пространству с помощью ViewThatFits ViewThatFits - это компонент SwiftUI, доступный с iOS 16. Вкратце принцип работы следующий: ViewThatFits выбирает первое child view, чей идеальный размер по заданным осям впишется в предложенный размер. Обычно это происходит в порядке от наибольшего к наименьшему, но, так как наше вью иногда может поместиться только вдоль одной оси, порядок может быть нарушен. По умолчанию ViewThatFits ограничивается по горизонтальной и вертикальной осям. 📖 Неплохой пример использования ViewThatFits есть тут и в официальной документации. 😃 iOS Dev

iOS Dev - آمار و تحلیل کانال تلگرام @iosdev