Обновить
16K+

Xcode *

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

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

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

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

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

Читать далее

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

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

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

Читать далее

Подробный гайд Dynamic Island и Live Activities

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

Live Activities появились начиная с версии IOS 16.1 на всех моделях iPhone. Live Activity отображают самые последние данные вашего приложения на экране блокировки iPhone и в Dynamic Island. Это позволяет вашим пользователям видеть самую актуальную информацию которая происходит в вашем приложении. 

Важно понимать что и Dynamic Island и Live Activities сами по себе являются частью ActivityKit фреймворка, поэтому для простоты, дальше в посте я буду называть Dynamic Island и Live Activities просто - Live Activities.

Note1: Live Activity доступен только на iPhone.

Note2: Во время написания поста Dynamic Island доступен только на моделях iPhone 14 Pro и Pro Max.

Читать далее

Мои 3 способа для выравнивания UI на разных девайсах в Swift

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

Всем привет! Я не так давно примкнул к клубу мобильных разработчиков, хотя уже имею некий коммерческий опыт в разработке iOS-приложений. И недавно я задумался о том, насколько удобной делают нашу жизнь констрейнты. Однако всё равно иногда возникает вопрос, а нужно ли использовать какие-нибудь "костыли", чтобы на разных девайсах тот или иной объект выглядел одинаково хорошо. Для себя я выделил 3 основных помощника в этом вопросе и хотел бы в формате рассуждения поделиться своим опытом и, возможно, помочь кому-нибудь, кто только начал свой путь в разработке.

Читать далее

Swift модуляризация вашего проекта

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

Всем привет сегодня я покажу как можно завернуть проект в spm (модуляризация)

Модуляризация — Это процесс разбиения кодовой базы на небольшие специализированные, готовые к повторному использованию модули

У меня есть небольшой проект и я хочу чтобы он был завернут в spm.

Читать далее

Как устроено приложение Калькулятор на iPhone

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

Разберу как Apple использовали UIKit для приложения Калькулятор: Кнопки, окно ввода и жесты.

Из интересного - в клавиатуре комбинируют автолейаут и фреймы, сделали на сценах, а при повороте в альбомную ориентацию кнопки добавляются на лету. Подробнее под катом.

Читать далее

Как устроено приложение Календарь на iPhone

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

Разберу как Apple использовали UIKit для приложения Календаря: события, сетку дней, экран с превью года, навигейшн и другие элементы.

Из интересного - события сделали картинками, а переход для навигации - простое перемещение вьюх за экран. Подробнее под катом.

Читать далее

Разбираем tableHeaderView и viewForHeaderInSection на простом приложении

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

Всем привет сегодня мы разработаем простое приложение для летней кафешки и добавим tableHeaderView и viewForHeaderInSection.

Для начала посмотрим как наше приложение должно выглядеть.

Читать далее

Auto Layout настройка кодом

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

В iOS-разработке выравнивание контента и интервалы — это то, на что может уйти много времени. Давайте рассмотрим, как устанавливать ограничения с помощью UIKit, обновлять их и разрешать конфликты ограничений.

Ограничение(constraint) - это правило, позволяющее операционной системе размещать ваш компонент пользовательского интерфейса. В UIKit есть 2 основных способа установки ограничений:  StoryBoard и кодом. В данной статье рассмотрим только подход кодом.

Читать далее

User-Defined в iOS проекте

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

Разработка iOS приложения - процесс достаточно долгий и скрупулезный, и часто бывают ситуации, особенно в больших проектах, когда код у разработчика на устройстве и у конечного пользователя должен выдавать разные результаты. Это может показаться немного абсурдным, но я сейчас все объясню.

Читать далее

Приключение на 5 минут: как мы переводили все зависимости на SPM

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

Привет, Хабр!

Меня зовут Вильян Яумбаев, в этой статье я расскажу вам про наши приключения на пути к SPM.

