ru
Feedback
iOS Dev

iOS Dev

Открыть в Telegram

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

Больше
7 874
Подписчики
-124 часа
Нет данных7 дней
-5130 дней
Архив постов
iOS Dev
7 876
Концепт приложения для visionOS в связке с Figma (обновления в реальном времени) Ещё одна необычная идея от Alex Widua (вы только посмотрите на его прошлый прототип!). Во время работы с visionOS он придумал такую связку: плагин фигмы общается с приложением iOS через WebSockets. Все фреймы Figma загружаются как изображения AR, которые может распознать ARKit. Удивительно, но работает очень даже неплохо🤩. 🛠 Тут можно посмотреть на реализацию анимации сетки при обнаружении фрейма. 😃 iOS Dev

iOS Dev
7 876
Тинькофф приглашает в команду крутых ИТ-специалистов Мы решаем масштабные задачи: создаем высоконагруженные сервисы для 30 ми
Тинькофф приглашает в команду крутых ИТ-специалистов Мы решаем масштабные задачи: создаем высоконагруженные сервисы для 30 миллионов клиентов, экспериментируем и ищем новые решения. А еще с нами комфортно работать. Большинство бытовых забот делегируем компании: от расширенного ДМС и юридической помощи до питания и поддержки спорта. Оставить резюме в ИТ-команду Тинькофф: https://o.tinkoff.ru/prof_it 😃 iOS Dev

iOS Dev
7 876
Создание интерактивного виджета с использованием App Intents 📖 В этом несложном примере можно узнать, как создать виджет для увеличения глобального счетчика, используемого вместе с таргет-приложением. 📖 Больше про App Intents можно узнать в официальной документации (iOS 16+). Кстати, если вам нужно использовать больше, чем один виджет, то в канале есть пост и про такую ситуацию. 😃 iOS Dev

iOS Dev
7 876
Объединяемые библиотеки (mergeable libraries) в Xcode 15: лучшее от динамических и статических либ До введения объединяемых б
Объединяемые библиотеки (mergeable libraries) в Xcode 15: лучшее от динамических и статических либ До введения объединяемых библиотек в WWDC этого года мы должны были решить, каким должен быть фреймворк — статическим или динамическим. Выбор мог повлиять на время сборки приложения и производительность во время запуска. Начиная с Xcode 15, нам не нужно будет принимать такое решение. 📺 Были анонсированы объединяемые библиотеки, сочетающие в себе лучшее из динамических и статических библиотек. 📖 В этой статье можно узнать, какие проблемы они решают и как настроить проект в Xcode для использования таких библиотек. 😃 iOS Dev

iOS Dev
7 876
Серии вопросов и ответов, связанных с SwiftData и CoreData Keith Harrison (автор сайта useyourloaf) задавал вопросы на QA-сес
Серии вопросов и ответов, связанных с SwiftData и CoreData Keith Harrison (автор сайта useyourloaf) задавал вопросы на QA-сессии в Slack напрямую инженерам Apple, после чего поделился кратким изложением информации, которую узнал. И пусть SwiftData пока только анонсирована, уже есть важные моменты, на которые стоит обратить внимание: 🔘 Асинхронные операции. 🔘 Синхронизация CloudKit. 🔘 Вопросы, посвященные миграции с CoreData и так далее. 📖 Про SwiftData можно прочесть здесь, а про CoreData материал доступен вот тут. 🧑‍💻 Кстати, напоминаю, что у нас есть пополняемый список обновлений с WWDC23. 😃 iOS Dev

iOS Dev
7 876
Создание сложных интерфейсов в SwiftUI: вертикальный список с возможностью горизонтальной прокрутки Пожалуй, одна из непростых, но в то же время часто встречающихся задач — реализация такого отображения. 📖 В этом обучающем материале от Applе вы сможете внимательнее изучить один из возможных подходов и посмотреть, как такой интерфейс может адаптироваться к различным размерам и ориентациям устройств. 🛠 А по этой ссылке доступны оба проекта (стартовый и финальный). 🧑‍💻 К слову, вот тут в нашем канале есть пост о том, как можно реализовать двунаправленную UICollectionView (тоже с примерами). 😃 iOS Dev

