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

Устроиться ВКонтакте за два дня: Weekend Offer для iOS-разработчиков

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

Приглашаем iOS-разработчиков на Weekend Offer в Команду ВКонтакте. За одни выходные — 30 и 31 июля — вы познакомитесь с тимлидами, узнаете о работе, побываете на всех этапах собеседований и, возможно, присоединитесь к нашей команде: vk.com/iosoffer.

Подробнее
Всего голосов 8: ↑5 и ↓3+2
Комментарии2

Spotify представила XCRemoteCache — инструмент удаленного кеширования для iOS, сокращающий время чистой сборки на 70%

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

Разработчики Spotify открыли исходный код библиотеки XCRemoteCache, которая помогает ускорить время сборки iOS-проектов. Инженеры компании заявляют, что использование инструмента внутри команды позволило сократить время чистой сборки на 70%. Библиотека построена на принципе использования удаленного кэширования с целью повторного использования целевых артефактов в Xcode. Инструмент совместим кодом, написанным на Swift, Objective-C и на связке двух языков сразу.

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

Ушел из жизни один из создателей Objective C Брэд Кокс

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

Брэд Кокс, доктор философии из Манассаса, штат Вирджиния, скончался 2 января. Кокс известен тем, что участвовал в создании языка программирования Objective-C вместе с Томом Лавом.

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

Fortran оказался в топ-20 языков программирования вместо Objective-C

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

Созданный в 1957 году специалистами IBM язык программирования Fortran попал на 20-е место рейтинга TIOBE. Еще летом прошлого года он занимал последнее, 50-е место. При этом Fortran опередил в списке Objective-C и Rust.

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

MVC без C: Что изменит SwiftUI в архитектуре приложений?

Время на прочтение4 мин
Количество просмотров8K
MVC был давним стандартом в паттернах проектирования, используемых для написания iOS приложений. Структура iOS приложений, которые создавались ранее, была основана на одном базовом компоненте, который присутствует везде, и называется он — Controller. На WWDC19 был представлен SwiftUI, который не имеет такого компонента.

Проблема с так называемыми massive view-controllers должна быть решена в SwiftUI. Так, необходимо найти новый способ правильной декомпозиции кода. Давайте посмотрим на текущее состояние платформы и подумаем, какие парадигмы мы можем использовать при разработке для iOS13 и более поздних версий.

image
Читать дальше →
Всего голосов 15: ↑12 и ↓3+9
Комментарии1

MetricKit. Анализ производительности iOS приложений

Время на прочтение6 мин
Количество просмотров6.1K
image

Новая игрушка


Мы продолжаем знакомиться с новым материалом от Apple, представленным на WWDC. На этот раз рассмотрим MetricKit, это абсолютно новый фреймворк, который служит инструментом для мониторинга производительности приложений.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии0

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

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

Если в вашем приложении с подписками вы используете вводные предложения (триал, оплата по мере использования или предоплата), то прежде чем показать цену на экране оплаты, вам нужно определить доступность вводного предложения для пользователя. Если пользователь до этого уже оформлял триал, то для него вы должны отображать полную цену.


image


Всем привет, на связи Ренат из Apphud – сервиса, который упрощает работу с подписками в iOS-приложениях. Сегодня я расскажу, как определить, есть ли у отдельно взятого пользователя право активировать вводное предложение или нет.

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

Создание инкрементального сервера для iOS Team

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

Бесплатная книга

После пяти лет наступаний на одни и те же грабли, и полугода поисков DevOps-а, который знает что-такое Provision Profile и как от него зависит развертывание приложения, было принято решение составить пошаговую инструкцию, в картинках, о том, настраивать рабочее окружение в iOS Team с минимальными финансовыми вложениями (к примеру, когда нет проплаченных аккаунтов GitHub или Jira), а работа кипит.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

AppCode 2019.3: работает быстрее, лучше понимает Swift, знает про Mac Catalyst, удобно отображает сообщения сборки

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

В AppCode 2019.3 мы сделали основной упор на быстродействие и поддержку языка. В этом посте рассказываем, что получилось (спойлер: многое ускорили).


Splash


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

Any и AnyObject в Swift. В чем их различие?

Время на прочтение3 мин
Количество просмотров13K
Довольно долгое время в своих проектах при написании когда я использовал тип Any, например при обработке JSON данных. Но также я знал что есть и второй тип — AnyObject. И недавно я задумался о разнице между этими двумя типами.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии2

AppCode 2020.1: улучшения быстродействия, автодополнение до конца индексации, генерация документации и многое другое

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

Всем привет, в этом посте рассказываем про новый AppCode 2020.1, который мы выпустили буквально вчера.


КПДВ

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

Разработка Unity плагинов для iOS и Android

Время на прочтение23 мин
Количество просмотров4K
Есть куча ситуаций когда одной Unity недостаточно и нужно использовать возможности платформы. Банально, но до сих пор, в Unity нет работы с галерей и камерой из коробки. Понятно, что Unity не ограничивается мобильными платформами, но 60-70% всех мобильных игр, как бы говорят:

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

Борьба с зависимостями: как мы переводили проект на SwiftPM (и сделали еще хуже, чем было)

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

Привет, Хабр! Меня зовут Лена, я iOS-разработчик в inDriver. Расскажу о том, как мы выбирали менеджер зависимостей для проекта. Название статьи звучит пессимистично, но на самом деле, все оказалось не так плохо.

Сначала поделюсь тем, как у нас обстояли дела с интеграцией сторонних решений. Затем выделю проблемы и цели, которые перед нами стояли, и перейду к сравнению менеджеров зависимостей. Расскажу, почему остановили свой выбор на Swift Package Manager (SwiftPM) и как на него переезжали.

Погнали!

Читать далее
Всего голосов 14: ↑13 и ↓1+12
Комментарии16

IOS Run Loop: Что? Когда? Зачем?

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

Run Loop (цикл исполнения) является механизмом, который позволяет потокам обрабатывать события (events) бесконечно в любое время.

Run Loop представляет из себя объект, который управляет событиями и сообщениями, обрабатывает их, и предоставляет функцию точки входа для выполнения логики события.

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

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

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

Примечание

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

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

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

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

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

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

Как писать на Objective-C в Linux (с использованиям системы сборки CMake и автодополнением)

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

Запускаем Objective-C на Linux.

Читать далее
Рейтинг0
Комментарии4

Диспетчеризация в Swift: погружение в теорию и практику

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

Все iOS-разработчики так или иначе сталкиваются с диспетчеризацией (Method Dispatch), но далеко не каждый понимает, как это работает. Зная, как проходит процесс диспетчеризации под капотом программы, вы можете повысить производительность своего кода. 

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

Материал будет полезен для всех iOS-разработчиков, которые хотят улучшить производительность своего кода. Кроме того, этот материал поможет при подготовке к собеседованию, где вопросы о Method Dispatch встречаются достаточно часто.

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

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

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

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

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

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

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

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

Диспетчеризация методов iOS

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

Каждый iOS-разрабочик, иногда сам того не осознавая, сталкивается с диспетчеризацией методов.
Знания принципов работы диспетчеризации методов необходимы при написании кода, поскольку эти знания позволят повысить производительность приложения, а также не допустить ошибки, связанные с неочевидным поведением в Swift.
В данной статье будут рассмотрены понятие диспетчеризации, их типы, преимущества и недостатки, а также приведены небольшие задачи для укрепления знаний.

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

Пишем персистентный слой на Realm

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

Пишем простой персистеный слой с использованием популярной 3rd party library Realm на iOS.

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