Вам следует использовать бета-версии AndroidX
В любом случае, как пользователи библиотеки AndroidX, мы несём общую ответственность за сообщение об ошибках в процессе разработки, чтобы они были исправлены. Нельзя рассчитывать, что их обнаружит кто-то другой. В Cash App у нас очень большая кодовая база, и мы делаем много интересного с помощью этих библиотек. Чтобы максимально эффективно использовать бета-версии, мы планируем продолжать выявлять и сообщать о любых найденных ошибках. Это поможет нам не только поддерживать возможность обновления, но и всем остальным, кто использует эти библиотеки. И, кстати, думаю, вам стоит поступить так же!
Статья: https://apptractor.ru/info/articles/vam-sleduet-ispolzovat-beta-versii-androidx.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В любом случае, как пользователи библиотеки AndroidX, мы несём общую ответственность за сообщение об ошибках в процессе разработки, чтобы они были исправлены. Нельзя рассчитывать, что их обнаружит кто-то другой. В Cash App у нас очень большая кодовая база, и мы делаем много интересного с помощью этих библиотек. Чтобы максимально эффективно использовать бета-версии, мы планируем продолжать выявлять и сообщать о любых найденных ошибках. Это поможет нам не только поддерживать возможность обновления, но и всем остальным, кто использует эти библиотеки. И, кстати, думаю, вам стоит поступить так же!
Статья: https://apptractor.ru/info/articles/vam-sleduet-ispolzovat-beta-versii-androidx.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Стэнфордский университет выпускает CS193p ("Разработка приложений для iOS") – версия весны 2025 года
В курсе есть видео и вспомогательные материалы по первым 6 лекциям курса CS193p (Разработка приложений для iOS с использованием SwiftUI) весеннего семестра 2025 года в Стэнфордском университете. Это курс, который студенты Стэнфорда проходят для изучения основ разработки приложений для iOS. Дополнительные лекции из этого семестра будут опубликованы в ближайшее время.
Курс проходил до выпуска iOS 26 и Xcode 26, но код, написанный в ходе курса, в основном совместим с новыми версиями. Конечно, большим изменением в Xcode 26 является встроенная помощь LLM, а в iOS 26 в пользовательском интерфейсе появился Liquid Glass, поэтому, конечно, ни в одном из этих видео этого нет.
Курс: https://cs193p.stanford.edu/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В курсе есть видео и вспомогательные материалы по первым 6 лекциям курса CS193p (Разработка приложений для iOS с использованием SwiftUI) весеннего семестра 2025 года в Стэнфордском университете. Это курс, который студенты Стэнфорда проходят для изучения основ разработки приложений для iOS. Дополнительные лекции из этого семестра будут опубликованы в ближайшее время.
Курс проходил до выпуска iOS 26 и Xcode 26, но код, написанный в ходе курса, в основном совместим с новыми версиями. Конечно, большим изменением в Xcode 26 является встроенная помощь LLM, а в iOS 26 в пользовательском интерфейсе появился Liquid Glass, поэтому, конечно, ни в одном из этих видео этого нет.
Курс: https://cs193p.stanford.edu/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
Стартовал конкурс Advent of Code 2025
Настало самое чудесное время года. Время, которое можно провести, участвуя в увлекательном конкурсе по программированию.
Каждый декабрь Эрик Вастл публикует Advent of Code, увлекательный набор упражнений по программированию. С 1 по 12 декабря каждый день публикуется по одному заданию.
Задания начинаются с простых и постепенно становятся все сложнее. Вы можете использовать любой язык программирования и любые методы для выполнения упражнений.
Вот сообщества для разработчиков:
• Swift
• Kotlin
Таблица лидеров будет автоматически обновляться, показывая, кто выполнил задачу, и выставляя оценку в зависимости от того, сколько времени у вас на это ушло. Конечно, вы всегда можете игнорировать оценку — это просто для удовольствия!
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Настало самое чудесное время года. Время, которое можно провести, участвуя в увлекательном конкурсе по программированию.
Каждый декабрь Эрик Вастл публикует Advent of Code, увлекательный набор упражнений по программированию. С 1 по 12 декабря каждый день публикуется по одному заданию.
Задания начинаются с простых и постепенно становятся все сложнее. Вы можете использовать любой язык программирования и любые методы для выполнения упражнений.
Вот сообщества для разработчиков:
• Swift
• Kotlin
Таблица лидеров будет автоматически обновляться, показывая, кто выполнил задачу, и выставляя оценку в зависимости от того, сколько времени у вас на это ушло. Конечно, вы всегда можете игнорировать оценку — это просто для удовольствия!
Please open Telegram to view this post
VIEW IN TELEGRAM
Неделя Jetpack Navigation 3
Jetpack Navigation 3 теперь стабилен, и его использование может помочь вам уменьшить технический долг, обеспечить лучшее разделение задач, ускорить разработку функций и поддерживать новые форм-факторы. Google посвящает целую неделю новой библиотеке и поможет вам узнать о Nav3 и начать интегрировать ее в свое приложение.
Вы узнаете о библиотеке в деталях, о том, как выделить в модули код навигации, а также получите множество рецептов кода для типичных случаев использования. В конце недели присоединяйтесь к сессии «Спроси о чем угодно», чтобы эксперты ответили на все ваши вопросы о Nav3. Вот полное расписание:
• Понедельник: Обзор API
• Вторник: Анимации
• Среда: Глубокие ссылки
• Четверг: Модуляризация
• Пятница: Спросите о чем угодно
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Jetpack Navigation 3 теперь стабилен, и его использование может помочь вам уменьшить технический долг, обеспечить лучшее разделение задач, ускорить разработку функций и поддерживать новые форм-факторы. Google посвящает целую неделю новой библиотеке и поможет вам узнать о Nav3 и начать интегрировать ее в свое приложение.
Вы узнаете о библиотеке в деталях, о том, как выделить в модули код навигации, а также получите множество рецептов кода для типичных случаев использования. В конце недели присоединяйтесь к сессии «Спроси о чем угодно», чтобы эксперты ответили на все ваши вопросы о Nav3. Вот полное расписание:
• Понедельник: Обзор API
• Вторник: Анимации
• Среда: Глубокие ссылки
• Четверг: Модуляризация
• Пятница: Спросите о чем угодно
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
Навигация на SwiftUI: чего не хватает и как исправить
В статье iOS-разработчик CleverPumpkin Даниил Апальков разбирает ограничения SwiftUI при построении сложной навигации, с которыми команда столкнулась на одном из своих проектов. Он рассказывает, в каких сценариях приходилось подключать UIKit, чтобы сохранять стабильность, показывает варианты подходов и делится выводами, какие инструменты выбирать для контролируемой навигации.
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В статье iOS-разработчик CleverPumpkin Даниил Апальков разбирает ограничения SwiftUI при построении сложной навигации, с которыми команда столкнулась на одном из своих проектов. Он рассказывает, в каких сценариях приходилось подключать UIKit, чтобы сохранять стабильность, показывает варианты подходов и делится выводами, какие инструменты выбирать для контролируемой навигации.
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
AnyLanguageModel - совместимая по API замена Foundation Models на кастомные модели
AnyLanguageModel - пакет Swift, предоставляющий готовую замену фреймворку Apple Foundation Models с поддержкой кастомных моделей. Всё, что вам нужно сделать, — это изменить оператор импорта:
- import FoundationModels
+ import AnyLanguageModel
Поддерживаемые провайдеры:
• Apple Foundation Models
• Core ML models
• MLX models
• llama.cpp (GGUF models)
• Ollama HTTP API
• Anthropic Messages API
• Google Gemini API
• OpenAI Chat Completions API
• OpenAI Responses API
AnyLanguageModel на GitHub: https://github.com/mattt/AnyLanguageModel
Платформа: iOS
⭐️: 572
AnyLanguageModel - пакет Swift, предоставляющий готовую замену фреймворку Apple Foundation Models с поддержкой кастомных моделей. Всё, что вам нужно сделать, — это изменить оператор импорта:
- import FoundationModels
+ import AnyLanguageModel
struct WeatherTool: Tool {
let name = "getWeather"
let denoscription = "Retrieve the latest weather information for a city"
@Generable
struct Arguments {
@Guide(denoscription: "The city to fetch the weather for")
var city: String
}
func call(arguments: Arguments) async throws -> String {
"The weather in \(arguments.city) is sunny and 72°F / 23°C"
}
}
let model = SystemLanguageModel.default
let session = LanguageModelSession(model: model, tools: [WeatherTool()])
let response = try await session.respond {
Prompt("How's the weather in Cupertino?")
}
print(response.content)Поддерживаемые провайдеры:
• Apple Foundation Models
• Core ML models
• MLX models
• llama.cpp (GGUF models)
• Ollama HTTP API
• Anthropic Messages API
• Google Gemini API
• OpenAI Chat Completions API
• OpenAI Responses API
AnyLanguageModel на GitHub: https://github.com/mattt/AnyLanguageModel
Платформа: iOS
⭐️: 572
👍1
Реверс-инжиниринг приложений на Android: знакомство с Frida
Frida — это инструмент, который позволяет вживлять небольшой кусок JavaScript-кода прямо в запущенное приложение и менять его поведение. В статье рассказывается, как работать с Frida, исследовать приложения на телефоне без root-доступа и создавать свои моды.
Статья: https://habr.com/ru/companies/selectel/articles/973526/
Платформа: Android
Frida — это инструмент, который позволяет вживлять небольшой кусок JavaScript-кода прямо в запущенное приложение и менять его поведение. В статье рассказывается, как работать с Frida, исследовать приложения на телефоне без root-доступа и создавать свои моды.
Статья: https://habr.com/ru/companies/selectel/articles/973526/
Платформа: Android
👍1
5.webm
169.5 KB
Создание анимированных полос в Jetpack Compose
Если мы хотим нарисовать и анимировать полоски в Jetpack Compose, мы можем использовать градиент с его параметрами.
Статья: https://apptractor.ru/info/articles/stripes-jetpack-compose.html
Платформа: Android
Если мы хотим нарисовать и анимировать полоски в Jetpack Compose, мы можем использовать градиент с его параметрами.
Статья: https://apptractor.ru/info/articles/stripes-jetpack-compose.html
Платформа: Android
MaterialKolor - динамическая цветовая схема Material3 из исходного цвета
MaterialKolor - библиотека Compose Multiplatform для создания динамических цветовых палитр Material Design 3 из любого цвета. Доступные платформы: Android, iOS, JVM (Desktop) и JavaScript/wasm (браузер). Основу этой библиотеки составляет репозиторий material-color-utilities. В настоящее время это библиотека доступна только на Java, и автор хотел сделать её доступной для проектов Kotlin Multiplatform. Исходный код был взят и преобразован в библиотеку Kotlin Multiplatform.
MaterialKolor на GitHub: https://github.com/jordond/MaterialKolor
Платформа: Android/кроссплатформа
⭐️: 755
MaterialKolor - библиотека Compose Multiplatform для создания динамических цветовых палитр Material Design 3 из любого цвета. Доступные платформы: Android, iOS, JVM (Desktop) и JavaScript/wasm (браузер). Основу этой библиотеки составляет репозиторий material-color-utilities. В настоящее время это библиотека доступна только на Java, и автор хотел сделать её доступной для проектов Kotlin Multiplatform. Исходный код был взят и преобразован в библиотеку Kotlin Multiplatform.
MaterialKolor на GitHub: https://github.com/jordond/MaterialKolor
Платформа: Android/кроссплатформа
⭐️: 755
👍1
Перетаскивание и буфер обмена с помощью Transferable
Используя
Статья: https://apptractor.ru/info/articles/peretaskivanie-i-bufer-obmena-s-pomoschyu-transferable.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Используя
Transferable, вы не только упрощаете реализацию, но и делаете своё приложение совместимым с современными формами взаимодействия, от буфера обмена до перетаскивания, используя единую модель данных.Статья: https://apptractor.ru/info/articles/peretaskivanie-i-bufer-obmena-s-pomoschyu-transferable.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Как Vercel перенесли магию v0 в нативное приложение
Vercel делится тем, как они создавали iOS-версию своего AI-генератора интерфейсов v0. Спойлер: это не Swift и не Flutter. Это мощная демонстрация того, куда движется экосистема React.
Ключевые моменты из статьи:
• React Native + Expo: Основа приложения. Они использовали Expo (с Continuous Native Generation), что позволило веб-разработчикам писать нативный код, практически не выходя из привычной среды.
• React Server Components (RSC) на мобилке: Это самое интересное. Приложение v0 использует ту же архитектуру, что и веб-версия. Сервер стримит компоненты прямо на устройство. Это позволяет переиспользовать огромные куски логики.
• Общий код: Благодаря монорепозиторию (Turborepo), они делят типы, утилиты и даже UI-компоненты между Next.js (веб) и Expo (iOS).
• Стриминг: Ощущение "магии", когда код пишется у вас на глазах, реализовано через потоковую передачу данных. Это не просто запрос-ответ, это живой поток токенов от LLM, который рендерится в реальном времени.
• Производительность: Чтобы скролл и анимации были плавными (60fps), тяжелые вычисления вынесены в отдельные потоки или обрабатываются на сервере.
Vercel доказывает, что граница между вебом и нативом стирается. Если у вас уже есть крутая команда React-разработчиков, вам не обязательно нанимать отдельный штат iOS-инженеров, чтобы сделать продукт мирового уровня.
Статья: https://vercel.com/blog/how-we-built-the-v0-ios-app
Платформа: кроссплатформа
Vercel делится тем, как они создавали iOS-версию своего AI-генератора интерфейсов v0. Спойлер: это не Swift и не Flutter. Это мощная демонстрация того, куда движется экосистема React.
Ключевые моменты из статьи:
• React Native + Expo: Основа приложения. Они использовали Expo (с Continuous Native Generation), что позволило веб-разработчикам писать нативный код, практически не выходя из привычной среды.
• React Server Components (RSC) на мобилке: Это самое интересное. Приложение v0 использует ту же архитектуру, что и веб-версия. Сервер стримит компоненты прямо на устройство. Это позволяет переиспользовать огромные куски логики.
• Общий код: Благодаря монорепозиторию (Turborepo), они делят типы, утилиты и даже UI-компоненты между Next.js (веб) и Expo (iOS).
• Стриминг: Ощущение "магии", когда код пишется у вас на глазах, реализовано через потоковую передачу данных. Это не просто запрос-ответ, это живой поток токенов от LLM, который рендерится в реальном времени.
• Производительность: Чтобы скролл и анимации были плавными (60fps), тяжелые вычисления вынесены в отдельные потоки или обрабатываются на сервере.
Vercel доказывает, что граница между вебом и нативом стирается. Если у вас уже есть крутая команда React-разработчиков, вам не обязательно нанимать отдельный штат iOS-инженеров, чтобы сделать продукт мирового уровня.
Статья: https://vercel.com/blog/how-we-built-the-v0-ios-app
Платформа: кроссплатформа
👍1
TakeoffKit - современный механизм синхронизации через CloudKit для любой локальной базы данных
TakeoffKit - это библиотека Swift, упрощающая синхронизацию локальных данных с использованием CloudKit, абстрагируясь от его многочисленных сложностей, таких как преобразование CKRecord, ограничение скорости запросов, обработка ошибок и многое другое. Она предоставляет механизм синхронизации, аналогичный CKSyncEngine от Apple, но с более точным контролем и лучшей обратной совместимостью. Механизм синхронизации разработан для работы с любой локальной средой хранения данных — CoreData, SwiftData, Realm и т.д.
TakeoffKit на GitHub: https://github.com/orloff-n/TakeoffKit
Платформа: iOS
⭐️: 25
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
TakeoffKit - это библиотека Swift, упрощающая синхронизацию локальных данных с использованием CloudKit, абстрагируясь от его многочисленных сложностей, таких как преобразование CKRecord, ограничение скорости запросов, обработка ошибок и многое другое. Она предоставляет механизм синхронизации, аналогичный CKSyncEngine от Apple, но с более точным контролем и лучшей обратной совместимостью. Механизм синхронизации разработан для работы с любой локальной средой хранения данных — CoreData, SwiftData, Realm и т.д.
TakeoffKit на GitHub: https://github.com/orloff-n/TakeoffKit
Платформа: iOS
⭐️: 25
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Создание кастомного Toolbar с Jetpack Compose. Подробный разбор всех попыток и решений
Сегодня предлагаю разобрать путь создания кастомного тулбара от первой кривой реализации до оптимизированного решения.
И главная проблема, которую надо решить при создании этого компонента это центрирование noscript и subnoscript. Эта проблема возникает потому что у нас может быть тулбар с разным количеством иконок по обе стороны от заголовка, текстом и иконками или только с noscript. И если ширина иконок у нас стандартна (44 dp), и достаточно просто умножить эту ширину на количество иконок справа, чтобы понять свободное пространство для noscript и subnoscript, то с текстом с одной или с двух сторон всё намного сложнее, так как мы не можем заранее вычислить ширину этого текста, а значит не можем правильно центрировать и задать ширину noscript и subnoscript.
В этой статье я расскажу, как я решил этот вопрос.
Статья: https://habr.com/ru/companies/psb/articles/974368/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Сегодня предлагаю разобрать путь создания кастомного тулбара от первой кривой реализации до оптимизированного решения.
И главная проблема, которую надо решить при создании этого компонента это центрирование noscript и subnoscript. Эта проблема возникает потому что у нас может быть тулбар с разным количеством иконок по обе стороны от заголовка, текстом и иконками или только с noscript. И если ширина иконок у нас стандартна (44 dp), и достаточно просто умножить эту ширину на количество иконок справа, чтобы понять свободное пространство для noscript и subnoscript, то с текстом с одной или с двух сторон всё намного сложнее, так как мы не можем заранее вычислить ширину этого текста, а значит не можем правильно центрировать и задать ширину noscript и subnoscript.
В этой статье я расскажу, как я решил этот вопрос.
Статья: https://habr.com/ru/companies/psb/articles/974368/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Уроки, извлеченные из собеседования по Swift
Некоторое время назад я проходил собеседование в команде разработчиков UI-фреймворка на SwiftUI в крупной компании-поставщике платформ. Поскольку я работал со SwiftUI с момента его выпуска, я был очень рад этой возможности. Но после многих лет работы в качестве независимого разработчика это было моё первое настоящее техническое собеседование за долгое время.
Спойлер: меня не взяли. Но я кое-чему научился в области алгоритмов Swift и тому, как подходить к техническим собеседованиям.
Статья: https://apptractor.ru/info/articles/uroki-izvlechennye-iz-sobesedovaniya-po-swift.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Некоторое время назад я проходил собеседование в команде разработчиков UI-фреймворка на SwiftUI в крупной компании-поставщике платформ. Поскольку я работал со SwiftUI с момента его выпуска, я был очень рад этой возможности. Но после многих лет работы в качестве независимого разработчика это было моё первое настоящее техническое собеседование за долгое время.
Спойлер: меня не взяли. Но я кое-чему научился в области алгоритмов Swift и тому, как подходить к техническим собеседованиям.
Статья: https://apptractor.ru/info/articles/uroki-izvlechennye-iz-sobesedovaniya-po-swift.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
😡2
This media is not supported in your browser
VIEW IN TELEGRAM
Awesome Jetpack Compose Animations - коллекция анимаций Jetpack Compose
Awesome Jetpack Compose Animations - организованная коллекция (24 штуки) классных анимаций для кнопок, карточек, изображений и многого другого — идеально подходит для улучшения ваших приложений и проектов.
Awesome Jetpack Compose Animations на GitHub: https://github.com/Swapnil-J-Patil/Delightful_Animations
Платформа: Android
⭐️: 13
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Awesome Jetpack Compose Animations - организованная коллекция (24 штуки) классных анимаций для кнопок, карточек, изображений и многого другого — идеально подходит для улучшения ваших приложений и проектов.
Awesome Jetpack Compose Animations на GitHub: https://github.com/Swapnil-J-Patil/Delightful_Animations
Платформа: Android
⭐️: 13
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Flutter MethodChannel: как подружить Dart с нативным Android (и iOS)
Сегодня поговорим о том, как Flutter-приложению выйти за пределы чисто Dart-мирка и воспользоваться возможностями родной платформы, например, вызвать API Android или iOS напрямую. Например, есть какая-нибудь классная фича в Android SDK, а в Flutter её нет. Как быть? Ответ — писать собственный плагин и использовать MethodChannel.
Статья: https://habr.com/ru/companies/otus/articles/970094/
Платформа: кроссплатформа
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Сегодня поговорим о том, как Flutter-приложению выйти за пределы чисто Dart-мирка и воспользоваться возможностями родной платформы, например, вызвать API Android или iOS напрямую. Например, есть какая-нибудь классная фича в Android SDK, а в Flutter её нет. Как быть? Ответ — писать собственный плагин и использовать MethodChannel.
Статья: https://habr.com/ru/companies/otus/articles/970094/
Платформа: кроссплатформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
RemoteCompose: другая парадигма SDUI в Jetpack Compose
RemoteCompose всё ещё находится в разработке AndroidX и официально пока не опубликован, однако концепция очень многообещающая.
Сервер перехватывает (capture) любой макет Jetpack Compose и выдает его в компактном сериализованном формате. Это своего рода «скриншот» вашего пользовательского интерфейса, только вместо пикселей вы захватываете фактические инструкции отрисовки. Этот полученный документ содержит всё необходимое для воссоздания пользовательского интерфейса: фигуры, цвета, текст, изображения, анимацию и даже интерактивные области касания. На стороне сервера пишется стандартный код Compose. Не нужно изучать новый DSL (Domain-Specific Language), поддерживать схему JSON или осваивать язык шаблонов. Если вы можете написать это на Compose, вы можете захватить это с помощью RemoteCompose.
В приложении работает простой (платформенный) плеер, который управляет показом и взаимодействием с этим ByteArray. Клиентскому устройству не нужны ваши композабл функции, ваши модели представления или ваша бизнес-логика — ему нужны только байты документа и проигрыватель.
Таким образом, преобразуя макеты Compose в переносимый формат документа, RemoteCompose обеспечивает управляемый сервером пользовательский интерфейс, а значит мгновенное A/B-тестирование, обновление контента в реальном времени и кроссплатформенную согласованность, сохраняя при этом производительность нативного рендеринга. Фреймворк справляется со сложностью сериализации, передачи и рендеринга, позволяя вам сосредоточиться на проектировании превосходного пользовательского опыта.
Статья: https://apptractor.ru/info/news/remotecompose.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
RemoteCompose всё ещё находится в разработке AndroidX и официально пока не опубликован, однако концепция очень многообещающая.
Сервер перехватывает (capture) любой макет Jetpack Compose и выдает его в компактном сериализованном формате. Это своего рода «скриншот» вашего пользовательского интерфейса, только вместо пикселей вы захватываете фактические инструкции отрисовки. Этот полученный документ содержит всё необходимое для воссоздания пользовательского интерфейса: фигуры, цвета, текст, изображения, анимацию и даже интерактивные области касания. На стороне сервера пишется стандартный код Compose. Не нужно изучать новый DSL (Domain-Specific Language), поддерживать схему JSON или осваивать язык шаблонов. Если вы можете написать это на Compose, вы можете захватить это с помощью RemoteCompose.
В приложении работает простой (платформенный) плеер, который управляет показом и взаимодействием с этим ByteArray. Клиентскому устройству не нужны ваши композабл функции, ваши модели представления или ваша бизнес-логика — ему нужны только байты документа и проигрыватель.
Таким образом, преобразуя макеты Compose в переносимый формат документа, RemoteCompose обеспечивает управляемый сервером пользовательский интерфейс, а значит мгновенное A/B-тестирование, обновление контента в реальном времени и кроссплатформенную согласованность, сохраняя при этом производительность нативного рендеринга. Фреймворк справляется со сложностью сериализации, передачи и рендеринга, позволяя вам сосредоточиться на проектировании превосходного пользовательского опыта.
Статья: https://apptractor.ru/info/news/remotecompose.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
XcodeProj - работа с проектами Xcode
XcodeProj — это библиотека от Tuist, написанная на Swift, для анализа и работы с файлами проектов Xcode. С ее помощью можно писать скрипты и автоматизировать задачи в проекте. Например, можно создать скрипт, который будет синхронизировать ключ с версией проекта с текущим тегом в Git, представляющим версию проекта.
XcodeProj на GitHub: https://github.com/tuist/XcodeProj
Платформа: iOS
⭐️: 2.2K
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
XcodeProj — это библиотека от Tuist, написанная на Swift, для анализа и работы с файлами проектов Xcode. С ее помощью можно писать скрипты и автоматизировать задачи в проекте. Например, можно создать скрипт, который будет синхронизировать ключ с версией проекта с текущим тегом в Git, представляющим версию проекта.
XcodeProj на GitHub: https://github.com/tuist/XcodeProj
Платформа: iOS
⭐️: 2.2K
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
•
(iOS Ru) Разбор кода: iOS-приложение для медитации на Swift•
(iOS En) SwiftUI Animated Tab Icons - Symbol Effects Tab Bar•
(iOS En) RichText Notes App - AttributedStrings and SwiftData•
(iOS En) Interactive Map Carousel | MapKit | Map Animations | SwiftUI•
(And Ru) Как сделать приложение за 10 минут? | FlowMVI Часть 1 - Часть 2 - Часть 3•
(And XR) The Android Show | XR Edition•
(And XR) Getting started developing on AI Glasses•
(And XR) What's new in the Android XR SDK for Unity•
(And XR) Designing interfaces for wired XR glasses•
(And XR) Designing audio experiences on AI Glasses•
(And XR) XR Journey: From Snapdragon Spaces to Android XR•
(And XR) Design best practices for display AI Glasses•
(And XR) What's new in the Jetpack XR SDK for immersive experiences•
(And En) Bring your own model - Android Developers Backstage•
(And En) Bottom Nav With Multiple Back Stacks In Navigation3•
(And En) Nested Nav Graphs & Shared ViewModels With Navigation3•
(And En) FaceCut App - Create Beautiful Portraits in minutes•
(Crs En) Why iOS Devs Struggle with KMP (and How to Fix It)•
(Dev Ru) Заменит ли AI разработчика•
(Dev Ru) SWE-агенты — Пишем код, LLM, автономный ИИ•
(Dev Ru) Open Source: альтруизм или скрытая выгода?•
(Dev Ru) Как внедрить ИИ в разработку и подружиться с безопасниками•
(Dev Ru) Как выявлять баги до первой строчки кода: опыт внедрения тест-анализа и тест-дизайна•
(Dev Ru) Как мы делаем больше 10 релизов в день без регрессаПрошлогодние видео:
•
(And Ru) Полный разбор Kotlin Delegated Property•
(Crs Ru) BA x Flutter: взаимодействие отделов, запуск кроссплатформы и почему хорошее ТЗ — бич креативности•
(Dev Ru) Карьера и лидерство в IT•
(Dev Ru) Вся правда о грейдах, ревью и промоушенах•
(Dev Ru) Искусство создания антихрупкого APIPlease open Telegram to view this post
VIEW IN TELEGRAM
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
9 типичных ошибок в Kotlin Flow, которые вы, вероятно, совершаете.
Автор делится своим опытом, собранным в ходе код-ревью реальных Android-проектов. Он отмечает, что, несмотря на всю мощь Kotlin Flow, разработчики часто сталкиваются с неочевидным поведением, которое может приводить к тихой отмене работы, повторному выполнению ресурсоемких операций или неожиданным проблемам с жизненным циклом. В статье подробно рассматриваются девять распространенных ошибок, каждая из которых сопровождается примерами плохого и хорошего кода и краткими практическими правилами, применимыми в реальной разработке.
Статья: https://medium.com/@af2905g/9-kotlin-flow-mistakes-youre-probably-making-c946ad750452
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Автор делится своим опытом, собранным в ходе код-ревью реальных Android-проектов. Он отмечает, что, несмотря на всю мощь Kotlin Flow, разработчики часто сталкиваются с неочевидным поведением, которое может приводить к тихой отмене работы, повторному выполнению ресурсоемких операций или неожиданным проблемам с жизненным циклом. В статье подробно рассматриваются девять распространенных ошибок, каждая из которых сопровождается примерами плохого и хорошего кода и краткими практическими правилами, применимыми в реальной разработке.
Статья: https://medium.com/@af2905g/9-kotlin-flow-mistakes-youre-probably-making-c946ad750452
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM