Apple Shipkit - готовая инфраструктура релизной инженерии для публикации приложений
Apple Shipkit - инструмент для выпуска релизов приложений для iOS и macOS. Подписание кода, CI через GitHub Actions для запросов на слияние, новые сертификаты для каждого релиза CI, загрузка в TestFlight, отправка в App Store — всё это уже настроено. Не зависит от UI-фреймворка, сетевого стека или уровня хранения данных.
Впервые выпускаете приложение для iOS или Mac? Начните с
Используете ИИ-агентов для разработки приложений (Claude Code, Cursor, Codex и т. д.)? Начните с файла
Apple Shipkit на GitHub: https://github.com/indiagrams/apple-shipkit
Платформа: iOS
⭐️: 15
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Apple Shipkit - инструмент для выпуска релизов приложений для iOS и macOS. Подписание кода, CI через GitHub Actions для запросов на слияние, новые сертификаты для каждого релиза CI, загрузка в TestFlight, отправка в App Store — всё это уже настроено. Не зависит от UI-фреймворка, сетевого стека или уровня хранения данных.
Впервые выпускаете приложение для iOS или Mac? Начните с
docs/GETTING-STARTED.md — все необходимые условия, все действия Apple, 30–60 минут до первой сборки TestFlight.Используете ИИ-агентов для разработки приложений (Claude Code, Cursor, Codex и т. д.)? Начните с файла
AGENTS.md — инварианты расширяемости при создании форков, карта владения файлами, антипаттерны, которых следует избегать. Независимый от поставщика формат agents.md, один файл для всех основных агентов.Apple Shipkit на GitHub: https://github.com/indiagrams/apple-shipkit
Платформа: iOS
⭐️: 15
Please open Telegram to view this post
VIEW IN TELEGRAM
Как энергосбережение на Android мешало Seamless-авторизации
Недавно, внедряя в приложение новую фичу, мы столкнулись с тем, что она в упор отказывалась работать – но только на Android. Мы дебажили ее полторы недели, перепробовали все возможные варианты и закошмарили всех доступных операторов связи, прежде чем узнали, что все дело было… в энергосбережении.
Статья: https://habr.com/ru/companies/banki/articles/1052378/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Недавно, внедряя в приложение новую фичу, мы столкнулись с тем, что она в упор отказывалась работать – но только на Android. Мы дебажили ее полторы недели, перепробовали все возможные варианты и закошмарили всех доступных операторов связи, прежде чем узнали, что все дело было… в энергосбережении.
Статья: https://habr.com/ru/companies/banki/articles/1052378/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Миграция приложения на Navigation 3: боль, переработки и хотфиксы
В начале 2026 года мы перевели наше Android-приложение, насчитывающее более 170 экранов, с Navigation 2 на Navigation 3.
Navigation 3 предлагает типобезопасные точки назначения, сохраняемые стеки возврата и более современный API навигации. В целом миграция оказалась относительно простой, но по ходу работы мы всё же столкнулись с несколькими неожиданными сложностями — от обработки нижних панелей (bottom sheet) до исправления сбоев, которые проявились только после выпуска приложения.
В этой статье я расскажу, почему мы решили перейти на Navigation 3, как организовали процесс миграции, с какими проблемами столкнулись и какие выводы сделали.
Если вы тоже планируете переход на Navigation 3, наш опыт может сэкономить вам время и избавить от нескольких головных болей.
Статья: https://apptractor.ru/info/articles/migratsiya-prilozheniya-na-navigation-3-bol-pererabotki-i-hotfiksy.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В начале 2026 года мы перевели наше Android-приложение, насчитывающее более 170 экранов, с Navigation 2 на Navigation 3.
Navigation 3 предлагает типобезопасные точки назначения, сохраняемые стеки возврата и более современный API навигации. В целом миграция оказалась относительно простой, но по ходу работы мы всё же столкнулись с несколькими неожиданными сложностями — от обработки нижних панелей (bottom sheet) до исправления сбоев, которые проявились только после выпуска приложения.
В этой статье я расскажу, почему мы решили перейти на Navigation 3, как организовали процесс миграции, с какими проблемами столкнулись и какие выводы сделали.
Если вы тоже планируете переход на Navigation 3, наш опыт может сэкономить вам время и избавить от нескольких головных болей.
Статья: https://apptractor.ru/info/articles/migratsiya-prilozheniya-na-navigation-3-bol-pererabotki-i-hotfiksy.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
LeanType - конфиденциальная клавиатура для Android
LeanType — это форк HeliBoard, клавиатура с открытым исходным кодом, ориентированная на конфиденциальность и возможность индивидуальной настройки, основанная на AOSP/OpenBoard. Клавиатура предлагает гибридный подход: приватное, безопасное автономное ядро для повседневной работы с текстом, а также мощные возможности искусственного интеллекта, доступные по вашему желанию.
LeanType на GitHub: https://github.com/LeanBitLab/LeanType
Платформа: Android
⭐️: 517
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
LeanType — это форк HeliBoard, клавиатура с открытым исходным кодом, ориентированная на конфиденциальность и возможность индивидуальной настройки, основанная на AOSP/OpenBoard. Клавиатура предлагает гибридный подход: приватное, безопасное автономное ядро для повседневной работы с текстом, а также мощные возможности искусственного интеллекта, доступные по вашему желанию.
LeanType на GitHub: https://github.com/LeanBitLab/LeanType
Платформа: Android
⭐️: 517
Please open Telegram to view this post
VIEW IN TELEGRAM
•
(iOS En) Swift Attached Macros: Build a Real-World Member Macro from Scratch•
(iOS En) iOS 27 Apple Find My App UI •
(iOS En) What's new in SwiftUI for iOS 27•
(iOS En) Screen Capture iPhone (iOS 27) - Screen Capture Kit For iOS 27•
(And En) Build adaptive apps with Compose's new APIs•
(And En) Build for the wrist, the road, and the remote with Jetpack Compose and Gemini•
(And En) Build 3d experiences using Jetpack XR•
(And En) Optimize your app performance for the next generation of Android•
(And En) Creative video editing with Jetpack Media3 and Gemini•
(And En) Develop faster with Android Studio, AI and skills•
(And En) Build intelligent experience: Deep dive into AppFunctions•
(And En) Building Robust Applications with Testing - Android Developers Office Hours•
(And En) Sameer Samat on Android 17 and the Future of Intelligent Computing•
(And En) KotlinConf'26 Keynote•
(And En) Say Goodbye to Callbacks•
(Crs En) Sony’s KMP Journey: Scaling BLE & Hardware with Kotlin Multiplatform•
(Crs En) What's New in Compose Multiplatform•
(Crs En) Evolving Kotlin Language Defaults•
(Dev Ru) Безопасность, агенты и будущее разработки•
(Dev Ru) Почему капча больше не про светофоры — Smart Captcha, ML, антиботПрошлогодние видео:
•
(iOS Ru) Как побеждать в конкурсах от Telegram•
(And Ru) Как мы случайно ускорили релизную сборку в два раза•
(And Ru) Эталонный пример Android приложения от Google•
(And Ru) Gradle DSL изнутри•
(And Ru) Kotlin DSL как единый источник правды для решения многих задач•
(Crs Ru) Демо-интервью по Flutter с Middle-разработчикомPlease open Telegram to view this post
VIEW IN TELEGRAM
❤1
LoopScroll - бесконечно прокручиваемая постраничная навигация
LoopScroll - контрол для бесконечной прокрутки в iOS, построенный на основе
Особенности:
• Бесконечная прокрутка — плавная перемотка элементов в обоих направлениях
• Горизонтальная и вертикальная — переключение направления прокрутки с помощью одного свойства
• Автоматическая прокрутка — настраиваемая автоматическая прокрутка на основе таймера
• Привязка к странице — настраиваемая компоновка обеспечивает точную привязку к странице с учетом скорости нажатия
• Источник данных и делегат — привычные протоколы в стиле
• Совместимость с Objective-C — все публичные API доступны через
• Легковесный — нет внешних зависимостей, ~500 строк кода на Swift
LoopScroll на GitHub: https://github.com/iLiuChang/LoopScroll
Платформа: iOS
⭐️: 183
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
LoopScroll - контрол для бесконечной прокрутки в iOS, построенный на основе
UICollectionView. Поддерживает горизонтальную и вертикальную прокрутку, автоматическую прокрутку и привычный API делегата/источника данных.Особенности:
• Бесконечная прокрутка — плавная перемотка элементов в обоих направлениях
• Горизонтальная и вертикальная — переключение направления прокрутки с помощью одного свойства
• Автоматическая прокрутка — настраиваемая автоматическая прокрутка на основе таймера
• Привязка к странице — настраиваемая компоновка обеспечивает точную привязку к странице с учетом скорости нажатия
• Источник данных и делегат — привычные протоколы в стиле
UICollectionView• Совместимость с Objective-C — все публичные API доступны через
@objc• Легковесный — нет внешних зависимостей, ~500 строк кода на Swift
LoopScroll на GitHub: https://github.com/iLiuChang/LoopScroll
Платформа: iOS
⭐️: 183
Please open Telegram to view this post
VIEW IN TELEGRAM
UISlider изнутри: почему setValue не работает во время settle-анимации и как я это обошел
В iOS 26 у UISlider появился liquid-glass-вид и физика доводки (settle) после того, как пользователь отпускает палец. Если честно, я не проверял, как это выглядело в старых версиях и как оно работало, так как до iOS 26 ни в своих проектах, ни в тех, что я писал на работе, я не использовал стандартный компонент, так как его внешний вид никого не устраивал. У такой доводки есть побочный эффект: если в этот момент дернуть
Самое неприятное в этом баге было не само дёрганье, а ощущение, что публичный API говорит "значение поставлено”, а визуальный слой через кадр отвечает “нет, я лучше вернусь куда хотел”. Поэтому я отдельно разделю два пути: runtime-фикс для понимания механики и продовый обход (хотя в личном приложении я пошел бы в прод с фиксом).
Статья: https://habr.com/ru/articles/1055466/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В iOS 26 у UISlider появился liquid-glass-вид и физика доводки (settle) после того, как пользователь отпускает палец. Если честно, я не проверял, как это выглядело в старых версиях и как оно работало, так как до iOS 26 ни в своих проектах, ни в тех, что я писал на работе, я не использовал стандартный компонент, так как его внешний вид никого не устраивал. У такой доводки есть побочный эффект: если в этот момент дернуть
setValue(_:animated:) извне, наш слайдер на один кадр едет в новую точку, а потом откатывается туда, куда его тянет settle. removeAllAnimations() не помогает: анимация идёт не через CABasicAnimation, а через property-driver на display link. Дальше про то, как я нашёл рабочий путь это исправить.Самое неприятное в этом баге было не само дёрганье, а ощущение, что публичный API говорит "значение поставлено”, а визуальный слой через кадр отвечает “нет, я лучше вернусь куда хотел”. Поэтому я отдельно разделю два пути: runtime-фикс для понимания механики и продовый обход (хотя в личном приложении я пошел бы в прод с фиксом).
Статья: https://habr.com/ru/articles/1055466/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
UISlider изнутри: почему `setValue` не работает во время settle-анимации и как я это обошел
В iOS 26 у UISlider появился liquid-glass-вид и физика доводки (settle) после того, как пользователь отпускает палец. Если честно, я не проверял, как это выглядело в старых версиях и как оно работало,...
Навигация в Jetpack Compose без магии: что на самом деле делают библиотеки навигации
Вы когда-нибудь задумывались, зачем нужны библиотеки для навигации в Jetpack Compose? Почему мы не можем просто взять
В статье разберём, как работают библиотеки навигации в Jetpack Compose и какие задачи они решают на примере библиотеки навигации Modo.
Статья: https://habr.com/ru/companies/hh/articles/1052310/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Вы когда-нибудь задумывались, зачем нужны библиотеки для навигации в Jetpack Compose? Почему мы не можем просто взять
mutableStateOf со списком экранов и переключаться между ними? Оказывается, если мы попробуем реализовать такой наивный подход, то столкнёмся с рядом проблем: rememberSaveable не работает, ViewModel не очищаются после ухода с экрана, Lifecycle не работает корректно и многое другое.В статье разберём, как работают библиотеки навигации в Jetpack Compose и какие задачи они решают на примере библиотеки навигации Modo.
Статья: https://habr.com/ru/companies/hh/articles/1052310/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
У вас осталось всего несколько недель на вайб-кодинг
Да, очень скоро качественный искусственный интеллект станет для вас слишком дорогим. Этот бизнес не является устойчивым, и никакого очевидного пути к самоокупаемости пока не видно. Компании лишь создают страх упустить возможность и запускают новые волны ажиотажа, чтобы привлечь очередные инвестиции.
Затем они сжигают эти деньги, так и не достигая реального прогресса, который позволил бы выйти хотя бы в ноль.
Китайские компании, которые заимствуют веса моделей и выпускают открытые решения за долю стоимости, лишь ускоряют общий спад. GLM 5.2 выглядит интересно, но сейчас он лишь примерно вдвое дешевле, а создавшая его компания тоже теряет деньги.
Поэтому пора сокращать использование искусственного интеллекта. Примерно до уровня двухлетней давности. Вы по-прежнему сможете создать простой лендинг или получить помощь с кодом приложения. Но эпоха, в которой модель выполняет за вас всю работу, откладывается.
Статья: https://apptractor.ru/info/articles/u-vas-ostalos-vsego-neskolko-nedel-na-vayb-koding.html
Платформа: ИИ
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Да, очень скоро качественный искусственный интеллект станет для вас слишком дорогим. Этот бизнес не является устойчивым, и никакого очевидного пути к самоокупаемости пока не видно. Компании лишь создают страх упустить возможность и запускают новые волны ажиотажа, чтобы привлечь очередные инвестиции.
Затем они сжигают эти деньги, так и не достигая реального прогресса, который позволил бы выйти хотя бы в ноль.
Китайские компании, которые заимствуют веса моделей и выпускают открытые решения за долю стоимости, лишь ускоряют общий спад. GLM 5.2 выглядит интересно, но сейчас он лишь примерно вдвое дешевле, а создавшая его компания тоже теряет деньги.
Поэтому пора сокращать использование искусственного интеллекта. Примерно до уровня двухлетней давности. Вы по-прежнему сможете создать простой лендинг или получить помощь с кодом приложения. Но эпоха, в которой модель выполняет за вас всю работу, откладывается.
Статья: https://apptractor.ru/info/articles/u-vas-ostalos-vsego-neskolko-nedel-na-vayb-koding.html
Платформа: ИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
👎2❤1😁1
ShizuCallRecorder - запись телефонных звонков без root-прав
ShizuCallRecorder - первое приложение с открытым исходным кодом для записи звонков на Android 11 и новее, не требующее прав суперпользователя. ShizuCallRecorder использует Shizuku, чтобы предоставить ADB расширенный набор разрешений, доступных системному приложению. Его также можно рассматривать как оболочку для scrcpy-сервера на устройстве.
Фичи:
• Записывает входящие и исходящие разговоры
• Должно работать даже при использовании Bluetooth или удаленной гарнитуры
• Переключатели безопасности для управления состоянием включения/выключения Shizuku
• Функция автоматической записи звонков с базовыми правилами исключения
• Сохраняет записи с кодеками Opus или AAC
• Приложение работает только при изменении событий на телефоне, не имеет постоянных фоновых процессов и уведомлений
ShizuCallRecorder на GitHub: https://github.com/kitsumed/ShizuCallRecorder
Платформа: Android
⭐️: 794
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
ShizuCallRecorder - первое приложение с открытым исходным кодом для записи звонков на Android 11 и новее, не требующее прав суперпользователя. ShizuCallRecorder использует Shizuku, чтобы предоставить ADB расширенный набор разрешений, доступных системному приложению. Его также можно рассматривать как оболочку для scrcpy-сервера на устройстве.
Фичи:
• Записывает входящие и исходящие разговоры
• Должно работать даже при использовании Bluetooth или удаленной гарнитуры
• Переключатели безопасности для управления состоянием включения/выключения Shizuku
• Функция автоматической записи звонков с базовыми правилами исключения
• Сохраняет записи с кодеками Opus или AAC
• Приложение работает только при изменении событий на телефоне, не имеет постоянных фоновых процессов и уведомлений
ShizuCallRecorder на GitHub: https://github.com/kitsumed/ShizuCallRecorder
Платформа: Android
⭐️: 794
Please open Telegram to view this post
VIEW IN TELEGRAM
Как сломать Swift Concurrency
Нужно выполнять асинхронные операции, поддерживать многозадачность в приложении?
Статья: https://habr.com/ru/articles/1055810/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Нужно выполнять асинхронные операции, поддерживать многозадачность в приложении?
Async/await к вашим услугам - просто и приятно. Кооперативный пул эффективно переключает потоки между задачами, а компилятор проверяет типы на потокобезопасность. И даже можно подсоединять старые части кода, написанные ещё на GCD! Вот только приложение на проде почему-то начало виснуть…Статья: https://habr.com/ru/articles/1055810/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Relux - UDF архитектура на основе Swift 6 Concurrency
Relux — это пакет Swift, который переосмысливает популярный шаблон Redux, используя Swift Concurrency. Библиотека использует стиль однонаправленного потока данных (UDF), одновременно задействуя акторы и структурированный параллелизм для обеспечения безопасного и предсказуемого управления состоянием. Её можно постепенно внедрять в существующие проекты, она бесперебойно работает со SwiftUI и масштабируется от простых приложений до сложных модульных архитектур.
Relux на GitHub: https://github.com/relux-works/swift-relux
Платформа: iOS
⭐️: 19
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Relux — это пакет Swift, который переосмысливает популярный шаблон Redux, используя Swift Concurrency. Библиотека использует стиль однонаправленного потока данных (UDF), одновременно задействуя акторы и структурированный параллелизм для обеспечения безопасного и предсказуемого управления состоянием. Её можно постепенно внедрять в существующие проекты, она бесперебойно работает со SwiftUI и масштабируется от простых приложений до сложных модульных архитектур.
Relux на GitHub: https://github.com/relux-works/swift-relux
Платформа: iOS
⭐️: 19
Please open Telegram to view this post
VIEW IN TELEGRAM
Swift 6.2 против вашего оптимизатора: разбираемся с InlineArray, Span и strict memory safety на замерах
Я взял три «памятных» нововведения Swift 6.2, написал на них бенчмарки, прогнал на релизном тулчейне и полез в сгенерированный ассемблер. Вопрос меня занимал не «что это делает», а куда более практичный: дают ли эти фичи реальный выигрыш в цифрах - и в каких случаях оптимизатор Swift давно делает то же самое за вас, бесплатно и молча. Ответ оказался менее очевидным, чем их маркетинг.
Статью я старался написать так, чтобы её читал не только стафф. Поэтому по ходу я коротко объясняю базовые вещи - стек и кучу, ARC, copy-on-write. Если вы это и так знаете, просто пролистывайте врезки «на полях».
Статья: https://habr.com/ru/articles/1056552/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Я взял три «памятных» нововведения Swift 6.2, написал на них бенчмарки, прогнал на релизном тулчейне и полез в сгенерированный ассемблер. Вопрос меня занимал не «что это делает», а куда более практичный: дают ли эти фичи реальный выигрыш в цифрах - и в каких случаях оптимизатор Swift давно делает то же самое за вас, бесплатно и молча. Ответ оказался менее очевидным, чем их маркетинг.
Статью я старался написать так, чтобы её читал не только стафф. Поэтому по ходу я коротко объясняю базовые вещи - стек и кучу, ARC, copy-on-write. Если вы это и так знаете, просто пролистывайте врезки «на полях».
Статья: https://habr.com/ru/articles/1056552/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
10 советов, как получить максимум от Claude Code в iOS-разработке
Claude Code не заменяет знание Swift и глубокое понимание UIKit и SwiftUI. На самом деле всё наоборот: чем лучше вы понимаете платформу, тем точнее можете направлять Claude Code и тем быстрее он работает.
Думайте о нём не как о junior-разработчике, который пишет код за вас, а скорее как о senior-разработчике, который уже познал весь Apple SDK и ждёт, когда сможет помочь вам продумать задачу.
Эта статья о том, как действительно эффективно использовать Claude Code в iOS-разработке.
Статья: https://apptractor.ru/info/articles/10-sovetov-kak-poluchit-maksimum-ot-claude-code-v-ios-razrabotke.html
Платформа: iOS/ИИ
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Claude Code не заменяет знание Swift и глубокое понимание UIKit и SwiftUI. На самом деле всё наоборот: чем лучше вы понимаете платформу, тем точнее можете направлять Claude Code и тем быстрее он работает.
Думайте о нём не как о junior-разработчике, который пишет код за вас, а скорее как о senior-разработчике, который уже познал весь Apple SDK и ждёт, когда сможет помочь вам продумать задачу.
Эта статья о том, как действительно эффективно использовать Claude Code в iOS-разработке.
Статья: https://apptractor.ru/info/articles/10-sovetov-kak-poluchit-maksimum-ot-claude-code-v-ios-razrabotke.html
Платформа: iOS/ИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
•
(iOS En) Deploying to iOS 27: Here are the 3 Major Requirements•
(iOS En) SwiftUI Adaptable Sheet's - Landscape Pinned Sheet's•
(iOS En) Reorder Lists & Grids in SwiftUI and Save with SwiftData•
(iOS En) Complex Scroll Interaction: Infinite Scrollable Calendar•
(And En) Create agent skills for on-device generative AI (I/O Connect ‘26)•
(And En) Dynamic Callbacks on Android for Google Pay•
(And En) Build creative apps with the GenMedia suite (I/O Connect ‘26)•
(And En) TestBalloon: Kotlin testing is easier (and more fun) than you think•
(And En) Deconstructing OkHttp•
(And En) A First Look at the Kotlin Ecosystem Plugin for Declarative Gradle•
(Dev Ru) System Design на собеседовании: ошибки, которые тебя топят•
(Dev Ru) Электрические автомобили: на пороге технологической сингулярности•
(Dev En) Bootiful KotlinПрошлогодние видео:
•
(iOS Ru) Перерисовки в SwiftUI•
(And Ru) Мок-собеседование Android-разработчика: middle и выше (+ все собеседования)•
(And Ru) Как обойти множественное наследование в Kotlin и Java. Агрегация и композиция•
(Dev Ru) Как сделать любую задачу интересной•
(Dev Ru) System Design-интервью для практиковPlease open Telegram to view this post
VIEW IN TELEGRAM
Renetik Android - Kotlin-фреймворк для реактивных Android-приложений в MVC-стиле
Renetik Android - практичная библиотека Kotlin для разработки Android-приложений: реактивные события и свойства, JSON, постоянные хранилища и пресеты, слой контроллера представления поверх одной Activity, а также набор виджетов и расширений пользовательского интерфейса.
Renetik Android на GitHub: https://github.com/renetik/renetik-android
Платформа: Android
⭐️: 7
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Renetik Android - практичная библиотека Kotlin для разработки Android-приложений: реактивные события и свойства, JSON, постоянные хранилища и пресеты, слой контроллера представления поверх одной Activity, а также набор виджетов и расширений пользовательского интерфейса.
Renetik Android на GitHub: https://github.com/renetik/renetik-android
Платформа: Android
⭐️: 7
Please open Telegram to view this post
VIEW IN TELEGRAM
Мне надоело писать один и тот же код. Поэтому я сделал Featuregen
Я уже не тот беззаботный парнишка, что собирал 486-й компьютер. Время бежит, яскуф успел поработать с C++, C#, Java и Kotlin, последние 10 лет занимаюсь мобильной разработкой. Программирование я до сих пор люблю потому что больше ничего не умею. Но чем дольше работаешь, тем чаще ловишь себя на мысли, что от некоторых вещей начинает подгорать. Сегодня я расскажу, как я попытался избавиться хотя бы от части таких вещей.
Статья: https://habr.com/ru/articles/1056776/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Я уже не тот беззаботный парнишка, что собирал 486-й компьютер. Время бежит, я
Статья: https://habr.com/ru/articles/1056776/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
50 вопросов о System Design, ответы на которые должен знать каждый Senior iOS-разработчик: часть 1
Эта статья открывает серию из пятидесяти вопросов по системному проектированию и архитектуре, которые часто встречаются на собеседованиях Senior iOS-разработчиков. Вместо заучивания готовых ответов вы узнаете, как опытные инженеры рассуждают при решении таких задач.
Статья: https://apptractor.ru/info/articles/50-ios-system-design-1.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Эта статья открывает серию из пятидесяти вопросов по системному проектированию и архитектуре, которые часто встречаются на собеседованиях Senior iOS-разработчиков. Вместо заучивания готовых ответов вы узнаете, как опытные инженеры рассуждают при решении таких задач.
Статья: https://apptractor.ru/info/articles/50-ios-system-design-1.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
AppFiles - Mobile Development
50 вопросов о System Design, ответы на которые должен знать каждый Senior iOS-разработчик: часть 1 Эта статья открывает серию из пятидесяти вопросов по системному проектированию и архитектуре, которые часто встречаются на собеседованиях Senior iOS-разработчиков.…
SVG to SwiftUI Converter - конвертер SVG в SwiftUI Shape
SVG to SwiftUI Converter - инструмент для преобразования SVG в нативные фигуры SwiftUI. Многоцветные SVG-изображения генерируются как многослойные представления SwiftUI, поэтому их исходные цвета сохраняются.
SVG to SwiftUI Converter на GitHub: https://github.com/bring-shrubbery/SVG-to-SwiftUI
Платформа: iOS
⭐️: 1.1K
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
SVG to SwiftUI Converter - инструмент для преобразования SVG в нативные фигуры SwiftUI. Многоцветные SVG-изображения генерируются как многослойные представления SwiftUI, поэтому их исходные цвета сохраняются.
SVG to SwiftUI Converter на GitHub: https://github.com/bring-shrubbery/SVG-to-SwiftUI
Платформа: iOS
⭐️: 1.1K
Please open Telegram to view this post
VIEW IN TELEGRAM
Использование mise для установки зависимостей при андроид-разработке
Есть большая и сложная система сборки Gradle и андроид-плагин AGP для установки большей части компонентов Android SDK, необходимых для вашего приложения. Но что, если вам не хочется руками устанавливать Android Studio, Android SDK, cmake, scrcpy и прочие нужные вещи? Здесь на помощь приходит инструмент mise — при кажущейся простоте он умеет все, что нам нужно.
Статья: Есть большая и сложная система сборки Gradle и андроид-плагин AGP для установки большей части компонентов Android SDK, необходимых для вашего приложения. Но что, если вам не хочется руками устанавливать Android Studio, Android SDK, cmake, scrcpy и прочие нужные вещи? Здесь на помощь приходит инструмент mise — при кажущейся простоте он умеет все, что нам нужно.
Статья: https://habr.com/ru/articles/1058494/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Есть большая и сложная система сборки Gradle и андроид-плагин AGP для установки большей части компонентов Android SDK, необходимых для вашего приложения. Но что, если вам не хочется руками устанавливать Android Studio, Android SDK, cmake, scrcpy и прочие нужные вещи? Здесь на помощь приходит инструмент mise — при кажущейся простоте он умеет все, что нам нужно.
Статья: Есть большая и сложная система сборки Gradle и андроид-плагин AGP для установки большей части компонентов Android SDK, необходимых для вашего приложения. Но что, если вам не хочется руками устанавливать Android Studio, Android SDK, cmake, scrcpy и прочие нужные вещи? Здесь на помощь приходит инструмент mise — при кажущейся простоте он умеет все, что нам нужно.
Статья: https://habr.com/ru/articles/1058494/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Использование mise для установки зависимостей при андроид-разработке
Есть большая и сложная система сборки Gradle и андроид-плагин AGP для установки большей части компонентов Android SDK, необходимых для вашего приложения. Но что, если вам не хочется руками...
Mirage: как Cloudy превращается из библиотеки размытия в библиотеку эффектов
В этой статье мы разберём архитектуру Mirage: как план объявляется один раз и привязывается при каждой отрисовке, чем различаются типы
Статья: https://apptractor.ru/info/articles/mirage-kak-cloudy-prevraschaetsya-iz-biblioteki-razmytiya-v-biblioteku-effektov.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В этой статье мы разберём архитектуру Mirage: как план объявляется один раз и привязывается при каждой отрисовке, чем различаются типы
Optic и почему вместо одного универсального типа используется несколько отдельных, а также как внутренние компоненты — компилятор, общий для всего процесса кэш программ и цепочка фильтров для последовательной обработки слоёв — превращают план в готовое изображение.Статья: https://apptractor.ru/info/articles/mirage-kak-cloudy-prevraschaetsya-iz-biblioteki-razmytiya-v-biblioteku-effektov.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM