Forwarded from Ra'Reilly - Заметки про Ktor и не только (Osip Fatkullin)
А вы знали, что в IDEA (ну и в Android Studio) можно поменять иконку проекта?
Я не знал, а это возможно. Надо всего лишь... Нет, сода ни при чём. Надо на welcome-скрине нажать "Change Project Icon..." и выбрать иконку. Другой вариант — положить файл с названием
Интересно, что возможность такая есть уже давно. Я пытался найти когда она появилась, но нашёл только косвенные признаки, что в IDEA 2021 она уже была.
Всё, мне некогда, я пошёл ставить иконки всем проектам.
#idea
Я не знал, а это возможно. Надо всего лишь... Нет, сода ни при чём. Надо на welcome-скрине нажать "Change Project Icon..." и выбрать иконку. Другой вариант — положить файл с названием
icon.noscript или icon.png в папку .idea и ваш проект будет отличаться в списке проектов от всех остальных.Интересно, что возможность такая есть уже давно. Я пытался найти когда она появилась, но нашёл только косвенные признаки, что в IDEA 2021 она уже была.
Всё, мне некогда, я пошёл ставить иконки всем проектам.
#idea
😱6👍2❤1
Forwarded from Стой под стрелой (Nikita Prokopov)
Гитхаб выкатил новый дизайн навигатора кода, который до этого обкатывали в превью. Было только для желающих, а теперь и для нежелающих. Это, кстати, кажется единственная превью-фича, которую я почти сразу же отключил.
Вкратце, помимо собственно файла слева теперь панель с деревом кода, справа — панель символов в текущем файле, сверху sticky заголовок, который показывает начало функции, если ты долистал до ее середины, а кнопка T (перейти к файлу) теперь в малюсеньком попапе.
Вот что я хочу про него сказать: да, функций стало больше, так что формально, на бумаге, стало полезнее. Я уверен, что они даже иногда приходятся кстати.
Но меня не покидает ощущение перегруженности. Что тебе так много показывают, что ты не знаешь даже, куда смотреть. Тем более что визуальной иерархии, главное-второстепенное, тут не сделали. В итоге у тебя три визуально равноправные панели, хотя ты всего-то хотел посмотреть на файл. Хуже того, текст файла даже теряется, потому что обе панели используют гораздо более яркие иконки.
Второй момент — это лайаут. Я уже писал, как не нравятся дебаггеры и devtools чисто визуально, потому что там миллион панелей, расставленных более-менее случайно. Так и тут. Еще я когда-то писал, что первое ощущение от Идеи — что тебя обложили. Потому что панели со всех сторон — слева, справа, снизу и сверху. Хотя вроде особо выраженной клаустрофобией я не страдаю, но все равно, тесновато. Удивительно, что гитхаберы снизу никакой панели не влепили. А чего, место же есть!
В принципе, собрать «как было» в новом дизайне почти можно. Можно скрыть обе панели, и тогда из ухудшений останутся только трехуровневая прилипающая шапка и засунутый в попап go to file, который будет выровнен по правому краю (бе).
Я это пишу, потому что наверняка набегут умники только чтобы сказать «чего ты разнылся, вот же, можно сделать как было». А разнылся я, конечно, не для себя, а для моих дорогих читателей, которым не просто надо как-то приспособиться, а которые будут когда-нибудь дизайнить свой продукт и им это наблюдение пригодится: помнить нужно не только о функциях, но и визуальной простоте, лаконичности, легкости. Этот блог вообще не о том, как мне плохо с текущими инструментами, а как делать хорошие, новые.
А с Гитхабом, я думаю, дальше будет все хуже и хуже. Теперь, когда туда пришли vs-кодовцы и у них появились свободные руки, которые надо чем-то занять, он будет только усложняться. В здоровом стартапе, где рук сильно не хватает, фичи взвешиваются по коэффициенту легкость реализации/важность, и делается в основном только самое главное. В успешном энтерпрайзе же рук сильно больше, чем хороших идей, куда эти руки приложить. Поэтому реализуются даже супер неэффективные/ненужные фичи, просто потому что могут и потому что надо чем-то занимать программистов. Ровно то же самое произошло и с VS Code. Так что держитесь, зима близко.
Вкратце, помимо собственно файла слева теперь панель с деревом кода, справа — панель символов в текущем файле, сверху sticky заголовок, который показывает начало функции, если ты долистал до ее середины, а кнопка T (перейти к файлу) теперь в малюсеньком попапе.
Вот что я хочу про него сказать: да, функций стало больше, так что формально, на бумаге, стало полезнее. Я уверен, что они даже иногда приходятся кстати.
Но меня не покидает ощущение перегруженности. Что тебе так много показывают, что ты не знаешь даже, куда смотреть. Тем более что визуальной иерархии, главное-второстепенное, тут не сделали. В итоге у тебя три визуально равноправные панели, хотя ты всего-то хотел посмотреть на файл. Хуже того, текст файла даже теряется, потому что обе панели используют гораздо более яркие иконки.
Второй момент — это лайаут. Я уже писал, как не нравятся дебаггеры и devtools чисто визуально, потому что там миллион панелей, расставленных более-менее случайно. Так и тут. Еще я когда-то писал, что первое ощущение от Идеи — что тебя обложили. Потому что панели со всех сторон — слева, справа, снизу и сверху. Хотя вроде особо выраженной клаустрофобией я не страдаю, но все равно, тесновато. Удивительно, что гитхаберы снизу никакой панели не влепили. А чего, место же есть!
В принципе, собрать «как было» в новом дизайне почти можно. Можно скрыть обе панели, и тогда из ухудшений останутся только трехуровневая прилипающая шапка и засунутый в попап go to file, который будет выровнен по правому краю (бе).
Я это пишу, потому что наверняка набегут умники только чтобы сказать «чего ты разнылся, вот же, можно сделать как было». А разнылся я, конечно, не для себя, а для моих дорогих читателей, которым не просто надо как-то приспособиться, а которые будут когда-нибудь дизайнить свой продукт и им это наблюдение пригодится: помнить нужно не только о функциях, но и визуальной простоте, лаконичности, легкости. Этот блог вообще не о том, как мне плохо с текущими инструментами, а как делать хорошие, новые.
А с Гитхабом, я думаю, дальше будет все хуже и хуже. Теперь, когда туда пришли vs-кодовцы и у них появились свободные руки, которые надо чем-то занять, он будет только усложняться. В здоровом стартапе, где рук сильно не хватает, фичи взвешиваются по коэффициенту легкость реализации/важность, и делается в основном только самое главное. В успешном энтерпрайзе же рук сильно больше, чем хороших идей, куда эти руки приложить. Поэтому реализуются даже супер неэффективные/ненужные фичи, просто потому что могут и потому что надо чем-то занимать программистов. Ровно то же самое произошло и с VS Code. Так что держитесь, зима близко.
👍4👎1🔥1
Forwarded from Mobile AppSec World (Yury Shabalin)
Легальное клонирование приложений в Android 14
Вот это интересные новости, начиная с Android 14 появляется системная возможность клонирования приложений. То есть, можно поставить рядом, например, две копии мессенджера, который позволяет работать только с одного аккаунта или игр или чего угодно.
Чтобы включить эту возможность, надо зайти в Настройки -> Приложения -> Склонированные приложения (Settings > Apps > Cloned Apps)
Для нас это значит, что может быть сильно проще тестировать разные баги, связанные с некорректной авторизацией, иметь несколько приложений с разными аккаунтами или просто не бояться совсем «убить» один из клонов.
А на самом деле, это сильно напоминает историю с твиками для Jailbreak. Apple долгое время (и по сей день), борется с джейлом, но самые популярные твики со временем были перенесены в сам iOS. Раз люди этим активно пользуется, значит это может быть удобно и полезно.
И этом случае все аналогично, огромное количество приложений, которые помогают клонировать приложения на Android и вот эта фича уже в релизе :) Удобно!
#android #clone #news
Вот это интересные новости, начиная с Android 14 появляется системная возможность клонирования приложений. То есть, можно поставить рядом, например, две копии мессенджера, который позволяет работать только с одного аккаунта или игр или чего угодно.
Чтобы включить эту возможность, надо зайти в Настройки -> Приложения -> Склонированные приложения (Settings > Apps > Cloned Apps)
Для нас это значит, что может быть сильно проще тестировать разные баги, связанные с некорректной авторизацией, иметь несколько приложений с разными аккаунтами или просто не бояться совсем «убить» один из клонов.
А на самом деле, это сильно напоминает историю с твиками для Jailbreak. Apple долгое время (и по сей день), борется с джейлом, но самые популярные твики со временем были перенесены в сам iOS. Раз люди этим активно пользуется, значит это может быть удобно и полезно.
И этом случае все аналогично, огромное количество приложений, которые помогают клонировать приложения на Android и вот эта фича уже в релизе :) Удобно!
#android #clone #news
XDA
Android 14 could let you clone apps so you can use two accounts at the same time
Android 14 is preparing to add an app cloning feature that will let you clone an app so you can use two accounts at the same time.
👍3🔥3
Forwarded from Mobile Developer (Алексей Гладков)
Compose Look And Feel Library
https://github.com/alexzhirkevich/compose-look-and-feel
Костя Цховребов (надеюсь, вы уже посмотрели стрим) скинул вчера в чат compose multiplatform просто фантастическую библиотеку
Там человек полностью восстановил иосный look and feel на чистом компоузе и сделал CupertinoTheme.
Работа еще не доведена до конца, но при этом уже много всякого есть.
Ну и как в любом open source, если что-то хочется, то вы всегда можете что-то докинуть сами
https://github.com/alexzhirkevich/compose-look-and-feel
Костя Цховребов (надеюсь, вы уже посмотрели стрим) скинул вчера в чат compose multiplatform просто фантастическую библиотеку
Там человек полностью восстановил иосный look and feel на чистом компоузе и сделал CupertinoTheme.
Работа еще не доведена до конца, но при этом уже много всякого есть.
Ну и как в любом open source, если что-то хочется, то вы всегда можете что-то докинуть сами
🔥4🎉2👍1
Forwarded from Why Android? 🌚
В LazyColumn добавляют поддержку Lookahead, что позволит делать Shared element transition 🌚
Даже есть небольшой пример как это будет работать
https://android-review.googlesource.com/c/platform/frameworks/support/+/2507256
Даже есть небольшой пример как это будет работать
https://android-review.googlesource.com/c/platform/frameworks/support/+/2507256
🔥5👍2
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