Mobile Native ️️ – Telegram
Mobile Native ️️
5.61K subscribers
1.13K photos
20 videos
3 files
1.28K links
Полезные материалы по мобильной разработке. Статьи, подборки, нововведения, анонсы.

Пробустить канал → https://news.1rj.ru/str/mobile_native?boost

Автор: @artemiygreg
iOS / Swift: @swift_tips
Библиотеки и инструменты: @mobile_dev_tools
Митапы: @meetup_today
Download Telegram
Custom charts in Android using Jetpack Compose

Не знаю, есть ли уже готовые либы под графики на Jetpack Compose, но вот в статье можно посмотротеть как рисовать различные варианты кастомных через Canvas.

Читать (En)
👍17🔥1🆒1
С Международным женским днём, 8 марта!!! 💐

Милые дамы, поздравляю вас с Международным женским днём!!!

Желам вам профессиональных вершин, хорошего настроения и в достаточном количестве мужского внимания 😉. С Праздником 🌷
Please open Telegram to view this post
VIEW IN TELEGRAM
19🥰3👍2🤮1
Mastering Kotlin : A Comprehensive Guide

Подборка с большим количеством статей на самые разные темы по Android и Kotlin.

👉 Room
👉 ViewModel, LiveData
👉 Navigation Component
👉 Kotlin Coroutines
👉 Kotlin Flow
👉 Hilt
👉 Service, Broadcast Receiver, WorkManager
👉 Ui Components
👉 Tools, Tips & Trick

Читать (En)
👍11🔥311
Different ways to handle Android Gradle dependencies

В статье рассматриваются разные, популярные способы работы с gradle зависимостями.

👉 manually solving
👉 ext
👉 buildSrc / Kotlin
👉 version catalog

Если вам это действительно нужно, я рекомендую использовать Version Catalog, хоть и у него есть минус в виде навигации. Напрягает, когда жмакаешь и не можешь попасть непосредственно в toml файлик.

Если вдруг пропустили, про способы и управление зависимостями я писал тут.

Читать (En)
👍11🔥21
Debugging and fixing a *huge* Jetpack Compose performance problem in my Sudoku-solver app

Интересная статья, как у чувака при одном изменении перерисовывались все поля в приложении Судоку на Jetpack Compose.

А виной тому следующее. Он думал, что вот такой 👇 формат записи сделает его _mutableList – immutableList. В результате получилось то, что получилось.

private var _mutableList: MutableList<Int> = mutableListOf()
val immutableList: List<Int>
get() = _mutableList


Казалось бы очевидная штука, но нет – имейте в виду 😉

Перевод от AppTractor тут.

Читать (En)
🤡8👍3🔥1🤮1💩1
Guide to Good Android App Architetture

Еще один гайд по архитектуре в Android (паттерны, слои, используемые библиотеки и т.д.).

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

Код на GitHub → Android App Tutorials in Kotlin