iOS Dev
7 876
Xcode позволит разработчикам создавать приложения автоматически? Казалось бы, что может быть круче анонсированной visionOS, но обо всём по порядку. 27 июня 2023 года в Apple подали патент, в котором, в частности, есть следующие моменты: 1️⃣ "Генератор кода будет создавать подпрограмму, которая облегчит доступ ... поддерживаемый конкретным языком программирования (не только Swift)". 2️⃣ "Разработчик может затем воспользоваться автозавершением, обнаружением ошибок имени или типа т.д., - продолжает Apple. 3️⃣ "Код, далее говорится далее в патенте, будет совместим с конкретным языком программирования, используемым в проекте". Понимаете, к чему я веду? Пока в компании запрещают пользоваться ChatGPT, а остальные упрекают Apple в том, что она не делает ничего, чтобы соревноваться с Google, OpenAI или продуктами Microsoft, на самом деле в Apple уже делают аналог ChatGPT. Ускорение написания кода позволит Xcode выполнять большую часть работы, которая нужна начинающим или менее опытным разработчикам. А если читать между строк — то выполнять работу вместо них. Предыдущие патенты по схожей тематике датируются 2016 годом (источник), и это означает, что Apple делает свою ChatGPT как минимум 7 лет. 😃 iOS Dev

iOS Dev
7 876
Макросы в Swift: для чего нужны, как создавать и где посмотреть примеры 🐣 Нововведение в Swift позволяет расширить возможнос
Макросы в Swift: для чего нужны, как создавать и где посмотреть примеры 🐣 Нововведение в Swift позволяет расширить возможности компилятора с помощью кастомных проверок. Их можно использовать для анализа вашего кода и выдачи более детальных ошибок или же для удаления бойлерплейт-кода. Например, можно чекать валидность URL во время компиляции: let checkedURL = #URL("https://t.me/iOS_Career") С помощью хэштега мы вызываем наш макрос, а под капотом, например, может быть проверка на существование такого URL в целом. Сейчас кажется, что вместо них вполне можно использовать расширения, но возможность опенсорсной выкладки и интеграции в проекты это несомненный плюс. 📖 Вот тут есть пример создания несложного макроса по шагам. 🛠 А в этом репозитории представлен пополняемый список опенсорсных макросов. 😃 iOS Dev

iOS Dev
7 876
Работа со словарями в Swift: базовые понятия и примеры Я знаю, что в нашем канале довольно много новичков, поэтому периодичес
Работа со словарями в Swift: базовые понятия и примеры Я знаю, что в нашем канале довольно много новичков, поэтому периодически рассказываю не только о каких-то сложных вещах, но также считаю не лишним напомнить об основах. Словари широко используются в Swift и помогают хранить и получать доступ к данным с логическими отношениями или структурами, такими как контактная информация, сведения о продукте, настройки и так далее. В других языках программирования в таких случаях идёт речь о хэшмапах, хэш-таблицах или ассоциативных массивах. 📖 Здесь представлены основные понятия, а также примеры работы со словарями, в частности: 1️⃣ Что такое словарь в Swift? 2️⃣ Как создать словарь с содержимым или пустой словарь. 3️⃣ Доступ к содержимому словаря с помощью subscripts. 4️⃣ Добавление, удаление и обновление элементов словаря. 5️⃣ Итерация по словарю с использованием цикла for. Кстати, раньше я делился о том, как можно преобразовывать коллекции в Swift, если вы новичок, вам может быть это интересно 🧑‍💻. 😃 iOS Dev

iOS Dev
7 876
🤩 Все изменения в Swift 5.9. В if и switch теперь можно не использовать return (но не только)! Поскольку и if, и switch тепе
🤩 Все изменения в Swift 5.9. В if и switch теперь можно не использовать return (но не только)! Поскольку и if, и switch теперь могут использоваться как выражения, мы можем написать функцию как на скриншоте выше, без использования return! А все благодаря принятому предложению. И хотя Swift 6 маячит на горизонте, выпуски 5.x всё также упрощают синтаксис. Не только if и switch, но и макросы, а также многое другое делают релиз 5.9 более впечатляющим. 📖 В этом обзоре Пол Хадсон расказывает о наиболее значимых изменениях, представляя примеры кода и пояснения (что более важно). Для тестирования вам понадобится актуальный тулчейн Swift 5.9, доступный в Xcode 14, или бета-версия Xcode 15. 😃 iOS Dev

