We Love Android – Telegram
We Love Android
631 subscribers
259 photos
26 videos
4 files
630 links
Новости из мира Android-разработки
Download Telegram
Вероятно Twitter заDDOSил сам себя

Последние два дня Илон Маск утверждал, что Twitter подвергается атаке со стороны "нескольких сотен организаций", которые осуществляют "ЭКСТРЕМАЛЬНЫЙ уровень извлечения данных". Это вынудило компанию экстренно включить "большое количество серверов" и принять чрезвычайные меры.

1. В выходные Twitter начал блокировать доступ к Twitter всем вышедшим из системы, требуя входа в систему для просмотра любого твита или профиля. Маск назвал это "временной чрезвычайной мерой".

2. Очевидно, это не остановило наплыв трафика, и Twitter ограничил количество твитов, которые вы можете просматривать.

3. Сразу же пользователи Twitter начали видеть сообщения "Rate Limit Exceeded".

4. Неужели компании, занимающиеся разработкой искусственного интеллекта, обрушили соцсеть? Возможно, да. А возможно и нет.

5. Само веб-приложении Twitter постоянно отправляет запросы в Twitter в бесконечном цикле. "Это уморительно. Похоже, что Твиттер сам себя заDDOSил". Twitter отправляет около 10 запросов в секунду, пытаясь получить контент, который никогда не приходит. Вероятно, это создало адские условия, которые инженеры даже не предполагали, и поэтому мы получаем эту комедию ошибок, приводящую к самой эпической самоликвидации - само-DDOS.

6. С другой стороны в настоящее время неизвестно, когда этот баг появился и насколько сильно он влияет на трафик, поэтому трудно определить, этот баг вдохновил Twitter заблокировать незарегистрированный доступ и добавить ограничения скорости, или же баг был спровоцирован развертыванием этих изменений.

И что: было бы забавно, если бы эта "чрезвычайная ситуация" от начала и до конца была вызвана ошибкой, в результате которой Twitter сам себе устроил DDOS, породив все эти "интересные" решения 🤡
🤔3👍2
😁7🤓3🙈2🤔1
Forwarded from Compose Broadcast
Сравнение Flutter, Jetpack Compose и SwiftUI при решение одинаковых задач. Изучайте тут
👍5🔥42
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
This media is not supported in your browser
VIEW IN TELEGRAM
Стал доступен плагин Kotlin Notebook для IDEA - интерактивный инструмент, позволяющий комбинировать код, визуализации и текст в одном документе. Вы сможете быстро прототипировать, анализировать и работать с данными.

Если видите полезное применение в своей работе - делитесь в комментариях

#tooling
👍31🔥1
Forwarded from Android Live 🤖
​​Обзор уязвимостей Positive Hack Days
#security

Отдельное место у меня занимают статьи, которые рассказывают о лучших практиках безопасности Android-приложений: ведь даже если приложение будет с идеальным UI-UX, но будет иметь дыры в безопасности, то вся работа может свестись на нет. 🥴

Вот вам отличный список-обзор уязвимостей с недавнего Positive Hack Days: рекомендую сделать овервью своего приложения, вдруг найдёте что-то подобное.

Тут и exported=true для WebViewActivity, и проблемы в дебаг-панели, и вход без PIN-кода в приложение через виджет... в общем, есть на что обратить внимание. 👌
👍4🔥1
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
Вышел Kotlin 1.9.0
👉 Kotlin K2 комплиятор в Beta для JVM (Compose и KSP пока еще не поддерживают его). Теперь работает kapt с K2
👉 Новое свойство entries для enum class на замену values(). Лучше скорость работы и современный синтаксис. Подробности тут
👉 Стабильные data object
👉 Поддержка secondary constructor в inline value классах
👉 Превью нового механизма выделения памяти для объектов в Kotlin/Native
👉 Улучшения в Kotlin Multiplatform для работы с Android

#kotlin
👍32🔥2
Forwarded from Invalidate cache & restart (Alexey Bykov)
Gradle и аббревиатуры

Недавно обнаружил, что Gradle позволяет использовать сокращённые названия тасок. Может быть даже одна буква, при отсутствии конфликтов.

Выглядит полезным. Однако, не используйте это в скриптах, чтобы никого не запутать.
👍3🔥2
Forwarded from Android Good Reads (Egor Tolstoy)
Разбор новых фичей Figma

👉Переменные, которые могут представлять цвета, размеры, эффекты, типографику и локализованные строки.
👉Новые настройки автолейаута, с помощью которых можно прямо в Figma делать адаптивный дизайн.
👉Новый Developer Mode, который позволяет готовить экраны для передачи их разработчикам.
👉Песочница компонентов, в которой дизайнер может легко переключать разные настройки экспортируемых компонентов и смотреть, как они себя ведут в граничных состояниях.
👉Поддержка в VSCode для работы с макетом прямо в IDE.
👉Плагины для экспорта дизайна в код на любом фреймворке.
👍5🤔3
Forwarded from Mobile Compose
​​#Tools #Compose

Jetpack Compose SVG to Compose converter

