TGViewer
Channel Public Channel
Mobile Native ️️

Mobile Native ️️

@mobile_native

Полезные материалы по мобильной разработке. Статьи, подборки, нововведения, анонсы.

Пробустить канал → https://t.me/mobile_native?boost

Автор: @artemiygreg
iOS / Swift: @swift_tips
Библиотеки и инструменты: @mobile_dev_tools
Митапы: @meetup_today
Subscribers
5.38K
Photos
1.2K
Videos
18
Links
1.3K

Showing posts older than #717 · Back to latest

Older Posts 20 shown
Post #715 3.45K
Советы по работе с Gradle для Android-разработчиков

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

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

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

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

Читать (Ru)
  • 🔥 11
  • 👍 8
  • ❤ 3
  • ⚡ 2
Post #713 2.98K
Как мы попробовали Yatagan

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

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

Читать (Ru)
  • 👍 15
  • 💩 14
  • 🔥 3
  • 🤔 3
  • 🤮 1
  • 🤡 1
Post #711 2.96K
Automating dependency updates in a Compose project

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

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

Тулза тут → Renovate

Читать (En)
  • 🔥 6
  • 👍 2
  • 🤔 1
Post #710 4.1K
Я тут проект разбиваю на модули и вот уже который день вожусь с Dagger`ом и хочу вам сказать, что задачка не из легких 😃 Одно дело, когда вы приходите на готовый проект, в котором уже всё ядро выстроено и совсем другое дело дробить с нуля относительно большой проект.

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

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

• Многомодульность и Dagger 2. Лекция Яндекса
• Иерархия модулей: как выстроить связи между модулями в Android
• Многомодульный BDSM: стоит ли внедрять Gradle модули и какие типы модулей бывают?
• Многомодульный BDSM: как связать Gradle модули и как с ними общаться после этого?
• Многомодульность в Android с точки зрения архитектуры
• Еще раз про многомодульность Android-приложений
• Dagger in Multi-Module Clean Applications
• Multi-Modules
  • 🔥 30
  • 👍 7
  • ❤ 4
  • 🤡 2
  • 🤮 1
  • 💩 1
Post #709 3.42K
Guide to Good Android App Architetture

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

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

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

Читать (En)
  • 🥱 18
  • 👍 7
  • 👎 4
  • ❤ 1
  • 🔥 1
  • 🤔 1
  • 👌 1
Post #707 2.88K
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
Post #706 3.08K
Different ways to handle Android Gradle dependencies

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

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

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

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

Читать (En)
  • 👍 11
  • 🔥 2
  • ❤ 1
Post #704 3.88K
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
  • 🔥 3
  • ⚡ 1
  • ❤ 1
Post #703 2.85K
С Международным женским днём, 8 марта!!! 💐

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

Желам вам профессиональных вершин, хорошего настроения и в достаточном количестве мужского внимания 😉. С Праздником 🌷
  • ❤ 19
  • 🥰 3
  • 👍 2
  • 🤮 1
Post #702 3.12K
Custom charts in Android using Jetpack Compose

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

Читать (En)
  • 👍 17
  • 🔥 1
  • 🆒 1
Post #700 3.05K
Live coding интервью для iOS разработчиков

Статья с разбором наиболее популярных задач для iOS разработчиков, которые можно встретить на этапе live coding.

👉 Thread-safe class
👉 DispatchGroup
👉 High-order functions
👉 Type erasure
👉 Any and Some

Читать (Ru)
  • 🔥 4
  • ❤ 1
  • 👍 1
  • 👨‍💻 1
Post #699 3.09K
How to Handle Automatic Content Resizing when keyboard is visible in Jetpack Compose

Пример как в Jetpack Compose можно хендлить появление клавиатуры и подогнать нужным вам образом контент.

Читать (En)
  • 🔥 14
  • 👍 6
  • ❤ 3
Post #698 3.07K
Breaking try-catch-finally in Kotlin

Статья про одну из особенностей Kotlin – не всегда выполнятеся блок finally, при совместном использовании sequence/try-finally.

Читать (En)
  • 🤔 15
  • 👍 4
  • 🔥 1
Post #696 3.61K
Communicating with fragments

Иногда на собесах спрашиваю про коммуникацию между фрагментами и как показывает практика, многие не знают о различных, нативных вариантах шаринга данных.

У Гугла есть раздел, в котором описаны все, возможные варианты. Не поленитесь, обязательно почитайте.

👉 Share data with the host activity
👉 Share data between a parent and child fragment
👉 Scoping a ViewModel to the Navigation Graph
👉 Fragment Result API

Читать (En)
  • 👍 19
  • 🔥 4
  • 👨‍💻 2
Post #695 3.51K
Список фишек Android Studio для ускорения разработки

Еще одна большая статья про интересные фишки Android Studio, которые могут позволить быстрее писать код, работать с кодом, работать с git`ом, навигировать по проекту и т.д.

👉 Хоткеи
👉 Плагины
👉 Шаблоны кода
👉 Подсветка логов
👉 ADB Idea
👉 Прекоммит для гит хука

Читать (Ru)
  • 🔥 14
  • 👍 9
  • 🤔 1
  • 👨‍💻 1
Post #694 3.27K
Как Android-разработчику избавиться от комплекса доменной неполноценности

Интресная статья про комплекс доменной неполноценности 😁 – это когда ваши слои толщиной с бумагу.

Полезные тезисы из статьи

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

• Если уж вы ввязались в «Чистую архитектуру» (вас же никто не заставлял?), то юзкейсы придётся писать всегда, даже однострочные. Ну а тесты уже на вашей совести.

• В доменном слое не должно быть никаких намёков на то, как и кем будут отображаться данные.

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

Читать (Ru)
  • 👍 19
  • 👎 5
  • 🤔 5
  • 🔥 1
Post #693 3.07K
How Senior iOS Engineers Style Code: Performance And Clarity

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

Читать (En)
  • 👍 6
  • 🔥 3
  • 👏 1
Post #691 3.43K
Kotlin. Ключевые слова in и out. А так же что такое ковариантность и контрвариантность

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

В догонку, еще одна статья на русском языке с достаточно подробным разбором: ключевые слова in и out, что такое инвариантность, ковариантность и контрвариантность.

Читать (Ru)
  • 👍 10
  • 🔥 2
  • 👏 1
Post #690 3.53K
Android Basics with Compose

Тут Гугл сообщает, что опубликовали курс по Compose – Android Basics with Compose.

Курс предназначен для того, чтобы научить вас создавать приложения для Android с помощью Jetpack Compose, рекомендуемого современного набора инструментов, который упрощает и ускоряет разработку пользовательского интерфейса для Android.

Курс поделен на 8 разделов, каждый из которых охватывает различные аспекты разработки Compose и Android.

👉 Fundamentals of the Kotlin programming language
👉 Building basic user interfaces with Compose
👉 Working with data and state in Compose
👉 Using navigation to build apps with multiple screens
👉 Persisting data using Room and DataStore
👉 Fetching remote data and images
👉 Scheduling tasks with WorkManager
👉 Using Compose and Views side-by-side in the same app

Курс тут → Android Basics with Compose

Читать (En)
  • 👍 13
  • 🔥 4
  • ❤ 3
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →