We Love Android – Telegram
We Love Android
634 subscribers
259 photos
26 videos
4 files
630 links
Новости из мира Android-разработки
Download Telegram
по мотивам прошедшего Keynote
😁6🔥2
А вы знали, что в IDEA (ну и в Android Studio) можно поменять иконку проекта?
Я не знал, а это возможно. Надо всего лишь... Нет, сода ни при чём. Надо на welcome-скрине нажать "Change Project Icon..." и выбрать иконку. Другой вариант — положить файл с названием icon.noscript или icon.png в папку .idea и ваш проект будет отличаться в списке проектов от всех остальных.

Интересно, что возможность такая есть уже давно. Я пытался найти когда она появилась, но нашёл только косвенные признаки, что в IDEA 2021 она уже была.

Всё, мне некогда, я пошёл ставить иконки всем проектам.
#idea
😱6👍21
Forwarded from Стой под стрелой (Nikita Prokopov)
Гитхаб выкатил новый дизайн навигатора кода, который до этого обкатывали в превью. Было только для желающих, а теперь и для нежелающих. Это, кстати, кажется единственная превью-фича, которую я почти сразу же отключил.

Вкратце, помимо собственно файла слева теперь панель с деревом кода, справа — панель символов в текущем файле, сверху 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
👍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, если что-то хочется, то вы всегда можете что-то докинуть сами
🔥4🎉2👍1
Forwarded from Why Android? 🌚
В LazyColumn добавляют поддержку Lookahead, что позволит делать Shared element transition 🌚
Даже есть небольшой пример как это будет работать

https://android-review.googlesource.com/c/platform/frameworks/support/+/2507256
🔥5👍2
Как мобильный разработчик фудтех приложений я не смог пройти мимо выступления про KMM в приложении McDonald's.

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
👍2🔥1
Forwarded from Mobile Developer (Алексей Гладков)
Почему KMM не кроссплатформа?
https://youtu.be/3nyBxrAtF-M

В преддверии Мобиуса предлагаю посмотреть офигенное видео по полочкам объясняющее

👉 Чем KMM отличается от остальных подходов
👉 Что можно считать кроссплатформой
👉 Как работает Котлин мультиплатформа

Приятного просмотра
👍2🔥2🤔2
Forwarded from Kotlin Multiplatform (Kostya)
Media is too big
VIEW IN TELEGRAM
Заодно рекомендую полезную библиотеку с поддержкой инсетов на андроид+иОС+десктоп
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)
👍2🔥1
Forwarded from Mobile Compose
#Article #Medium #Compose

ViewCompositionStrategy Demystified

Существует такое непростое, но весьма важное понятие в Compose, как ViewCompositionStrategy. Если вкратце — это различные стратегии, используемые ComposeView и AbstractComposeView для определения того, когда и как должна очищаться композиция.

В статье автор разбирает что ViewCompositionStrategy из себя представляет, а также рассказывает о том, как правильно выбрать подходящую стратегию для конкретного UseCase-а.
👍2🔥1
Forwarded from Mobile AppSec World (Yury Shabalin)
SQL Injection в Android-приложениях

Вчера, общаясь на PhDays с коллегами, была поднята тема безопасности мобильных приложений и наиболее интересных уязвимостях в них.

Вот одна из интересных реальных инъекций в приложение, которая позволяет получать информацию из внутренней базы данных, а также любые файлы из внутренней песочницы приложения.

Это к слову о том, что данные во внутренней директории не нужно шифровать, так как они уже защищены средствами системы. НЕТ, не надо так больше, пожалуйста :)

Так что да, инъекции, хоть и не так часто, но встречаются в мобилках и последствия от них могут быть самыми серьёзными.

#injection #android #sql
🔥2👍1
Forwarded from StartAndroid
🗿5👍1🤔1
Reader - мультиплатформенный (iOS и Android) RSS-ридер, сделанный на Kotlin Mutliplatform и Compose Multiplatform. Кроме них из большого есть Ktor, SQLDelight, Decompose и Kotlin-inject.

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
👍2🔥2
Начинаем работу с Detekt, статическим анализатором кода для 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 фреймворк. Автор на его примере показывает, как инжектить платформенные реализации в общий код. 👍
👍4🔥2👎1
Forwarded from Локалхост (Никита Куликов) (Nikita Kulikov)
Застрял на трёх пальцах

https://cs.uwaterloo.ca/~csk/slide/
😱5👍2🔥2