Читать (En)
🥱18👍7👎41🔥1🤔1👌1
Я тут проект разбиваю на модули и вот уже который день вожусь с Dagger`ом и хочу вам сказать, что задачка не из легких 😃 Одно дело, когда вы приходите на готовый проект, в котором уже всё ядро выстроено и совсем другое дело дробить с нуля относительно большой проект.

Раскидать проект на модули, кажется много ума не надо, а вот настроить Dagger + грамотно выстроить связи, чтоб удобно было всё инитить, чтоб модули были независимыми и переиспользуемыми – задачка уже куда сложнее.

Накидаю сюда ссылки, которыми пользуюсь, возможно кому-то пригодится. Некоторые из них довольно старые, но могут быть актуальные.

• Многомодульность и Dagger 2. Лекция Яндекса
• Иерархия модулей: как выстроить связи между модулями в Android
• Многомодульный BDSM: стоит ли внедрять Gradle модули и какие типы модулей бывают?
• Многомодульный BDSM: как связать Gradle модули и как с ними общаться после этого?
• Многомодульность в Android с точки зрения архитектуры
• Еще раз про многомодульность Android-приложений
• Dagger in Multi-Module Clean Applications
• Multi-Modules
🔥30👍74🤡2🤮1💩1
Automating dependency updates in a Compose project

Тут чувак из Гугла рассказывает как они автоматизуруют обновления зависимостей в своих проектах с помощью Renovate.

Renovate автоматически анализирует ваш проект, затем проверяет доступность более новых версий для ваших зависимостей, обновляет и делает Pull Request в вашу репу, вам остается только жмакнуть кнопку, если все ок. Могут возникнуть траблы, если группа связанных зависимостей может иметь разные версии, как с тем же Compose / Kotlin. Как такое решать, как раз в статье и рассказывается.

Тулза тут → Renovate

Читать (En)
🔥6👍2🤔1
Как мы попробовали Yatagan

Тут ребята из Циан затестили новый инструмент для DI от Яндекса – Yatagan, делятся опытом.

Если я всё правильно посмотрел, практически по всем вариантам Yatagan выигрывает в скорости сборки. В некоторых кейсах небольшая разница, но все же.

Читать (Ru)
👍15💩14🔥3🤔3🤮1🤡1
7 Jetpack Compose Projects to Become a Better Android Developer

Еще одна подборка проектов реализованных на Jetpack Compose, перенять опыт и прокачать скилл.

👉 Tivi
👉 Stack
👉 CoffeeDrinks
👉 Newzz
👉 JetSpotify
👉 JetDelivery
👉 RickNMortyCompose

Читать (En)
👍143🔥2
Советы по работе с Gradle для Android-разработчиков

Я продолжаю разбивать проект на модули и в процессе возникает ну очень много траблов с gradle, зависимостями и прочей хренью.

Вот наткнулся на отличную статью, в которой на человеческом языке рассказывают про различные нюансы работе с gradle, как правильно структурировать свои проекты и писать build-скрипты.

👉 Не редактируйте Gradle-скрипты через IDE
👉 Обращайте внимание на соглашение по именованию модулей
👉 Что выбрать: Kotlin vs Groovy
👉 Как прописывать зависимости в многомодульных проектах
👉 Как обновлять зависимости
👉 Старайтесь не использовать feature-флаги в build config
👉 Несколько слов про базовую структуру проекта
👉 Не забывайте про matchingFallbacks
👉 Убирайте ненужные build variant
👉 Как написать Gradle-плагин для CI на примере gitlab

Некоторые штуки возможно вкусовщина или могут зависить от проекта + статья от 2021, что-то может быть не актуально из-за версий gradle, но в целом статья толковая.

Читать (Ru)
🔥11👍832
How Gradle Works Part 3 - Build Script

В дополнении к сегодняшнему посту про gradle, еще одна, новая статья от Gradle команды про синтаксис скриптов и про то, что происходит во время выполнения скрипта сборки.

Читать (En)
👍92🔥1
Modern Android Development in 2023

Большая статья с инструментами, библиотеками и технологиями для разработки современных приложений, с учетом последних тендеций 2023 года.

👉 Android Jetpack
👉 Jetpack Compose
👉 Architecture Patterns
👉 Clean Architecture
👉 Dependency Injection
👉 Modularization
👉 Local Store

Читать (En)
14👍9🔥2🤔2
Готовим FeatureToggle для Android

Еще один пример реализации FeatureToggle для Android, с настройкой доступности фичей через firebase remote config.

Пример кода из статьи на GitHub → FeatureToggle

Читать (Ru)
🔥11👍41👎1
A couple of interesting things from Telegram Android app source code

Тут разработчик исследовал исходники телеги и поделился интересными решениями.

👉 Определение перформанса девайса на основе cpu сount
👉 Нестандартные анимации через кастомные вьюшки на канвасе

На счет анимаций через кастомные вьюхи. На самом деле это довольно распрастранённый подход, с помощью которого можно делать крутые штуки. Главное правильно писать кастомные вьюхи, не плодить лишнего в onDraw(), чтоб не потерять в производительности.

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

Читать (En)
👍7🔥2🤔1
Какой компонент в Android инициализируется раньше всех?
Anonymous Quiz
53%
Application
4%
Activity
3%
Service
33%
ContentProvider
7%
BroadcastReceiver
👍32😱123🔥3
Разбираем ошибки начинающих iOS-разработчиков

Большая статья с разбором нескольких наиболее популярных ошибок начинающих iOS-разработчиков. К чему приводят такие ошибки и как их можно избежать.

👉 Связь между Storyboard и кодом
👉 Использование Auto Layout
👉 Избыточный force unwrapping
👉 Использование guard
👉 Использование switch
👉 Ошибки при реализации паттерна delegate
👉 Связи между компонентами

Читать (Ru)
5🔥3👍1
Как устроены собеседования в IT

Видос от команды Tinkoff Mobile про процесс собеседования в IT. Зачем нужны те или иные блоки, что ожидают от кандидата, важность софт скиллов и т.д.

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

Смотреть 📹
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👎5🔥3💩2👨‍💻1
Understand Kotlin Sealed class better

Отличная статья про то, как устроены Sealed классы под капотом и чем отличаются от Enum`ов.

Читать (En)
👍10🔥4🥱31
Spot on: Android 14 adds highlights to TextViews

В Android 14 появится возможность выделять текст в TextView. Аналогично тому, как мы сейчас делаем через Spannable.setSpan().

Где-то в чатиках видел, что некоторым не зашло, но мне кажется это будет гораздо удобней, чем через span.

Дока тут → Highlights

Читать (En)
👍7🤔52🔥2
10 Useful Kotlin Extension Functions for Android Developer

Еще один большой набор полезных Kotlin Extension функций для удобного использования.

👉 Print to Logcat
👉 View Visibility
👉 Toast Message
👉 Snackbar Message
👉 Hide Keyboard
👉 dp and px conversion
👉 Digit, Alphabetic, and Alphanumeric Check
👉 isNull, ifNull
👉 Date Formatter

Читать (En)
👍17🔥52👎2🥴1