Как стать автором
Обновить
2

Xcode *

Интегрированная среда разработки ПО

Сначала показывать
Порог рейтинга
Уровень сложности

Автоматизация тестирования: мой опыт

Время на прочтение2 мин
Количество просмотров2.1K

Приветствую!

Я – QA-инженер и мы разрабатываем медицинское приложение. В этой статье я хочу поделиться своим опытом внедрения автоматизации тестирования.

Читать далее

Оплата аккаунта Apple Developer в 2024 году

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров6K

В этой статье я приведу примеры по оплате аккаунта разработчика Apple которые я сам лично попробовал. Информация приведенная ниже достаточно актуальная и затрагивает период конца 2023 и начала 2024 года.

Читать далее

Быстрый старт, или Как ускорить запуск iOS-приложений

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров3K

Всем привет! Меня зовут Фируза, я iOS-разработчик в компании SimbirSoft. В этой статье мы попробуем разобраться, как ускорить запуск приложения, а именно:

что происходит от момента нажатия на иконку приложения до представления возможности пользователю взаимодействовать с UI;

как собрать актуальные метрики скорости запуска и отзывчивости приложения; 

какие тактики применить, чтобы ускорить старт и отзывчивость запуска.

Статья будет полезна для iOS-разработчиков любого уровня, желающих улучшить производительность своих приложений.

Ускориться ?

Cocoapods pod install без интернета на CI при использовании Tuist

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1K

Для успешного выполнения команды pod install менеджера зависимости Cocoapods нужен доступ в интернет, но на раннерах в целях безопасности для continuous integration может отсутствовать сеть. В некоторых случаях, например, при использовании инструмента Tuist в проекте, исполнение pod install на CI необходимо для интеграции Подов в проекты. В этой статье рассмотрим, как можно легко с помощью нескольких команд возобновить успешное выполнение команды pod install на раннерах без выхода в интернет.

Читать далее

Истории

Упрощаем локализацию iOS-приложения со String Catalogs

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров4.3K

Выход продукта на новые рынки сбыта — это деньги. Чем лучше ты знаешь своего клиента, тем вероятнее, что ты их сможешь заработать. Это же правило справедливо и в обратную сторону: клиент более охотно будет пользоваться твоим продуктом, если он может разговаривать с ним на одном языке.

Сегодня я расскажу о том, как можно в значительной мере облегчить и усовершенствовать процесс перевода iOS-приложения на другие языки. Языки, разумеется, человеческие: от Swift мы отказываться не будем.

Читать далее

Листаем цифровые страницы: UIPageViewController

Время на прочтение5 мин
Количество просмотров2.7K

UIPageViewController — это компонент пользовательского интерфейса iOS, который предлагает удобный способ навигации между последовательными страницами контента. Он использует постраничную модель представления, позволяющую пользователям пролистывать страницы влево или вправо с помощью жестов.
Особенно полезен в приложениях, где контент должен быть представлен в формате, напоминающем физические страницы. Например, в приложениях для чтения книг, образовательных курсах, галереях изображений или даже в некоторых типах интерактивных руководств. UIPageViewController обеспечивает дополнительный уровень привлекательности и удобства использования приложения.

Сегодня я хочу поделиться кратким и простым руководством о том, как просто и программно реализовать UIPageViewController. Итак, что же мы получим в итоге?

Читать далее

Дебаггинг приложения без Xcode. Зачем?

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров5.9K

Например, потому что Apple часто не дают API к своим хардам. Вот у нас нет доступа к сетевому порту устройства и мы не можем посмотреть запросы, которые через него проходят. А был бы дебаг инструмент, у нас бы было меньше обращений от тестировщиков за счет того, что они сами могут что-то посмотреть. А когда они посмотрят, то фидбэк будет четче. К тому же, дебаг инструменты — это возможность автоматизировать рутинные процессы. И вообще — разбавить рутину.

Привет, меня зовут Владимир Петров, я iOS разработчик в Альфа-Банке. Я вам расскажу как мы сделали свой дебаг-инструмент и научились дебажить наше приложение без Xcode. Обратите внимание на статью, если думали над тем, чтобы делать свое решение или готовое — расскажу, какая там может быть функциональность.

Читать далее

Интерактивный UX: Как использовать Drag and Drop в UICollectionView на iOS

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров1.4K

Когда речь идет о создании современных и привлекательных пользовательских интерфейсов, функциональность Drag and Drop (перетаскивание и сброс) играет ключевую роль. Эта техника позволяет пользователям более естественным образом взаимодействовать с контентом и упрощает перемещение элементов внутри приложения.

В данной статье мы погрузимся в мир Drag and Drop в контексте UICollectionView, одного из наиболее мощных и гибких компонентов пользовательского интерфейса в iOS. Попробуем легко и эффективно внедрить эту функциональность в проекты, создавая интерактивные и удобные интерфейсы для пользователей.

Собственно это то, что у нас получится:

Смотрим дальше

UICollectionView внутри UICollectionView программно

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров3.3K

Каждый раз при поиске информации касающейся CollectionView я сталкиваюсь с тем, что большая часть основана на использовании сторибордов, но умение работать программно это, как минимум, плюс к карме, поэтому мне хочется поделиться тем как создать вложенный CollectionView, в конце статьи для удобства прикреплю ссылку на гитхаб

Ну что, приступим, для начала разберемся с основной коллекцей во ViewController

Читать далее

Sticky Header в SwiftUI

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров4K

Cоздаем липкие заголовки на SwiftUI (Без introspect и GeometryReader)!
Попутно понимая как SwiftUI взаимодействует с UIKit.

Читать далее

Революционные IDE, повлиявшие на разработку ПО

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров32K
В старину при написании кода вы видели лишь чёрный текст на белом фоне. Для того чтобы писать код, требовалось много внимания и аккуратности. Опечатки не подсвечивались автоматически, а синтаксические ошибки обнаруживались только в процессе компиляции. По сравнению с современным программированием это был совершенно иной процесс.

Asymetrix ToolBook, когда-то популярный благодаря мультимедийным возможностям, но уже давно позабытый

В этой статье мы рассмотрим десяток сред разработки, оказавших самое большое влияние за последние тридцать лет программирования. IDE ранжированы по порядку, от десятого места до первого.
Читать дальше →

Логи Xcode — читаем самостоятельно?

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров5.1K

В этой публикации попробуем понять, как и где Xcode хранит свои логи, что такое SLF0 и как все это читать, а может быть даже понять, и лучше без IDE, так интереснее.

Читать далее

Что нового в SwiftUI для iOS 17?

Уровень сложностиСредний
Время на прочтение43 мин
Количество просмотров4.8K

SwiftUI продолжает быстро развиваться, и в этом году мы видим огромное количество улучшений в прокрутке, интересные новые эффекты SF Symbols, продвинутую поддержку шейдеров Metal и многое другое.

Некоторые обновления в этом релизе из числа тех, которые автор предлагал лично. Среди них - добавление шейдеров Metal, улучшение работы Color с Codable, добавление замыкания по завершении для анимаций, которое дает нам возможность анимировать градиенты. Теперь мы ещё можем скруглять углы прямоугольника по своему усмотрению. Только благодаря первой бета-версии автор закрыл как минимум дюжину своих предложений!

Читать далее

Ближайшие события

Установка отступов для содержимого или индикаторов прокрутки в ScrollView

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров1.3K

По умолчанию компонент ScrollView в SwiftUI позволяет своему содержимому заполнять все доступное пространство, а индикаторы прокрутки аккуратно располагаются на краю экрана. Однако с помощью модификатора contentMargins() можно установить отступы для содержимого или полос прокрутки - насколько угодно большие и по любым краям.

Читать далее

Отображение контента в ScrollView с конца

Уровень сложностиСредний
Время на прочтение1 мин
Количество просмотров790

В SwiftUI компонент ScrollView автоматически начинает прокрутку сверху. Однако если вы хотите создать интерфейс, аналогичный приложению "Сообщения" от Apple, вы можете настроить ScrollView так, чтобы прокрутка начиналась снизу. Для этого используется модификатор scrollPosition() с начальной привязкой к нижней части (.bottom).

Читать далее

Отображение контента за пределами ScrollView

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров923

Компонент ScrollView в SwiftUI автоматически обрезает свое содержимое, чтобы элементы прокрутки всегда оставались полностью внутри области контейнера. Однако использую модификатор scrollClipDisabled(), стандартное поведение можно изменить, отключив обрезку контента.

Читать далее

Привязка ScrollView к страницам и дочерним представлениям

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров911

В SwiftUI компонент ScrollView по умолчанию двигается плавно, но с использованием модификаторов scrollTargetLayout() и scrollTargetBehavior() мы можем сделать так, чтобы он автоматически "привязывался" к определенным дочерним представлениям или целым страницам.

Читать далее

Swift 5.9. Что нового?

Время на прочтение28 мин
Количество просмотров6.3K

Хотя Swift 6 уже не за горами, Apple продолжает добавлять новые и улучшенные функции в текущую версию Swift 5.x.

Swift 5.9 - это новый большой релиз, который включает в себя ряд улучшений и новых функций. К ним относятся упрощенные способы работы с операторами if и switch, макросы (то есть код, который может генерировать или трансформировать другой код), некопируемые типы (это новая функция, которая предотвращает копирование объектов определенного типа), кастомные исполнители акторов (что связано с моделью конкурентного программирования в Swift) и многое другое.

В этой статье разберем самые важные изменения этого релиза с примерами кода и пояснениями. Для воспроизведения приведенных в этой статье примеров вам понадобиться последняя версия Xcode 14 или Xcode 15 beta.

Читать далее

Многомодульное iOS-приложение: подходы к организации межмодульного взаимодействия

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров8.3K

Привет, Хабр. Меня зовут Кирилл Смирнов. Я технический лидер iOS команды в СберЗдоровье. Последний год наша команда активно занимается улучшением инструментов разработки, в том числе модуляризацией, и уже успела получить опыт, который может быть полезен другим. В предыдущем материале я рассказывал, как компании подготовиться к модуляризации iOS приложений, а в этом остановлюсь на вопросах оптимизации сборки проекта и выборе вариантов линковки артефактов компиляции.

Читать дальше →

Ошибка квадратных скобок в хедерах UnityFramework в Xcode

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.3K

Я спокойно себе пилю проект, никого не трогаю, собираю очередную сборку iOS, открываю проект в Xcode и.... на меня обваливается шквал ошибок. Я начинаю пытаться разобраться в том, как исправить ошибку внутри проекта Xcode. Не выходит...

Бегу судорожно откатывать последние изменения в проекте Unity.... Тщетно.
Переключаюсь с текущей ветки на ветку main, собираю сборку, понимаю что битва только начинается.

Читать далее