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
SVG to Compose – набор инструментов для преобразования SVG и Android Vector Drawable (AVD/XML) в иконки Jetpack Compose. Проект предоставляет несколько вариантов использования: Command-line tool и Gradle plugin.

GitHub → SVG to Compose
👍8🔥32
От Kotlin до машинного кода

Небольшая статья, в которой разбираются этапы трансформации кода Android-приложения, от написания в IDE до выполнения на устройстве: Java Bytecode, ART, Dalvik, DEX, OAT и вот это вот всё.

Читать (Ru)
👍21🔥52
This media is not supported in your browser
VIEW IN TELEGRAM
How easy is drag-and-drop in Compose?

Статья с примером реализации drag-and-drop в Jetpack Compose.

Читать (En)
👍143🔥3👨‍💻1
Google Play отключает монетизацию для России

В интернетах пишут, что с 26 декабря 2024 года Google Play на неопределённый срок прекратит обрабатывать платежи в адрес разработчиков, чьи банковские счета находятся в России.

Окончательные выплаты будут произведены 15 января.
🔥18🤔7👎65👍3😍1👀1
Android System Design Interview- Google/Uber

В статье-блоге чувак рассказывает про ключевые аспекты system design и чего интервьюеры обычно хотят от кандидатов.

P.S. Там нет как таковой технической составляющей, больше про общий концепт, вопросы и возможные нюансы, которые стоит учесть при проектировании.

Читать (En)
🔥5👎32👍1
5 steps to implement MVI architecture with Jetpack Compose

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

👉 How MVI Works
👉 Dependencies
👉 Model layer
👉 ViewState & Intent
👉 ViewModel & EventManager
👉 UI layer

Исходный код на GitHub → NotesApp

Статья (En)
🔥73👍3❤‍🔥1
Building Dynamic App Icons in Android

Подробный гайд как сделать динамическое изменение иконки приложения.

Читать (En)
👍114🔥2👎1
Всё, что нужно знать об Android 15: архивирование, защита данных и новые API

Большая статья с обзором нововведений в Android 15.

👉 Контроль использования приложений на переднем дисплее
👉 Постоянная панель задач
👉 Поддержка складных телефонов
👉 Адаптивная вибрация
👉 Архивирование приложений
👉 Управление виджетами
👉 Предиктивная анимация возврата
👉 Мультимедиа
👉 Private Space
👉 Рекомендации для разработчиков
👉 Реализация функции непрерывности
👉 Обработка переключений между дисплеями

Читать (Ru)
👍6🔥52
Dagger 2: как сделать свой DI за 10 минут

Полезная статья с разбором классов, которые генерит Dagger 2 для своей работы и построения графа зависимостей в частности.

Эта статья будет полезна тем, кто использует Dagger 2 в своих приложениях и иногда/часто попадает в ситуации непонимания, почему Dagger 2 ведёт себя не так, как мы ожидаем.

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

Читать (Ru)
👍63🔥2
С Новым годом, друзья!!! 🎄🥳🥂

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

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

В новом году хочу пожелать вам спокойствия, душевного счастья, профессиональных скиллов и пусть всё задуманное обязательно исполнится. Проведите праздники с родными и отдохните как следует. С наступившим, друзья 🥂

P.S. Обычно принято писать такие посты в конце года, но у меня в этом году получилось вот так (зато не как у всех 😉)

P.S.S. Если вдруг салаты ещё не доели – уже всё, можно выбрасывать, срок годности закончился)
Please open Telegram to view this post
VIEW IN TELEGRAM
🎄208🍾7👍1🤝1
Debugging Kotlin Coroutines: Making "Optimised Out" Variables Visible

Какой-то долгий у меня в этом году получился перерыв в ТГ – пора возвращаться к публикациям. Прррошу понять и пррростить 😉

И начнём пожалуй со статьи, которая лежит в избранном с декабря.

При отладке, в приостановленной корутине некоторые переменные могут быть невидимыми и отображаться с сообщением «was optimised out». Такое поведение связано с внутренними оптимизациями Coroutines / State Machine, в целях экономии памяти.

Однако, если вы всё же хотите видеть всю инфу – можно включить отдельной настройкой для компилятора.


kotlin {
compilerOptions {
if (System.getProperty("idea.active") == "true") {
freeCompilerArgs = listOf("-Xdebug")
}
}
}


Читать (En)
👍11🔥43
Оптимизация под контролем: инструменты и метрики для Аndroid-приложений

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

Читать (Ru)
🔥74👍1
Разработка плагина для Android Studio

Туториал по созданию плагина для IDE: от идеи и реализации до публикации в стор JetBrains.

👉 Инструменты для разработки плагинов
👉 Базовые компоненты
👉 Разработка плагина для проверки орфографии в тексте
👉 Публикация в маркетплейс

Читать (Ru)
🔥73👍3❤‍🔥1
Погружение в мир Lint'a в Android-проекте (часть 2)

