Обновить
2

Xcode *

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

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

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

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

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

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

Читать далее

Sticky Header в SwiftUI

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

Время на прочтение28 мин
Охват и читатели8.5K

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее

Интеграция Yandex MapKit в SwiftUI проект. Часть 1

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

Всех приветствую.

Совсем недавно поступила задача заменить стандартные карты от Apple на Яндекс карты. Ниже немного о Yandex MapKit.

Yandex MapKit — это кроссплатформенная библиотека, которая позволяет использовать возможности Яндекс.Карт в мобильных приложениях для iOS и Android.

Основная проблема заключалась в том, что библиотека Yandex MapKit создана для UIKit, но наша цель поставить все это дело на SwiftUI. Поэтому прибегаем к старой доброй пикче.

Читать далее

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

Test Plans — теперь по умолчанию для новых проектов с Xcode 14.3

Время на прочтение2 мин
Охват и читатели1.8K

Начиная с Xcode 11, когда Apple представила Xcode Test Plans для более простого и более настраиваемого управления тестированием и его выполнения, — и новые, и уже существующие проекты приходилось вручную переводить на использование новой системы или создавать новые планы тестирования с нуля. Для тех, кто не знаком: планы тестирования позволяют одному файлу управлять одной или несколькими тестовыми конфигурациями для набора тестов; допускают использование нескольких языков, смоделированных локаций, настроек тестирования и многое другое в одном тестовом запуске. Они могут сэкономить массу времени главным образом для локализованных приложений, приложений с белой меткой или сценариев со сложными конфигурациями сборки.

Переход на планы тестирования не требует больших усилий, вам нужно открыть существующую схему и перейти в раздел Test, а затем нажать кнопку Convert to use Test Plans

Читать далее

Как не потерять голову (и память) при поиске утечек в iOS

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

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

Все началось с того, что я заметила подтормаживания UI и обратила внимание на рост занимаемой памяти в процессе использования приложения. В пределах нескольких сценариев расход памяти незначительно колебался – объекты создавались и освобождались. Другие сценарии при непродолжительном использовании приводили к значительному росту памяти, используемой приложением. При активном и продолжительном использовании могут «убежать» сотни мегабайт.

Утечки памяти – это частая проблема, с ней сталкиваются многие разработчики. Поэтому предлагаю разобрать основные причины возникновения и способы обнаружения утечек.

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

Читать далее

Как компании подготовиться к модуляризации iOS приложений

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели5.4K

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

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

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

Как локализовать все ваши iOS приложения на 20 языков за 5 минут

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели4.2K

Я создал консольный инструмент, который автоматически находит все файлы .strings в проекте xcode и переводит их на все языки.

Читать далее

C/C++ из Python (Kivy, ctypes) на iOS

Уровень сложностиСложный
Время на прочтение11 мин
Охват и читатели3.2K
main

Ранее я писал статьи C/C++ из Python (ctypes), C/C++ из Python (Kivy, ctypes) на Android. В них описывается процесс запуска на Linux и Android. Теперь поговорим как тоже самое сделать на iOS. В этой статье речь пойдет о сборке, необходимых инструментах, механизмах отладки и установки.

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

Разделяй и властвуй. Как разбить приложение на модули в XCode

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

Привет! На связи команда Joy Dev. Представим ситуацию, вы работаете над проектом, дела идут хорошо, проект растет, и в какой‑то момент вас в команде становится все больше и больше! Проект вырастает, и становится много модулей и фич, но появились проблемы:

Читать далее

Создаем VIPER шаблон с помощью Generamba

Время на прочтение1 мин
Охват и читатели2.7K

Если вам не нравится тратить много времени на создание шаблонов для VIPER можно воспользоваться Generamba.

Читать далее