Telegram Web Link
Тестирование Android PagingSource

В этой статье я расскажу о том, как протестировать PagingSource.

Зачем тестировать
Тестирование очень важно в разработке. Тестовый код делает вашу кодовую базу стабильной. С тестовым кодом рефакторинг становится проще, потому что после рефакторинга, если все тесты пройдены, вы можете быть уверены, что не создали новую ошибку.

https://ayousuf.hashnode.dev/testing-android-pagingsource

#Android

👉 @developer_mobila
Force Update Mechanism

В постоянно развивающемся ландшафте мобильных приложений обновление приложения - не просто лучшая практика, это часто необходимость. Будь то критический патч безопасности, выпуск новой функции или простое исправление ошибки, обеспечение того, что ваши пользователи работают с последней версией приложения, может иметь решающее значение как для удобства пользователей, так и для безопасности. Именно здесь в игру вступает концепция "принудительного обновления". Механизм принудительного обновления позволяет заставить пользователей обновить приложение, чтобы продолжить его использование. Это особенно полезно для критических обновлений, которые вы не можете позволить пользователям пропустить.

https://www.manu.show/2023-09-29-force-update-mechanism/

#ios

👉 @developer_mobila
Rise of Jetpack Media 3 — революция в воспроизведении мультимедиа на Android

https://proandroiddev.com/rise-of-jetpack-media-3-revolutionising-media-playback-on-android-45686bdb648

#Android

👉 @developer_mobila
Построение архитектуры дизайна системы Android для эффективной загрузки изображений с помощью чистой архитектуры

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

https://murainoyakubu.medium.com/android-system-design-architecture-on-a-real-life-senario-d35f4e203b51

#Android

👉 @developer_mobila
🕹️ apk.sh

Упрощает реверс инжиниринг приложений для Android, автоматизируя некоторые повторяющиеся задачи, такие как извлечение, декодирование, восстановление и исправление APK.

Особенности
– патчинг APK для загрузки frida-gadget.so при запуске
– поддержка пакетов приложений/разделенных APK
– разборка ресурсов до почти оригинального вида с помощью apktool
– восстановление декодированных ресурсов обратно в бинарный APK/JAR с помощью apktool
– подпись apk с помощью apksigner
– поддержка нескольких архитектур (arm, arm64, x86, x86_64)
– не требуется рутованное Android-устройство

https://github.com/ax/apk.sh

#Android

👉 @developer_mobila
Понимаем @ discardableResult в Swift

Атрибут @discardableResult в Swift является ценным инструментом для улучшения читаемости кода и управления функциями, возвращающими значения, которые не всегда нужно использовать.

Swift известен тем, что в нем большое внимание уделяется безопасности типов и читаемости кода. Одним из свойств, соответствующих этим принципам, является атрибут @discardableResult. Этот атрибут позволяет пометить возвращаемое значение функции как «отбрасываемое» (discardable), что означает возможность игнорировать возвращаемое значение, не выдавая предупреждения компилятора. В этой статье мы рассмотрим, что такое отбрасываемый результат, почему он полезен и как эффективно использовать его в Swift.

https://medium.com/mobile-app-development-publication/understanding-discardable-results-in-swift-1bb193738f25

#ios

👉 @developer_mobila
Архитектура Android. Понятно и подробно

Если вы хотите сделать хорошую архитектуру, то используйте эту схему и строго соблюдайте правила, без каких-либо исключений.

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

#Android

👉 @developer_mobila
Чем занимается Android-разработчик, или Хватит уже спрашивать у них алгоритмы

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

https://habr.com/ru/companies/yandex_praktikum/articles/726540/

#Android

👉 @developer_mobila
Компиляция Record для Android

В Android Developers Blog выходила статья Records in Android Studio Flamingo про то как компиляторы R8/D8 преобразуют классы java.lang.Record. В статье рассказывается как добиться минификации компонентов toString() у Kotlin data-классов. Меня заинтересовала эта тема и я решил чуть более подробно в нее углубиться.

В этом посте я подсвечу некоторые моменты, оставшиеся "между строк" в оригинальной статье. Благодаря чему R8 может переписать метод toString() у Record. В чем разница между Record в Java и Kotlin. Можно ли добиться от Record в Android такой же динамики как в "настольной" JVM. Стоит ли для описания моделей использовать Record'ы вместо data-классов.

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

#Android

👉 @developer_mobila
В AppMetrica появился инструмент прогнозирования LTV и оттока

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

https://www.sostav.ru/publication/appmetrica-66491.html

