iOS Dev
Відкрити в Telegram
👨💻Автор: Виктор Грушевский (@Viktorianec) ⚒️ База: https://boosty.to/ios_dev | 🤖 @iOSIQBot | https://iosiq.ru 🍏Канал об iOS-разработке, алгоритмах и архитектурах ⭐️ Подготовка к собесам ⭐️ Код. Много кода. #ios #mobile #swift
Показати більше8 002
Підписники
+424 години
+477 днів
+8230 день
Архів дописів
8 002
Камерный митап для мобильных разработчиков, где каждый может предложить свой кейс для обсуждения по трем трекам: iOS, Android, Flutter.
Участники митапа — техлиды, руководители разработки и ведущие мобильные разработчики из команд Яндекс Go и Яндекс Про. В завершении вечера afterparty — нетворкинг, настолки, вкусная еда и напитки.
Место встречи: Москва-Сити, башня «Око»
Дата и время: 15 февраля, 18:30
Бесплатно. Количество мест ограничено. Регистрация обязательна
Подробнее
Реклама. ООО "Яндекс.Такси" ИНН 7704340310
8 002
Подробное описание диспетчеризации в Swift
Понимание, как Swift выполняет вызовы функций — один из необходимых навыков в нашей работе.
Как и следует из определения, Method Dispatch — это то, как программа выбирает, какие инструкции нужно выполнить при вызове метода, и это то, что происходит каждый раз, когда вызывается тот или иной метод.
Знание видов и характеристик важно для повышения производительности кода.
Поэтому хорошо бы разбираться в том, чем, например, отличается Static dispatch от Dynamic dispatch.
Кстати, диспетчеризация методов добавляет уникальности Swift: если большинство языков поддерживают несколько подходов к диспетчеризации, то Swift поддерживает их все (⚪️).
📖 Делюсь потрясающим разбором типов диспетчеризаций, примеров и отличий.
Кстати, из этой статьи вы также узнаете, зачем для Realm (которая сейчас называется Atlas Device SDK) для свойств объектов нужно добавлять
@objc dynamic.
😃 iOS Dev8 002
🤩 Новая топ-фича Xcode: сохранение скриншота напрямую из Preview
Пока сообщество обсуждает новый язык пикл (ему в будущем ещё будет уделено должное внимание) и особенности Vision Pro, я хочу рассказать о действительно крутой инновации, которая может кардинально изменить процесс создания скриншотов.
В общем, в бете Xcode 15.3 появилась опция создания скрина прямо в режиме превью (как же долго мы это ждали).
Для этого достаточно перейти в
Editor > Canvas > Export Preview Screenshot (или можно скопировать напрямую, не верю, что Apple и это сделала). Супер-удобно (и да, сохранить можно сразу в нужном разрешении).
😃 iOS Dev8 002
💸Динамика зарплат разработчиков во второй половине 2023 года
Во втором полугодии 2023 года зарплаты выросли в большей части языков программирования.
😎 Самый ощутимый рост зарплат был у разработчиков в Objective-C и С++ — на 21%, до 379 000 и 200 000 ₽ соответственно.
При этом, для Swift-разработчиков в медиане всё осталось по-старому, произошло только незначительное снижение на 2%, до 245 000 ₽.
В среднем больше всего в компаниях платят в Авито (медиана 325 000 ₽), в пятёрке также Лаборатория Касперского и VK.
📖 Больше аналитики доступно здесь.
😃 iOS Dev
8 002
Интеграция интерактивных 2D/3D-объектов в iOS-приложение
В этой статье Степан из SimbirSoft разбирает, как можно реализовать интерактивный логотип целыми тремя способами (от плоского изображения к объёмному объекту).
Полезно ещё и потому, что здесь отличный пример работы с жестами.
🛠 Код проекта доступен здесь.
📖 Ознакомиться с материалом можно на хабре.
😃 iOS Dev
8 002
Так ли плохи курсы?
Ключевой момент любого обучения в том, какую долю времени и под какой нагрузкой вы обучаетесь самостоятельно.
В ВУЗе львиную долю обучения занимает поиск инструментов и то, как вы приспосабливаетесь к незнакомым глобальным направлениям (например, начертательная геометрия или электротехника).
Безусловно, социализация, да и в целом вырабатываемые навыки общения это огромный плюс по сравнению с курсами, которые чаще всего происходят в онлайне.
Несмотря на это, при значимой базе преподавателей и тех, кто непосредственно формирует учебный план, некоторые курсы могут дать фору по количеству концентрированного материала по сравнению с двумя (иногда и тремя) семестрами в университетах.
Основной минус при этом — отсутствие государственной аккредитации (очень часто), и обучение одной ветви навыков.
Поэтому, например, для того, чтобы узнать что-то новое в интересующем направлении — короткий спринт обучения будет с более высоким приоритетом.
И в этом случае выбор между курсами (в том числе онлайновыми) и 4 годами обучения (минимум) очевиден.
Однако если вы только в начале пути, даже средний ВУЗ будет лучшим вариантом, так как преподаватели там улучшали свою учебную программу годами, если не десятилетиями.
И даже программирование микроконтроллеров на ассемблере это не зря и не так страшно, так как именно в этом случае и можно понять, как многое работает под капотом на самом деле.
😃 iOS Dev
8 002
🟥 Солнце, море и подводные камни iOS-разработки
Приглашаем на бесплатный интенсив по мобильной разработке от Яндекса и «Сириуса» в Сочи!
В марте собираем мобильных разработчиков на берегу Черного моря. Обновите знания о быстро развивающемся Swift, поработайте в команде с экспертами Яндекса, напишите приложение и просто классно проведите весенние вечера в Сочи.
Чем интересен интенсив
Лекциями, семинарами и обилием практики. Собрали всё, что нужно знать, чтобы с нуля написать мобильное приложение для iOS. Участники пройдут все этапы работы над проектом: от продумывания идеи и экранов до распределения задач, настройки CI и код-ревью. Лучших студентов мы пригласим стать стажерами или сотрудниками Яндекса.
Кого ждем
Студентов бакалавриата, магистратуры и аспирантуры, которые планируют заниматься мобильной разработкой на iOS. Подробнее о необходимых навыках можно узнать здесь.
Место и время
С 18 по 29 марта в научно-технологическом университете «Сириус» на федеральной территории Сириус в Сочи.
🥕 Обучение, проезд, проживание и питание на время интенсива предоставит университет «Сириус».
Подайте заявку и решите тестовое до 4 февраля: https://clck.ru/38R7kA
8 002
Шикарный эффект с использованием SpriteKit
Конечно, при должном скилле Metal может удивить даже самых скилловых разработчиков, но и на SpriteKit можно делать красоту.
🤩 Как, например, это сделал Toni Lijic в гифке, которую вы видите.
🛠 Приятный бонус для подписчиков нашего канала — исходный код, где показано, как это можно настроить.
😃 iOS Dev
8 002
Реализация эффектов ScrollView в iOS 17
🤩 В iOS 17 у нас появились новые возможности анимации.
Существует ряд атрибутов, которые можно изменять при скролле: размер, видимость, иа ещё можно поработать со вращением элементов.
📖 Вот тут можно посмотреть, как работать с такими эффектами, но важно учитывать, что слишком большого количества анимаций следует избегать.
😃 iOS Dev
8 002
❕Анонс расширенной аналитики в App Store
В соответствии с изменениями DMA (законе о цифровых рынках), Apple расширит аналитику, доступную для приложений разработчиков как в ЕС, так и по всему миру.
Обещают, что через API App Store Connect будет доступно более 50 новых видов отчетов для анализа эффективности, среди которых:
1️⃣ Engagement — доп. инфа я о количестве пользователей в App Store, которые взаимодействуют с приложением разработчика или делятся им.
2️⃣ Commerce — информация о загрузках, продажах и выручке, предзаказах и транзакциях In-App Purchase.
3️⃣ App usage — покажут новые отчёты о крашах, активных девайсах, инсталлах, удалениях и так далее.
4️⃣ Frameworks usage — о взаимодействии юзеров с с PhotoPicker, Widgets и CarPlay.
Кстати, появится Analytics Reports API для доступа к этим отчётам (может и я добавлю в Starly 🤌).
Дополнительные детали будут в марте.
😃 iOS Dev
8 002
‼️ Альтернативные магазины приложений уже доступны!
Apple анонсировала долгожданные изменения в политике распространения приложений для Европейского Союза
Для нас это значит новые возможности распространения приложений и создания своих сторов. Обещают более 600 новых API и расширенную аналитику, сниженную комиссию и новые возможности оплаты внутри приложений.
Уже в бете 17.4 сегодня.
😃 iOS Dev
8 002
SwiftUI LazyVGrid и LazyHGrid: обзор возможностей
🤩 В отличие от обычных сеток,
LazyVGrid и LazyHGrid предлагают более динамичные и гибкие способы отображения контента.
Они отлично подходят, например, для галереи изображений (где необходимо представить данные в нескольких строках или столбцах, адаптируясь к различным размерам и ориентации экрана).
📖 В этом обзоре приводятся примеры использования и опции кастомизации.
😃 iOS Dev8 002
Разбор и разрешение мерж-конфликтов (продолжение работы с Git)
В большинстве случаев при понимании принципов работы Git вы уже будете готовы к подобным проблемам.
Но если вы видите это в первый или второй раз, то не всегда понятно, что делать в таких ситуациях.
📖 Вот тут можно познакомиться с основными причинами мерж-конфликтов и посмотреть на варианты их разрешения.
😃 iOS Dev
8 002
Реализация модульной архитектуры на примере Spotify
В каждом крупном проекте при увеличении количества требований архитектура приложения подвергается испытаниям.
Даже если используются модули, могут возникнуть проблемы с такими вещами, как классы с кучей параметров, неявные зависимости, нединамичность и увеличение времени сборки.
📺 В этом докладе объясняется, как практика модульной архитектуры Spotify может быть использована при росте проекта и как при этом попробовать сохранить тестируемость и скорость сборки независимо от размера.
😃 iOS Dev
8 002
Изучение акторов и расширений протоколов
В этом посте автор решил поэкспериментировать с использованием Actors. И, как оказалось, существует несколько тонкостей, которые полезно знать.
📖 Более детально можно познакомиться здесь. Основные темы:
1️⃣ Как проверить ошибки в вашем многопоточном коде с помощью юнит-тестов.
2️⃣ Что может пойти не так, когда вы используете расширения протоколов на Actors.
3️⃣ Как безопасно использовать расширения протоколов на акторах.
😃 iOS Dev
8 002
Погружение в управление памятью в Swift
Статей по управлению памятью в Swift не так много, но это одна из тем базы при любом собеседовании на позицию iOS-разработчика.
В нашем канале есть отличная подборка, которая будет пополнена и этим материалом.
📖 В своём посте Александр Дремов рассказывает о том, как работает управление памятью в Swift, и как модификаторы памяти:
unowned и weak - влияют на время жизни объекта.
😃 iOS Dev8 002
Предотвращение гонок данных при использовании глобальных переменных
Мы всегда должны предотвращать потенциальные гонки данных, поскольку они могут привести к самым неожиданным крашам.
Если при использовании Swift 6 в build settings включить настройку concurrency, то можно получить соответствующие предупреждения.
📖 В этом материале автор рассказывает, как избежать таких ворнингов при обращении к глобальным переменным из любого контекста.
😃 iOS Dev
8 002
Разбор кнопок SwiftUI: создание и возможности кастомизации
Безусловно, кнопки играют важнейшую роль в мобильных приложениях, ведь это основной способ взаимодействия и навигации в наших продуктах для пользователей.
Нам доступно множество опций для настройки, а ещё возможностей создания такиех элементов с выпадающими списками и разными стилями.
📖 В этом посте объясняется, как красить кнопки как добавить кастомные стили и несколько анимаций.
😃 iOS Dev
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