iOS Dev
7 876
Накатил бетку, увидел ещё одно подтверждение того, что название visionOS появилось буквально в последний момент (видимо всё б
Накатил бетку, увидел ещё одно подтверждение того, что название visionOS появилось буквально в последний момент (видимо всё было настолько быстро перед релизом, что оно до сих пор осталось). 🤩 Доказательства этого есть при установки симулятора (на скриншоте). 😃 iOS Dev

iOS Dev
7 876
visionOS 1 beta доступен! Выпустили Xcode 15 beta 2 Как пишет Apple, все начинается со строительных блоков пространственных в
visionOS 1 beta доступен! Выпустили Xcode 15 beta 2 Как пишет Apple, все начинается со строительных блоков пространственных вычислений в visionOS. Дефолтно приложения запускаются в Shared Space, где они существуют рядом — так же, как несколько приложений на рабочем столе Mac. Внутри Full Space можно создавать 3D-контент, открывать портал в другой мир или даже реализовывать иммерсивное погружение. 🛠 Скачать бету Xcode можно с официального сайта. 📖 Путешествие в дивный новый мир можно начать с описания возможностей. 😃 iOS Dev

iOS Dev
7 876
🏆 Coderun завершён [бонусный уровень] Для того, чтобы распределить лучших участников контеста, вчера добавили новые задачи.
🏆 Coderun завершён [бонусный уровень] Для того, чтобы распределить лучших участников контеста, вчера добавили новые задачи. Пока я опомнился и увидел новую партию, уже было поздно, но буду объективен, за топ-3 было бы тяжело бороться, уровень участников слишком высокий. Несмотря на это, после прохождения основной части сезона, было бы не совсем правильно опускать руки. Поэтому я и сделал финишный рывок. Мои впечатления от сезона Было сложно, особенно в начале, выход из зоны комфорта и так далее. Говорят, что в бэкэнде задачи гораздо тяжелее, но всё относительно, и наша с вами работа в другом векторе программирования. Не все кнопки просто покрасить и не все анимации даются с первого раза. Где-то в середине сезона я решал задачи даже ночью, хотя можно было бы просто отложить всё это и остановиться. Из плюсов соревнования: некоторые модераторы в чате соревнования отвечают буквально круглосуточно (откуда они только берут силы на это), ведь переключение фокуса между разными треками задача та ещё. И пусть это только первый сезон, а некоторые огрехи решались уже в процессе (какие-то тесты или условия), но они минорные и я понимаю, насколько сложно запустить подобный проект. Из пожеланий (знаю, что меня читают сотрудники Яндекса): прикрутите, пожалуйста, оповещения, и в следующем сезоне для финальной части заранее определите время выкладки дополнительных задач. 🤩 Кстати, в некоторых треках участвовало больше двух тысяч человек, что несомненно успех для мероприятия. А вы всё ещё можете побороться за топ-50 в мобильной разработке: 🔗 Попробовать свои силы можно здесь. 😃 iOS Dev

iOS Dev
7 876
Превью документации в Xcode 15 🤩 Теперь c помощью Assistant можно включить превью документации в режиме реального времени. Полезная фича для любого проекта (особенного на сотни тысяч строк кода). 😃 iOS Dev

iOS Dev
7 876
String Catalog в Xcode 15: новый инструмент для локализации Раньше, если вы хотели локализовать свое приложение, вам приходил
String Catalog в Xcode 15: новый инструмент для локализации Раньше, если вы хотели локализовать свое приложение, вам приходилось самостоятельно поддерживать файлы strings. Было много ручной работы, которая могла привести к проблемам, поскольку все контролировать не так просто. Apple упростила для разработчиков локализацию наших приложений, добавив каталоги строк (string catalogs). Каталог строк автоматически отслеживает все локализуемые строки из вашего кода и хранит переводы в одном месте. 📺 Видео с WWDC, объясняющее то, как работают каталоги строк. 📖 Официальная документация Apple. 📖 Пример интеграции в реальный проект. 😃 iOS Dev

iOS Dev
7 876
Необычный эффект увеличительного стекла с использованием Metal в iOS 17 🤩 Уже знакомый нам Janum Trivedi применил интересный подход к тому, чтобы повторить эффект лупы, который вы можете увидеть на гифке. Для этого он использовал Metal, а также свою библиотеку Wave, о которой можно прочитать здесь. 🛠 Кстати, решение опенсорсное, а пример кода доступен на github. 😃 iOS Dev

iOS Dev
7 876
Обзорный пост по всем нововведениям на WWDC23 для iOS Dev WWDC подошла к концу, но для нас всё только начинается. Новые девайсы будут представлены только осенью, а до тех пор в проектах можно попробовать внедрить что-то из нижеперечисленного. Технологии 🔘 8 новых фреймворков — описание, детали и требования. 🔘 Представленные технологии в формате кратких хайлайтов от Apple. 🔘 Топ-5 нововведений в Xcode 15 и все релизноты бета-версии. Код и примеры 🔗 Проекты, показанные во время презентации, отобранные Apple. 🔗 SwiftData — туториал с примерами от Kodeco. 🔗 Адаптация проекта с Core Data к новой SwiftData. Новые инструменты 🔨 Push notifications console. Что точно пригодится 📖 Новый метод для контроллера viewIsAppearing. 📖 Изменения в локализации проектов. Какие видео можно посмотреть в первую очередь 📺 Изменения в UIKit. 📺 Анализ зависаний с помощью инструментов. 📺 Разбор структурированного параллелизма (не только основы). 📺 Новые возможности дебага, и для чего нужен dwim-print. 📺 Swift-макросы и как они могут упростить написание сложных функций. Кроме этого, вы всегда можете прочесть об основных изменениях вот с этого поста. 👩‍🎓 А я, в свою очередь, постараюсь оперативно сообщать о важном здесь, в канале: 😃 iOS Dev

iOS Dev
7 876
Шейдеры в Xcode 15: возможности, примеры кода и математика Shader — это референс на функцию в либе Metal, и в этом году появилось несколько новых модификаторов для его использования внутри SwiftUI. Пожалуй, основной недостаток — его доступность с iOS 17, в отличие от примера выше. 📖 В большой обзорной статье приводятся примеры кода, интеграции и работы с разными типами шейдеров. 🧑‍💻 А для тех, кто хочет прокачать свои знания — есть целая спецификация по созданию собственных шейдеров от Apple, Metal Shading Language (сокращённо, MSL). 😃 iOS Dev

iOS Dev
7 876
Новый Resumable upload protocol: пауза/продолжение загрузки данных на сервер Ранее нам были доступны методы вроде downloadTas
Новый Resumable upload protocol: пауза/продолжение загрузки данных на сервер Ранее нам были доступны методы вроде downloadTaskWithResumeData (аж с седьмой оси), но для того, чтобы реализовать возобновляемый аплоад, приходилось писать свои решения (или использовать либы вроде TUS и прочих). Парадоксально, но нативной поддержки такого важного и полезного метода до сих пор нет. 🥳 Зато в 17 оси появится uploadTaskWithResumeData. Конечно, сервер должен уметь поддерживать такой тип загрузок, и скорее всего, ваши коллеги уже слышали о SwiftNIO. 📺 А в этом видео можно узнать о дополнительных требованиях к серверу и посмотреть на пример клиентского кода (он интуитивен). 📖 Документация по новому методу доступна на сайте Apple. 😃 iOS Dev

iOS Dev
7 876
Новая опция в Xcode 15: заглушки для пустых состояний Одно из любопытных нововведений в Xcode — нативное добавление заглушек
Новая опция в Xcode 15: заглушки для пустых состояний Одно из любопытных нововведений в Xcode — нативное добавление заглушек для обработки empty states (когда у вас не пришёл ответ от сервера, или, например, просто пустой результат поиска). Ключ для использования — UIContentUnavailableConfiguration (больше инфы в официальной доке). Можно создавать заглушки одного из трёх типов: empty, loading, search. 🧑‍💻 Кстати, бонусом доступна реализация конфига в том числе и на SwiftUI, а для использования можно задействовать UIHostingConfiguration там, где удобно. А вот тут пример использования в реальном проекте. 😃 iOS Dev

iOS Dev - Статистика и аналитика Telegram-канала @iosdev