Продолжение статьи про Lint в Android-проекте.

С момента публикации первой части, вышло несколько значимых обновлений AGP(а соответственно и артефактов линтера) + вторая версия Kotlin с новым компилятором.

В этой части рассматриваются наиболее важные изменения с небольшими примерами.

👉 Kotlin Analysis API
👉 Тестирование
👉 Частичный анализ
👉 Data Flow Analyzer
👉 Заключение

Читать (Ru)
🔥73👍3
Forwarded from Swift Tips
Swift Tutorials: Learn Swift with Easy-to-Follow Code Examples

Большая подборка статей, туториалов и примеров ресурса SwiftLee для изучения Swift, с разбивкой по соответствующим разделам.

Learning Swift using tutorials and code examples

🟢Enum explained in-depth with code examples in Swift
🟢JSON Parsing in Swift explained with code examples
🟢Optionals in Swift explained: 5 things you should know
🟢Extensions in Swift: How and when to use them
🟢Try Catch Throw: Error Handling in Swift with Code Examples
🟢Struct vs classes in Swift: The differences explained
🟢How to use for loop, for each, while, and repeat in Swift (in-depth)
🟢Guard statements in Swift explained with code examples

Learn Swift by going beyond the basics

🟢Generics in Swift explained with code examples
🟢Existential any in Swift explained with code examples
🟢Some keyword in Swift: Opaque types explained with code examples
🟢Weak self and unowned self explained in Swift
🟢Property Wrappers in Swift explained with code examples

Swift Code Examples covering concurrency and async/await

🟢How to Use URLSession with Async/Await for Network Requests in Swift
🟢Async await in Swift explained with code examples
🟢Tasks in Swift explained with code examples
🟢Thread dispatching and Actors: understanding execution
🟢Sendable and @Sendable closures explained with code examples

Swift tutorials for testing code

🟢Swift Testing: Validate your code using expressive APIs
🟢Using the #expect macro for Swift Testing
🟢Using the #require macro for Swift Testing

Debugging issues along the way

🟢EXC_BAD_ACCESS crash error: Understanding and solving it
🟢Race condition vs. Data Race: the differences explained
🟢Thread Sanitizer explained: Data Races in Swift

How about Swift Tutorials for creating a user interface using SwiftUI?

🟢SwiftUI Button: Custom Styles, Variants, and Best Practices
🟢Debugging SwiftUI views: what caused that change?
🟢View Composition using ViewModifiers in SwiftUI
🟢@Observable Macro performance increase over ObservableObject
🟢SF Symbol: How to for Swift & SwiftUI

Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥63👍3
Kotlin Coroutines под капотом: отмена корутин

Подробная статья про то, как устроена отмена корутин под капотом.

👉 Job и JobSupport
👉 Состояния JobSupport
👉 Получение дочерних Job
👉 Уведомление родителя и дочерних Job об отмене
👉 Как отменяется функция delay()
👉 Как отменяются suspend функции
👉 Finishing это не последнее состояние корутины?

Читать (Ru)
🔥104👍2
File Templates в IDE от Intellij

Серия статей про то, как ускорить процесс разработки и сократить написание boilerplate-кода, с помощью File Templates.

👉 Уменьшаем написание boilerplate с помощью File Templates
👉 Примеры использования File Templates для типовых сценариев
👉 Экспорт и импорт File Templates в IDE от Intellij
4🔥4👍1🥰1
Exploring ViewModel Internals

Небольшая, но довольно полезная статья про то, как ViewModel устроена под капотом: внутренняя реализация, как устроено состояние и как очищаются ресурсы.

Читать (En)
👍53🔥3
Understanding SOLID Principles with Kotlin Examples

Давно такого не было и вот опять – небольшая, но понятная статья про SOLID, с примерами на Kotlin.

Читать (En)
🔥11👍7😁52
Forwarded from Swift Tips
Потоки под капотом: как работают многопоточность и синхронизация

Большой материал про то, как потоки устроены под капотом: работа потоков, скрытые механизмы, обеспечивающие их функционирование, какую пользу практикующим iOS‑разработчикам приносит понимание внутреннего устройства потоков.

🟢Конкурентность VS параллелизм
🟢Программа
🟢Процесс
🟢Поток
🟢Задача
🟢Kernel threads vs green threads
🟢Потоки на уровне операционной системы
🟢Кооперативная многозадачность
🟢Принудительная многозадачность
🟢Планировщики
🟢Инструменты многопоточности и многозадачность
🟢Закон Амдалла
🟢Полезные в практике свойства потока
🟢Выводы

Читать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
👏4🔥32👍2
Media is too big
VIEW IN TELEGRAM
Elevating Your Jetpack Compose UI with GraphicsLayer

Полезная статья с разбором модификатора graphicsLayer(), его параметров и как они влияют на результат.

Читать (En)
👍12🔥52