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

Xcode *

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии3

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

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

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

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

Читать дальше →
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

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

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

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

Читать далее
Всего голосов 8: ↑7 и ↓1+6
Комментарии9

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

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

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

Читать дальше →
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Истории

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

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

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

Читать далее
Всего голосов 1: ↑0 и ↓1-1
Комментарии0

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

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

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

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии1

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

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

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.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии1

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

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

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

Читать далее
Всего голосов 5: ↑2 и ↓3-1
Комментарии26

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

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

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

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

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

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии4

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

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

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

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

Читать далее
Всего голосов 15: ↑6 и ↓9-3
Комментарии14

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

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

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

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

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

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

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

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

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

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии3

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

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

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

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

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии0

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

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

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

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

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии2

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

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

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

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

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

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

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии5

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

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

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

Читать далее
Всего голосов 67: ↑6 и ↓61-55
Комментарии15

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии7

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

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

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

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

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии6

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

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

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

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

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии0