Приглашаем iOS-разработчиков на Weekend Offer в Команду ВКонтакте. За одни выходные — 30 и 31 июля — вы познакомитесь с тимлидами, узнаете о работе, побываете на всех этапах собеседований и, возможно, присоединитесь к нашей команде: vk.com/iosoffer.
Spotify представила XCRemoteCache — инструмент удаленного кеширования для iOS, сокращающий время чистой сборки на 70%
Разработчики Spotify открыли исходный код библиотеки XCRemoteCache, которая помогает ускорить время сборки iOS-проектов. Инженеры компании заявляют, что использование инструмента внутри команды позволило сократить время чистой сборки на 70%. Библиотека построена на принципе использования удаленного кэширования с целью повторного использования целевых артефактов в Xcode. Инструмент совместим кодом, написанным на Swift, Objective-C и на связке двух языков сразу.
Ушел из жизни один из создателей Objective C Брэд Кокс
Брэд Кокс, доктор философии из Манассаса, штат Вирджиния, скончался 2 января. Кокс известен тем, что участвовал в создании языка программирования Objective-C вместе с Томом Лавом.
Fortran оказался в топ-20 языков программирования вместо Objective-C
Созданный в 1957 году специалистами IBM язык программирования Fortran попал на 20-е место рейтинга TIOBE. Еще летом прошлого года он занимал последнее, 50-е место. При этом Fortran опередил в списке Objective-C и Rust.
MVC без C: Что изменит SwiftUI в архитектуре приложений?
Проблема с так называемыми massive view-controllers должна быть решена в SwiftUI. Так, необходимо найти новый способ правильной декомпозиции кода. Давайте посмотрим на текущее состояние платформы и подумаем, какие парадигмы мы можем использовать при разработке для iOS13 и более поздних версий.
MetricKit. Анализ производительности iOS приложений
Новая игрушка
Мы продолжаем знакомиться с новым материалом от Apple, представленным на WWDC. На этот раз рассмотрим MetricKit, это абсолютно новый фреймворк, который служит инструментом для мониторинга производительности приложений.
Как проверить доступность вводного предложения в iOS
Если в вашем приложении с подписками вы используете вводные предложения (триал, оплата по мере использования или предоплата), то прежде чем показать цену на экране оплаты, вам нужно определить доступность вводного предложения для пользователя. Если пользователь до этого уже оформлял триал, то для него вы должны отображать полную цену.
Всем привет, на связи Ренат из Apphud – сервиса, который упрощает работу с подписками в iOS-приложениях. Сегодня я расскажу, как определить, есть ли у отдельно взятого пользователя право активировать вводное предложение или нет.
Создание инкрементального сервера для iOS Team
Бесплатная книга
После пяти лет наступаний на одни и те же грабли, и полугода поисков DevOps-а, который знает что-такое Provision Profile и как от него зависит развертывание приложения, было принято решение составить пошаговую инструкцию, в картинках, о том, настраивать рабочее окружение в iOS Team с минимальными финансовыми вложениями (к примеру, когда нет проплаченных аккаунтов GitHub или Jira), а работа кипит.
AppCode 2019.3: работает быстрее, лучше понимает Swift, знает про Mac Catalyst, удобно отображает сообщения сборки
В AppCode 2019.3 мы сделали основной упор на быстродействие и поддержку языка. В этом посте рассказываем, что получилось (спойлер: многое ускорили).
Any и AnyObject в Swift. В чем их различие?
AppCode 2020.1: улучшения быстродействия, автодополнение до конца индексации, генерация документации и многое другое
Всем привет, в этом посте рассказываем про новый AppCode 2020.1, который мы выпустили буквально вчера.
Разработка Unity плагинов для iOS и Android
Борьба с зависимостями: как мы переводили проект на SwiftPM (и сделали еще хуже, чем было)
Привет, Хабр! Меня зовут Лена, я iOS-разработчик в inDriver. Расскажу о том, как мы выбирали менеджер зависимостей для проекта. Название статьи звучит пессимистично, но на самом деле, все оказалось не так плохо.
Сначала поделюсь тем, как у нас обстояли дела с интеграцией сторонних решений. Затем выделю проблемы и цели, которые перед нами стояли, и перейду к сравнению менеджеров зависимостей. Расскажу, почему остановили свой выбор на Swift Package Manager (SwiftPM) и как на него переезжали.
Погнали!
IOS Run Loop: Что? Когда? Зачем?
Run Loop (цикл исполнения) является механизмом, который позволяет потокам обрабатывать события (events) бесконечно в любое время.
Run Loop представляет из себя объект, который управляет событиями и сообщениями, обрабатывает их, и предоставляет функцию точки входа для выполнения логики события.
Исправление неоднозначных ограничений без перезапуска приложения
Примечание
Слова layout, autolayout и constraints я перевёл, соответственно, как вёрстка, автовёрстка и ограничения.
Работа с автовёрсткой
Проблемы автовёрстки решать непросто. Запуская приложение, надеешься, что все установленные ограничения работают корректно, а получаешь кучу ошибок автовёрстки в логах консоли.
Interface Builder неплох как визуальный редактор вёрстки. В нём есть индикация некорректных граничных параметров. Однако ваша вёрстка может отличаться от видимой в IB. На экран приложения могут влиять различные параметры — например, ответы на сетевые запросы или локально сохранённые данные. Более того, могут быть экраны, частично или полностью построенные на информации, заданной сервером. От сервера может поступать вообще всё что угодно, в том числе шрифты, цвета и формы.
Кажется, остаётся только вручную разбирать гигантский лог ошибок автовёрстки. Но есть и другие варианты.
Как писать на Objective-C в Linux (с использованиям системы сборки CMake и автодополнением)
Запускаем Objective-C на Linux.
Диспетчеризация в Swift: погружение в теорию и практику
Все iOS-разработчики так или иначе сталкиваются с диспетчеризацией (Method Dispatch), но далеко не каждый понимает, как это работает. Зная, как проходит процесс диспетчеризации под капотом программы, вы можете повысить производительность своего кода.
В этом материале мы разберем типы диспетчеризации, их плюсы и минусы, а также затронем один из распространённых багов.
Материал будет полезен для всех iOS-разработчиков, которые хотят улучшить производительность своего кода. Кроме того, этот материал поможет при подготовке к собеседованию, где вопросы о Method Dispatch встречаются достаточно часто.
Приключение на 5 минут: как мы переводили все зависимости на SPM
Привет, Хабр!
Меня зовут Вильян Яумбаев, в этой статье я расскажу вам про наши приключения на пути к SPM.
В 2015 ПСБ начал разрабатывать проект для бизнеса. Для него, в свою очередь, было нужно приложение. Сперва всё находилось в одном репозитории одного проекта в одном воркспейсе. Первые авторы подключали сторонние зависимости через CocoaPods, поскольку проприетарного менеджера зависимостей ещё не существовало. Но в тот же год в Apple началась работа над Swift Package Manager. Им предстояло встретиться в нашем проекте.
В этой статье расскажу, через что мы прошли, переводя зависимости на SPM, и поделюсь нашими наработками.
Диспетчеризация методов iOS
Каждый iOS-разрабочик, иногда сам того не осознавая, сталкивается с диспетчеризацией методов.
Знания принципов работы диспетчеризации методов необходимы при написании кода, поскольку эти знания позволят повысить производительность приложения, а также не допустить ошибки, связанные с неочевидным поведением в Swift.
В данной статье будут рассмотрены понятие диспетчеризации, их типы, преимущества и недостатки, а также приведены небольшие задачи для укрепления знаний.
Пишем персистентный слой на Realm
Пишем простой персистеный слой с использованием популярной 3rd party library Realm на iOS.