uz
Feedback
iOS Dev

iOS Dev

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish
7 877
Obunachilar
-424 soatlar
+27 kunlar
-5430 kunlar
Postlar arxiv
iOS Dev
7 877
Работа с вёрсткой в SwiftUI: интерактивный помощник Оказывается, есть целый сайт, где энтузиасты объясняют как быть с лэйаутом в SwiftUI с помощью примеров. Уже сейчас покрыты темы с Alignment, HStacks, Aspect Ratio, Padding и так далее. Будет полезен новичкам (и тем, кто иногда забывает, на что влияет тот или иной параметр). 💡Вообще, это было бы актуально не только для SwiftUI, но и для некоторых штук в UIKit, как с UIStackView, например. 📖 Посмотреть на доступные варианты (и поперетаскивать элементы) можно здесь. 😃 iOS Dev

iOS Dev
7 877
Подготовка к собеседованиям Любое собеседование — это важный этап, который должен быть диалогом между кандидатом и собеседующ
Подготовка к собеседованиям Любое собеседование — это важный этап, который должен быть диалогом между кандидатом и собеседующим. Для кандидата, конечно же, это стресс. Но его можно попробовать сделать управляемым. Всегда плюс, когда человек может пояснить, почему он принимает то или иное решение, почему выбирает вот эту архитектуру и как именно некоторые участки кода могут повлиять на производительность. Мы не можем подготовиться к собеседованию на 100%, у каждой компании свои требования и правила. У многих может быть и 3 (и иногда 6-7 этапов), но при должной концентрации и грамотном распределении сил вы сможете показать ваш пул знаний, даже не ответив на все заданные вопросы. 🧠 Сегодня я анонсирую новый раздел в для тех, кто поддерживает канал. На хабре пару лет назад я делился одним из возможных пулов вопросов, сегодня этот раздел будет дополнен, расширен, но до окончательной огранки ему пока далеко. Здесь уже есть три основных категории: собесы в формате видео (лучшее на просторах интернета), истории реальных собеседований в бигтехе и огромный список ресурсов для подготовки. 🔗 Получить доступ ко всем ресурсам можно здесь. 😃 iOS Dev

iOS Dev
7 877
Разбор архитектурных заблуждений в iOS Алексей, iOS-разработчик из тинькова, поднял восхитительно опасную, но при этом не мен
Разбор архитектурных заблуждений в iOS Алексей, iOS-разработчик из тинькова, поднял восхитительно опасную, но при этом не менее интересную тему. Вот несколько тезисов, с которыми лично сложно не согласиться: 1️⃣ С точки зрения коммерческой разработки наилучшая архитектура — та, что максимально снижает затраты на разработку в долгосрочной перспективе. Этого подхода я стараюсь придерживаться и в нашей команде. MVC, MVVM, VIPER — это архитектурные шаблоны (больше вот тут). Часто одного шаблона попросту недостаточно. Например, сететой слой, пуши или как говорит Алексей, обработка диплинков - MVC-подобные паттерны про это не сообщают. 2️⃣ Разработка — это не только написание кода. Мы создаём код, но его чтение, понимание, а также процессы в команде — занимают львиную долю времени. 3️⃣ В UI логику не держим или? С выходом AsyncImage сама Apple показала, что можно доверить загрузку картинок и UI-слою. 4️⃣ Вывод: при планировании архитектуры больше внимания стоит уделять не простоте написания, а простоте чтения кода и внесения изменений. Меня радует, что даже в крупных командах (около 80 человек) не пытаются писать код ради кода. Наша задача — решать сложные вопросы с помощью программирования, но помните, что слишком много оптимизации на ранних стадиях — может оказаться не лучшим способом. Будет здорово, если ещё кто-то прочитает про правило трёх. 📖 Обсуждение статьи.А о правиле трёх (и других моментах) можно прочесть в моём закрытом ноушне. 😃 iOS Dev

