Рубрика «swift» - 7

Как завести XCRemoteCache, или Кэши из топора - 1

Всем привет! 

Читать полностью »

Render Loop крутится — кадры мутятся.

Доброго времени суток, уважаемые читатели. Здесь я начинаю свой цикл статей о работе с графикой в iOS.

В моих планах разобраться с работой базовых механик отрисовки и углубиться к таким вещам как AVFoundation, Metal.

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

  • FPS

  • Render Loop

  • Проблемы с производительностью

  • Оптимизации

Что такое FPS?

Как говорит вики — это “Ка́дровая частота́Читать полностью »

В октябре 2020 года в техническую поддержку Авито стали обращаться пользователи с проблемами нагрева девайса и просадками FPS вплоть до полного фриза iOS-приложения. Проблема, как казалось, была глобальной. Она не относилась к какой-то конкретной функциональности приложения и поэтому не подходила в бэклоги продуктовых команд. Выход был один: засучить рукава и самому разобраться, что пошло не так. Не даром же я performance engineer.

В статье я расскажу, как происходило погружение во тьму, выход из неё и к каким выводам это путешествие меня привело.

Читать полностью »

FigmaConvertXib это инструмент для экспорта элементов дизайна из проекта Figma,
в среду разработки, с точностью 90%. В результате конвертации будут созданы файлы xib / xml, и уже с помощью интерфейс редактора Xcode/Android Studio, можно будет манипулировать всеми элементами у себя коде. Если дизайн вашего проекта разрабатывается в Figma, и вы не реализуете дизайн программно, то это для вас.

Для того чтобы не тратить огромное время на реализацию всех UI элементов.

https://github.com/mrustaa/FigmaConvertXib

Читать полностью »

Что такое Big O нотация?

Обозначение Big O нотация (или просто Big O) — это способ оценки относительной производительности структуры данных или алгоритма, обычно по двум осям: времени и пространству.

Доминирующие операции

Способ, которым мы определяем Big O алгоритмов, заключается в том, чтобы посмотреть на худшую производительность в его доминирующих операциях.

Постоянное время - O(1)

func constantTime(_ n: Int) -> Int {
    let result = n * n
    return result
}

Читать полностью »

Всем добрый день, сегодня я хотел бы поделиться своим опытом проектирования ракеты с управлением вектора тяги. Так получилось, что я долго сидел дома и решил купить 3D принтер, ну и конечно первое же, что я решил распечатать - модель ракеты типа «Батут-М», которую можно приземлять и беспроводной меч-огнемет.

Ракета и меч-огнемет (который "не меч" и "не огнемет")
Читать полностью »

Привет! Я терпел четыре года, и таки решился написать о своем хобби проекте. Если коротко о себе, то я типичный разработчик подсевший на макбуки в эру, когда ноутов с хорошей батареей толком и не было.

Мой проект — программа для ведения заметок в markdown и plain text. Возможно вы слышали о FSNotes, а если нет, то можете сами взглянуть, весь код лежит на GitHub, под MIT лицензией.

Линк на репозиторий

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

Модерация в AppStore

Читать полностью »

Как мы ускоряли работу отладчика Swift - 1

Привет! Меня зовут Александр Скворцов, я работаю в команде Яндекс.Браузера для iOS. Это очень большой проект, который насчитывает около тысячи clang-модулей и примерно 600 Swift-модулей. Наверное, из-за таких масштабов мы чаще других наталкиваемся на проблемы инструментов разработки, например, находим критические ошибки в компиляторе, неработающую подсветку и автодополнение. Это бывает неприятно, но жить можно. 

Читать полностью »

Быстрый, простой, сложный: как мы выпилили Realm - 1

Когда на собеседованиях я спрашиваю у кандидата с какими базами он работал и что делал, то чаще всего слышу про Realm. Типичный ответ: он быстрее и с ним проще работать, создал конфиг, описал модель, готово. Но за все удобства Realm придётся расплачиваться: он вроде бы решает одну проблему, но тут же добавляет пару своих. А последствия, недостатки и проблемы обычно обсудить не получается: нужен опыт использования в пару лет, а его обычно нет. 

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js