С появлением Jetpack Compose разработчики Android могут использовать всю мощь Kotlin для создания компонентов пользовательского интерфейса, отказавшись от традиционных XML-макетов. Однако интеграция векторных активов, таких как иконки, часто все еще зависит от использования ресурсов Android Vector Drawables (AVD/XML).
SVG to Compose - набор инструментов для преобразования файлов SVG или Android Vector Drawable (AVD/XML) в иконки Jetpack Compose. Этот проект предоставляет утилиту командной строки для ручного преобразования и плагин Gradle для автоматизации преобразования в процессе сборки.
Этот проект призван упростить интеграцию векторных ресурсов в приложения Compose, предоставляя инструменты, которые конвертируют файлы SVG или AVD непосредственно в объекты Compose ImageVector, следуя тому же подходу, который используется для Material Icons от Google.
SVG to Compose на GitHub: https://github.com/rafaeltonholo/noscript-to-compose
Платформа: Android
⭐️: 103
SVG to Compose - набор инструментов для преобразования файлов SVG или Android Vector Drawable (AVD/XML) в иконки Jetpack Compose. Этот проект предоставляет утилиту командной строки для ручного преобразования и плагин Gradle для автоматизации преобразования в процессе сборки.
Этот проект призван упростить интеграцию векторных ресурсов в приложения Compose, предоставляя инструменты, которые конвертируют файлы SVG или AVD непосредственно в объекты Compose ImageVector, следуя тому же подходу, который используется для Material Icons от Google.
SVG to Compose на GitHub: https://github.com/rafaeltonholo/noscript-to-compose
Платформа: Android
⭐️: 103
👍2🔥2👎1
Изогнутое нижнее меню в Jetpack Compose
Сегодня я покажу вам, как создать изогнутое нижнее меню в Jetpack Compose.
Статья: https://apptractor.ru/info/articles/izognutoe-nizhnee-menyu-v-jetpack-compose.html
Платформа: Android
Сегодня я покажу вам, как создать изогнутое нижнее меню в Jetpack Compose.
Статья: https://apptractor.ru/info/articles/izognutoe-nizhnee-menyu-v-jetpack-compose.html
Платформа: Android
👍1
MotionMachine предоставляет модульную, мощную и универсальную платформу для манипулирования значениями, будь то анимация UI элементов или интерполяция значений свойств в ваших собственных классах. Она предлагает разумную функциональность по умолчанию, которая абстрагирует большую часть сложной работы, позволяя вам сосредоточиться на работе. Несмотря на то, что MotionMachine не зависит от типов, он поддерживает большинство основных типов UIKit и предоставляет “синтаксический сахар” для удобной работы с ними. Но его также легко модифицировать под свои нужды, будь то пользовательские классы движений, поддержка пользовательских типов значений или новые уравнения плавности.
• Анимационный движок, созданный с нуля (не привязан к Core Animation).
• Анимируйте системные свойства, UIView или любые общие классы, используя множество уравнений плавности.
• Предоставляет статические и основанные на физике классы движения для изменения нескольких значений свойств, и оба поддерживают аддитивную анимацию.
• Предоставляет статические и основанные на физике классы движения, которые могут анимировать CGPoint вдоль CGPath, даже часть пути.
• Все классы движений могут быть сгруппированы, последовательны и вложены друг в друга в любом порядке, а реверсивные и повторяющиеся действия могут применяться на любом уровне.
• Мощная модульность - большинство аспектов могут быть настроены или полностью заменены в соответствии с вашими конкретными потребностями.
• Полностью протестирован
• Полностью документирован
MotionMachine на GitHub: https://github.com/poetmountain/MotionMachine
Платформа: iOS
⭐️: 380
• Анимационный движок, созданный с нуля (не привязан к Core Animation).
• Анимируйте системные свойства, UIView или любые общие классы, используя множество уравнений плавности.
• Предоставляет статические и основанные на физике классы движения для изменения нескольких значений свойств, и оба поддерживают аддитивную анимацию.
• Предоставляет статические и основанные на физике классы движения, которые могут анимировать CGPoint вдоль CGPath, даже часть пути.
• Все классы движений могут быть сгруппированы, последовательны и вложены друг в друга в любом порядке, а реверсивные и повторяющиеся действия могут применяться на любом уровне.
• Мощная модульность - большинство аспектов могут быть настроены или полностью заменены в соответствии с вашими конкретными потребностями.
• Полностью протестирован
• Полностью документирован
MotionMachine на GitHub: https://github.com/poetmountain/MotionMachine
Платформа: iOS
⭐️: 380
❤1
Настройка Sora Editor
В статье хочу показать как настроить SoraEditor от Resomoe. А конкретно то цветовую схему, язык и простые сниппеты. Так как я не нашел статей по этой теме, а также оффициальная документация в некоторых местах противоречива и не доделана, я решил написать данную статью. Весь код в статье будет на Java.
Статья: https://habr.com/ru/articles/863272/
Платформа: Android
В статье хочу показать как настроить SoraEditor от Resomoe. А конкретно то цветовую схему, язык и простые сниппеты. Так как я не нашел статей по этой теме, а также оффициальная документация в некоторых местах противоречива и не доделана, я решил написать данную статью. Весь код в статье будет на Java.
Статья: https://habr.com/ru/articles/863272/
Платформа: Android
Портал, манулы и мячи: опыт разработки для Apple Vision Pro. Часть 2
В первой части статьи я рассказал о двух мини-играх, которые мы с командой разработали для Apple Vision Pro для хакатона Ludum Dare, и особенностях работы с дополненной реальностью. В этой – поделюсь опытом индивидуальной разработки для гарнитуры, общими впечатлениями о работе с ней и несколькими идеями разработки под неё.
Статья: https://habr.com/ru/articles/863046/
Платформа: iOS
В первой части статьи я рассказал о двух мини-играх, которые мы с командой разработали для Apple Vision Pro для хакатона Ludum Dare, и особенностях работы с дополненной реальностью. В этой – поделюсь опытом индивидуальной разработки для гарнитуры, общими впечатлениями о работе с ней и несколькими идеями разработки под неё.
Статья: https://habr.com/ru/articles/863046/
Платформа: iOS
Удобная навигация в SwiftUI для iOS 16 и выше
Со временем я перепробовал множество методов навигации, но этот оказался самым удачным и приятным для меня в реализации. Этот пример хорошо масштабируется как по горизонтали, так и по вертикали и отлично подходит для покрытия UI и Unit-тестами.
Статья: https://apptractor.ru/info/articles/udobnaya-navigatsiya-v-swiftui-dlya-ios-16-i-vyshe.html
Платформа: iOS
Со временем я перепробовал множество методов навигации, но этот оказался самым удачным и приятным для меня в реализации. Этот пример хорошо масштабируется как по горизонтали, так и по вертикали и отлично подходит для покрытия UI и Unit-тестами.
Статья: https://apptractor.ru/info/articles/udobnaya-navigatsiya-v-swiftui-dlya-ios-16-i-vyshe.html
Платформа: iOS
AppTractor
Удобная навигация в SwiftUI для iOS 16 и выше
Со временем я перепробовал множество методов навигации, но этот оказался самым удачным и приятным для меня в реализации.
От Kotlin до машинного кода
В этой небольшой статье разберем большой путь, который проходит код Android-приложения от написания в IDE до выполнения на устройстве. Разберем, какие трансформации претерпевает код на каждом этапе, как можно посмотреть их результат, и для чего это может пригодиться.
Статья: https://habr.com/ru/articles/863146/
Платформа: Android
В этой небольшой статье разберем большой путь, который проходит код Android-приложения от написания в IDE до выполнения на устройстве. Разберем, какие трансформации претерпевает код на каждом этапе, как можно посмотреть их результат, и для чего это может пригодиться.
Статья: https://habr.com/ru/articles/863146/
Платформа: Android
Aerial Views - скринсейвер для устройств Android TV, включая Nvidia Shield, Fire TV и Chromecast с Google TV. Вдохновлен скринсейвером Apple TV. Поддерживает 4K Dolby Vision (HDR) видео, содержит более 150 видео от Apple, Jetson Creative и пр., проигрывает видео из разных локальных источников, есть защита от выгорания QD/OLED и пр.
Aerial Views на GitHub: https://github.com/theothernt/AerialViews
Платформа: Android
⭐️: 524
Aerial Views на GitHub: https://github.com/theothernt/AerialViews
Платформа: Android
⭐️: 524
Cursor AI в iOS-разработке. Приложение «Фото с Flickr.com»
Мне хотелось посмотреть, как работает ИИ Редактор кода Cursor AI на примере создания iOS приложения с выборкой данных с ресурса, который не требует API key и платной подписки. И этим ресурсом оказались публичные фотографии с Flickr.com.
Статья: https://habr.com/ru/articles/863314/
Платформа: iOS
Мне хотелось посмотреть, как работает ИИ Редактор кода Cursor AI на примере создания iOS приложения с выборкой данных с ресурса, который не требует API key и платной подписки. И этим ресурсом оказались публичные фотографии с Flickr.com.
Статья: https://habr.com/ru/articles/863314/
Платформа: iOS
Вопперы и табы: как мы сделали меню для Burger King
В прошлом году у нашей Android-команды на проекте Burger King был мощный вызов: сделать редизайн главного меню. Задача была непростая по двум причинам.
Первая — легаси код. Вторая — А/В тестирование.
И результат — старое меню и его логику нужно сохранить. Мы решили написать меню с нуля. Так было бы проще организовать А/В тест и потом избавиться от старого меню (не волнуйтесь, при создании нового меню ни один воппер не пострадал).
Статья: https://habr.com/ru/companies/surfstudio/articles/861264/
Платформа: Android
В прошлом году у нашей Android-команды на проекте Burger King был мощный вызов: сделать редизайн главного меню. Задача была непростая по двум причинам.
Первая — легаси код. Вторая — А/В тестирование.
И результат — старое меню и его логику нужно сохранить. Мы решили написать меню с нуля. Так было бы проще организовать А/В тест и потом избавиться от старого меню (не волнуйтесь, при создании нового меню ни один воппер не пострадал).
Статья: https://habr.com/ru/companies/surfstudio/articles/861264/
Платформа: Android
Как я уменьшил размер банковского приложения для iOS на 50%
TPBank - это мое вьетнамское банковское приложение, которым я пользуюсь каждый день уже 6 лет. Недавно я впервые посмотрел на размер приложения и был шокирован.
650 МБ. В 2 раза больше, чем средний размер банковского приложения в стране.
Мне стало любопытно, и я решил разобраться в этом.
В этой статье я расскажу о том, что мне удалось обнаружить, и о некоторых решениях, позволяющих сократить размер приложения вдвое. Надеюсь, вы сможете чему-то научиться и применить эти приемы в своем iOS-проекте.
Статья: https://apptractor.ru/info/articles/kak-ya-umenshil-razmer-bankovskogo-prilozheniya-dlya-ios-na-50.html
Платформа: iOS
TPBank - это мое вьетнамское банковское приложение, которым я пользуюсь каждый день уже 6 лет. Недавно я впервые посмотрел на размер приложения и был шокирован.
650 МБ. В 2 раза больше, чем средний размер банковского приложения в стране.
Мне стало любопытно, и я решил разобраться в этом.
В этой статье я расскажу о том, что мне удалось обнаружить, и о некоторых решениях, позволяющих сократить размер приложения вдвое. Надеюсь, вы сможете чему-то научиться и применить эти приемы в своем iOS-проекте.
Статья: https://apptractor.ru/info/articles/kak-ya-umenshil-razmer-bankovskogo-prilozheniya-dlya-ios-na-50.html
Платформа: iOS
Выделение текста в Compose
Недавно я наткнулся на несколько ИИ-приложений, переводящих текст в речь, и заметил, что у них есть одна общая особенность в пользовательском интерфейсе - выделение в тексте проговариваемого слова. Мне стало любопытно, как это можно сделать в композите Text, так что давайте разбираться!
Я не буду вдаваться в подробности того, как выделение слова синхронизируется с тем, что говорит приложение, поэтому давайте просто создадим текст и несколько кнопок для управления положением выделения.
Статья: https://apptractor.ru/info/articles/vydelenie-slov-v-compose.html
Платформа: Android
Недавно я наткнулся на несколько ИИ-приложений, переводящих текст в речь, и заметил, что у них есть одна общая особенность в пользовательском интерфейсе - выделение в тексте проговариваемого слова. Мне стало любопытно, как это можно сделать в композите Text, так что давайте разбираться!
Я не буду вдаваться в подробности того, как выделение слова синхронизируется с тем, что говорит приложение, поэтому давайте просто создадим текст и несколько кнопок для управления положением выделения.
Статья: https://apptractor.ru/info/articles/vydelenie-slov-v-compose.html
Платформа: Android
SFBAudioEngine - это библиотека для работы с разными аудио-форматами для macOS, iOS и tvOS. SFBAudioEngine поддерживает кодирование, декодирование, воспроизведение и преобразование для Ogg, Monkey's Audio, Musepack, Shorten, True Audio, WavPack и других форматов.
SFBAudioEngine на GitHub: https://github.com/sbooth/SFBAudioEngine
Платформа: iOS
⭐️: 574
SFBAudioEngine на GitHub: https://github.com/sbooth/SFBAudioEngine
Платформа: iOS
⭐️: 574
👍1
Видео и подкасты за неделю на @AppFiles
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
#ios #android #mobile #video
•
(iOS Ru) Как мы внедряли пакетный менеджер и поняли всё про iOS-зависимости•
(iOS Ru) Как мы сделали внутренний сервис в The Composable Architecture•
(iOS En) Why not build Apple Intelligence ourselves?•
(iOS En) How to Limit the Xcode Console Spam with CloudKit and SwiftData•
(iOS En) SwiftUI App Intro Animation's - Walkthrough Page Animation's•
(iOS En) Extract UIKit View From SwiftUI View•
(iOS En) Swift Testing 101 - Xcode 16 Tutorial•
(And Ru) Как мы использовали Dynamic Feature Delivery на Android•
(And Ru) Как в Яндекс Музыке пишут визард с помощью Jetpack Compose•
(And Ru) Gradle уже не тот! Мнение билд инженера•
(And En) Clipping and masking | Jetpack Compose Tips•
(And En) How to Create a One-Time Password TextField in Jetpack Compose•
(And En) Immutable and Persistent Lists•
(And En) Hot Reload Magic•
(Crs En) UUID in Kotlin Multiplatform•
(Crs En) How to Manage Run-Time Permissions in Android and iOS with Compose Multiplatform•
(Dev Ru) Как повысить свою ценность в ИТ: в поиске новых компетенций•
(Dev Ru) Карьерный маршрут: от мидла до архитектора ПО•
(Dev Ru) Построение event-driven приложения с Apache Flink•
(Dev Ru) От исполнителя до менеджера менеджеров: что поможет, а что не спасет•
(Dev Ru) PL/SQL – SQL на стероидах: Oracle, энтерпрайз, базы данных•
(Mrk En) Playtime EMEA 2024#ios #android #mobile #video
Особенности использования сторонних сервисов в мобильных приложениях на примере Firebase
Сегодня мы затронем очень интересную тему — сервисы Firebase. Поговорим об их применении в мобильных приложениях и о том, как обеспечить их безопасность. Эта статья призвана обратить внимание разработчиков и ИБ-специалистов на внешние сервисы, которые используют приложения, поскольку они часто остаются без должного внимания и аудита. Очень надеемся, что после прочтения вы начнёте по-другому смотреть на безопасность мобильных продуктов, ведь они обмениваются данными не только с собственными серверами, но и с многими другими.
Статья: https://habr.com/ru/companies/swordfish_security/articles/864190/
Платформа: разработка
Сегодня мы затронем очень интересную тему — сервисы Firebase. Поговорим об их применении в мобильных приложениях и о том, как обеспечить их безопасность. Эта статья призвана обратить внимание разработчиков и ИБ-специалистов на внешние сервисы, которые используют приложения, поскольку они часто остаются без должного внимания и аудита. Очень надеемся, что после прочтения вы начнёте по-другому смотреть на безопасность мобильных продуктов, ведь они обмениваются данными не только с собственными серверами, но и с многими другими.
Статья: https://habr.com/ru/companies/swordfish_security/articles/864190/
Платформа: разработка
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Jetpack Compose Animations - примеры анимация на Compose. Прилагаются две статьи, которые объясняют принципы создания.
Jetpack Compose Animations на GitHub: https://github.com/canopas/compose-animations-examples
Платформа: Android
⭐️: 387
Jetpack Compose Animations на GitHub: https://github.com/canopas/compose-animations-examples
Платформа: Android
⭐️: 387
❤1
Пишем транзишинометр для Андроид. Как понять, что мои экраны открываются быстро?
Кто мы? Андроид-разработчики! Чего мы хотим? Чтобы наши списочки не подлагивали, анимашечки крутились плавно, а переходы между экранами были такими, что глаз радуется. Одним словом: чтобы интерфейс был плавным и отзывчивым, а переходы экранов — быстрыми. Чтобы быть уверенным, что всё действительно плавно и чётко, надо замерять! Но что замерять? Как измерить ту самую плавность, как оценить гладкость анимаций? У кого-нибудь есть плавнометр? Или может у вас есть транзишинометр?
Google даёт нам Macrobenchmark и JunkStats — инструменты для оценки общей отзывчивости и стабильности интерфейса, наши плавнометры. Но этого недостаточно для того, чтобы понять, быстро ли у нас открываются экраны.
Мы поговорим, почему это так, и о том, как правильно оценивать время открытия экрана, ведь это один из самых заметных для пользователя моментов. Будем делать наш транзишинометр и замерять рендер экрана до первого onDraw и до последнего! И не переживайте! Мы посмотрим на то, как это делается и во Fragments, и в Compose.
Статья: https://habr.com/ru/companies/dododev/articles/862646/
Платформа: Android
Кто мы? Андроид-разработчики! Чего мы хотим? Чтобы наши списочки не подлагивали, анимашечки крутились плавно, а переходы между экранами были такими, что глаз радуется. Одним словом: чтобы интерфейс был плавным и отзывчивым, а переходы экранов — быстрыми. Чтобы быть уверенным, что всё действительно плавно и чётко, надо замерять! Но что замерять? Как измерить ту самую плавность, как оценить гладкость анимаций? У кого-нибудь есть плавнометр? Или может у вас есть транзишинометр?
Google даёт нам Macrobenchmark и JunkStats — инструменты для оценки общей отзывчивости и стабильности интерфейса, наши плавнометры. Но этого недостаточно для того, чтобы понять, быстро ли у нас открываются экраны.
Мы поговорим, почему это так, и о том, как правильно оценивать время открытия экрана, ведь это один из самых заметных для пользователя моментов. Будем делать наш транзишинометр и замерять рендер экрана до первого onDraw и до последнего! И не переживайте! Мы посмотрим на то, как это делается и во Fragments, и в Compose.
Статья: https://habr.com/ru/companies/dododev/articles/862646/
Платформа: Android
❤2👍1
Самые популярные видео WWDC24
Apple Intelligence, Apple Vision Pro, Swift 6, Xcode 16 и все, что было между ними, - это был захватывающий год. Вдохновитесь самыми популярными видео с WWDC 2024.
Плейлист: https://www.youtube.com/playlist?list=PLjODKV8YBFHYDZEQ7xPQk2RYT4Y1pgNIB
Платформа: iOS
Apple Intelligence, Apple Vision Pro, Swift 6, Xcode 16 и все, что было между ними, - это был захватывающий год. Вдохновитесь самыми популярными видео с WWDC 2024.
Плейлист: https://www.youtube.com/playlist?list=PLjODKV8YBFHYDZEQ7xPQk2RYT4Y1pgNIB
Платформа: iOS
❤3
Xcbeautify - украшатель xcodebuild, более быстрая альтернатива xcpretty, написанная на Swift.
Фичи: читаемый и подсвеченный вывод, поддержка вывода новой системы сборки, поддержка параллельного вывода тестирования в Xcode, поддержка форматирования вывода менеджера пакетов Swift, поддержка генерации отчетов JUnit, поддержка macOS и Linux, xcbeautify компилируется в статичный бинарник, который можно взять с собой куда угодно (это также означает меньшую зависимость от Ruby в вашей среде разработки и CI).
Xcbeautify на GitHub: https://github.com/cpisciotta/xcbeautify
Платформа: iOS
⭐️: 1K
Фичи: читаемый и подсвеченный вывод, поддержка вывода новой системы сборки, поддержка параллельного вывода тестирования в Xcode, поддержка форматирования вывода менеджера пакетов Swift, поддержка генерации отчетов JUnit, поддержка macOS и Linux, xcbeautify компилируется в статичный бинарник, который можно взять с собой куда угодно (это также означает меньшую зависимость от Ruby в вашей среде разработки и CI).
Xcbeautify на GitHub: https://github.com/cpisciotta/xcbeautify
Платформа: iOS
⭐️: 1K
❤1
Passage - это библиотека Kotlin Multiplatform, предназначенная для упрощения процессов аутентификации на платформах Android и iOS. Построенная на базе Firebase Authentication, Passage абстрагирует общие операции и предоставляет composable API для управления аутентификацией с помощью популярных провайдеров, таких как Google, Apple и Email/Password.
Passage на GitHub: https://github.com/Tweener/passage
Платформа: Android/кроссплатформа
⭐️: 29
Passage на GitHub: https://github.com/Tweener/passage
Платформа: Android/кроссплатформа
⭐️: 29
👍1