iOS Dev
7 877
Спасибо всем, кто подписался на бусти всего за один день, это отличный катализатор к развитию премиум-материалов в лучшем дос
Спасибо всем, кто подписался на бусти всего за один день, это отличный катализатор к развитию премиум-материалов в лучшем доступном виде. При работе над своими рабочим проектом и контентом для канала за годы у меня накопилось огромное количество материала, которым я так и не поделился здесь. Иногда это слишком узкие знания, иногда мне кажется, что порог входа может быть выше ожидаемого. Так или иначе, но знания должны быть структурированы. За прошедший месяц я начал наполнять свой отдельный Notion избранными исследованиями, подборками и самым разным контентом. Кроме этого, пообщавшись со Львом, выяснил, что Notion — формат, которым пользуются и другие блогеры. Поэтому решение выглядит верным. Я уже разбил структуру на блоки, которые мне кажутся важными: подготовка к собеседованиям, разбор полётов (узкие, но при этом необходимые темы для роста, и даже выделил отдельную подборку для эффектов). Кто читает канал давно, тот знает, что иногда я реализую клёвые штуки (c загадками Да Винчи). ☕️ Пока что подписка по стоимости захода в кофейню. А в качестве бонуса всем, кто подпишется хотя бы на 6 месяцев на Мастер, доступ будет навсегда (а может и не только им, кто знает). 😃 iOS Dev

iOS Dev
7 877
Как сделать сompletionHandler намного безопаснее? Прежде, чем посмотреть на результат исследования, взгляните на первый скрин
Как сделать сompletionHandler намного безопаснее? Прежде, чем посмотреть на результат исследования, взгляните на первый скриншот, и подумайте, что здесь можно сделать лучше. 📖 Винсент справедливо отмечает, что при использовании оператора defer гарантированно вызовется completionHandler непосредственно в конце функции. И именно поэтому возможно юзать result, поскольку к тому времени у него 100% будет значение. 😃 iOS Dev

iOS Dev
7 877
Как сделать сompletionHandler намного безопаснее? 😃 iOS Dev
Как сделать сompletionHandler намного безопаснее? 😃 iOS Dev

iOS Dev
7 877
📌 Важная новость На протяжении долгого времени в нашем канале я делился самыми разными вещами (и хардкорными, и доступными для новичков). Каждый автор контента знает, что если разбираться в коде (а я не допускал ни одного поста без предварительной проверки), требуется приличное количество времени, которого не так уж и много. Особенно при условии, что вы фулл-тайм разработчик. Включал викторины, уникальные истории и старался рассказать о новостях, используя призму своего опыта. В этом канале не было какой-то странной или непонятной рекламы (а вещей, которым я не доверяю, всё также не будет в дальнейшем). При этом периодически у меня спрашивают, можно ли как-то поблагодарить за контент или поддержать творчество. Отвечу сразу на эти вопросы: теперь такая возможность есть. 🐱 Сегодня я анонсирую iOS IQ, мой аккаунт на бусти — концентрированные знания в доступном виде. И, поскольку я не люблю донаты ради донатов, а при этом постоянно поддерживаю разработчиков советами и решением нетривиальных задач, это это будет регулярно обновляемый контент с понятными ответами на сложные вещи. Я долго думал об уровнях поддержки, но остановился на трёх: База, Мастер и Архитектор. Каждый из них обладает своими плюсами, но даже начального будет достаточно. Если вам нравится контент канала, вам удобен такой стиль изложения и вы хотели бы расставить точки над i в понятии iOS, то я буду рад каждому. А ещё небольшой бонус, каждому из тех, кто меня поддержит — будет доступна возможность комментирования постов в канале iOS Dev. Уже сегодня. Авторов с практическим опытом не так много, а контента — ещё меньше. Поэтому приходите, и получайте контент в удобном для вас виде. И кстати, если пока не готовы поддержать творчество финансово, подписывайтесь всё равно. ❤️❤️❤️❤️❤️➡️На бусти. Уверен, что смогу вас удивить. 😃 iOS Dev

iOS Dev
7 877
📌 Подборка полезных материалов про SwiftData По использованию SwiftData уже появилось множество статей и примеров использования, поэтому я решил вынести некоторые из них в специальный список, с помощью которого можно ориентироваться по многим интересующим вопросам. ➡️Отслеживание изменений данных в SwiftData. ➡️Архитектурный дизайн SwiftData и возможности миграции. ➡️Вопросы и ответы про SwiftData и CoreData. ➡️ Удаление данных в SwiftData. Видео и обзорные туториалы 📺 Видеокурс по SwiftData. 📺 Официальное видео от Apple с примером использования. 📖 Кто ты, SwiftData — большая статья с обзором концепций SwiftData от Андрея Зонова на хабре. 📖 SwiftData на примерах (создание проекта, контейнеров, моделей данных и связей, разбор архитектуры). 📖 Руководство по SwiftData для начинающих. Практические примеры 🛠 Пример реализации todo-приложения на github. 🛠 FaceFacts - приложение, используюещее SwiftUI и SwiftData с исходным кодом. 🛠 Приложение для коллекционирования сниппетов кода. 🛠 Создаём приложение для заметок. 😃 iOS Dev

iOS Dev
7 877
Гибкая обработка ошибок в Swift Полезно знать несколько способов обработки, чтобы выбрать лучший подход в зависимости от конт
Гибкая обработка ошибок в Swift Полезно знать несколько способов обработки, чтобы выбрать лучший подход в зависимости от контекста приложения. 📖 Вот тут можно познакомиться с типами, ключевыми словами и вариантами обработки кастомных ошибок. 😃 iOS Dev

iOS Dev
7 877
Делегирование в Swift: определение и примеры Паттерн «делегат» уже давно занимает одно из важнейших мест на платформах Apple.
Делегирование в Swift: определение и примеры Паттерн «делегат» уже давно занимает одно из важнейших мест на платформах Apple. Делегирование используется для всего, начиная от обработки событий таблицы с помощью UITableViewDelegate и заканчивая изменением поведения кэша с помощью NSCacheDelegate. Основная цель паттерна — позволить объекту общаться со своим владельцем в свободном (можно сказать, что отсоединённом) виде. Не требуя от объекта знать конкретный тип его владельца, мы можем писать код, который гораздо проще повторно использовать и поддерживать. Хотя это довольно простая в использовании концепция, у новичков могут быть вопросы по использованию. 📖 Рекомендую ознакомиться с этой статьёй, чтобы узнать больше о примерах использования (и возможных минусах). 😃 iOS Dev

iOS Dev
7 877
Камерный митап для мобильных разработчиков, где каждый может предложить свой кейс для обсуждения по трем трекам: iOS, Android, Flutter. Участники митапа — техлиды, руководители разработки и ведущие мобильные разработчики из команд Яндекс Go и Яндекс Про. В завершении вечера afterparty — нетворкинг, настолки, вкусная еда и напитки. Место встречи: Москва-Сити, башня «Око» Дата и время: 15 февраля, 18:30 Бесплатно. Количество мест ограничено. Регистрация обязательна Подробнее Реклама. ООО "Яндекс.Такси" ИНН 7704340310

iOS Dev
7 877
Подробное описание диспетчеризации в Swift Понимание, как Swift выполняет вызовы функций — один из необходимых навыков в наше
Подробное описание диспетчеризации в Swift Понимание, как Swift выполняет вызовы функций — один из необходимых навыков в нашей работе. Как и следует из определения, Method Dispatch — это то, как программа выбирает, какие инструкции нужно выполнить при вызове метода, и это то, что происходит каждый раз, когда вызывается тот или иной метод. Знание видов и характеристик важно для повышения производительности кода. Поэтому хорошо бы разбираться в том, чем, например, отличается Static dispatch от Dynamic dispatch. Кстати, диспетчеризация методов добавляет уникальности Swift: если большинство языков поддерживают несколько подходов к диспетчеризации, то Swift поддерживает их все (⚪️). 📖 Делюсь потрясающим разбором типов диспетчеризаций, примеров и отличий. Кстати, из этой статьи вы также узнаете, зачем для Realm (которая сейчас называется Atlas Device SDK) для свойств объектов нужно добавлять @objc dynamic. 😃 iOS Dev

