iOS Dev
Kanalga Telegram’da o‘tish
👨💻Автор: Виктор Грушевский (@Viktorianec) ⚒️ База: https://boosty.to/ios_dev | 🤖 @iOSIQBot | https://iosiq.ru 🍏Канал об iOS-разработке, алгоритмах и архитектурах ⭐️ Подготовка к собесам ⭐️ Код. Много кода. #ios #mobile #swift
Ko'proq ko'rsatish8 003
Obunachilar
+424 soatlar
+477 kunlar
+8230 kunlar
Postlar arxiv
8 002
Apple Store Ковент-Гарден (Лондон)
Посещение необычных или старых сторов эпл - одна из моих небольших традиций при поездках в другие страны.
📸 В этот раз делюсь фотосетом одного из флагманских магазинов компании в Великобритании.
Трехэтажный магазин, расположенный в здании, где раньше находился Rock Garden, привлекает огромное количество туристов.
Каждое помещение посвящено одной из линеек продукции Apple, а главный двор полностью отдан под большие дубовые столы с десятками планшетов iPad, которые покупатели смогут опробовать.
После оплаты они могут посетить «комнату настройки», где сотрудники Apple распакуют и настроят их новый гаджет.
Забавный факт, даже если у компании что-то пойдет не так, то на продаже этой недвижимости они смогут заработать невероятно крупную сумму денег, ведь адрес этого красивого здания - London, The Plaza, 1.
Около десяти лет назад в Ковент-Гардене было даже больше посетителей, чем на пятом авеню в Нью-Йорке!
Другие истории об эпл сторах:
🍏 Apple Store Marunouchi в Токио.
🍏 Apple Store в Купертино.
🍏 Apple Tower Theater в Лос-Анджелесе.
😃 iOS Dev
8 002
Шаринг файлов с кастомными типами в iOS
📁 Если вы планируете использовать не только стандартные типы файлов на iOS, но и заставить систему распознать файл и открыть его в вашем приложении, вы можете использовать типы документов и идентификаторы экспортируемых типов.
Это очень полезно при создании приложений для работы с документами, позволяющих экспортировать данные для резервного копирования или переноса между платформами.
📖 Вот тут есть инструкция с примером кода, как это сделать.
🐱 А в ноушне добавил пост, как можно переносить данные между своими приложениями в целом (около десятка вариантов).
😃 iOS IQ
8 002
Создание 3D-элементов для iOS и VisionOS
Meng To выпустил большое обучающее видео по работе со Spline.
📺 В этом видео можно узнать о следующих вещах:
1️⃣ Создание интерактивных 3D-сцен для приложений iOS и экспорт в Xcode 15+.
2️⃣ Работа над элементами для visionOS.
3️⃣ Пример создания 3D-иконок приложений и динамических анимаций интерфейса.
4️⃣ Расширенные возможности Spline, такие как частицы и физика для более реалистичных эффектов.
5️⃣ Введение в 3D-моделирование.
😃 iOS Dev
8 002
TextView и что он скрывает: история разработки приложения Paper
Уже более 9 лет Михаил Лапушкин работает над своим текстовым редактором. За это время он прошёл огромный путь, и в двух по-настоящему масштабных статьях делится тем, с какими подводными камнями ему пришлось столкнуться и, например, почему в приложении нет сторонних зависимостей.
TextView — это огромный компонент, сложность которого только возрастает с каждым выпуском оси.
Например, приложение TextEdit почти полностью состоит из одного TextView.
Ну а когда один класс может быть использован для создания целого приложения, вы и сами понимаете, что это за зверь.
📖 В первой части Михаил рассказывает свою увлекательную историю приложения (об архитектуре, релизах, дебаге и не только).
📖 А во второй делится хардкорными вещами: работой с атрибутами, стилями, перфомансом, математикой для отрисовки и многим другим.
😃 iOS Dev • 🐱 Узнать больше об архитектурах
8 002
Важное обновление AppStore Connect, новый сервис Apple Crash +
В дополнение к последним изменениям, касающимся проверки доступа к API и необходимости работы с privacy manifests в эппл приняли сегодня выкатили новую политику проверки приложений.
Теперь review team будет проверять приложения только 3 раза после каждого реджекта. Все остальные проверки доступны платно.
Доступно два вида подписки на Apple Crash +:
💵$ 9.99 в месяц – Apple Crash + безлимитные проверки приложений после первого реджекта.
💵$ 19.99 в месяц – все то же самое, что и в первой версии, но проверка приложений будет в течение часа после загрузки билда.
Видимо, изменения вызваны упущенной выгодой в новых альтсторах.
📺 Детально изменения доступны на новом канале эпла в YouTube.
😃 iOS Dev
8 002
Простая монетизация — инструмент для повышения доходов от рекламы
Каждая студия мечтает больше фокусироваться на развитии проектов и меньше беспокоиться о бюджете на разработку. Один из способов обрести больше независимости — продуманная стратегия монетизации приложения.
Опыт студии Starkom показывает, что повысить доходы от игр можно, настроив рекламную монетизацию. Студия решила сэкономить время и силы, поэтому подключила Простую монетизацию Яндекса. В результате разработчики стали зарабатывать в 4 раза больше на рекламе в приложениях. Например, в приложении Drift Legends еCPM выросла с 70 ₽ до 240 ₽.
При этом сэкономили время и ресурсы — эксперты Простой монетизации сами проводят аудит приложения, настраивают рекламные блоки и единую систему медиации без участия партнёра. Всего за 10% с доходов от настроенной монетизации.
Узнать подробнее о Простой монетизации и оставить заявку на подключение можно по ссылке: https://clck.ru/39kE6h?erid=2bL9aMPomHTWZFD1JYB2zKBypW
8 002
Новый раздел в Develop in Swift от Apple
🤩 Тим Снит сегодня анонсировал новый набор туториалов для тех, кто только делает первые шаги в программировании с помощью Swift и SwiftUI.
Для понимания даже не нужен предварительный опыт написания кода в целом, так что эти материалы могут стать отличным стартом.
📖 Обучающие материалы Apple доступны здесь.
😃 iOS Dev • Разбор алгоритмов
8 002
SwiftUI Layout Protocol: как работать с версткой в SwiftUI
Хотя создавать базовый лэйаут несложно, существует множество вариантов, с которыми могут быть трудности.
Ниже будут рассмотрены не только типичные примеры для Layout, но и ряд важных моментов для формирования базы.
Весь материал состоит из двух больших частей, для удобства они сгруппированы по темам.
Первая часть:
➡️ Что такое Layout Protocol?
➡️ Разбор View Hierarchy.
➡️ Первая реализация лэйаута.
➡️ Выравнивание контейнеров.
➡️ Кастомные значения: LayoutValueKey.
➡️ Дефолтный Spacing.
➡️ Для чего нужен Spacer().
➡️ Layout Cache.
➡️ Переключение между лэйаутами с помощью AnyLayout.
➡️ Выводы.
Вторая часть:
➡️ Пусть начнётся веселье!
➡️ Кастомные анимации.
➡️ Двунаправленные кастомные значения.
➡️ Избежание зацикливания и крашей.
➡️ Рекурсивные лэйауты.
➡️ Композиция лэйаутов.
➡️ Еще один пример композиции: Интерполяция.
➡️ Использование binding-параметров.
➡️ Полезный инструмент отладки.
➡️ Заключительные мысли.
🐱 Больше разборов, примеров анимаций, алгоритмов и архитектур — доступно вот здесь.
😃 iOS IQ
8 002
Воспроизведение анимации с заставки WWDC 2024
В iOS IQ я стараюсь рассматривать не только важные моменты о разработке, но и необычные анимации и эффекты.
Во вчерашней новости многие обратили внимание на сложный эффект в заставке.
🤩А Дэниел Кунц уже успел реализовать его с помощью метал-шейдера.
🐱 Получить доступ к реализации других необычных эффектов можно здесь.
😃 iOS IQ
8 002
Новый источник знаний от Apple (в дополнение к анонсу WWDC)
📺 Apple запустила новый канал Apple Developer на YouTube, который будет использоваться для обмена информацией о сессиях и мероприятиях WWDC, за которыми смогут следить разработчики.
Видеоролики уже сейчас организованы в плейлисты по темам: App Store, Swift, Spatial Computing, Safari (и будут доплняться другими разделами).
И это уже даёт представление, какой контент мы можем ждать на самой конфе.
😃 iOS IQ
8 002
😎WWDC 2024 пройдёт с 10 по 14 июня
Сегодня компания Apple объявила о том, что ежегодная Всемирная конференция разработчиков (WWDC) пройдёт в режиме онлайн с 10 по 14 июня 2024 года.
Разработчики и студенты смогут лично принять участие в специальном мероприятии в Apple Park в день открытия.
Количество мест будет ограничено, а подробную информацию о том, как подать заявку на участие, можно найти на сайте и в приложении для разработчиков Apple.
😃 iOS IQ
8 002
Генерация Swift-кода в (почти) реальном времени на базе нарисованного скетча
🎆 Дэниел Лейверс в демонстрации магистерской диссертации показал, на что способны современные технологии.
Можно набросать скетч помощью iPad-pencil и увидеть, как рядом с ним появляется реальный интерактивный интерфейс и Swift-код.
Приложение использует модель, заранее созданную на базе элементов UI, которая подается в алгоритм yolov5 и преобразуется в CoreML.
Это невероятно сложно и интересно.
📖 Саму диссертацию Дэниела можно прочитать здесь.
😃 iOS IQ • Другие эффекты
8 002
Рисование и анимация: контуры и фигуры в SwiftUI
У эппл есть туториал, который поможет добавить ачивки, например в случаях, если пользователи посещают достопримечательность из своего списка.
📖 В этом уроке рассматривается процесс создания такого элемента путем комбинирования различных контуров и фигур.
Кроме этого, можно поэкспериментировать с наложенным символом, варьируя количество повторений или меняя углы и масштаб.
⏳Отлично подойдёт новичкам (и по времени всего 25 минут). Код доступен здесь.
😃 iOS IQ • Другие эффекты
8 002
Большое обновление базы iOS IQ
➡️ Добавлен блок на умение читать и понимать код (и поиск ошибок).
Разобрал порождающие паттерны проектирования (с примерами на Swift):
✨ Абстрактная фабрика, строитель, прототип, синглтон, фабричный метод.
Затронул узкие, но важные темы для собеседований, например:
➡️ Для чего нужен DispatchSemaphore и как с его помощью решить проблему доступа к ресурсу.
➡️ Какая разница между raw и associated в enum?
Поделился своим опытом решения алгоритмических задач:
➡️ Блок средних задач с CodeRun (над некоторыми бился несколько дней).
И несколькими другими важными моментами (кстати, теперь есть и обновляемый changelog внутри).
🐱 Вступить можно вот тут.
😃 iOS IQ
8 002
Работа со SwiftData: гайд по использованию
Хотя она и поддерживается только с iOS 17+, но осваивать и изучать её полезно.
Для новых проектов вы можете использовать SwiftData уже сейчас, в том числе основываясь на этой подборке.
А сегодня я хотел бы поделиться ещё одним набором советов по работе:
Настройка
🔗 Как создать Persistent Container SwiftData или получить к нему доступ
Моделирование
🔗 Как создать модель SwiftData в Swift
🔗 Как добавить структуры или перечисления в SwiftData
🔗 Как использовать Transient в SwiftData
Действия в SwiftData
🔗 Как получить все объекты SwiftData
🔗 Как получить конкретный объект из SwiftData
🔗 Как узнать, существует ли объект в SwiftData
Создание
🔗 Как добавить объект в SwiftData
Обновление
🔗 Как обновить объект в SwiftData
Удаление
🔗 Как удалить объект в SwiftData
🔗 Как удалить все объекты из SwiftData в Swift
Возможные ошибки и решение
🔗 Краш в SwiftData при попытке доступа к удаленному объекту
🔗 Как решить проблему No exact matches in call to instance method 'setValue'
😃 iOS Dev
8 002
Как уменьшить размер приложения с помощью динамических фреймворков
Даже крупнейшие приложения iOS в App Store допускают ошибки и нарушают D.R.Y. путём копирования целых модулей.
Например, Hyundai дублируют каталог assets (который в итоге добавляется в приложение 3 раза).
Одно из решений: для модулей, разделяемых между таргетами, можно подключать их как динамические фреймворки вместо статических библиотек.
Но на практике — особенно если приложение юзает современную многомодульную архитектуру с применением SPM — не совсем очевидно, как динамически связывать модули.
📖 Джейкоб Бартлетт в гостевом посте для EmergeTools рассматривает, что можно сделать и как это повлияет на общее время запуска.
🛠 Код проекта можно посмотреть на github.
😃 iOS Dev
8 002
Практические решения проблем с помощью Swift Concurrency
Swift Concurrency может быть довольно непростым в использовании.
Matt Massicotte задокументировал и поделился своими решениями и сложностями, с которыми можно столкнуться при работе со Swift Concurrency:
1️⃣ Создание асинхронного контекста.
2️⃣ Использование протоколов.
3️⃣ Изоляция.
4️⃣ Структурированный параллелизм.
5️⃣ Использование библиотек, не предназначенных для параллелизма.
6️⃣ Совместимость.
🐱 Напомню, что тут есть несколько важных советов, которые помогут разобраться не только в основах, но и в подводных камнях тестирования.
😃 iOS Dev
8 002
Оптимизация памяти для приложения SwiftUI + Core Data
Несмотря на использование lazy containers в SwiftUI и механизмы оптимизации памяти Core Data, по мере увеличения сложности и количества вьюх (например, микса текста и картинок) потребление памяти будет увеличиваться.
С свою очередь, это может привести к крашу.
В материале ниже показано, как можно оптимизировать память для приложения, в изначальном кейсе использующего 1,6 ГБ памяти для отображения 100 элементов данных.
В процессе также можно узнать, как можно работать с сотнями таких элементов и оставаться в рамках всего 200 МБ.
📖 Прочитав статью, можно получить больше деталей о жизненном цикле вложенных вьюх, свойствах управляемых объектов и работе с кэшем.
🛠 Код проекта доступен здесь.
✅А вот тут есть советы по работе с лентой картинок и причины, почему память может увеличиваться быстрее, чем хотелось бы.
😃 iOS Dev
8 002
Вопросы на понимание кода
Я считаю затронутую тему одну из важнейших в разработке.
Поэтому я наполняю базу интересными и необычными вопросами, проверяющими ваш навык чтения кода и поиск ошибок в нём.
Задачи на разный уровень. Есть как несложные, так и заставляющие задуматься и вспомнить особенности Swift.
✅Получить доступ можно уже сейчас.
😃 iOS Dev
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
