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: |

Dump Scam in Leaked Telegram Chat

A leaked Telegram discussion by 50 so-called crypto influencers has exposed the extraordinary steps they take in order to profit on the back off unsuspecting defi investors. According to a leaked screenshot of the chat, an elaborate plan to defraud defi investors using the worthless “$Few” tokens had been hatched. $Few tokens would be airdropped to some of the influencers who in turn promoted these to unsuspecting followers on Twitter.

Telegram auto-delete message, expiring invites, and more

elegram is updating its messaging app with options for auto-deleting messages, expiring invite links, and new unlimited groups, the company shared in a blog post. Much like Signal, Telegram received a burst of new users in the confusion over WhatsApp’s privacy policy and now the company is adopting features that were already part of its competitors’ apps, features which offer more security and privacy. Auto-deleting messages were already possible in Telegram’s encrypted Secret Chats, but this new update for iOS and Android adds the option to make messages disappear in any kind of chat. Auto-delete can be enabled inside of chats, and set to delete either 24 hours or seven days after messages are sent. Auto-delete won’t remove every message though; if a message was sent before the feature was turned on, it’ll stick around. Telegram’s competitors have had similar features: WhatsApp introduced a feature in 2020 and Signal has had disappearing messages since at least 2016.

telegram from de


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