Telegram Group & Telegram Channel
Актуальна ли разработка под macOS?

Проекты под macOS никогда не были для меня актуальными настолько, чтобы я уделял им значительное количество времени. Занимался я в основном небольшими приложеньками и исключительно для того, чтобы быть в курсе "что нового в ките и суи для макоси". Да и разработчики под настольную ось мне всегда казались отдельной кастой, ведь бизнесу сегодня в первую очередь нужны мобилки и вэб.

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

И мы с командой решили активно инвестировать в это решение, но даже не знали что нас ждет))

Три основных вывода:

1️⃣ SwiftUI для macOS - продакшн рэди .
2️⃣ То, что изначально воспринималось, как "однокнопочный UI для tuist generate и `pod install`", в результате стартануло большой рефакторинг всего проекта. Одно лишь внедрение системы кеширования модулей фича-команд привело к значительному снижению времени холодной сборки.
3️⃣ Многие крупные компании либо уже прошли активную фазу создания подобных инструментов, либо находятся в ней. Довольно активно своим опытом делится Сбер на крупных конференциях.

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

Если в вашем проекте наклевываются или уже используются отдельные модули, причем не важно, что вы используете: cocoapods, spm, чистый tuist или свое/другое решение, то начните с изучения официального руководства Apple по системе сборки.

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

Вот краткий список основных функций, что уже внедрены:

🟢 GUI и CLI версии. CLI разрабатывается с прицелом для внедрения на CI-сервера, но активно используется и на локальных машинках.
🟢 Версионирование модулей. Имея сотни модулей от фича-команд нужно с удобством управлять их версиями.
🟢 Кеширование модулей и поддержкой ремот-кеша. Если среди сотен модулей вам нужно доработать 1-2-3, то зачем тратить время на постоянную пересборку остальных? А при условии, что они уже были собраны кем-то другим, то можно просто переиспользовать чужой кеш. На самом деле это одна из самых проблемных и неочевидных задач, особенно если говорить про инвалидацию кеша, когда при изменении одного модуля, зависящие от него не должны браться из кеша.
🟢 Вызов консольных команды из Swift. Причем с полной интеграцией со Swift Concurrency. И на самом деле сделать так, чтобы при отмене таски в Swift принудительно останавливалось выполнение запущенной консольной команды - это был взрыв мозга.
🟢 Контроль, установка и обновление окружения. С помощью единой тулзы мы обеспечиваем единое окружение: версии Xcode и необходимых зависимостей.
🟢 Автообновление. Нужно было сделать так, чтобы новые версии приложения оперативно становились доступны разработчикам и приложение обновлялось в автоматическом режиме по нажатию одной кнопки. Супер-популярный Sparkle не подошел из-за закрытой инфраструктуры и необходимости авторизации на внутренних сервисах. При этом нужно учесть, что иногда происходят ломающие изменения и новая версия нашей тулзы не сможет собрать какой-то старый коммит основного проекта. А собрать нужно.
🟢 Интеграция с git. Клонирование, чекаут, контроль текущей ветки.
🟢 Сборник часто используемых задач. Запуск очистки кешей и DerivedData. обновление паролей и токенов и многие другие задачи - нажатием одной кнопки.



tg-me.com/ios_appdev/164
Create:
Last Update:

Актуальна ли разработка под macOS?

Проекты под macOS никогда не были для меня актуальными настолько, чтобы я уделял им значительное количество времени. Занимался я в основном небольшими приложеньками и исключительно для того, чтобы быть в курсе "что нового в ките и суи для макоси". Да и разработчики под настольную ось мне всегда казались отдельной кастой, ведь бизнесу сегодня в первую очередь нужны мобилки и вэб.

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

И мы с командой решили активно инвестировать в это решение, но даже не знали что нас ждет))

Три основных вывода:

1️⃣ SwiftUI для macOS - продакшн рэди .
2️⃣ То, что изначально воспринималось, как "однокнопочный UI для tuist generate и `pod install`", в результате стартануло большой рефакторинг всего проекта. Одно лишь внедрение системы кеширования модулей фича-команд привело к значительному снижению времени холодной сборки.
3️⃣ Многие крупные компании либо уже прошли активную фазу создания подобных инструментов, либо находятся в ней. Довольно активно своим опытом делится Сбер на крупных конференциях.

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

Если в вашем проекте наклевываются или уже используются отдельные модули, причем не важно, что вы используете: cocoapods, spm, чистый tuist или свое/другое решение, то начните с изучения официального руководства Apple по системе сборки.

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

Вот краткий список основных функций, что уже внедрены:

🟢 GUI и CLI версии. CLI разрабатывается с прицелом для внедрения на CI-сервера, но активно используется и на локальных машинках.
🟢 Версионирование модулей. Имея сотни модулей от фича-команд нужно с удобством управлять их версиями.
🟢 Кеширование модулей и поддержкой ремот-кеша. Если среди сотен модулей вам нужно доработать 1-2-3, то зачем тратить время на постоянную пересборку остальных? А при условии, что они уже были собраны кем-то другим, то можно просто переиспользовать чужой кеш. На самом деле это одна из самых проблемных и неочевидных задач, особенно если говорить про инвалидацию кеша, когда при изменении одного модуля, зависящие от него не должны браться из кеша.
🟢 Вызов консольных команды из Swift. Причем с полной интеграцией со Swift Concurrency. И на самом деле сделать так, чтобы при отмене таски в Swift принудительно останавливалось выполнение запущенной консольной команды - это был взрыв мозга.
🟢 Контроль, установка и обновление окружения. С помощью единой тулзы мы обеспечиваем единое окружение: версии Xcode и необходимых зависимостей.
🟢 Автообновление. Нужно было сделать так, чтобы новые версии приложения оперативно становились доступны разработчикам и приложение обновлялось в автоматическом режиме по нажатию одной кнопки. Супер-популярный Sparkle не подошел из-за закрытой инфраструктуры и необходимости авторизации на внутренних сервисах. При этом нужно учесть, что иногда происходят ломающие изменения и новая версия нашей тулзы не сможет собрать какой-то старый коммит основного проекта. А собрать нужно.
🟢 Интеграция с git. Клонирование, чекаут, контроль текущей ветки.
🟢 Сборник часто используемых задач. Запуск очистки кешей и DerivedData. обновление паролей и токенов и многие другие задачи - нажатием одной кнопки.

BY Мобильный кот




Share with your friend now:
tg-me.com/ios_appdev/164

View MORE
Open in Telegram


telegram Telegram | DID YOU KNOW?

Date: |

How to Use Bitcoin?

n the U.S. people generally use Bitcoin as an alternative investment, helping diversify a portfolio apart from stocks and bonds. You can also use Bitcoin to make purchases, but the number of vendors that accept the cryptocurrency is still limited. Big companies that accept Bitcoin include Overstock, AT&T and Twitch. You may also find that some small local retailers or certain websites take Bitcoin, but you’ll have to do some digging. That said, PayPal has announced that it will enable cryptocurrency as a funding source for purchases this year, financing purchases by automatically converting crypto holdings to fiat currency for users. “They have 346 million users and they’re connected to 26 million merchants,” says Spencer Montgomery, founder of Uinta Crypto Consulting. “It’s huge.”

Telegram Gives Up On Crypto Blockchain Project

Durov said on his Telegram channel today that the two and a half year blockchain and crypto project has been put to sleep. Ironically, after leaving Russia because the government wanted his encryption keys to his social media firm, Durov’s cryptocurrency idea lost steam because of a U.S. court. “The technology we created allowed for an open, free, decentralized exchange of value and ideas. TON had the potential to revolutionize how people store and transfer funds and information,” he wrote on his channel. “Unfortunately, a U.S. court stopped TON from happening.”

telegram from kr


Telegram Мобильный кот
FROM USA