Рендеринг пиксель-арта в SwiftUI
Пиксельная графика может выглядеть размыто на современных дисплеях, если ее неправильно масштабировать. В статье рассказывается, как в SwiftUI можно отображать пиксель-арт с четкими границами, используя модификатор
Подход с
Статья: https://twocentstudios.com/2025/03/10/pixel-art-swift-ui/
Платформа: iOS
👍 если хотите эту статью на русском
Пиксельная графика может выглядеть размыто на современных дисплеях, если ее неправильно масштабировать. В статье рассказывается, как в SwiftUI можно отображать пиксель-арт с четкими границами, используя модификатор
.interpolation(.none), который предотвращает сглаживание при увеличении изображения. Также автор предлагает создать собственную структуру Bitmap, хранящую массив цветов, и визуализировать ее с помощью Image или Canvas.Подход с
Image позволяет легко масштабировать графику, сохраняя правильное соотношение сторон, а Canvas дает возможность рисовать пиксельные изображения программно, добавляя дополнительные эффекты. В статье приводятся примеры кода и сравнение методов, что делает ее полезной для разработчиков, работающих с пиксель-артом в SwiftUI.Статья: https://twocentstudios.com/2025/03/10/pixel-art-swift-ui/
Платформа: iOS
👍 если хотите эту статью на русском
❤1👍1
В защиту простых архитектур
Максимально упростив архитектуру приложений, мы можем тратить бюджет на сложность (и численность персонала) там, где сложность выгодна нашему бизнесу. Идея делать все как можно проще, если нет веских причин для усложнения, позволила нам построить довольно крупный бизнес с небольшим количеством инженеров.
Статья: https://apptractor.ru/info/articles/v-zaschitu-prostyh-arhitektur.html
Платформа: архитектура
Максимально упростив архитектуру приложений, мы можем тратить бюджет на сложность (и численность персонала) там, где сложность выгодна нашему бизнесу. Идея делать все как можно проще, если нет веских причин для усложнения, позволила нам построить довольно крупный бизнес с небольшим количеством инженеров.
Статья: https://apptractor.ru/info/articles/v-zaschitu-prostyh-arhitektur.html
Платформа: архитектура
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
HandWriting - библиотека инструментов для рисования на основе Compose, построенная на Kotlin Multiplatform.
Поддерживает рисование, стирание, выделение и манипуляции, отмену/повтор и функцию масштабирования.
HandWriting на GitHub: https://github.com/henni99/Handwriting
Платформа: Android/кроссплатформа
⭐️: 13
Поддерживает рисование, стирание, выделение и манипуляции, отмену/повтор и функцию масштабирования.
HandWriting на GitHub: https://github.com/henni99/Handwriting
Платформа: Android/кроссплатформа
⭐️: 13
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Cursor Talk to Figma MCP - проект реализует интеграцию протокола Model Context Protocol (MCP) между Cursor AI и Figma, позволяя Cursor взаимодействовать с Figma для чтения проектов и их программной модификации.
Например, можно попросить разработать современный экран приложения для входа в систему.
Cursor Talk to Figma MCP на GitHub: https://github.com/sonnylazuardi/cursor-talk-to-figma-mcp
Платформа: дизайн и прототипирование
⭐️: 647
Например, можно попросить разработать современный экран приложения для входа в систему.
Cursor Talk to Figma MCP на GitHub: https://github.com/sonnylazuardi/cursor-talk-to-figma-mcp
Платформа: дизайн и прототипирование
⭐️: 647
👍3🔥1
10 хаков для оптимизации производительности iOS-приложений
Вот 10 практических хаков для повышения производительности вашего iOS-приложения, проверенных на производственных проектах.
1. Безжалостно профилируйте с помощью инструментов
2. Оптимизируйте Auto Layout с помощью isActive
3. Сокращайте динамическую диспетчеризацию с помощью final и private
4. Кешируйте дорогостоящие операции
5. Используйте CALayer.shouldRasterize для сложных представлений
6. Выгружайте работы в фоновые потоки
7. Используйте UILabel.preferredMaxLayoutWidth для ячеек
8. Выбирайте UIImage(named:) вместо UIImage(contentsOfFile:)
9. Минимизировать drawRect: переопределения
10. Лениво загружайте невидимое содержимое
Статья: https://apptractor.ru/info/articles/10-hakov-dlya-optimizatsii-proizvoditelnosti-ios-prilozheniy.html
Платформа: iOS
Вот 10 практических хаков для повышения производительности вашего iOS-приложения, проверенных на производственных проектах.
1. Безжалостно профилируйте с помощью инструментов
2. Оптимизируйте Auto Layout с помощью isActive
3. Сокращайте динамическую диспетчеризацию с помощью final и private
4. Кешируйте дорогостоящие операции
5. Используйте CALayer.shouldRasterize для сложных представлений
6. Выгружайте работы в фоновые потоки
7. Используйте UILabel.preferredMaxLayoutWidth для ячеек
8. Выбирайте UIImage(named:) вместо UIImage(contentsOfFile:)
9. Минимизировать drawRect: переопределения
10. Лениво загружайте невидимое содержимое
Статья: https://apptractor.ru/info/articles/10-hakov-dlya-optimizatsii-proizvoditelnosti-ios-prilozheniy.html
Платформа: iOS
👍1
Soundscape - это попытка сообщества вернуть возможности Microsoft Soundscape слепым и слабовидящим путешественникам. Начав с компонентов, выпущенных Microsoft Research с открытым исходным кодом, авторы восполнили некоторые недостающие части и службы, чтобы сохранить функциональность.
Microsoft Soundscape был продуктом Microsoft Research, в котором исследовалось использование инновационных аудиотехнологий для того, чтобы люди могли лучше ориентироваться в окружающей обстановке и, таким образом, становились более уверенными и способными передвигаться. В отличие от пошаговых навигационных приложений, Soundscape использует трехмерные звуковые сигналы, чтобы обогатить окружающее пространство и обеспечить новый способ взаимодействия с окружающей средой. Он позволяет построить ментальную карту и выбрать индивидуальный маршрут, чувствуя себя более комфортно в незнакомом пространстве. Soundscape предназначен для использования всеми желающими и работает в фоновом режиме.
Soundscape на GitHub: https://github.com/soundscape-community/soundscape
Платформа: iOS
⭐️: 21
Microsoft Soundscape был продуктом Microsoft Research, в котором исследовалось использование инновационных аудиотехнологий для того, чтобы люди могли лучше ориентироваться в окружающей обстановке и, таким образом, становились более уверенными и способными передвигаться. В отличие от пошаговых навигационных приложений, Soundscape использует трехмерные звуковые сигналы, чтобы обогатить окружающее пространство и обеспечить новый способ взаимодействия с окружающей средой. Он позволяет построить ментальную карту и выбрать индивидуальный маршрут, чувствуя себя более комфортно в незнакомом пространстве. Soundscape предназначен для использования всеми желающими и работает в фоновом режиме.
Soundscape на GitHub: https://github.com/soundscape-community/soundscape
Платформа: iOS
⭐️: 21
❤1
Выжимаем максимум из код-ревью и спасаем нервные клетки
Большинство разработчиков не любит проводить код-ревью. Все понимают, что это важно и нужно, могут с ходу назвать три-четыре причины необходимости этого процесса. Но раз за разом они всячески избегают его. Или участвуют в нём неэффективно.
Поэтому разрушим шаблоны — не будем акцентировать внимание на важности и полезности код-ревью, а разберёмся в причинах сложившейся неприязни к этому процессу. И попробуем понять, как с этим жить.
Статья: https://habr.com/ru/companies/surfstudio/articles/892304/
Платформа: разработка
Большинство разработчиков не любит проводить код-ревью. Все понимают, что это важно и нужно, могут с ходу назвать три-четыре причины необходимости этого процесса. Но раз за разом они всячески избегают его. Или участвуют в нём неэффективно.
Поэтому разрушим шаблоны — не будем акцентировать внимание на важности и полезности код-ревью, а разберёмся в причинах сложившейся неприязни к этому процессу. И попробуем понять, как с этим жить.
Статья: https://habr.com/ru/companies/surfstudio/articles/892304/
Платформа: разработка
❤1
Ликбез по разрешениям в Android
В быстро меняющемся мире мобильных технологий операционная система Android занимает особое место благодаря своей универсальности и обширному спектру возможностей. Одним из ключевых элементов, обеспечивающих безопасность и неприкосновенность личных данных пользователей Android, является система разрешений. Разрешения Android контролируют взаимодействие приложений с операционной системой и доступ к пользовательским данным, создавая безопасную и контролируемую среду, в которой функциональность и защита находятся в гармонии.
Статья: https://habr.com/ru/companies/otus/articles/892020/
Платформа: Android
В быстро меняющемся мире мобильных технологий операционная система Android занимает особое место благодаря своей универсальности и обширному спектру возможностей. Одним из ключевых элементов, обеспечивающих безопасность и неприкосновенность личных данных пользователей Android, является система разрешений. Разрешения Android контролируют взаимодействие приложений с операционной системой и доступ к пользовательским данным, создавая безопасную и контролируемую среду, в которой функциональность и защита находятся в гармонии.
Статья: https://habr.com/ru/companies/otus/articles/892020/
Платформа: Android
❤1
Demeter: реактивное профилирование Android-приложений
Наша команда часто сталкивалась с проблемами при поиске «узких мест» в производительности приложения. Мы пробовали различные инструменты профилирования, но все они требовали слишком много времени на сбор метрик, анализ и фильтрацию нужных данных. Чтобы решить эту проблему, мы разработали собственное решение, которое сочетает скорость анализа и простоту поиска проблем. Мы создали библиотеку Demeter, которую легко интегрировать в отладочную версию Android‑приложения. Она позволяет получать отчёты о производительности во время использования приложения и переходов между экранами. Такую сборку можно передать команде тестирования, а затем проанализировать отчёты и изучить изменения.
Статья: https://habr.com/ru/companies/yandex/articles/891592/
Платформа: Android
Наша команда часто сталкивалась с проблемами при поиске «узких мест» в производительности приложения. Мы пробовали различные инструменты профилирования, но все они требовали слишком много времени на сбор метрик, анализ и фильтрацию нужных данных. Чтобы решить эту проблему, мы разработали собственное решение, которое сочетает скорость анализа и простоту поиска проблем. Мы создали библиотеку Demeter, которую легко интегрировать в отладочную версию Android‑приложения. Она позволяет получать отчёты о производительности во время использования приложения и переходов между экранами. Такую сборку можно передать команде тестирования, а затем проанализировать отчёты и изучить изменения.
Статья: https://habr.com/ru/companies/yandex/articles/891592/
Платформа: Android
❤1
5 причин плохого настроения. История одного Flutter-проекта, который заставил нас поломать голову
В общем и целом я насчитал пять компонентов проекта, над которыми нам пришлось крепко поразмышлять:
1. Видеоплеер. Фоновое изображение на главном экране представляло собой видео. Бэкенд нам его присылал в 4K, и далеко не каждый телефон справлялся с обработкой такого тяжеловеса.
2. Модальные окна. Они были практически везде — клиент хотел, чтобы всё красиво поднималось и опускалось. Из-за этого видео в фоне (см. пункт 1) играло всегда. Так что модальные окна были большой проблемой.
3. Всплывающие подсказки. Мы видели приложения, в которых много всплывающих подсказок. Но тут их было больше, чем много — пользователям должно было быть максимально комфортно. К тому же затемнение экрана не всегда работало корректно — пришлось решать.
4. Архитектура. Проект разрабатывался в сжатые сроки, и поэтому в архитектуре учли не всё. С самого начала было сложно предусмотреть, что ждет приложение в будущем и нужно ли будет добавлять в него новые фичи.
5. Офлайн-режим. Сюда входит и кэширование страниц, и сохранение каких-то справочников в базе данных. Изначально мы выбрали для реализации Isar — NoSQL базу данных. Но позже поняли, что нам придется от него отказаться.
Причина некоторых проблем состояла в том, что еще на этапе проектирования было принято несколько неоптимальных решений. И меня привлекли к проекту как раз для того, чтобы я помог их исправить.
Статья: https://habr.com/ru/companies/agima/articles/892278/
Платформа: Flutter
В общем и целом я насчитал пять компонентов проекта, над которыми нам пришлось крепко поразмышлять:
1. Видеоплеер. Фоновое изображение на главном экране представляло собой видео. Бэкенд нам его присылал в 4K, и далеко не каждый телефон справлялся с обработкой такого тяжеловеса.
2. Модальные окна. Они были практически везде — клиент хотел, чтобы всё красиво поднималось и опускалось. Из-за этого видео в фоне (см. пункт 1) играло всегда. Так что модальные окна были большой проблемой.
3. Всплывающие подсказки. Мы видели приложения, в которых много всплывающих подсказок. Но тут их было больше, чем много — пользователям должно было быть максимально комфортно. К тому же затемнение экрана не всегда работало корректно — пришлось решать.
4. Архитектура. Проект разрабатывался в сжатые сроки, и поэтому в архитектуре учли не всё. С самого начала было сложно предусмотреть, что ждет приложение в будущем и нужно ли будет добавлять в него новые фичи.
5. Офлайн-режим. Сюда входит и кэширование страниц, и сохранение каких-то справочников в базе данных. Изначально мы выбрали для реализации Isar — NoSQL базу данных. Но позже поняли, что нам придется от него отказаться.
Причина некоторых проблем состояла в том, что еще на этапе проектирования было принято несколько неоптимальных решений. И меня привлекли к проекту как раз для того, чтобы я помог их исправить.
Статья: https://habr.com/ru/companies/agima/articles/892278/
Платформа: Flutter
Shader Ripple Effect Playground - библиотека шейдерных эффектов AGSL для Android. Есть эффект пульсации, реагирующий на касание, непрерывная волновая анимация с настраиваемыми параметрами, переход раскрытия содержимого с эффектом пульсации - все с настрйоками. Полная совместимость с любым элементом пользовательского интерфейса Jetpack Compose, простая интеграция с минимальным количеством кода.
Shader Ripple Effect Playground на GitHub: https://github.com/mejdi14/Android-AGSL-Shader-Playground
Платформа: Android
⭐️: 215
Shader Ripple Effect Playground на GitHub: https://github.com/mejdi14/Android-AGSL-Shader-Playground
Платформа: Android
⭐️: 215
❤1
• Дивный мир Swift Concurrency
•
(iOS Ru) Задачи с собеседований: Leetcode — Недостающее число•
(iOS Ru) Why The Composable Architecture is Overrated•
(iOS En) Animated Async Button With Custom Spinner Using SwiftUI•
(iOS En) Master SwiftUI Layout With EASY Spacing And Padding•
(iOS En) ChatGPT Pro for iOS Devs: HONEST Review•
(iOS En) Create Custom Tab Bars in SwiftUI – An Alternative to Default Tabs•
(iOS En) VisionOS Style Menus for iOS Using SwiftUI•
(And Ru) Кастомные лейауты в Jetpack Compose•
(And En) Full 2025 Kotlin Crash Course For Beginners•
(And En) Create Boilerplate Files With ONE Click With Multi-File Templates In Android Studio•
(And En) Mastering UI Events and States in Jetpack Compose•
(And En) Parsing XML namespaces and trying not to lose our minds•
(Dev Ru) Javanoscript для бэкенда – отличная идея: Node.js, NPM, Typenoscript•
(Dev En) Building MCP with Kotlin: Claude Desktop Controls My Smart Home LightsЧто было год назад:
•
(iOS Ru) Разработка под Apple Vision Pro•
(iOS Ru) Как встроить в TextField индикатор загрузки и кастомную View•
(And Ru) Мапим данные из domain в ui модуль в многомодульном проекте•
(Crs Ru) Рецепт приготовления кроссплатформенного мобильного видеоредактора•
(Dev Ru) Собеседование по System Design: проектируем клон Авито•
(Dev Ru) Демистифицируем машинное обучение – из разработчика в ML-инженеры•
(Dev Ru) Программисты не нужныPlease open Telegram to view this post
VIEW IN TELEGRAM
Создаём многомодульную библиотеку на Android: как же собрать fat-aar?
В Android-разработке могут возникать сценарии, когда нам нужно собрать один aar из нескольких модулей.
Однажды нам в Сравни потребовалось создать SDK для наших партнёров — на основе уже существующего проекта. Сделать это хотелось без радикальных изменений в проекте и излишнего раскрытия деталей его устройства.
Задача понятная, но нетривиальная в реализации. Google до сих пор не предоставляет полноценного инструмента для создания fat-aar; к opensource-решениям также много вопросов.
Выход из ситуации: вникнуть в нюансы того, как работает gradle, и на базе общедоступных средств сделать свой инструмент для создания многомодульной библиотеки. С автоматизированной сборкой модулей и публикацией артефакта.
О том, как мы к этому подступились и к чему пришли, рассказываем под катом.
Статья: https://habr.com/ru/companies/sravni/articles/892416/
Платформа: Android
В Android-разработке могут возникать сценарии, когда нам нужно собрать один aar из нескольких модулей.
Однажды нам в Сравни потребовалось создать SDK для наших партнёров — на основе уже существующего проекта. Сделать это хотелось без радикальных изменений в проекте и излишнего раскрытия деталей его устройства.
Задача понятная, но нетривиальная в реализации. Google до сих пор не предоставляет полноценного инструмента для создания fat-aar; к opensource-решениям также много вопросов.
Выход из ситуации: вникнуть в нюансы того, как работает gradle, и на базе общедоступных средств сделать свой инструмент для создания многомодульной библиотеки. С автоматизированной сборкой модулей и публикацией артефакта.
О том, как мы к этому подступились и к чему пришли, рассказываем под катом.
Статья: https://habr.com/ru/companies/sravni/articles/892416/
Платформа: Android
10 упражнений от боли в спине, которые помогут программистам
Давайте обсудим тему, которая не менее важна, чем отладка того надоедливого куска кода, с которым вы боретесь — ваше здоровье, в частности предотвращение болей в спине. Мы говорим не просто о случайной скованности, а о той глубокой, ноющей боли, которая возникает после марафонских сессий кодинга. Вот десять спасительных упражнений от боли в спине, которые помогут вам сохранить здоровье.
Статья: https://apptractor.ru/info/articles/10-uprazhneniy-dlya-predotvrascheniya-boley-v-spine-kotorye-pomogut-programmistam.html
Платформа: здоровье
Давайте обсудим тему, которая не менее важна, чем отладка того надоедливого куска кода, с которым вы боретесь — ваше здоровье, в частности предотвращение болей в спине. Мы говорим не просто о случайной скованности, а о той глубокой, ноющей боли, которая возникает после марафонских сессий кодинга. Вот десять спасительных упражнений от боли в спине, которые помогут вам сохранить здоровье.
Статья: https://apptractor.ru/info/articles/10-uprazhneniy-dlya-predotvrascheniya-boley-v-spine-kotorye-pomogut-programmistam.html
Платформа: здоровье
❤3
AestheticText - модификатор SwiftUI, который сжимает текст по горизонтали настолько, насколько это возможно без переносов, то есть делает каждую строку максимально близкой по ширине. Это реализовано с помощью a single-view макета, который измеряет свое содержимое с помощью двоичного поиска, чтобы найти наименьшую возможную ширину (с заданным уровнем точности), которая не влияет на высоту.
AestheticText на GitHub: https://github.com/kylebshr/AestheticText
Платформа: iOS
⭐️: 86
AestheticText на GitHub: https://github.com/kylebshr/AestheticText
Платформа: iOS
⭐️: 86
👍1
Основы цветовой системы Material3 для Android-разработчиков
Material3 — это последняя итерация Material Design, с динамическим тематическим оформлением, обновленными компонентами и многим другим. Однако сам этот фреймворк может быть слишком подавляющим с его более чем 200 различными цветовыми вариантами и десятками страниц документации.
Хорошо, что на самом деле все не так сложно, и он может значительно облегчить жизнь разработчикам.
Статья: https://apptractor.ru/info/articles/material3-colors.html
Платформа: Android
Material3 — это последняя итерация Material Design, с динамическим тематическим оформлением, обновленными компонентами и многим другим. Однако сам этот фреймворк может быть слишком подавляющим с его более чем 200 различными цветовыми вариантами и десятками страниц документации.
Хорошо, что на самом деле все не так сложно, и он может значительно облегчить жизнь разработчикам.
Статья: https://apptractor.ru/info/articles/material3-colors.html
Платформа: Android
❤1👍1
«Давайте просто…»: системные идеи, которые звучат хорошо, но почти никогда не работают
Всегда ли я был категоричным «противником» по всем этим вопросам? Конечно, нет. Можете ли вы выбрать эти подходы, и они заработают? Да, конечно, можете. Всегда есть какой-то контекст, в котором они могут сработать, но чаще всего они просто не нужны, и есть лучший способ.
• Давайте просто сделаем возможность подключения
• Давайте просто добавим API
• Давайте абстрагируем это еще раз
• Давайте сделаем это асинхронным
• Давайте просто добавим средства контроля доступа позже
• Давайте просто синхронизируем данные
• Давайте сделаем это кроссплатформенным
• Давайте просто сбежим в нативный код
Статья: https://apptractor.ru/info/articles/davayte-prosto-sistemnye-idei.html
Платформа: разработка
Всегда ли я был категоричным «противником» по всем этим вопросам? Конечно, нет. Можете ли вы выбрать эти подходы, и они заработают? Да, конечно, можете. Всегда есть какой-то контекст, в котором они могут сработать, но чаще всего они просто не нужны, и есть лучший способ.
• Давайте просто сделаем возможность подключения
• Давайте просто добавим API
• Давайте абстрагируем это еще раз
• Давайте сделаем это асинхронным
• Давайте просто добавим средства контроля доступа позже
• Давайте просто синхронизируем данные
• Давайте сделаем это кроссплатформенным
• Давайте просто сбежим в нативный код
Статья: https://apptractor.ru/info/articles/davayte-prosto-sistemnye-idei.html
Платформа: разработка
❤1
Scratchify - это легкий и настраиваемый SDK для скретч-карт, созданный с использованием Jetpack Compose Multiplatform (поддерживает Android и iOS). Он позволяет создавать интерактивные скретч-поверхности, на которых пользователи могут соскрести верхний слой, чтобы открыть скрытый под ней контент. Идеально подходит для поощрений, скидок, сюрпризов и элементов геймификации в вашем приложении.
Scratchify на GitHub: https://github.com/gsrathoreniks/scratchify/
Платформа: Android
⭐️: 23
Scratchify на GitHub: https://github.com/gsrathoreniks/scratchify/
Платформа: Android
⭐️: 23
❤1
Хакнуть Qt: как мы запускали Picture-in-Picture в навигаторе 2ГИС
В Android-приложение 2ГИС мы добавили новый режим PiP (Picture-in-Picture, или «картинка в картинке»). С PiP наши пользователи смогут следить за маршрутом в маленьком плавающем окне на основном экране. Например, когда нужно быстро прочитать сообщение или включить подкаст и при этом сохранять фокус на навигации. Режим PiP — это не просто «приятная мелочь», а функциональность, которая подстраивается под новые требования пользователей навигатора.
В этом посте поделюсь, как решал несколько трудностей, которые встретились при разработке этой функции.
Статья: https://habr.com/ru/companies/2gis/articles/881446/
Платформа: Android
В Android-приложение 2ГИС мы добавили новый режим PiP (Picture-in-Picture, или «картинка в картинке»). С PiP наши пользователи смогут следить за маршрутом в маленьком плавающем окне на основном экране. Например, когда нужно быстро прочитать сообщение или включить подкаст и при этом сохранять фокус на навигации. Режим PiP — это не просто «приятная мелочь», а функциональность, которая подстраивается под новые требования пользователей навигатора.
В этом посте поделюсь, как решал несколько трудностей, которые встретились при разработке этой функции.
Статья: https://habr.com/ru/companies/2gis/articles/881446/
Платформа: Android
Сценарии использования ServerSocket
Если бы оба участника обмена данными были Android‑приложениями, мы могли бы использовать стандартные механизмы IPC, такие как Intent для отправки сообщений,
Именно поэтому
Статья: https://habr.com/ru/companies/tbank/articles/893890/
Платформа: Android
Если бы оба участника обмена данными были Android‑приложениями, мы могли бы использовать стандартные механизмы IPC, такие как Intent для отправки сообщений,
ContentProvider для доступа к данным или Binder для более сложных взаимодействий. Но в нашем случае одна из сторон — браузер, в котором работает веб‑приложение. Браузер не имеет доступа к этим механизмам, так как работает в своем песочном окружении и не может напрямую взаимодействовать с компонентами Android.Именно поэтому
ServerSocket становится удобным решением, позволяя Android‑приложению создать локальный сервер, к которому браузер может подключаться как к обычному веб‑серверу. Это дает возможность гибко передавать данные между приложением и сайтом, обходя ограничения стандартных средств IPC.Статья: https://habr.com/ru/companies/tbank/articles/893890/
Платформа: Android
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
ttyd - это простой инструмент командной строки для шаринга терминала через Интернет. Поддерживает macOS, Linux, FreeBSD/OpenBSD, OpenWrt и Windows.
ttyd на GitHub: https://github.com/tsl0922/ttyd
Платформа: разработка
⭐️: 8.7K
ttyd на GitHub: https://github.com/tsl0922/ttyd
Платформа: разработка
⭐️: 8.7K
👍1