iOS Dev
7 877
🤩 Новая топ-фича Xcode: сохранение скриншота напрямую из Preview Пока сообщество обсуждает новый язык пикл (ему в будущем ещ
🤩 Новая топ-фича Xcode: сохранение скриншота напрямую из Preview Пока сообщество обсуждает новый язык пикл (ему в будущем ещё будет уделено должное внимание) и особенности Vision Pro, я хочу рассказать о действительно крутой инновации, которая может кардинально изменить процесс создания скриншотов. В общем, в бете Xcode 15.3 появилась опция создания скрина прямо в режиме превью (как же долго мы это ждали). Для этого достаточно перейти в Editor > Canvas > Export Preview Screenshot (или можно скопировать напрямую, не верю, что Apple и это сделала). Супер-удобно (и да, сохранить можно сразу в нужном разрешении). 😃 iOS Dev

iOS Dev
7 877
💸Динамика зарплат разработчиков во второй половине 2023 года Во втором полугодии 2023 года зарплаты выросли в большей части
💸Динамика зарплат разработчиков во второй половине 2023 года Во втором полугодии 2023 года зарплаты выросли в большей части языков программирования. 😎 Самый ощутимый рост зарплат был у разработчиков в Objective-C и С++ — на 21%, до 379 000 и 200 000 ₽ соответственно. При этом, для Swift-разработчиков в медиане всё осталось по-старому, произошло только незначительное снижение на 2%, до 245 000 ₽. В среднем больше всего в компаниях платят в Авито (медиана 325 000 ₽), в пятёрке также Лаборатория Касперского и VK. 📖 Больше аналитики доступно здесь. 😃 iOS Dev

iOS Dev
7 877
Интеграция интерактивных 2D/3D-объектов в iOS-приложение В этой статье Степан из SimbirSoft разбирает, как можно реализовать интерактивный логотип целыми тремя способами (от плоского изображения к объёмному объекту). Полезно ещё и потому, что здесь отличный пример работы с жестами. 🛠 Код проекта доступен здесь. 📖 Ознакомиться с материалом можно на хабре. 😃 iOS Dev

iOS Dev
7 877
Так ли плохи курсы? Ключевой момент любого обучения в том, какую долю времени и под какой нагрузкой вы обучаетесь самостоятельно. В ВУЗе львиную долю обучения занимает поиск инструментов и то, как вы приспосабливаетесь к незнакомым глобальным направлениям (например, начертательная геометрия или электротехника). Безусловно, социализация, да и в целом вырабатываемые навыки общения это огромный плюс по сравнению с курсами, которые чаще всего происходят в онлайне. Несмотря на это, при значимой базе преподавателей и тех, кто непосредственно формирует учебный план, некоторые курсы могут дать фору по количеству концентрированного материала по сравнению с двумя (иногда и тремя) семестрами в университетах. Основной минус при этом — отсутствие государственной аккредитации (очень часто), и обучение одной ветви навыков. Поэтому, например, для того, чтобы узнать что-то новое в интересующем направлении — короткий спринт обучения будет с более высоким приоритетом. И в этом случае выбор между курсами (в том числе онлайновыми) и 4 годами обучения (минимум) очевиден. Однако если вы только в начале пути, даже средний ВУЗ будет лучшим вариантом, так как преподаватели там улучшали свою учебную программу годами, если не десятилетиями. И даже программирование микроконтроллеров на ассемблере это не зря и не так страшно, так как именно в этом случае и можно понять, как многое работает под капотом на самом деле. 😃 iOS Dev

iOS Dev
7 877
🟥 Солнце, море и подводные камни iOS-разработки Приглашаем на бесплатный интенсив по мобильной разработке от Яндекса и «Сири
🟥 Солнце, море и подводные камни iOS-разработки Приглашаем на бесплатный интенсив по мобильной разработке от Яндекса и «Сириуса» в Сочи! В марте собираем мобильных разработчиков на берегу Черного моря. Обновите знания о быстро развивающемся Swift, поработайте в команде с экспертами Яндекса, напишите приложение и просто классно проведите весенние вечера в Сочи. Чем интересен интенсив Лекциями, семинарами и обилием практики. Собрали всё, что нужно знать, чтобы с нуля написать мобильное приложение для iOS. Участники пройдут все этапы работы над проектом: от продумывания идеи и экранов до распределения задач, настройки CI и код-ревью. Лучших студентов мы пригласим стать стажерами или сотрудниками Яндекса. Кого ждем Студентов бакалавриата, магистратуры и аспирантуры, которые планируют заниматься мобильной разработкой на iOS. Подробнее о необходимых навыках можно узнать здесь. Место и время С 18 по 29 марта в научно-технологическом университете «Сириус» на федеральной территории Сириус в Сочи. 🥕 Обучение, проезд, проживание и питание на время интенсива предоставит университет «Сириус». Подайте заявку и решите тестовое до 4 февраля: https://clck.ru/38R7kA

iOS Dev
7 877
Шикарный эффект с использованием SpriteKit Конечно, при должном скилле Metal может удивить даже самых скилловых разработчиков, но и на SpriteKit можно делать красоту. 🤩 Как, например, это сделал Toni Lijic в гифке, которую вы видите. 🛠 Приятный бонус для подписчиков нашего канала — исходный код, где показано, как это можно настроить. 😃 iOS Dev