Логи в iOS, эпизод 2: os_signpost
Связка
#tools
Связка
os_signpost
и Time Profiler — мощный инструмент. Вы можете замерить сколько времени у вас выполнялась те или иные расчёты, сколько раз вы сходили в сеть, а также узнать, какая модель данных дольше всего парсилась#tools
👍3👎1
Как локализовать приложение
Большой гайд по локализации. Как перевести текст, фото, дату и валюты. Обзор инструментов и автоматизаций
#Xcode #tools
Большой гайд по локализации. Как перевести текст, фото, дату и валюты. Обзор инструментов и автоматизаций
#Xcode #tools
👍3👎1
Codeface: визуализация кодовой базы
Codeface позволяет:
👉 Просматривать иерархию кода
👉 Просматривать основные зависимости между структурными элементами на каждом уровне: папками, файлами и кодовыми символами
👉 Смотреть циклические зависимости и где они находятся
👉 Смотреть размер (строк кода) каждого структурного элемента
👉 Проверять scope на всех уровнях — от папок до свойств
👉 Фильтровать все визуализации по поисковому запросу
👉 Сохранять, открывать и делиться файлами кодовой базы
👉 Добавлять поддержку языков помимо Swift при наличие LSP-сервера
Ссылка в AppStore
#tools
Codeface позволяет:
👉 Просматривать иерархию кода
👉 Просматривать основные зависимости между структурными элементами на каждом уровне: папками, файлами и кодовыми символами
👉 Смотреть циклические зависимости и где они находятся
👉 Смотреть размер (строк кода) каждого структурного элемента
👉 Проверять scope на всех уровнях — от папок до свойств
👉 Фильтровать все визуализации по поисковому запросу
👉 Сохранять, открывать и делиться файлами кодовой базы
👉 Добавлять поддержку языков помимо Swift при наличие LSP-сервера
Ссылка в AppStore
#tools
👍7👎4
Как настроить Charles
Приложение Charles Proxy - большой помощник и тестировщику, и разработчику. Для меня бывает особенно полезно, когда нужно подменить данные с бэка или подебажить приложение. Об установке, настройке и интерфейсе читайте в статье
#tools
Приложение Charles Proxy - большой помощник и тестировщику, и разработчику. Для меня бывает особенно полезно, когда нужно подменить данные с бэка или подебажить приложение. Об установке, настройке и интерфейсе читайте в статье
#tools
👍8
Советы по отладке при работе над проектами Swift
👉 Настройте свой .lldbinit. Например, чтобы поменять язык или добавить дополнительные возможности к отладчику
👉 Используйте переменные фрейма: frame variable или v для сохраненных свойств вместо po
👉 Наблюдайте за системой. Брейкпоинты могут быть использованы для многих вещей, от изменения входных данных по умолчанию в поля (например, формы входа) до использования команд отладчика для создания цепочек символических брейкпоинтов
👉 Используйте
как брейкпоинт при изменении переменной
#tools
👉 Настройте свой .lldbinit. Например, чтобы поменять язык или добавить дополнительные возможности к отладчику
👉 Используйте переменные фрейма: frame variable или v для сохраненных свойств вместо po
👉 Наблюдайте за системой. Брейкпоинты могут быть использованы для многих вещей, от изменения входных данных по умолчанию в поля (например, формы входа) до использования команд отладчика для создания цепочек символических брейкпоинтов
👉 Используйте
watchpoint set variable self.homeViewController
как брейкпоинт при изменении переменной
#tools
👍8
AppCode 2022.3 Release and End of Sales and Support
Вышел релиз AppCode 2022.3, совместимый с macOS 13 и Xcode 14.2. Также было объявлено о завершении проекта. На 14 декабря прекращена продажа и обновление подписок AppCode.
#tools
Вышел релиз AppCode 2022.3, совместимый с macOS 13 и Xcode 14.2. Также было объявлено о завершении проекта. На 14 декабря прекращена продажа и обновление подписок AppCode.
#tools
😢15😁5👍1👎1
Создаем VIPER шаблон с помощью Generamba
Если вам не нравится тратить много времени на создание шаблонов для VIPER, можно воспользоваться Generamba.
В статье гайд о том, как все настроить.
#tools
Если вам не нравится тратить много времени на создание шаблонов для VIPER, можно воспользоваться Generamba.
В статье гайд о том, как все настроить.
#tools
👎14👍3
Более Быстрые Сборки Apple с помощью lld Linker
TL; DR: lld — отличный выбор для более быстрой компоновки отладочных двоичных файлов iOS, macOS и т.д. Он завершает работу на 50-80% быстрее, чем ld64, и сейчас используется многими крупными компаниями.
Указания в документации LLVM объясняют, как правильно его интегрировать.
#tools
TL; DR: lld — отличный выбор для более быстрой компоновки отладочных двоичных файлов iOS, macOS и т.д. Он завершает работу на 50-80% быстрее, чем ld64, и сейчас используется многими крупными компаниями.
Указания в документации LLVM объясняют, как правильно его интегрировать.
#tools
🔥2
Most Popular Libraries and Frameworks for iOS App Development in 2023
Какие фреймворки и либы считаются топовыми в iOS разработке на 2023 год? 🤔
В статье приведен личный топ автора, и, конечно, не для всех эти либы могут стать must-have
👉 Alamofire
👉 SwiftyJSON
👉 SVProgressHud
👉 Masonry (SnapKit)
👉 MJRefresh
#tools
Какие фреймворки и либы считаются топовыми в iOS разработке на 2023 год? 🤔
В статье приведен личный топ автора, и, конечно, не для всех эти либы могут стать must-have
👉 Alamofire
👉 SwiftyJSON
👉 SVProgressHud
👉 Masonry (SnapKit)
👉 MJRefresh
#tools
🤩4😢2👍1
Минимизируем человеческий фактор в Swift
Несколько инструментов, которые позволяют команде работать комфортно и эффективно:
👉 SwiftGen - менеджеринг ресурсов в приложении
👉 SwiftLint - единый code style на проекте
👉 XcodeGen - заранее решаем мердж-конфликты в проекте
В статье также есть инструкция по установке и настройке каждого из инструментов
#tools
Несколько инструментов, которые позволяют команде работать комфортно и эффективно:
👉 SwiftGen - менеджеринг ресурсов в приложении
👉 SwiftLint - единый code style на проекте
👉 XcodeGen - заранее решаем мердж-конфликты в проекте
В статье также есть инструкция по установке и настройке каждого из инструментов
#tools
👍9
Introducing EditKit Pro
EditKit Pro встраивается в Xcode и добавляет:
👉 генерацию комментариев MARK
👉 Beautify JSON, например, для моков
👉 генерацию Codable структур из JSON
👉 разбиение массива или длинной строки на несколько строк
👉 сортировку по алфавиту для импортов и других строк кода
Это лишь некоторые фичи EditKit Pro
Ссылка на скачивание
#tools
EditKit Pro встраивается в Xcode и добавляет:
👉 генерацию комментариев MARK
👉 Beautify JSON, например, для моков
👉 генерацию Codable структур из JSON
👉 разбиение массива или длинной строки на несколько строк
👉 сортировку по алфавиту для импортов и других строк кода
Это лишь некоторые фичи EditKit Pro
Ссылка на скачивание
#tools
👍10👎1
Scaling a Mature iOS Codebase with Tuist
Tuist - утилита командой строки, которая автоматизирует создание Xcode проектов и workspace. Вот что заключили в Asana в результате переезда.
Плюсы:
➕ Автодополнение работает лучше
➕ Легче ревьювить конфигурации проектов и больше нет конфоиктов в project файлах
➕ Создание нового модуля требует лишь одной команды
➕ Правильное распределение файлов в таргеты
➕ Более быстрая сборка проекта
Минусы:
➖ Сложность. Далеко не всем разработчиком комфортно работать с
➖
➖ написание boilerplate кода для разделения интерфейсов и реализаций
#tools
Tuist - утилита командой строки, которая автоматизирует создание Xcode проектов и workspace. Вот что заключили в Asana в результате переезда.
Плюсы:
➕ Автодополнение работает лучше
➕ Легче ревьювить конфигурации проектов и больше нет конфоиктов в project файлах
➕ Создание нового модуля требует лишь одной команды
➕ Правильное распределение файлов в таргеты
➕ Более быстрая сборка проекта
Минусы:
➖ Сложность. Далеко не всем разработчиком комфортно работать с
tuist edit
, однако и не всем бывает нужно ➖
git checkout
занимает на 5-15 секунд больше, чем раньше➖ написание boilerplate кода для разделения интерфейсов и реализаций
#tools
🤩3👍1👎1
Fast and reliable iOS builds with Bazel at Mercari
Опыт команды Mercari по переезду на Bazel. Ускорили сборки и время запуска приложения. Описан опыт интеграции с Xcode, Dependency Management и прочие нюансы
#tools
Опыт команды Mercari по переезду на Bazel. Ускорили сборки и время запуска приложения. Описан опыт интеграции с Xcode, Dependency Management и прочие нюансы
#tools
👍1👎1
Firebase is Overrated. 5 Alternatives that are currently killing it
Firebase имеет достойные альтернативы:
👉 Supabase
👉 Amplify
👉 Apprite
👉 NHost
👉 MongoDB Realm
Подробнее о плюсах и минусах каждого в статье
#tools
Firebase имеет достойные альтернативы:
👉 Supabase
👉 Amplify
👉 Apprite
👉 NHost
👉 MongoDB Realm
Подробнее о плюсах и минусах каждого в статье
#tools
👎5👍4
ChatGPT integration in Xcode: How to improve your Apps with AI (6 мин)
В статье рассказывается, как добавить в Xcode Source Editor Extension с ChatGPT, которое может:
👉 Преобразовывать код. Команда, которая преобразует JSON в структуру Swift
👉 Определять Code Smells. ChatGPT определит, что можно улучшить в нашем исходном коде.
👉 Объяснить, что происходит в коде
#chatgpt #tools
В статье рассказывается, как добавить в Xcode Source Editor Extension с ChatGPT, которое может:
👉 Преобразовывать код. Команда, которая преобразует JSON в структуру Swift
👉 Определять Code Smells. ChatGPT определит, что можно улучшить в нашем исходном коде.
👉 Объяснить, что происходит в коде
#chatgpt #tools
🤯8🔥3
DoccGPT: cамодокументируемый код на Swift с помощью GPT и DocC (4 мин)
DoccGPT — это эксперимент по полной автоматизации документирования кодовой базы на Swift.
Компилятор документации DocC преобразует текст на основе Markdown в обширную документацию для проектов Swift и Objective‑C и отображает ее прямо в окне документации Xcode. Вы также можете размещать эту документацию на веб‑сайте.
#ml #tools
DoccGPT — это эксперимент по полной автоматизации документирования кодовой базы на Swift.
Компилятор документации DocC преобразует текст на основе Markdown в обширную документацию для проектов Swift и Objective‑C и отображает ее прямо в окне документации Xcode. Вы также можете размещать эту документацию на веб‑сайте.
#ml #tools
❤12👎2
Цикломатическая сложность в Swift
Цикломатическая сложность — количество точек принятия решений в коде. Чем больше у вас точек принятия решений — например, операторов if, switch, циклов и так далее, — тем сложнее становится ваш код. А чем сложнее код, тем труднее его понимать, тестировать и поддерживать.
В Swift для измерения цикломатической сложности разработчики могут использовать такие инструменты, как встроенный статический анализатор Xcode или инструменты сторонних разработчиков, например SwiftLint.
#tools
Цикломатическая сложность — количество точек принятия решений в коде. Чем больше у вас точек принятия решений — например, операторов if, switch, циклов и так далее, — тем сложнее становится ваш код. А чем сложнее код, тем труднее его понимать, тестировать и поддерживать.
В Swift для измерения цикломатической сложности разработчики могут использовать такие инструменты, как встроенный статический анализатор Xcode или инструменты сторонних разработчиков, например SwiftLint.
#tools
👍3👎3❤1
5 essential tools and tips for every iOS developer (4 мин)
👉 Cleaner for Xcode - удалит ненужные файлы, Derived Data, кеши и подобное
👉 Rectangle: A Window Manager - управление окнами через горячие клавиши
👉 SF Symbols - большое разнообразие иконок
👉 Sigma - генерирует SwiftUI верстку из макетов Figma
👉 Amphetamine не дает "заснуть" вашему макбуку, когда не нужно
Наиболее интересные советы для разработчиков:
👉 Предотвращаем опечатки в Xcode через Edit > Format > Spelling and Grammar > Check Spelling While Typing
👉 Включить code completion с опциональными параметрами с помощью Option ⌥ + return
#tools #лайфхаки
👉 Cleaner for Xcode - удалит ненужные файлы, Derived Data, кеши и подобное
👉 Rectangle: A Window Manager - управление окнами через горячие клавиши
👉 SF Symbols - большое разнообразие иконок
👉 Sigma - генерирует SwiftUI верстку из макетов Figma
👉 Amphetamine не дает "заснуть" вашему макбуку, когда не нужно
Наиболее интересные советы для разработчиков:
👉 Предотвращаем опечатки в Xcode через Edit > Format > Spelling and Grammar > Check Spelling While Typing
👉 Включить code completion с опциональными параметрами с помощью Option ⌥ + return
#tools #лайфхаки
👍7👎1
Безопасная локализация строк в iOS: Localinter (11 мин)
Localinter - open source линтер (Github), используемый в "Пункт Ozon". Простой скриптовый Swift, не требующий подключения внешних библиотек или зависимостей, подключается и настраивается очень просто.
Localinter может работать в связке, например со SwiftGen. Без него он тоже может использоваться и будет решать те же задачи, но мы и так используем SwiftGen для других целей.
Localinter анализирует исходники с помощью регулярных выражений и проверяет ресурсные строки на наличие контента, его корректность и названия строк.
#tools
Localinter - open source линтер (Github), используемый в "Пункт Ozon". Простой скриптовый Swift, не требующий подключения внешних библиотек или зависимостей, подключается и настраивается очень просто.
Localinter может работать в связке, например со SwiftGen. Без него он тоже может использоваться и будет решать те же задачи, но мы и так используем SwiftGen для других целей.
Localinter анализирует исходники с помощью регулярных выражений и проверяет ресурсные строки на наличие контента, его корректность и названия строк.
#tools
👍6👎1
ETTrace: надежное профилирование в iOS с Flame Charts (5 мин)
ETTrace - это фреймворк с открытым исходным кодом, написанный на Objective-C, и CLI (интерфейс командной строки) на Swift, который профилирует и визуализирует данные полностью локально. Он создан чтобы быть простым и быстрым: просто подключите фреймворк к вашему приложению, запустите ettrace для начала профилирования и остановите, чтобы мгновенно увидеть flame-граф. Перезапускать приложение не надо, как и блуждать по долгим меню, чтобы увидеть результат.
#tools
ETTrace - это фреймворк с открытым исходным кодом, написанный на Objective-C, и CLI (интерфейс командной строки) на Swift, который профилирует и визуализирует данные полностью локально. Он создан чтобы быть простым и быстрым: просто подключите фреймворк к вашему приложению, запустите ettrace для начала профилирования и остановите, чтобы мгновенно увидеть flame-граф. Перезапускать приложение не надо, как и блуждать по долгим меню, чтобы увидеть результат.
#tools
👍2👎2😁1🤔1