ch
Feedback
iOS Dev

iOS Dev

前往频道在 Telegram

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

显示更多
7 877
订阅者
-424 小时
+27
-5430
帖子存档
iOS Dev
7 877
Реализация эффектов ScrollView в iOS 17 🤩 В iOS 17 у нас появились новые возможности анимации. Существует ряд атрибутов, кот
Реализация эффектов ScrollView в iOS 17 🤩 В iOS 17 у нас появились новые возможности анимации. Существует ряд атрибутов, которые можно изменять при скролле: размер, видимость, иа ещё можно поработать со вращением элементов. 📖 Вот тут можно посмотреть, как работать с такими эффектами, но важно учитывать, что слишком большого количества анимаций следует избегать. 😃 iOS Dev

iOS Dev
7 877
Анонс расширенной аналитики в 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

iOS Dev
7 877
‼️ Альтернативные магазины приложений уже доступны! Apple анонсировала долгожданные изменения в политике распространения прил
‼️ Альтернативные магазины приложений уже доступны! Apple анонсировала долгожданные изменения в политике распространения приложений для Европейского Союза Для нас это значит новые возможности распространения приложений и создания своих сторов. Обещают более 600 новых API и расширенную аналитику, сниженную комиссию и новые возможности оплаты внутри приложений. Уже в бете 17.4 сегодня. 😃 iOS Dev

iOS Dev
7 877
SwiftUI LazyVGrid и LazyHGrid: обзор возможностей 🤩 В отличие от обычных сеток, LazyVGrid и LazyHGrid предлагают более динам
SwiftUI LazyVGrid и LazyHGrid: обзор возможностей 🤩 В отличие от обычных сеток, LazyVGrid и LazyHGrid предлагают более динамичные и гибкие способы отображения контента. Они отлично подходят, например, для галереи изображений (где необходимо представить данные в нескольких строках или столбцах, адаптируясь к различным размерам и ориентации экрана). 📖 В этом обзоре приводятся примеры использования и опции кастомизации. 😃 iOS Dev

iOS Dev
7 877
Жиза в тему 😅
Жиза в тему 😅

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

iOS Dev
7 877
Реализация модульной архитектуры на примере Spotify В каждом крупном проекте при увеличении количества требований архитектура
Реализация модульной архитектуры на примере Spotify В каждом крупном проекте при увеличении количества требований архитектура приложения подвергается испытаниям. Даже если используются модули, могут возникнуть проблемы с такими вещами, как классы с кучей параметров, неявные зависимости, нединамичность и увеличение времени сборки. 📺 В этом докладе объясняется, как практика модульной архитектуры Spotify может быть использована при росте проекта и как при этом попробовать сохранить тестируемость и скорость сборки независимо от размера. 😃 iOS Dev

iOS Dev
7 877
Изучение акторов и расширений протоколов В этом посте автор решил поэкспериментировать с использованием Actors. И, как оказал
Изучение акторов и расширений протоколов В этом посте автор решил поэкспериментировать с использованием Actors. И, как оказалось, существует несколько тонкостей, которые полезно знать. 📖 Более детально можно познакомиться здесь. Основные темы: 1️⃣ Как проверить ошибки в вашем многопоточном коде с помощью юнит-тестов. 2️⃣ Что может пойти не так, когда вы используете расширения протоколов на Actors. 3️⃣ Как безопасно использовать расширения протоколов на акторах. 😃 iOS Dev

iOS Dev
7 877
Погружение в управление памятью в Swift Статей по управлению памятью в Swift не так много, но это одна из тем базы при любом
Погружение в управление памятью в Swift Статей по управлению памятью в Swift не так много, но это одна из тем базы при любом собеседовании на позицию iOS-разработчика. В нашем канале есть отличная подборка, которая будет пополнена и этим материалом. 📖 В своём посте Александр Дремов рассказывает о том, как работает управление памятью в Swift, и как модификаторы памяти: unowned и weak - влияют на время жизни объекта. 😃 iOS Dev

iOS Dev
7 877
Предотвращение гонок данных при использовании глобальных переменных Мы всегда должны предотвращать потенциальные гонки данных
Предотвращение гонок данных при использовании глобальных переменных Мы всегда должны предотвращать потенциальные гонки данных, поскольку они могут привести к самым неожиданным крашам. Если при использовании Swift 6 в build settings включить настройку concurrency, то можно получить соответствующие предупреждения. 📖 В этом материале автор рассказывает, как избежать таких ворнингов при обращении к глобальным переменным из любого контекста. 😃 iOS Dev

iOS Dev
7 877
Разбор кнопок SwiftUI: создание и возможности кастомизации Безусловно, кнопки играют важнейшую роль в мобильных приложениях,
Разбор кнопок SwiftUI: создание и возможности кастомизации Безусловно, кнопки играют важнейшую роль в мобильных приложениях, ведь это основной способ взаимодействия и навигации в наших продуктах для пользователей. Нам доступно множество опций для настройки, а ещё возможностей создания такиех элементов с выпадающими списками и разными стилями. 📖 В этом посте объясняется, как красить кнопки как добавить кастомные стили и несколько анимаций. 😃 iOS Dev

iOS Dev
7 877
Собственная обёртка для SQLite с нуля В своём канале я периодически пишу и делюсь вещами, которые можно назвать вечными, они
Собственная обёртка для SQLite с нуля В своём канале я периодически пишу и делюсь вещами, которые можно назвать вечными, они будут всегда находиться на пике хайпа и важности в наших проектах (анимации, многопоточность, память). Но иногда очень хочется рассказать и про необычные решения, которые может не так популярны и не собирают тысячи звёзд на Github, но за которыми стоит преодоление внутренних вызовов, порой сложных и обделённых вниманием публики. Например, уверен, что многие использовали FMDB — возможно, самый известный враппер для SQLite. А многие тир-1 компании пишут свои собственные для обработки кейсов, связаных с производительностью и даже шарят какие-то исследования. Например, как ВК реализовал кэш сообщений (общая инфа и для iOS, и для Android). В своё время я вдохновлялся этим подходом, и мы даже что-то использовали в работе над продуктом нашей компании. Так вот, сегодня я хочу пошарить работу Джека Морриса, который не только делает, но и рассказывает об этапах создания собственного враппера с поддержкой Swift Concurrency, а также о проблемах, с которыми сталкивается. 1️⃣ Обертка для Swift SQLite, часть 1: Создание соединения. 2️⃣ Часть 2: Привязка и получение значений. 3️⃣ Часть 3: Пул соединений. 😃 iOS Dev

iOS Dev
7 877
Масштабное руководство по анимациям в SwiftUI При первом знакомстве со SwiftUI можно только удивляться лёгкости, с которой во
Масштабное руководство по анимациям в SwiftUI При первом знакомстве со SwiftUI можно только удивляться лёгкости, с которой возможно добиться различных анимационных эффектов. ❗️ Но после более глубокого рассмотрения можно заметить ряд сложностей. Основная причина этих проблем — отсутствие детального понимания логики обработки анимации в SwiftUI. 📖 В этой статье можно узнать о тонкостях в механизме анимации и научиться создавать более продвинутые эффекты. 😃 iOS Dev

iOS Dev
7 877
Чтение и запись пространственного видео с помощью AVFoundation AVFoundation справляется с задачами чтения, записи и воспроизв
Чтение и запись пространственного видео с помощью AVFoundation AVFoundation справляется с задачами чтения, записи и воспроизведения кадров, но процесс меняется при работе с пространственным видео (также известным как MV-HEVC), которое по факту представляет собой видео с двух разных сторон. Загрузка пространственного видео в AVPlayer или AVAssetReader на iOS выглядит так же, как и загрузка обычного видео. В iOS 17.2 и macOS 14.2 (и, кстати, новый Xcode уже в проде) появились новые API AVFoundation для работы с файлами MV-HEVC. Они позволяют легко получить оба ракурса пространственного видео, однако (как часто и бывает для AVFoundation) им не хватает документации. 📖 Вот несколько советов по работе с ними. 😃 iOS Dev