👉 @developer_mobila
Как использовать TimelineView в SwiftUI

TimelineView в SwiftUI идеально подходит для создания сложных, многоступенчатых анимаций. В этом видео мы узнаем, как его использовать, и рассмотрим несколько различных реализаций.

00:00 Timeline
02:30 Welcome back!
03:37 Xcode 15
04:17 What is TimelineView?
06:56 Why do we need this?
08:16 Example Implementations
11:04 Customize Intervals
12:22 Real Time vs Real-Time
14:07 Pausing Animations
15:53 Timeline Cadence
17:06 Wrapping up

https://www.youtube.com/watch?v=ZmXp6Pd5Elg

#ios

👉 @developer_mobila
Как я осваивал Jetpack Compose

Привет, я Михаил Селезнев, андроид-разработчик в компании 1221Systems. Поделюсь своими впечатлениями о Compose — будет интересно коллегам, которые думают о переходе на него. Расскажу, в чем были сложности и что помогло мне быстрее разобраться.

Пару слов о моем бэкграунде: я в профессии больше четырех лет, в 1221Systems пришел полтора года назад на проект по разработке большого приложения для заказа продуктов ритейлинговой сети. Проработал около года, в марте этого года перешел на другой проект — приложение для сотрудников компании.

Само приложение написано на достаточно современном стеке: MVI, Koin, Coroutines + Flow, Jetpack Compose. При этом навигация реализована на фрагментах. В onCreateView возвращаем ComposeView, где в setContent прокидываем composable функцию.

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


#Android

👉 @developer_mobila
Как мониторить здоровье вашей Gradle-сборки

Привет! Я Сергей Боиштян, Software engineer в команде Speed. Мы делаем инструменты для тестирования, андроид-разработки, CI и CD. Чтобы больше узнать о том, чем мы занимаемся, посмотрите наш github или канал для обсуждения CI и сборки под андроид.

В Авито постоянно что-нибудь обновляется, улучшается и дорабатывается, поэтому мы хотим, чтобы код быстро писался и проверялся, чтобы его быстро мёржили и проверяли после интеграции. В итоге мы получаем новую версию раз в неделю. В этой статье я расскажу, что мы делаем, чтобы весь CI работал четко.

https://habr.com/ru/companies/avito/articles/766764/

#Android

👉 @developer_mobila
Using Core Data and Swift Data side by side

Недавно я изучал, как настроить Core Data и Swift Data в NowPlaying так, чтобы они указывали на одно и то же постоянное хранилище данных, и тогда я смогу использовать оба фреймворка бок о бок.

Это полезно, если вы собираетесь перейти с Core Data на Swift Data, но хотите делать это постепенно, или если вы хотите использовать Swift Data для конкретных случаев использования в вашем приложении, таких как виджеты.

Учитывая, что Swift Data выполняет операции исключительно в главном потоке, я бы не рекомендовал полностью переходить на него, так как это негативно скажется на производительности вашего приложения, но он действительно может быть очень полезен для небольших и не затратных операций.

https://www.polpiella.dev/core-data-and-swift-data/

#ios

👉 @developer_mobila
Использование on-demand ресурсов для безопасного хранения ключей API в iOS-приложениях

Следует помнить, что извлечь строки из файлов IPA довольно просто, и поэтому, если мы храним API-ключи в коде, кто-то другой может получить к ним доступ. Это, конечно, большая проблема для безопасности.

https://augmentedcode.io/2023/11/27/using-on-demand-resources-for-securely-storing-api-keys-in-ios-apps/

#ios

👉 @developer_mobila
Готовим конфигурацию Android-приложения с помощью Dynamic Proxy и рефлексии

Android-разработчик RuStore Анатолий Гусев расскажет, как приготовить систему «холодных» конфигов для большого Android-приложения, построенного на многомодульной архитектуре. Под «холодными» конфигами здесь подразумеваются настройки приложения, которые нужно делать локально на девайсе без необходимости загружать их из сети.

https://habr.com/ru/companies/vk/articles/777874/

#Android

👉 @developer_mobila
Как устроен протокол iMessage

В этом посте я вкратце расскажу о внутреннем устройстве iMessage, изученном мной в процессе работы над pypush — опенсорсным проектом воссоздания реализации iMessage.

Ради краткости и понятности я не буду вдаваться в технические подробности. Если вы хотите узнать, как конкретно всё реализовано, то изучите репозиторий pypush.

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

#ios

👉 @developer_mobila
2025/07/06 06:28:18
Back to Top
HTML Embed Code: