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
Clean Code — A practical approach

Практические примеры как писать чистый код. Там про нейминг, различные принципы, интерфейсы, тесты, рефакторинг и вот это вот всё.

Читать (En)
🔥131👍1👎1
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🔥43
Kotlin. Ключевые слова in и out. А так же что такое ковариантность и контрвариантность

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

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

Читать (Ru)
👍10🔥2👏1
How Senior iOS Engineers Style Code: Performance And Clarity

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

Читать (En)
👍6🔥3👏1
Как Android-разработчику избавиться от комплекса доменной неполноценности

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

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

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

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

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

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

Читать (Ru)
👍19👎5🤔5🔥1
Список фишек Android Studio для ускорения разработки

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

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

Читать (Ru)
🔥14👍9🤔1👨‍💻1
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
Breaking try-catch-finally in Kotlin

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

Читать (En)
🤔15👍4🔥1
How to Handle Automatic Content Resizing when keyboard is visible in Jetpack Compose

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

Читать (En)
🔥14👍63
Live coding интервью для iOS разработчиков

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

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

Читать (Ru)
🔥41👍1👨‍💻1
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