Гайд по миграции на Bazel
Очень подробный гайд по тому, как настроить сборку проекта с помощью Bazel на основе приложения для Mastodon:
👉Описание таргетов
👉Интеграция с Xcode
👉Настройка удаленного кеша
👉Модуляризация
Очень подробный гайд по тому, как настроить сборку проекта с помощью Bazel на основе приложения для Mastodon:
👉Описание таргетов
👉Интеграция с Xcode
👉Настройка удаленного кеша
👉Модуляризация
Brentley’s Blog
How to migrate an iOS app to Bazel
Wondering how to migrate your Apple-based project to Bazel? Whether it’s iOS, macOS, watchOS, tvOS, or visionOS, this guide is for you.
Как TextView работает под капотом
Лучшая статья прошлой недели. Разбор кучи деталей того, как TextView работает под капотом – начиная с того, как обратываются стили у AttributedString, заканчивая тем, как курсор реагирует на нажатие кнопок на клавиатуре в зависимости от положения в тексте.
Лучшая статья прошлой недели. Разбор кучи деталей того, как TextView работает под капотом – начиная с того, как обратываются стили у AttributedString, заканчивая тем, как курсор реагирует на нажатие кнопок на клавиатуре в зависимости от положения в тексте.
Снова про перфоманс макросов
Я уже ссылался на эпичный тред на Swift Forums, где разработчики жалуются на влияние наличия пакета SwiftSyntax на скорость компиляции кода с макросами. Так вот, проблемы остаются, даже если использовать предкомпилированный SwiftSyntax. Код с макросами, взятыми из примеров Apple, все равно собирается примерно в два раза дольше, чем без них.
Я уже ссылался на эпичный тред на Swift Forums, где разработчики жалуются на влияние наличия пакета SwiftSyntax на скорость компиляции кода с макросами. Так вот, проблемы остаются, даже если использовать предкомпилированный SwiftSyntax. Код с макросами, взятыми из примеров Apple, все равно собирается примерно в два раза дольше, чем без них.
WWDC пройдет 10-14 июня
Объявили даты WWDC. Все как в прошлом году, основной контент в онлайне, но кейноут пройдет в Apple Park.
Объявили даты WWDC. Все как в прошлом году, основной контент в онлайне, но кейноут пройдет в Apple Park.
DevToys – набор утилит для разработки
DevToys – опенсорсное приложение, состоящее из кучи небольших хелперов, которые упрощают ежедневную разработческую рутину. Вот некоторые из них:
👉Конвертер из JSON в Yaml
👉URL encoder/decoder
👉JSON форматтер
👉Тестер регулярок
👉Генератор хешей
DevToys – опенсорсное приложение, состоящее из кучи небольших хелперов, которые упрощают ежедневную разработческую рутину. Вот некоторые из них:
👉Конвертер из JSON в Yaml
👉URL encoder/decoder
👉JSON форматтер
👉Тестер регулярок
👉Генератор хешей
Привет, на связи Podlodka Teamlead Crew!
Пришли со свежими подробностями сезона.
Стартуем уже 1 апреля: научимся выбирать, внедрять, анализировать и масштабировать метрики.
Если вам кажется, что язык метрик сродни заклинаниям, которые знают лишь избранные, то вы попали по адресу. Мы пригласили крутых спикеров из известных компаний, которые обладают этим знанием и на метриках уже «собаку съели». Они научат правильно применять метрики, говорить с бизнесом и продактами на одном языке во благо разрабатываемому решению.
❓В каких сферах применимы метрики? Сергей Воробьёв объяснит как использовать популярные виды метрик и где брать для них данные.
❓Как принимать решения на основе метрик? Сергей Петрук из QIWI владеет этой магией: проведёт воркшоп по фреймворку принятия решений, разберёт реальные кейсы.
❓Как говорить с бизнесом на языке метрик? Серафима Чекулаева поделится священными тайнами продуктовых метрик и их потенциальной пользой.
Билеты уже на сайте, забирай свой!
https://podlodka.io/tlcrew
Пришли со свежими подробностями сезона.
Стартуем уже 1 апреля: научимся выбирать, внедрять, анализировать и масштабировать метрики.
Если вам кажется, что язык метрик сродни заклинаниям, которые знают лишь избранные, то вы попали по адресу. Мы пригласили крутых спикеров из известных компаний, которые обладают этим знанием и на метриках уже «собаку съели». Они научат правильно применять метрики, говорить с бизнесом и продактами на одном языке во благо разрабатываемому решению.
❓В каких сферах применимы метрики? Сергей Воробьёв объяснит как использовать популярные виды метрик и где брать для них данные.
❓Как принимать решения на основе метрик? Сергей Петрук из QIWI владеет этой магией: проведёт воркшоп по фреймворку принятия решений, разберёт реальные кейсы.
❓Как говорить с бизнесом на языке метрик? Серафима Чекулаева поделится священными тайнами продуктовых метрик и их потенциальной пользой.
Билеты уже на сайте, забирай свой!
https://podlodka.io/tlcrew
Обновления SwiftUI Field Guide
За месяц, прошедший с первого релиза, новый проект Криса Эйдхофа, интерактивный учебник The SwiftUI Field Guide, продолжает активно обновляться. Вот какие разделы там появились:
👉Safe Areas
👉Debugging Techniques
👉Introduction to SwiftUI
👉Alignment
👉Flow Layout
👉Stack Alignment
За месяц, прошедший с первого релиза, новый проект Криса Эйдхофа, интерактивный учебник The SwiftUI Field Guide, продолжает активно обновляться. Вот какие разделы там появились:
👉Safe Areas
👉Debugging Techniques
👉Introduction to SwiftUI
👉Alignment
👉Flow Layout
👉Stack Alignment
Benchmark – новый пакет для измерений перфоманса
Swift в своем блоге выложили статью про Benchmark, пакет для автоматизации тестирования перфоманса, который умеет работать с кучей разных метрик.
GitHub
Swift в своем блоге выложили статью про Benchmark, пакет для автоматизации тестирования перфоманса, который умеет работать с кучей разных метрик.
GitHub
Как начать писать игры под Playdate
Недавно я рассказывал, что на Swift теперь можно писать игры под консоль Playdate. Держите документацию от разработчиков консоли с подробными гайдами по настройке окружения, написанию своей первой игры и ее запуску на симуляторе.
Недавно я рассказывал, что на Swift теперь можно писать игры под консоль Playdate. Держите документацию от разработчиков консоли с подробными гайдами по настройке окружения, написанию своей первой игры и ее запуску на симуляторе.
Как улучшить нейминг SwiftUI компонентов
Простая идея по тому, как уменьшить количество классов вроде
Простая идея по тому, как уменьшить количество классов вроде
BlablablaDescriptionView
у вас в коде – вместо View использовать класс оборачиваемого элемента.Зачем переключаться с Xcode на Neovim
👉В отличие от Xcode, у Neovim есть мощная система плагинов, которая позволяет как писать собственные, так и модифицировать чужие.
👉ШОРТКАТЫ! Их много, а их хорошее знание повышает продуктивность во много раз.
👉Можно полностью отказаться от использования мыши или тачпада.
👉В процессе работы с Neovim вы научитесь чаще использовать терминал, и за счет разных утилит тоже прокачаете свою продуктивность.
👉Вы сможете открыть хоть все свои проекты одновременно, не боясь того, что закончится оперативка.
👉Если вы решите сменить техстек, все навыки Neovim останутся с вами.
👉В отличие от Xcode, у Neovim есть мощная система плагинов, которая позволяет как писать собственные, так и модифицировать чужие.
👉ШОРТКАТЫ! Их много, а их хорошее знание повышает продуктивность во много раз.
👉Можно полностью отказаться от использования мыши или тачпада.
👉В процессе работы с Neovim вы научитесь чаще использовать терминал, и за счет разных утилит тоже прокачаете свою продуктивность.
👉Вы сможете открыть хоть все свои проекты одновременно, не боясь того, что закончится оперативка.
👉Если вы решите сменить техстек, все навыки Neovim останутся с вами.
Forwarded from Teamlead Good Reads – ежедневные советы про менеджмент людей и команд (Egor Tolstoy)
Как декомпозировать проекты
Уметь декомпозировать свою работу на маленькие составные кусочки – это навык, которому довольно сложно научить. На ум просится довольно пошлое сравнение с ездой на велосипеде. Если вы попробовали декомпозировать проект, сделали это фигово, настрадались от своего кривого подхода сами или заставили страдать других людей, то в следующий раз, скорее всего, получится лучше.
Автор статьи делает попытку алгоритмизировать свой опыт. Мне кажется, получилось довольно неплохо, и я сохранил себе статью, чтобы в будущем скидывать джунам. Алгоритм такой:
👉Перечислите все задачи, которые на ваш взгляд надо сделать, чтобы завершить проект.
👉Для каждой задачи выпишите последовательный список шагов, которые надо сделать, чтобы ее завершить.
👉Посмотрите на каждую задачу, и попробуйте понять, достаточно ли конкретно она определена. Понять это помогут несколько вопросов: "Понятно ли, какое изменение требуется сделать?", "Могу ли я понять, как должна выглядеть задача в состоянии сделано?", "Если я превращу список шагов в тудушки, достаточно ли сделать их все, чтобы выполнить задачу?", "Достаточно ли у меня информации, чтобы начать работать над задачей прямо сейчас?".
Уметь декомпозировать свою работу на маленькие составные кусочки – это навык, которому довольно сложно научить. На ум просится довольно пошлое сравнение с ездой на велосипеде. Если вы попробовали декомпозировать проект, сделали это фигово, настрадались от своего кривого подхода сами или заставили страдать других людей, то в следующий раз, скорее всего, получится лучше.
Автор статьи делает попытку алгоритмизировать свой опыт. Мне кажется, получилось довольно неплохо, и я сохранил себе статью, чтобы в будущем скидывать джунам. Алгоритм такой:
👉Перечислите все задачи, которые на ваш взгляд надо сделать, чтобы завершить проект.
👉Для каждой задачи выпишите последовательный список шагов, которые надо сделать, чтобы ее завершить.
👉Посмотрите на каждую задачу, и попробуйте понять, достаточно ли конкретно она определена. Понять это помогут несколько вопросов: "Понятно ли, какое изменение требуется сделать?", "Могу ли я понять, как должна выглядеть задача в состоянии сделано?", "Если я превращу список шагов в тудушки, достаточно ли сделать их все, чтобы выполнить задачу?", "Достаточно ли у меня информации, чтобы начать работать над задачей прямо сейчас?".
Swift on Server 2024
Рабочая группа, занимающаяся развитием серверного Swift, рассказала про текущее положение дел и планы на следующий год.
👉Опубликованы результаты большого опроса про то, с какими проблемами сталкиваются разработчики.
👉Экосистема продолжает расти, особенно отмечают процесс инкубации новых пакетов и участие в GSoC.
👉Structured concurrency адоптится и новыми пакетами, и фундаментальными существующими, вроде SwiftNIO.
👉Важный новый тулинг: Swiftly, Dependabot, Chiseled Containers, OpenAPI generator.
👉Фокусы на 2024: усиленный маркетинг, подготовка к Swift 6, дальнейший адопшн Swift Concurrency.
Рабочая группа, занимающаяся развитием серверного Swift, рассказала про текущее положение дел и планы на следующий год.
👉Опубликованы результаты большого опроса про то, с какими проблемами сталкиваются разработчики.
👉Экосистема продолжает расти, особенно отмечают процесс инкубации новых пакетов и участие в GSoC.
👉Structured concurrency адоптится и новыми пакетами, и фундаментальными существующими, вроде SwiftNIO.
👉Важный новый тулинг: Swiftly, Dependabot, Chiseled Containers, OpenAPI generator.
👉Фокусы на 2024: усиленный маркетинг, подготовка к Swift 6, дальнейший адопшн Swift Concurrency.
Swift.org
SSWG 2024 Annual Update
In this annual post, the Swift Server WorkGroup (SSWG) reflects on the community, ecosystem-wide accomplishments and the workgroup’s focus areas for the year ahead.
Новые выпуски Подлодки
Я периодически залетаю сюда с дайджестом релевантных каналу выпусков Подлодки за последнее время. Так вот, их как раз накопилось несколько штук!
🇬🇧Саша Зимин, которого знает каждый уважающий себя айосер, рассказал про свой опыт переезда и жизни в UK. А я добавил про свой опыт получения Global Talent визы.
⏰Никита Прокопов записал фундаментальный выпуск про сложности задач работы с датой и временем.
📚Вместе с Виталием Брагилевским записали экспериментальный исторический выпуск про Аду Лавлейс и ее роль в истории программирования. Уникальный контент – Виталий прочитал все ее заметки в оригинале, выделил оттуда самое полезное и интересное, и детально разобрал в выпуске.
Я периодически залетаю сюда с дайджестом релевантных каналу выпусков Подлодки за последнее время. Так вот, их как раз накопилось несколько штук!
🇬🇧Саша Зимин, которого знает каждый уважающий себя айосер, рассказал про свой опыт переезда и жизни в UK. А я добавил про свой опыт получения Global Talent визы.
⏰Никита Прокопов записал фундаментальный выпуск про сложности задач работы с датой и временем.
📚Вместе с Виталием Брагилевским записали экспериментальный исторический выпуск про Аду Лавлейс и ее роль в истории программирования. Уникальный контент – Виталий прочитал все ее заметки в оригинале, выделил оттуда самое полезное и интересное, и детально разобрал в выпуске.
podlodka.io
Podcast Records
Слушайте бесплатно все выпуски подкаста Podlodka.
Как уменьшить размер приложения с помощью dynamic фреймворков
Если у вашего приложения есть экстеншны, к которым статически линкуются те же библиотеки, что и к основному таргету, вы без нужды сильно увеличиваете размер бинарника. В статье разбирается, как правильно отследить проблему и засетапить динамические фреймворки, чтобы ее решить.
Если у вашего приложения есть экстеншны, к которым статически линкуются те же библиотеки, что и к основному таргету, вы без нужды сильно увеличиваете размер бинарника. В статье разбирается, как правильно отследить проблему и засетапить динамические фреймворки, чтобы ее решить.
Про ментальное здоровье для программистов
Отличная статья про то, почему не забывать про свою менталочку – важно, и какие эвристики помогут не убиваться на работе. Моя любимая мысль – не все дедлайны одинаково важны, а некоторые – вообще высосаны из пальца.
Отличная статья про то, почему не забывать про свою менталочку – важно, и какие эвристики помогут не убиваться на работе. Моя любимая мысль – не все дедлайны одинаково важны, а некоторые – вообще высосаны из пальца.
Vadim Kravcenko
Mental Health in Software Engineering
I want to talk about something we don't discuss enough in our field: the mental health of software engineers, especially those of us who've taken on the
Привет! На связи Podlodka Crew — организатор онлайн IT-конференций по разным аспектам разработки.
🔺 Хочешь создавать уникальные и высокотехнологические интерфейсы, на которые равняются другие?
Приходи на новый сезон конференции 15 апреля. Ведь в этот раз мы решили досконально разобраться в хардкорном UI. Дадим знания, которыми владеют единицы.
Разберём аспекты, которые станут вызовом даже для скилловых iOS-разработчиков. Редкие техники и инструменты, сложные кейсы и инновационные подходы — всё, чтобы создавать действительно выдающийся UI!
💜 Искусство layout`a и анимации текста. Подробно разберём каждое па этого танца с драконами в мире iOS UI.
💜 Лучшие практики и тонкости работы с анимациями на Metal в iOS-разработке. Стань железным человеком с точки зрения UI.
💜 AR-cooking. Раскроем рецепты от моделирования до управления 3D-пиццей.
💜 Перфоманс интерфейса. Окунёмся в редкие инструменты, секреты аналитики и решения распространённых проблем. Только для самых искушенных разработчиков!
© Внимание! ©
Переход по ссылке и покупка билета изменят твой перфоманс навсегда:
https://podlodka.io/ioscrew
Приходи на новый сезон конференции 15 апреля. Ведь в этот раз мы решили досконально разобраться в хардкорном UI. Дадим знания, которыми владеют единицы.
Разберём аспекты, которые станут вызовом даже для скилловых iOS-разработчиков. Редкие техники и инструменты, сложные кейсы и инновационные подходы — всё, чтобы создавать действительно выдающийся UI!
Переход по ссылке и покупка билета изменят твой перфоманс навсегда:
https://podlodka.io/ioscrew
Please open Telegram to view this post
VIEW IN TELEGRAM
Интероп Haskell и Swift
Представьте, что вы зачем-то хотите часть кода приложения написать на Haskell, и вызывать его из Swift. В статье разбирается, как правильно настраивать FFI и экспоузить нужные функции.
Представьте, что вы зачем-то хотите часть кода приложения написать на Haskell, и вызывать его из Swift. В статье разбирается, как правильно настраивать FFI и экспоузить нужные функции.