Forwarded from Мобильное Чтиво
Как мобильный разработчик фудтех приложений я не смог пройти мимо выступления про KMM в приложении McDonald's.
McDonald’s, как и наши приложения, работают во многих странах мира. У них 63 страны, у нас в этом году будет 24 страны (поменьше, но тоже не мало). И парни рассказывали про то, как удобно иметь единый код для доменной логики (в пример приводили разные способы оплаты в разных странах, о как это знакомо!).
Запомнился слайд с пирамидой:
- Дата слой полностью на KMM
- Доменная логика и Презентационная логика почти вся на KMM
- UI часть - нативные
У меня вопрос только к геометрии — размер модулей не выглядит пирамидой. Как может быть Data слой настолько большой, а UI на столько маленький?
На 200% уверен, что ребята сделали это просто для красоты, но это вводит в заблуждения. Здесь это важно. Потому что доклад про внедрение KMM, и из этой картинки можно сделать вывод, что почти всё на KMM у них. Хотя это не так. В общем не вводите в заблуждение в угоду красоты!
#kmm #kotlin
McDonald’s, как и наши приложения, работают во многих странах мира. У них 63 страны, у нас в этом году будет 24 страны (поменьше, но тоже не мало). И парни рассказывали про то, как удобно иметь единый код для доменной логики (в пример приводили разные способы оплаты в разных странах, о как это знакомо!).
Запомнился слайд с пирамидой:
- Дата слой полностью на KMM
- Доменная логика и Презентационная логика почти вся на KMM
- UI часть - нативные
У меня вопрос только к геометрии — размер модулей не выглядит пирамидой. Как может быть Data слой настолько большой, а UI на столько маленький?
На 200% уверен, что ребята сделали это просто для красоты, но это вводит в заблуждения. Здесь это важно. Потому что доклад про внедрение KMM, и из этой картинки можно сделать вывод, что почти всё на KMM у них. Хотя это не так. В общем не вводите в заблуждение в угоду красоты!
#kmm #kotlin
👍5🔥2😁1
Forwarded from red_mad_dev
Какую анимацию выбрать: Composable или Suspend? Возможна ли анимация за ноль рекомпозиций? А что будет, если «обмануть» Compose и поставить @ Immutable на мутабельное значение? Об этом и многом другом рассказал Android-разработчик red_mad_robot Серёжа Чумиков в своём докладе.
Запись выступления можно посмотреть на нашем ютуб-канале, а презентацию скачать с гугл-драйва. Если пропустил первую часть доклада, читай этот пост.
#android #compose
Запись выступления можно посмотреть на нашем ютуб-канале, а презентацию скачать с гугл-драйва. Если пропустил первую часть доклада, читай этот пост.
#android #compose
👍2🔥1
Forwarded from Mobile Developer (Алексей Гладков)
Почему KMM не кроссплатформа?
https://youtu.be/3nyBxrAtF-M
В преддверии Мобиуса предлагаю посмотреть офигенное видео по полочкам объясняющее
👉 Чем KMM отличается от остальных подходов
👉 Что можно считать кроссплатформой
👉 Как работает Котлин мультиплатформа
Приятного просмотра
https://youtu.be/3nyBxrAtF-M
В преддверии Мобиуса предлагаю посмотреть офигенное видео по полочкам объясняющее
👉 Чем KMM отличается от остальных подходов
👉 Что можно считать кроссплатформой
👉 Как работает Котлин мультиплатформа
Приятного просмотра
YouTube
Александр Соколинский — Почему KMM — не кроссплатформа?
Подробнее о конференции Mobius: https://jrg.su/ojGU3B
— —
Александр уже полтора года делает приложения с использованием технологии KMM в продакшене. В докладе он рассмотрит концепцию KMM и ее принципиальные отличия от остальных кроссплатформенных решений.…
— —
Александр уже полтора года делает приложения с использованием технологии KMM в продакшене. В докладе он рассмотрит концепцию KMM и ее принципиальные отличия от остальных кроссплатформенных решений.…
👍2🔥2🤔2
Forwarded from Kotlin Multiplatform (Kostya)
Media is too big
VIEW IN TELEGRAM
Заодно рекомендую полезную библиотеку с поддержкой инсетов на андроид+иОС+десктоп
https://github.com/mori-atsushi/insetsx
https://github.com/mori-atsushi/insetsx
❤2👍1🔥1
Forwarded from Mobile Native ️️
Kotlin Sealed Interfaces: A Deep Dive into a Powerful New Feature
Неплохая статья с примерами по основам и использованию sealed интерфейсов.
👉 Subtypes of Sealed Interfaces
👉 Advanced Techniques and Best Practices
👉 Avoiding Subclassing
👉 Extending Sealed Interfaces
👉 Sealed Classes vs Sealed Interfaces
Читать (En)
Неплохая статья с примерами по основам и использованию sealed интерфейсов.
👉 Subtypes of Sealed Interfaces
👉 Advanced Techniques and Best Practices
👉 Avoiding Subclassing
👉 Extending Sealed Interfaces
👉 Sealed Classes vs Sealed Interfaces
Читать (En)
👍2🔥1
Forwarded from Mobile Compose
#Article #Medium #Compose
ViewCompositionStrategy Demystified
Существует такое непростое, но весьма важное понятие в Compose, как ViewCompositionStrategy. Если вкратце — это различные стратегии, используемые ComposeView и AbstractComposeView для определения того, когда и как должна очищаться композиция.
В статье автор разбирает что ViewCompositionStrategy из себя представляет, а также рассказывает о том, как правильно выбрать подходящую стратегию для конкретного UseCase-а.
ViewCompositionStrategy Demystified
Существует такое непростое, но весьма важное понятие в Compose, как ViewCompositionStrategy. Если вкратце — это различные стратегии, используемые ComposeView и AbstractComposeView для определения того, когда и как должна очищаться композиция.
В статье автор разбирает что ViewCompositionStrategy из себя представляет, а также рассказывает о том, как правильно выбрать подходящую стратегию для конкретного UseCase-а.
Medium
ViewCompositionStrategy Demystified
Learn what `ViewCompositionStrategy` is, why it’s needed, and how you can pick the right strategy for your use case to avoid state loss.
👍2🔥1
Forwarded from Mobile AppSec World (Yury Shabalin)
SQL Injection в Android-приложениях
Вчера, общаясь на PhDays с коллегами, была поднята тема безопасности мобильных приложений и наиболее интересных уязвимостях в них.
Вот одна из интересных реальных инъекций в приложение, которая позволяет получать информацию из внутренней базы данных, а также любые файлы из внутренней песочницы приложения.
Это к слову о том, что данные во внутренней директории не нужно шифровать, так как они уже защищены средствами системы. НЕТ, не надо так больше, пожалуйста :)
Так что да, инъекции, хоть и не так часто, но встречаются в мобилках и последствия от них могут быть самыми серьёзными.
#injection #android #sql
Вчера, общаясь на PhDays с коллегами, была поднята тема безопасности мобильных приложений и наиболее интересных уязвимостях в них.
Вот одна из интересных реальных инъекций в приложение, которая позволяет получать информацию из внутренней базы данных, а также любые файлы из внутренней песочницы приложения.
Это к слову о том, что данные во внутренней директории не нужно шифровать, так как они уже защищены средствами системы. НЕТ, не надо так больше, пожалуйста :)
Так что да, инъекции, хоть и не так часто, но встречаются в мобилках и последствия от них могут быть самыми серьёзными.
#injection #android #sql
GitHub Security Lab
GHSL-2022-059_GHSL-2022-060: SQL injection vulnerabilities in Owncloud Android app - CVE-2023-24804, CVE-2023-23948
The Owncloud Android app uses content providers to manage its data. The provider FileContentProvider has SQL injection vulnerabilities that allow malicious applications or users in the same device to obtain internal information of the app. The app also handles…
🔥2👍1
Forwarded from Android Security & Malware
Three ways how to dynamically load code into an Android application at runtime
https://erev0s.com/blog/3-ways-for-dynamic-code-loading-in-android/
https://erev0s.com/blog/3-ways-for-dynamic-code-loading-in-android/
Erev0S
3 ways for Dynamic Code Loading in Android
erev0s blog for cyber security and more
🔥2👍1
Forwarded from StartAndroid
История редизайна иконки Android Studio
#androidstudio
https://android-developers.googleblog.com/2023/05/redesigning-android-studio-logo.html
#androidstudio
https://android-developers.googleblog.com/2023/05/redesigning-android-studio-logo.html
🗿5👍1🤔1
Forwarded from AppFiles - Mobile Development
Reader - мультиплатформенный (iOS и Android) RSS-ридер, сделанный на Kotlin Mutliplatform и Compose Multiplatform. Кроме них из большого есть Ktor, SQLDelight, Decompose и Kotlin-inject.
Reader на GitHub: https://github.com/msasikanth/reader
Платформа: кроссплатформа
⭐️: 85
Reader на GitHub: https://github.com/msasikanth/reader
Платформа: кроссплатформа
⭐️: 85
👍5🔥2
Forwarded from Mobile AppSec World (Yury Shabalin)
Эмулятор Smali-кода на Python
Весьма интересную штуку нашел недавно, еще не успел посмотреть, но возможно будет полезно тем, кто занимается патчем smali-кода.
Это небольшой и расширяемый эмулятор для smali-кода, написанный на Python.
Не думаю, что он сильно применим для реальных задач, но в качестве погружения и понимания, как работает smali и какие инструкции как влияют на исполнение может быть интересен. Как минимум, чтобы протестировать небольшое изменение, не нужно будет пересобирать приложение, чтобы проверить, нет ли ошибки.
#android #smali #emulator
Весьма интересную штуку нашел недавно, еще не успел посмотреть, но возможно будет полезно тем, кто занимается патчем smali-кода.
Это небольшой и расширяемый эмулятор для smali-кода, написанный на Python.
Не думаю, что он сильно применим для реальных задач, но в качестве погружения и понимания, как работает smali и какие инструкции как влияют на исполнение может быть интересен. Как минимум, чтобы протестировать небольшое изменение, не нужно будет пересобирать приложение, чтобы проверить, нет ли ошибки.
#android #smali #emulator
GitHub
GitHub - user1342/PocketSmali: A modular and extendable Python tool for emulating simple SMALI code.
A modular and extendable Python tool for emulating simple SMALI code. - user1342/PocketSmali
👍2🔥2
Forwarded from Android Security & Malware
Flipper zero can root Xiaomi vaccum robot using usb uart app
https://www.reddit.com/r/flipperzero/comments/13sabij/flipper_zero_can_be_used_for_xiaomi_vaccum_robot/
Tutorial: https://builder.dontvacuum.me/dreame/
https://www.reddit.com/r/flipperzero/comments/13sabij/flipper_zero_can_be_used_for_xiaomi_vaccum_robot/
Tutorial: https://builder.dontvacuum.me/dreame/
😱4👍2😁2
Forwarded from AppFiles - Mobile Development
Начинаем работу с Detekt, статическим анализатором кода для Android
Как вы знаете, процесс code review занимает все больше времени по мере роста команды разработчиков. В этой статье я расскажу об инструменте, который облегчает этот процесс.
С помощью инструмента под названием Detekt вы можете выполнить любые проверки классов, написанных на Kotlin, запустить процесс ревью кода в любое время (например, перед коммитом) и сэкономить время.
Статья: https://apptractor.ru/info/articles/nachinaem-rabotu-s-detekt-staticheskim-analizatorom-koda-dlya-android.html
Платформа: Android
Как вы знаете, процесс code review занимает все больше времени по мере роста команды разработчиков. В этой статье я расскажу об инструменте, который облегчает этот процесс.
С помощью инструмента под названием Detekt вы можете выполнить любые проверки классов, написанных на Kotlin, запустить процесс ревью кода в любое время (например, перед коммитом) и сэкономить время.
Статья: https://apptractor.ru/info/articles/nachinaem-rabotu-s-detekt-staticheskim-analizatorom-koda-dlya-android.html
Платформа: Android
👍4🔥1
Forwarded from Kotlin Multiplatform (Kostya)
Недавно в чате в очередной раз всплыл вопрос о том, что не надо использовать expect/actual там где достаточно обычных интерфейсов. А сегодня я наткнулся на статью как раз об этом!🤌
https://proandroiddev.com/achieving-platform-specific-implementations-with-koin-in-kmm-5cb029ba4f3b
Коин классный и популярный DI фреймворк. Автор на его примере показывает, как инжектить платформенные реализации в общий код. 👍
https://proandroiddev.com/achieving-platform-specific-implementations-with-koin-in-kmm-5cb029ba4f3b
Коин классный и популярный DI фреймворк. Автор на его примере показывает, как инжектить платформенные реализации в общий код. 👍
👍4🔥2👎1
Forwarded from Android Broadcast (Кирилл Розов)
This media is not supported in your browser
VIEW IN TELEGRAM
👍1👎1
Forwarded from Mobile Developer (Алексей Гладков)
Пишем корутины с нуля [EN]
https://blog.kotlin-academy.com/kotlin-coroutines-animated-part-1-coroutine-hello-world-51797d8b9cd4
Лучший способ понять фреймворк - написать его с нуля. Чем собственно и заняты люди в этой статье
👉 Как сделать асинхронный код синхронным
👉 Как это все работает в рантайме
👉 Интерфейс Continuation (suspend под капотом)
👉 и многое другое интересное
https://blog.kotlin-academy.com/kotlin-coroutines-animated-part-1-coroutine-hello-world-51797d8b9cd4
Лучший способ понять фреймворк - написать его с нуля. Чем собственно и заняты люди в этой статье
👉 Как сделать асинхронный код синхронным
👉 Как это все работает в рантайме
👉 Интерфейс Continuation (suspend под капотом)
👉 и многое другое интересное
Medium
Kotlin Coroutines Animated: Part 1 - Coroutine Hello World
Let’s build the coroutine framework from scratch!
👍5🔥2❤1
Forwarded from Android Security & Malware
Binder Trace: Tool for intercepting and parsing Android Binder messages Think of it as "Wireshark for Binder"
https://github.com/foundryzero/binder-trace
https://github.com/foundryzero/binder-trace
GitHub
GitHub - foundryzero/binder-trace: Binder Trace is a tool for intercepting and parsing Android Binder messages. Think of it as…
Binder Trace is a tool for intercepting and parsing Android Binder messages. Think of it as "Wireshark for Binder". - foundryzero/binder-trace
🔥3👍1
Forwarded from Mobile Developer (Алексей Гладков)
Как работает Android code
https://medium.com/@charlie.lee.yo/understanding-how-android-code-runs-2091049318f8
Обожаю статьи, которые показывают как оно устроено под капотом. Очень полезно для понимания процессов, а не заучивания
👉 Какие фазы компиляции
👉 Устройство dex файлов
👉 Как исполняется bytecode
👉 … и многое другое
https://medium.com/@charlie.lee.yo/understanding-how-android-code-runs-2091049318f8
Обожаю статьи, которые показывают как оно устроено под капотом. Очень полезно для понимания процессов, а не заучивания
👉 Какие фазы компиляции
👉 Устройство dex файлов
👉 Как исполняется bytecode
👉 … и многое другое
Medium
Understanding How Android Code Runs
A simple example to go through Android bytecode
👍6🫡2🤔1
Forwarded from Android Broadcast (Кирилл Розов)
Media is too big
VIEW IN TELEGRAM
Compose Hammer - плагин для Android Studio, который содержит много шаблонов Material3 компонентов и Jetpack Compose, которые вам нужно просто выбрать из боковой панели и код вставится в редакторе
#compose
#compose
👍3🔥3