В 2015 ПСБ начал разрабатывать проект для бизнеса. Для него, в свою очередь, было нужно приложение. Сперва всё находилось в одном репозитории одного проекта в одном воркспейсе. Первые авторы подключали сторонние зависимости через CocoaPods, поскольку проприетарного менеджера зависимостей ещё не существовало. Но в тот же год в Apple началась работа над Swift Package Manager. Им предстояло встретиться в нашем проекте.

В этой статье расскажу, через что мы прошли, переводя зависимости на SPM, и поделюсь нашими наработками.

Читать далее

Как устроен системный калькулятор в iPhone

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

Приложение написано на сценах. Root-контроллер называется DisplayViewController. Лейбл с введенными цифрами обернули в контейнер DisplayView и добавили жесты LongPress, Swipe и Tap.

Читать далее

Что нового в Xcode?

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

В понедельник стартовал новый WWDC 2022, и нас ждет много интересных новинок и фич от Apple.

Сделаем небольшой обзор на доклад «What's new in Xcode».

Для начала — Xcode 14 стал легче на 30 процентов, дополнительные утилиты можно скачать по необходимости.
Читать дальше →

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

Правильно подключаем тяжелые зависимости к Xcode проекту через Swift Package Manager

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

В этой статье я расскажу о проблемах с которыми я столкнулся при подключении тяжелых зависимостей к iOS проекту с помощью Swift Package Manager и о способе их решения.

Читать далее

Особенности разработки для WatchOS приложений для здоровья

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

Достаточно плотно разработкой программного обеспечения для часов я занимаюсь с 2017 года. За этот период сменилось 4 версии WatchOS (5, 6, 7, 8). Появилось больше функционала и исправлено множество баг с внедрением каждой новой версии Swift. Complications стали более самостоятельной частью приложения.

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

Читать далее

Автоматизируем iOS-сборку c помощью Jenkins

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

Всем привет! Меня зовут Иван Чечиков, я QA-инженер в МТС Digital, работаю в проекте WASD.TV. В этой статье я расскажу о своем способе автоматизации iOS-сборки в TestFlight через Jenkins. С помощью такого метода можно настроить автоматизацию как локально, так и на удаленной машине. Поможет в этом Jenkins – это простой в использовании CI/CD-инструмент. Я рассмотрю локальное применение Jenkins.

 Подробности – под катом.

Читать далее

Как я визуализировал граф билда. Build Graph for Xcode

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

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

Пет — отличный способ прокачаться как начинающим разработчикам, так и опытным. Во время разработки пет-проекта можно побывать и программистом, и дизайнером, и менеджером, и маркетологом. 

В этот раз рабочая задача по ускорению билда привела меня к проекту по визуализации модулей в сложных приложениях. Давайте расскажу, как это было.

Читать далее

Интерфейсы/протоколы для начинающих

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

Сублимация попыток объяснить друзьям чем отличаются классы от протоколов и почему без организации целого концерта здесь никак не обойтись.

Читать далее

AppCode 2021.3: акторы, редактор plist-файлов, улучшенная поддержка документации и многое другое

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

Всем привет! 

Вышел AppCode 2021.3, а значит, пора о нем рассказать. 

Читать далее

Исправление неоднозначных ограничений без перезапуска приложения

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

Примечание

Слова layout, autolayout и constraints я перевёл, соответственно, как вёрстка, автовёрстка и ограничения.

Работа с автовёрсткой

Проблемы автовёрстки решать непросто. Запуская приложение, надеешься, что все установленные ограничения работают корректно, а получаешь кучу ошибок автовёрстки в логах консоли.

Interface Builder неплох как визуальный редактор вёрстки. В нём есть индикация некорректных граничных параметров. Однако ваша вёрстка может отличаться от видимой в IB. На экран приложения могут влиять различные параметры — например, ответы на сетевые запросы или локально сохранённые данные. Более того, могут быть экраны, частично или полностью построенные на информации, заданной сервером. От сервера может поступать вообще всё что угодно, в том числе шрифты, цвета и формы.

Кажется, остаётся только вручную разбирать гигантский лог ошибок автовёрстки. Но есть и другие варианты.

Читать далее