Конвертация книги Swift Programming Language в формат PDF и готовой к печати.
Поддерживается два режима рендеринга: - Цифровой режим с гиперссылками для перекрестных ссылок между главами и внешними ссылками. - Режим печати с номерами страниц, сопровождающими перекрестные ссылки между главами, и полными URL-адресами, отображаемыми в сносках для внешних ссылок.
Без прошлого нет будущего. Поэтому мы с заботой и любовью сохраняем наследие прошлого и используем проверенные инструменты в новых проектах. Благо, что разработчики Swift заложили возможность простого подключения библиотек, написанных на С, а с недавних пор еще и C++.
В статье были описаны небезопасные указатели и их взаимодействие с объектами Си. Но не прозвучал один важный, на мой взгляд, вопрос: где выделяется память под совместно используемые объекты. Из документации и руководств по Swift мной была усвоена настойчивая рекомендация использовать вместо выделения памяти на стороне Си, функцию allocate класса UnsafeMutableRawPointer, там где это возможно.
let buf = UnsafeMutableRawPointer.allocate(byteCount: 128, alignment: 4)
Для того, чтобы Swift понимал содержание памяти, нужно сделать её привязку к поддерживаемому типу. Многие базовые типы Си поддерживаются через классы Swift с созвучным названием (CBool, CChar, CDouble, CFloat, CInt, CLong, CLongLong, CShort, CSignedChar, CUnsignedChar, CUnsignedInt, CUnsignedLong и т.д.).
let sbuf = buf.bindMemory(to:CChar.self, capacity:128)
Последовательность символов CChar воспринимается языком Swift как строка в стиле Си, которая поддерживается конструктором класса строк, что упрощает, например, вывод строк:
print(String(cString:sbuf))
Осталось только напомнить, что надо явно освобождать память буферов после использования с помощью функции deallocate:
В прошлый раз мы знакомились с тем, как работают алгоритмы поиска по N-деревьям. А в новом ролике Артур Михайлов, head of iOS в Технократии, показывает, как применять эти алгоритмы на практике.
Полезно как для тех, кто готовится к собеседованиям, так и тем, кто применяет алгоритмы в работе.
Разбираемся, как работают алгоритмы BFS и DFS. Конечно, в «Алгоритмической качалке»
В этот раз Артур показывает, как работают алгоритмы поиска по N-деревьям. Такими алгоритмами, кстати, пользуются дата-сайентисты, инженеры-электроники, сетевые инженеры и, само собой, программисты.
Так что знания максимально полезные. Переходите по ссылке и не забывайте поставить лайк и написать комментарий — это очень помогает нам продвигать контент.
Как написать алгоритм работы «критического удара» для компьютерной игры
Нет, мы не начали внезапно заниматься геймдевом. Тренер «Алгоритмической качалки» Артур — давний фанат РПГ-игр, и ему интересно было разобраться в том, как работает такая механика, как «критический удар».
В новом ролике Артур покажет два варианта реализации алгоритма работы «крита». Переходите по ссылке, ставьте лайки и рассказывайте в комментариях свои идеи реализации.
Apple собрала все сессии WWDC 2024 на одной странице. Записи рассортировали по темам, чтобы разработчики сразу могли перейти к интересующему разделу. Страница доступна как на сайте Apple Developers, так и в фирменном приложении для разработчиков.
Логирование — важный инструмент в арсенале разработчика. Оно помогает систематизировать сообщения, дает возможности фильтрации и многое другое. У Apple несколько основных инструментов для логирования.
Print — базовая функция, выводящая текст в консоль Xcode. Она часто используется для дебаггинга и неплохо справляется, когда решать приходится простые проблемы. В релизном коде Print оставаться не должен.
DebugPrint — очень похож на обычный Print, но отличается тем, что предоставляет дополнительную информацию о печатаемых объектах. DebugPrint имеет смысл использовать для дебага. Он покажет больше полезной информации о том, с каким типом объектов мы имеем дело.
Dump — еще одна функция для распечатки сообщений в консоль. При работе с объектами и массивами объектов Dump показывает себя лучше, чем Print и DebugPrint. Мы получаем более наглядный результат, можем повлиять на то, в каком виде представлена информация, избавиться от лишнего «шума» в консоли.
OSLog — наш главный инструмент для ведения логов. Для этой функции мы передаем тип, название файла и название функции. Кастомизировать это можно как угодно.
Logger — более свежая альтернатива, доступная с iOS 14. Logger от OSLog отличается в деталях. Это разные уровни логирования и возможности настройки логов. С помощью расширений можно создать несколько логгеров, отвечающих за логирование разного функционала.
Apple обновила дизайн форума для разработчиков. Компания сделала это для грядущей конференции WWDC24, чтобы инженерам и дизайнерам было удобнее задавать вопросы и находить решения проблем. Кроме того, участникам программы Apple Developer предоставили приоритетный доступ к ответам от экспертов.
У Apple оказалось так много всего интересного в экосистеме, что компания представила роадмапы (Pathways) по своим сервисам. Внутри каждого из шести направлений есть ссылки, где структурно представлена через документацию и видео-туториалы подробная база данных по необходимым библиотекам для разработчиков.
Apple выпустила документацию по работе с новым жестом сжатия Apple Pencil. Разработчики могут использовать его в своих приложениях. Вместе с этим добавили разделы документации по работе с вибрацией и двойным нажатием. Примеры кода доступны как для UIKit, так и для SwiftUI.
Жест сжатия работает только с Apple Pencil Pro, а сам стилус — только с iPad Pro (M4) и iPad Air (M2). Более подробно о функциях разных поколений Apple Pencil можно узнать из этой статьи.
Состоялся релиз библиотеки SystemNotification, которая позволяет создавать уведомления SwiftUI в стиле системных оповещений. При этом доступна полная кастомизация. К примеру, можно добавить иконку, текст, изменить цвета или полностью модернизировать внешний вид.
Нижний Новгород • Екатеринбург • Новосибирск • Владивосток • Ижевск • Казань • Тюмень • Уфа • Иркутск • Челябинск • Самара • Хабаровск • Красноярск • Омск
На YouTube-канале DesignCode опубликовали бесплатный курс по созданию 3D-моделей для iOS и visionOS в Spline. В двухчасовом ролике обсуждают следующие темы:
Apple опубликовала апрельский выпуск рассылки Hello Developer для разработчиков:
Компания официально открыла сезон подготовки к WWDC24. Конференция пройдёт с 10 по 14 июня. Все сессии будут публиковать на новом YouTube-канале для разработчиков.
Представили обновлённое руководство по разработке на Swift. В него вошли уроки по SwiftUI, Xcode и visionOS.
Опубликовали интервью с разработчиками игры Knotwords.
Apple запустила YouTube-канал для разработчиков. Компания уже опубликовала несколько десятков записей сессий WWDC23. Долгое время Apple загружала видео для разработчиков только на сайт и в специальное приложение. Во время WWDC24 записи сессий будут появляться и на YouTube-каналы.
Для Figma вышел плагин Trace, с помощью которого можно сконвертировать дизайн в live-прототип приложения на SwifUI. Есть возможность просматривать код вёрстки, изменять его, видеть как это влияет на поведение приложения и переносить изменения в IDE. Для всего этого плагин подгружает полноценный симулятор iOS. Для преобразования дизайна в код SwiftUI используется нейросеть.
Изначально Trace появился в качестве сервиса для генерации экранов приложений по текстовому запросу с поддержкой только SwiftUI.
Как меняется рынок мобильной разработки в 2024 году
Наш Head of Mobile Миша Вассер вместе с другими экспертами мобильной разработки ответил на вопросы Практикума о трендах сферы и прогнозах на этот год. Собрали в этом посте главное.
У iOS-разработки есть будущее
Apple вносит послабления в свои ограничения. Недавно платформаразрешила российским разработчикам принимать платежи вне App Store. Возможно, вскоре iOS-разработчикам вновь станет проще жить.
Flutter — лидер кросс-платформы
В 2023 году доля кросс-платформенной разработкиувеличилась с Flutter во главе. Но нативная разработка всё-таки перевешивает — ее по-прежнему выбирает бигтех и частично средний бизнес.
RuStore набирает ход, а вот российские ОС нет
RuStore приземлила у себя крупные бренды, например Сбер и Альфа-Банк, и развивает собственные инструменты для разработчиков по примеру Google. А вот отечественные операционки затихли. «Аврора» и «РОСА Мобайл» будто сами тормозят развитие внутренними ограничениями.
SwiftUI продолжит набирать популярность
Тренд на SwiftUI у нас пока до конца не оформился, и UIKit всё еще востребован. Но с каждым обновлением SwiftUI становился всё лучше.
Битва Compose и XML
Compose чаще встречается в вакансиях, некоторые компании переходят на него: он удобнее и функциональнее. Но XML пока остается базой.
Ссылку на полный материал оставили выше. А если хотите больше новостей о мобильной разработке, заглядывайте в телеграм-канал Саши Ворожищева, Head of Flutter/iOS.
Apple выпустила Xcode 15.2, поддерживающий разработку приложений для фирменной гарнитуры виртуальной реальности Vision Pro. Среда разработки включает в себя поддержку Swift 5.9, SDK для iOS 17.2, iPadOS 17.2, watchOS 17.2, tvOS 17.2, macOS Sonoma 14.2 и visionOS. Обновление доступно в магазине приложений Mac App Store.
Ранее Apple сообщила, что продажи гарнитуры виртуальной реальности Vision Pro начнутся 2 февраля 2024 года. Сперва устройства будут доступны пользователям в США. Возможность оформить предзаказ откроется 19 января 2024 года, а цена одного комплекта составит 3,5 тыс. долларов.
Автор Telegram-канала «Код воробья» рассказал, что в Xcode 15.1 появилась возможность настроить автоматическое удаление старых бета-версий. Сам Xcode 15.1 пока находится на стадии Release candidate.