Navigation Compose Typed - compile-time type-safe аргументы для библиотеки Jetpack Navigation Compose. Основано на KotlinX.Serialization.
Основные возможности:
• Поддержка сложных типов, включая nullability для примитивных типов - единственным условием является то, что тип должен быть сериализуемым с помощью библиотеки KotlinX.Serializable.
• Библиотека основана на официальном плагине компилятора Kotlin Serialization - никаких замедлений при работе с KSP или KAPT.
• Все функции Jetpack Navigation Compose: например, navigateUp() после перехода по глубокой ссылке сохраняет общие аргументы верхнего уровня.
• Несколько простых функций, никаких новых сложных типов NavHost или NavController; это позволяет покрыть другие расширения Jetpack Navigation Compose.
• Постепенная интеграция, можно внедрять только в часть своего приложения.
Navigation Compose Type на GitHub: https://github.com/kiwicom/navigation-compose-typed
Платформа: Android
⭐️: 195
Основные возможности:
• Поддержка сложных типов, включая nullability для примитивных типов - единственным условием является то, что тип должен быть сериализуемым с помощью библиотеки KotlinX.Serializable.
• Библиотека основана на официальном плагине компилятора Kotlin Serialization - никаких замедлений при работе с KSP или KAPT.
• Все функции Jetpack Navigation Compose: например, navigateUp() после перехода по глубокой ссылке сохраняет общие аргументы верхнего уровня.
• Несколько простых функций, никаких новых сложных типов NavHost или NavController; это позволяет покрыть другие расширения Jetpack Navigation Compose.
• Постепенная интеграция, можно внедрять только в часть своего приложения.
Navigation Compose Type на GitHub: https://github.com/kiwicom/navigation-compose-typed
Платформа: Android
⭐️: 195
Result builders in Swift
Конструктор результатов можно рассматривать как встроенный предметно-ориентированный язык (DSL) для сбора деталей, которые объединяются в конечный результат. Конструкторы результатов в Swift позволяют создавать результат, используя "блоки сборки", расположенные в ряд друг за другом.
Статья: https://habr.com/ru/articles/813393/
Платформа: iOS
Конструктор результатов можно рассматривать как встроенный предметно-ориентированный язык (DSL) для сбора деталей, которые объединяются в конечный результат. Конструкторы результатов в Swift позволяют создавать результат, используя "блоки сборки", расположенные в ряд друг за другом.
Статья: https://habr.com/ru/articles/813393/
Платформа: iOS
Открываем AndroidFragment: перенос навигации из Фрагментов в Compose
Я очень рад появлению AndroidFragment, потому что нам больше не надо переписывать всех фрагменты в композабл, прежде чем мы сможем перейти на навигацию на основе Compose. Это позволит нам переходить на Compose постепенно, что является огромным преимуществом!
Статья: https://apptractor.ru/info/articles/otkryvaem-androidfragment-perenos-navigatsii-iz-fragmentov-v-compose.html
Платформа: Android
Я очень рад появлению AndroidFragment, потому что нам больше не надо переписывать всех фрагменты в композабл, прежде чем мы сможем перейти на навигацию на основе Compose. Это позволит нам переходить на Compose постепенно, что является огромным преимуществом!
Статья: https://apptractor.ru/info/articles/otkryvaem-androidfragment-perenos-navigatsii-iz-fragmentov-v-compose.html
Платформа: Android
Просим ИИ сделать рефакторинг Swift кода
Это некрасиво, но работает. Поэтому мне стало интересно, как бы инструменты искусственного интеллекта предложили мне его изменить. Ниже приведены результаты, полученные по одному и тому же запросу.
Статья: https://apptractor.ru/develop/coding/prosim-ii-sdelat-refaktoring-swift-koda.html
Платформа: ИИ
Это некрасиво, но работает. Поэтому мне стало интересно, как бы инструменты искусственного интеллекта предложили мне его изменить. Ниже приведены результаты, полученные по одному и тому же запросу.
Статья: https://apptractor.ru/develop/coding/prosim-ii-sdelat-refaktoring-swift-koda.html
Платформа: ИИ
Atoms предлагает простую, но практичную возможность справиться со сложностью современных приложений. Библиотека эффективно интегрирует решения для управления состоянием и инъекции зависимостей, позволяя нам быстро создавать надежные и тестируемые приложения. Построение состояния путем композиции атомов автоматически оптимизирует рендеринг на основе графа зависимостей. Это решает проблему снижения производительности, вызванную дополнительным повторным рендерингом, который происходит раньше, чем вы это осознаете.
Atoms на GitHub: https://github.com/ra1028/swiftui-atom-properties
Платформа: iOS
⭐️: 264
Atoms на GitHub: https://github.com/ra1028/swiftui-atom-properties
Платформа: iOS
⭐️: 264
Карантин UI-тестов в iOS
Рано или поздно большое количество UI-тестов скорее всего начнут тормозить разработку, потому что их стабильность зависит от множества факторов: стенды (API), инфраструктура (обновление Xcode, машин, СI), кодовая база. Даже из‑за проблем в самом XCUITest тесты могут начать выдавать аномалии.
Статья: https://habr.com/ru/companies/hh/articles/807351/
Платформа: iOS
Рано или поздно большое количество UI-тестов скорее всего начнут тормозить разработку, потому что их стабильность зависит от множества факторов: стенды (API), инфраструктура (обновление Xcode, машин, СI), кодовая база. Даже из‑за проблем в самом XCUITest тесты могут начать выдавать аномалии.
Статья: https://habr.com/ru/companies/hh/articles/807351/
Платформа: iOS
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Как мы реализовали кнопку со свайпом на Jetpack Compose
В одном из наших продуктов мы тесно работаем с подписанием электронных документов. Электронная подпись документа — это юридически значимая операция, и для того, чтобы пользователь случайно не подписал документ, наши дизайнеры предложили сделать данное действие не по нажатию, а по проведению жеста свайпом. В этой статье расскажу, как мы реализовали такое решение с использованием Jetpack Compose.
Статья: https://habr.com/ru/companies/skbkontur/articles/811877/
Платформа: Android
В одном из наших продуктов мы тесно работаем с подписанием электронных документов. Электронная подпись документа — это юридически значимая операция, и для того, чтобы пользователь случайно не подписал документ, наши дизайнеры предложили сделать данное действие не по нажатию, а по проведению жеста свайпом. В этой статье расскажу, как мы реализовали такое решение с использованием Jetpack Compose.
Статья: https://habr.com/ru/companies/skbkontur/articles/811877/
Платформа: Android
Notion на Android теперь запускается в два раза быстрее
Сегодня приложение Notion для Android запускается более чем в два раза быстрее, чем в начале 2023 года. В этой статье описаны некоторые шаги, которые мы предприняли для повышения производительности, а также наши постоянные усилия по улучшению мобильного опыта для всех наших пользователей Android.
Статья: https://apptractor.ru/info/articles/notion-na-android-teper-zapuskaetsya-v-dva-raza-bystree.html
Платформа: Android
Подборка статей про оптимизацию запуска приложений: https://apptractor.ru/develop/vremya-zapuska.html
Сегодня приложение Notion для Android запускается более чем в два раза быстрее, чем в начале 2023 года. В этой статье описаны некоторые шаги, которые мы предприняли для повышения производительности, а также наши постоянные усилия по улучшению мобильного опыта для всех наших пользователей Android.
Статья: https://apptractor.ru/info/articles/notion-na-android-teper-zapuskaetsya-v-dva-raza-bystree.html
Платформа: Android
Подборка статей про оптимизацию запуска приложений: https://apptractor.ru/develop/vremya-zapuska.html
❤1🔥1
Почему я верю в востребованность кроссплатформы и Flutter в частности?
Сколько помню себя, в IT никогда не утихали споры насчёт ультимативности одного стека технологий для мобильной разработки по отношению к другому. Что же лучше: Android/iOS vs ReactNative/Flutter, React Native vs Flutter, KMM против всех и иже с ними? В разные периоды времени эти споры то разгораются, подогреваемые релизом новых технологий и их обновлений, то затухают, когда спорщики в итоге остаются при своем мнении. Но холивар — не цель этой статьи.
Сегодня я хотел бы порассуждать на тему того, почему я считаю кроссплатформенную разработку (в контексте мобильных устройств) востребованной на длительном горизонте времени и почему я считаю Flutter одним из бенефициаров этого тренда.
Статья: https://habr.com/ru/companies/betboom/articles/812773/
Платформа: кроссплатформа
Сколько помню себя, в IT никогда не утихали споры насчёт ультимативности одного стека технологий для мобильной разработки по отношению к другому. Что же лучше: Android/iOS vs ReactNative/Flutter, React Native vs Flutter, KMM против всех и иже с ними? В разные периоды времени эти споры то разгораются, подогреваемые релизом новых технологий и их обновлений, то затухают, когда спорщики в итоге остаются при своем мнении. Но холивар — не цель этой статьи.
Сегодня я хотел бы порассуждать на тему того, почему я считаю кроссплатформенную разработку (в контексте мобильных устройств) востребованной на длительном горизонте времени и почему я считаю Flutter одним из бенефициаров этого тренда.
Статья: https://habr.com/ru/companies/betboom/articles/812773/
Платформа: кроссплатформа
Хабр
Почему я верю в востребованность кроссплатформы и Flutter в частности?
Итак, здравствуйте! Меня зовут Никита Синявин, я разработчик мобильных приложений и лид команды Flutter‑разработчиков в компании BetBoom. Также я веду свой личный блог, развиваю...
TetherFi - приложение для шаринга интернет-соединения на смартфоне. Оно работает, создавая группу Wi-Fi Direct и HTTP-прокси-сервер. Другие устройства могут подключаться к транслируемой сети Wi-Fi и выходить в Интернет, установив настройки прокси-сервер. Для использования TetherFi вам не нужен тарифный план с раздачей интернета, но приложение лучше всего работает с "безлимитными" тарифными планами.
TetherFi использует службу Foreground Service для создания долговременной сети Wi-Fi Direct, к которой могут подключаться другие устройства. Подключенные устройства могут обмениваться сетевыми данными между собой. Пользователь полностью контролирует эту службу Foreground Service и может явно выбирать, когда ее включать и выключать.
TetherFi все еще находится в процессе разработки и не работает не для всех приложений.
TetherFi на GitHub: https://github.com/pyamsoft/tetherfi
Платформа: Android
⭐️: 249
TetherFi использует службу Foreground Service для создания долговременной сети Wi-Fi Direct, к которой могут подключаться другие устройства. Подключенные устройства могут обмениваться сетевыми данными между собой. Пользователь полностью контролирует эту службу Foreground Service и может явно выбирать, когда ее включать и выключать.
TetherFi все еще находится в процессе разработки и не работает не для всех приложений.
TetherFi на GitHub: https://github.com/pyamsoft/tetherfi
Платформа: Android
⭐️: 249
SwiftSecurity - это современный Swift API для фреймворка безопасности Apple Security (Keychain API, SharedWebCredentials API и т.д.). Защитить данные, которыми управляет ваше приложение, гораздо проще с помощью проверок во время компиляции.
Особенности:
• Поддерживает все классы элементов Keychain (Generic & Internet Password, Key, Certificate и Identity).
• Предотвращает создание неправильного набора атрибутов для элементов.
• Совместим с CryptoKit и SwiftUI.
• Очищен от устаревших и неактуальных вызовов.
SwiftSecurity на GitHub: https://github.com/dm-zharov/swift-security
Платформа: iOS
⭐️: 62
Особенности:
• Поддерживает все классы элементов Keychain (Generic & Internet Password, Key, Certificate и Identity).
• Предотвращает создание неправильного набора атрибутов для элементов.
• Совместим с CryptoKit и SwiftUI.
• Очищен от устаревших и неактуальных вызовов.
SwiftSecurity на GitHub: https://github.com/dm-zharov/swift-security
Платформа: iOS
⭐️: 62
❤2🤮2💩2🤡2
Видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Посоветуйте в комментариях интересные каналы по мобильной или не очень разработке? 🌐 @AppFiles
•
(iOS Ru) TextField с автодополнением•
(iOS Ru) SwiftUI-навигация: просто, нативно и декларативно•
(iOS Ru) Удивительный мир внутри .ipa•
(iOS Ru) Core Motion framework в финансовых приложениях•
(iOS En) Unlock the power of grammatical agreement•
(iOS En) Animate symbols in your app•
(iOS En) Inspectors in SwiftUI: Discover the details•
(iOS En) Demystify SwiftUI performance•
(iOS En) SwiftUI Stacked ScrollView•
(iOS En) Syncing ScrollView's + Swipe To Dismiss•
(And Ru) Путешествие к центру Композиции•
(And Ru) Scout: новый фреймворк для ускоренного и безболезненного управления зависимостями•
(And Ru) Компиляторные плагины: модификация и анализ Сompose•
(And Ru) Как я code coverage внедрял да Gradle plugin для baseline писал•
(And En) What's new in Android•
(And En) What's new in Google Play•
(And En) Все видео Google I/O 2024•
(And En) Мобайл на Google I/O 2024•
(And En) Все воркшопы Google I/O 2024•
(And En) Дизайн на Google I/O 2024•
(And En) Type-Safe Navigation with the OFFICIAL Compose Navigation Library•
(And En) How to Implement a Shared Element Transition In Jetpack Compose•
(And En) Mastering Kotlin in 7 Steps•
(And En) Looking Forward to Kotlin 2.0•
(Crs Ru) Полнодуплексное соединение во Flutter•
(Crs En) How to Share ViewModels in Compose Multiplatform (with Dependency Injection!)•
(Dev Ru) Особенности построения интерфейса для разных платформ•
(Dev Ru) Грабим Дома на Собеседовании в Google (+ другие вопросы с собеседований)•
(Dev Ru) Avito QA meetup•
(Dev En) Quantum Computing Course – Math and Theory for BeginnersПосоветуйте в комментариях интересные каналы по мобильной или не очень разработке? 🌐 @AppFiles
AppTractor
TextField с автодополнением
Делаем поле ввода текста с автоматическим показом подсказок.
TimecodeKit - самая надежная, точная и полная библиотека Swift для работы с таймкодами SMPTE/EBU. Поддерживает 22 частоты кадров таймкодов, набор преобразований, вычислений и интеграций с AV-фреймворками Apple.
Таймкоды - это стандарты для адресации видеокадров. Они используются при записи видео (BITC), а также для отображения в DAW (Digital Audio Workstation) или в приложениях для воспроизведения/редактирования видео.
TimecodeKit на GitHub: https://github.com/orchetect/TimecodeKit
Платформа: iOS
⭐️: 80
Таймкоды - это стандарты для адресации видеокадров. Они используются при записи видео (BITC), а также для отображения в DAW (Digital Audio Workstation) или в приложениях для воспроизведения/редактирования видео.
TimecodeKit на GitHub: https://github.com/orchetect/TimecodeKit
Платформа: iOS
⭐️: 80
Как я доказывал Google, что мне нужны данные юзеров, но я не скамер
Сегодня поделюсь темой, из-за которой я фрустрировал три месяца, столько же общался с проверяющими из около-гугловой компании, наблюдая, как наше приложение теряет баллы в сторе. Речь пойдёт про спортивный челлендж. Именно так, вы не ослышались. Однажды мы пригласили сотрудников посоревноваться в количестве шагов. Согласовали дизайн челленджа, выбрали название — Alfa Energy, раздали задачи продуктовой команде.
На мне, как обычно, была реализация этого функционала на Андроид в паре со вторым разрабом. А я всегда говорил: хочешь спокойствия — выбирай Айфон, хочешь веселья — Андроид.
Статья: https://habr.com/ru/companies/alfa/articles/811835/
Платформа: Android
Сегодня поделюсь темой, из-за которой я фрустрировал три месяца, столько же общался с проверяющими из около-гугловой компании, наблюдая, как наше приложение теряет баллы в сторе. Речь пойдёт про спортивный челлендж. Именно так, вы не ослышались. Однажды мы пригласили сотрудников посоревноваться в количестве шагов. Согласовали дизайн челленджа, выбрали название — Alfa Energy, раздали задачи продуктовой команде.
На мне, как обычно, была реализация этого функционала на Андроид в паре со вторым разрабом. А я всегда говорил: хочешь спокойствия — выбирай Айфон, хочешь веселья — Андроид.
Статья: https://habr.com/ru/companies/alfa/articles/811835/
Платформа: Android
SwiftUI: наконец-то пора? Опыт разработки на SwiftUI в контексте UIKit приложения
Меня зовут Алексей Непомнящих и я мобильный разработчик Леруа Мерлен. В этой статье я бы хотел поделиться своим опытом внедрения первой большой фичи на SwiftUI в приложение, целиком состоящее из UIKit с минимальной требуемой версией iOS 14.
Статья: https://habr.com/ru/companies/leroy_merlin/articles/813979/
Платформа: iOS
Меня зовут Алексей Непомнящих и я мобильный разработчик Леруа Мерлен. В этой статье я бы хотел поделиться своим опытом внедрения первой большой фичи на SwiftUI в приложение, целиком состоящее из UIKit с минимальной требуемой версией iOS 14.
Статья: https://habr.com/ru/companies/leroy_merlin/articles/813979/
Платформа: iOS
ComposeLife - это учебный для автора проект, игра “Жизнь” на современных мультиплатформенных технологиях. Внутри Kotlin, UI на Jetpack Compose для приложения, десктопа и обложки для часов, инъекция зависимостей на kotlin-inject и context receivers, AGSL и OpenGL рендеринг, CI на GitHub Actions.
ComposeLife на GitHub: https://github.com/alexvanyo/composelife
Платформа: Android
⭐️: 109
ComposeLife на GitHub: https://github.com/alexvanyo/composelife
Платформа: Android
⭐️: 109
Как создать аудиоплеер. Часть 1. Что под капотом
Меня зовут Дмитрий Булгаков, я Android-разработчик в HiFi-стриминге Звук, и я расскажу, как можно создать аудиоплеер в приложении. Поговорим об инструментах разработки и устройстве плеера — разберем его «анатомию», компоненты и их применение, а также способы улучшения звука с помощью эквалайзера.
Статья: https://habr.com/ru/companies/zvuk/articles/814017/
Платформа: Android
Меня зовут Дмитрий Булгаков, я Android-разработчик в HiFi-стриминге Звук, и я расскажу, как можно создать аудиоплеер в приложении. Поговорим об инструментах разработки и устройстве плеера — разберем его «анатомию», компоненты и их применение, а также способы улучшения звука с помощью эквалайзера.
Статья: https://habr.com/ru/companies/zvuk/articles/814017/
Платформа: Android
А вы знаете, что превью в Xcode работает и с UIKit?
Видео: https://www.youtube.com/watch?v=sC0WnigbmJw
Платформа: iOS
Видео: https://www.youtube.com/watch?v=sC0WnigbmJw
Платформа: iOS
YouTube
Did you know that Xcode Previews also work with UIKit? 🤯
#iOS #swift #softwaredeveloper #iosdeveloper
Thank you for watching this video 🙌
➜ Website: https://www.swiftwithvincent.com
➜ Twitter: https://twitter.com/v_pradeilles
➜ GitHub: https://github.com/vincent-pradeilles/
➜ LinkedIn: https://www.linkedin.c…
Thank you for watching this video 🙌
➜ Website: https://www.swiftwithvincent.com
➜ Twitter: https://twitter.com/v_pradeilles
➜ GitHub: https://github.com/vincent-pradeilles/
➜ LinkedIn: https://www.linkedin.c…
Скриншот-тестирование для превью Compose
Скриншот-тестирование - эффективный способ проверить, как ваш пользовательский интерфейс выглядит для пользователей. Инструмент Compose Preview Screenshot Testing сочетает в себе простоту и возможности composable превью с повышением производительности при выполнении скриншот-тестов на собственном компьютере. Compose Preview Screenshot Testing разработан для того, чтобы быть таким же простым в использовании, как и сами composable превью.
Статья: https://apptractor.ru/info/articles/skrinshot-testirovanie-dlya-prevyu-compose.html
Платформа: Android
Скриншот-тестирование - эффективный способ проверить, как ваш пользовательский интерфейс выглядит для пользователей. Инструмент Compose Preview Screenshot Testing сочетает в себе простоту и возможности composable превью с повышением производительности при выполнении скриншот-тестов на собственном компьютере. Compose Preview Screenshot Testing разработан для того, чтобы быть таким же простым в использовании, как и сами composable превью.
Статья: https://apptractor.ru/info/articles/skrinshot-testirovanie-dlya-prevyu-compose.html
Платформа: Android
Вышел Kotlin 2.0.0
Что нового: https://github.com/JetBrains/kotlin/releases/tag/v2.0.0
Платформа: Android
Что нового: https://github.com/JetBrains/kotlin/releases/tag/v2.0.0
Платформа: Android