iOS Dev
7 877
Советы по производительности кода для SwiftUI (и не только) Поиск проблем производительности, пожалуй, одновременно одна из самых сложных и интересных составляющих нашей работы. Это могут быть потенциальные сложности с анимацией, излишняя нагрузка на мэйнтрэд или излишнее обновление данных из-за проблем с реализацией кэша. А для SwiftUI это могут быть и проблемы, связанные с лишними отрисовками. Решение вопросов, связанных с нагрузкой на девайс, может быть профитно и для пользователей, и для профессионального развития. Неплохой точкой отсчёта для поиска проблем с производительностью могут быть эти видео от Apple: 📺 Демистификация и устранение недочетов на этапе рендеринга. 📺 Поиск проблем с анимацией пользовательского интерфейса. 📺 Использование инструментов для поиска неполадок. 📖 А вот тут Martin Mitrevski приводит примеры, которые могут вызывать подобные проблемы, и указывает на возможные варианты решения. 😃 iOS Dev

iOS Dev
7 877
Быть эффективным Я скептически отношусь к мотивационным роликам, которые рассказывают о том, как без труда можно обойти фильтры HR. Ошибка выжившего, с помощью которой манипулируют блогеры, становится путеводной звездой для ребят, которые ищут легкий путь. Для меня это как снежный ком, который уже не только формируется, но и набирает обороты, катясь по склону и подминая под себя всех без разбора. Как я уже говорил ранее на примере ChatGPT, упрощение на первый взгляд взаимодействия (или пропуска фильтров), приведет к более масштабным проблемам в будущем. Уменьшение количества ответов на StackOverflow это вершина айсберга, недавно и The New York Times начала судиться с OpenAI. И если на сегодня наши будущие коллеги довольны тем, что красиво обходят на вираже своих товарищей, то через несколько оборотов выше эта спираль начнет душить индустрию изнутри. И вполне возможно, что не только в компаниях уровня "Y" как когда-то ранее будут писать код на доске, или проходить 8 уровней собеседований, но и в других организациях, рангом ниже, будут жестче работать тиски техсобесов. Конечно, алгоритмы это не серебряная пуля, в адекватных компаниях достаточно увидеть ход того, как вы решаете незнакомые вещи, как мыслите и как именно справляетесь при большом количестве неизвестных. Будьте эффективнее, пишите код, изучайте теорию, формируйте фундамент. Ни один художник не получил признания, только посещая выставки. Ни один музыкант не стал новым Моцартом, послушав, как играют другие, и не сочинив своих композиций. Также и ни один программист не станет архитектором, только прочитав «Банду четырёх» и не написав ни строчки кода. 😃 iOS Dev

iOS Dev
7 877
Анимация морфинга в Dynamic Island 🤩 Janum Trivedi создал похожую анимацию в SwiftUI и выложил ее в открытый доступ. Она выглядит интуитивно, работает на частоте 120 Гц, и, что главное, не юзает приватное API. 🚀 Посмотреть реализацию на Swift + Metal можно тут. 😃 iOS Dev

iOS Dev
7 877
Основы Git для iOS-разработчиков 👨‍💻 Для начинающих разработчиков необходимо понимать принципы работы (даже если вы юзаете
Основы Git для iOS-разработчиков 👨‍💻 Для начинающих разработчиков необходимо понимать принципы работы (даже если вы юзаете Tower или другой клиент). На самом деле, конечно, не совсем корректно говорить только в контексте iOS. 📖 В этом посте хорошо объясняются на примерах основы git, после которых уже можно приступать и к более продвинутым действиям. 😃 iOS Dev

iOS Dev
7 877
2023 -> 2024 Подходит к концу год, оказавшийся непростым для всех. Я хочу верить, что у вас получилось справиться со всеми рабочими задачами, и выполнить большинство планов. Надеюсь, что кто-то из вас нашёл работу и повысил уровень своего дохода. У меня, например, не получилось достигнуть всех целей, но апдейты для Starly и Lines в итоге добрались до стора. Кроме этого, начал учить греческий язык и специально для этого сделал приложение Сократ, а также довёл до прода приложение по управлению подписками (пока сыровато, но пара фишек точно есть). Даже получилось справиться с алгоритмическим марафоном Яндекса 🥲. Но вот что хочется сказать Профессиональные цели — это хорошо, но не главное в жизни. Пожалуйста, будьте добры с вашими близкими, цените их и не забывайте, что деньги можно успеть заработать, а время купить нельзя. Не забывайте о здоровье, и взвешивайте импакт возможных переработок. Желаю вам следовать за моральным компасом, и делать то, что действительно важно. А от меня как минимум интересные статьи, видео, истории и подборки (и розыгрыши). 🎄С наступающим Новым годом! 😃 iOS Dev - поздравить можно бустом (или лайком)