Появился онлайн конвертер SVG файлов (можно загрузить как SVG код так и файл целиком) в Composable функции. В некоторых кейсах вполне полезный инструмент.
2
Forwarded from Android Guards
Приложение может вести себя по-разному в зависимости от приходящих push-сообщений. Это может быть какая-то особая реакция на скрытый параметр, который в обычной ситуации никогда не присылается, а оставлен только для разработчиков. Или оно может переключатся в другой режим работы при получении какой-то особой полезной нагрузки. Чтобы быстро и без заморочек протестировать все эти варианты можно использовать локальную отправку пушей приложению через adb команду adb shell su -c "am broadcast -a com.google.android.c2dm.intent.RECEIVE -n chat.rocket.whitelabel/com.google.firebase.iid.FirebaseInstanceIdReceiver --es "param1" "payload1" --ez "param2" true. Она позволит быстро проверить все гипотезы и освободить время на поиск уязвимости на отправку произвольных пушей целевому приложению 😉
#aht
👍32
Forwarded from StartAndroid
Краткий обзор фабрик, которые дают нам возможность повлиять на создание основных Android сущностей

- AppComponentFactory for customising the instantiation of application components
- LayoutInflater.Factory2 and View for customising view inflation
- FragmentFactory for customising fragment creation
- ViewModelProvider.Factory with CreationExtras for simplifying ViewModel creation
- WorkerFactory for customising Worker creation in WorkManager

#android #activity #fragment #viewmodel #di

https://marcellogalhardo.dev/posts/injection-points/
🔥4👍2
Forwarded from Android Live 🤖
values() или entities()
#kotlin

В Kotlin 1.9.0 из стадии Experimental в Stable перешла функция entities(), которую можно вызывать для любых Enum и получить список всех элементов, которые в нём объявлены.

Зачем же нужна ещё одна функция, когда есть values()?

На самом деле, причин сразу несколько:

1️⃣ При каждом вызове функции создаётся новый Array: это одна из известных причин "скрытых" performance-багов.

2️⃣ При работе вызывается Array<E>, который мутабелен, а также меньше подходит для работы с коллекциями, чем список.

3️⃣ Ну и ещё — сложнее писать extension-функции для Array<E> вместо стандартных List<T>.

Ну а в entities() таких недостатков нет, а самое главное, что при вызове всегда используется один и тот же список и нет повторного создания.

Чуть больше информации можно найти тут. Теперь вы знаете, что ответить на собеседовании, и почему стоит перейти на entities(). 🤓
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤔2
Как я перестал волноваться и полюбил ошибки в Kotlin корутинах: Мифы обработки ошибок в корутинах

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

Статья: https://habr.com/ru/articles/747146/
Платформа: Android
🤔3👍2
Forwarded from Mobile Developer (Pavel Kachan)
The State of Kotlin Multiplatform [RU]
https://habr.com/ru/companies/usetech/articles/747926/

"Про Kotlin Multiplatform (КММ) многие слышали, но пробовали далеко не все. Мы с командой использовали его в работе, и здесь я расскажу о своем опыте. Возможно, теперь у вас появится понимание, как аргументировать бизнесу зачем вообще нужен KMM и насколько это сейчас рабочая история."
👍2
Forwarded from Mobile Native ️️
От потоков к корутинам: как и почему видоизменились примитивы синхронизации в языке Kotlin. Часть 1.

Разбор изменений реализации примитивов синхронизации из стандартной библиотеки Java и пакета
java.util.concurrent
для Kotlin Coroutines и для языка Kotlin в целом.

Какие реализации примитивов синхронизации потоков актуальны в контексте корутин, а какие надо использовать с осторожностью и готовность текущих решений к использованию в Kotlin Multiplatform.

В статье рассматриваются

👉 Критические секции
👉 Атомарные переменные
👉 Реактивные переменные
👉 Барьерная синхронизация

Читать (Ru)
👍3🤔2
Как сделать удобное взаимодействие с Kotlin из Swift: обзор проблем и решений

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

Но при разработке для iOS могут возникать проблемы, особенно когда необходимо взаимодействовать со Swift, ведь скомпилированный в Kotlin код, не выдает сразу Swift API. Как быть и что делать, рассказывает автор этой статьи:

https://habr.com/ru/articles/697966/

#kotlin #swift
👍2
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
Статья (EN, 4 мин) про разные сценарии использования sealed class и sealed interface с примерами. Иногда спрашивал такое на собесах и часть людей не отвечала
Forwarded from Android Good Reads (Egor Tolstoy)
План Coil по поддержке Kotlin Multiplatform

Я уже упоминал, что недавно библиотека Coil получила грант от Kotlin Foundation направленный на поддержку KMP.

Вышел блогпост, где автор раскрывает больше деталей про миграцию. Основная задача переезда – полностью отвязать Coil от Android. Самым большим изменением API будет замена Drawable на Image, который абстрагирует детали платформенной реализации изображений.

План – завершить миграцию в течение нескольких месяцев.
👍4🔥2🤔1
Forwarded from Mobile Native ️️
Learn Kotlin Flow by real examples for Android

Проект с примерами для изучения Kotlin Flow.

• How to use Kotlin Flow in Android Project?
• Doing simple task in background using Kotlin Flow.
• Doing tasks in series using Kotlin Flow.
• Doing tasks in parallel using Kotlin Flow. Blog
• Making two network calls in parallel using Kotlin Flow.
• Using operators like filter, map, reduce, flatMapConcat, zip, and etc.
• Exception handling in Kotlin Flow
• How to use onCompletion in Flow?
• Retry Task using retry operator in Flow.
• Retry Task with Exponential Backoff in Flow.
• Using Kotlin Flow with Retrofit. Blog
• Using Kotlin Flow with Room Database. Blog
• Using Kotlin Flow with various 3rd party libraries.
• Making two network calls in parallel using Kotlin Flow.
• Doing task in series using Kotlin Flow.
• Writing Unit-Test for ViewModel which uses Kotlin Flow
• Flow and StateFlow

GitHub → Learn-Kotlin-Flow
🔥3👍2🤓1