Mobile Native ️️ @mobile_native Channel on Telegram

Mobile Native ️️

@mobile_native


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

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

Автор: @artemiygreg
iOS / Swift: @swift_tips
Библиотеки и инструменты: @mobile_dev_tools
Митапы: @meetup_today

Mobile Native ️️ (Russian)

Добро пожаловать в канал Mobile Native ️️! Здесь вы найдете полезные материалы по мобильной разработке, включая статьи, подборки, нововведения и анонсы. Если вас интересует развитие в области мобильных технологий, то этот канал идеально подойдет для вас.

Автором канала является @artemiygreg, который предлагает уникальный контент по теме. Помимо этого, вы также можете подписаться на другие каналы, связанные с iOS и Swift под названиями @swift_tips и @mobile_dev_tools для получения дополнительной информации. А если вы хотите быть в курсе последних митапов и событий, то обязательно загляните в канал @meetup_today.

Не упустите возможность узнать новое и поднять свои навыки в области мобильной разработки. Присоединяйтесь к каналу Mobile Native ️️ прямо сейчас! Пробустить канал можно по ссылке: https://t.me/mobile_native?boost

Mobile Native ️️

03 Jan, 22:18


С Новым годом, друзья!!! 🎄🥳🥂

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

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

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

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

P.S.S. Если вдруг салаты ещё не доели – уже всё, можно выбрасывать, срок годности закончился)

Mobile Native ️️

22 Dec, 08:00


Dagger 2: как сделать свой DI за 10 минут

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

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

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

Читать (Ru)

Mobile Native ️️

21 Dec, 14:11


Всё, что нужно знать об Android 15: архивирование, защита данных и новые API

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

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

Читать (Ru)

Mobile Native ️️

19 Dec, 08:00


⚠️Внимание, тестировщики!
 
Узнали себя на ролике? Сколько раз вы, как и Борис, путались в десятках телефонах и вкладках эмуляторов? Сколько раз вручную запускали приложения на нескольких телефонах одновременно?
 
В видео от Selectel эта старая и очень неудобная QA-реальность показана так наглядно, что хочется забыть о ней раз и навсегда. И это возможно благодаря Мобильной ферме!
 
Это решение от Selectel для удаленного тестирования мобильных приложений на реальных устройствах, а не на эмуляторах. Здесь доступно более 100 моделей смартфонов, чтобы проверять удобство интерфейсов, проводить автотесты и параллельное тестирование на множестве устройств.
 
А как проводите тестирование вы? Пишите в комментариях
 
Реклама. АО “Селектел”, ИНН: 7810962785, ERID: 2VtzqxjyidP

Mobile Native ️️

18 Dec, 12:51


Building Dynamic App Icons in Android

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

Читать (En)

Mobile Native ️️

16 Dec, 21:13


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)

Mobile Native ️️

13 Dec, 11:30


Опенсорс-проекты Яндекса для мобильных разработчиков

userver, Scout и yx_scope — фреймворки с открытым исходным кодом, которые создали разработчики Яндекс Go, Маркета и Техплатформы Екома и Райдтеха Яндекса.

Сразу два из них ориентированы на мобильных разработчиков:
- Scout позволяет безопасно внедрять зависимости в проектах на Kotlin. Входит в топ-3 DI-фреймворков и протестирован на масштабах Яндекс Маркета.
- yx_scope упрощает работу со скоупами во Flutter-приложениях. Обеспечивает максимальную compile-safety без кодогенерации: если код может быть написан, он точно будет работать предсказуемо.

Узнать больше о каждом и изучить документацию можно на dev.go.yandex

Реклама. ООО «Яндекс.Такси», ИНН 7704340310

Mobile Native ️️

13 Dec, 06:15


Android System Design Interview- Google/Uber

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

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

Читать (En)

Mobile Native ️️

12 Dec, 23:24


Google Play отключает монетизацию для России

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

Окончательные выплаты будут произведены 15 января.

Mobile Native ️️

12 Dec, 14:44


How easy is drag-and-drop in Compose?

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

Читать (En)

Mobile Native ️️

11 Dec, 10:15


Суперздача для суперпрофи в мобильной разработке для Android

Яндекс Практикум запускает новый курс «Middle Android-разработчик».
Если у вас есть знания и опыт в области android-разработке, вы видите в себе силы передавать опыт студентам, вдохновлять и мотивировать обрести новую профессию — присоединяйтесь к нашей команде.

Роль автора подойдёт тем, кто любит погрузиться с головой в контент — разрабатывать уроки, задания, тесты, чек-листы, памятки, квизы; нагрузка от 10 часов в неделю.

Позиция наставника — тем, кто больше хочет общаться лично, а именно проводить вебинары, разбирать кейсы и отвечать на 1000 и 1 вопрос; нагрузка от 15 часов в неделю.

По условиям — всё, как нужно: удалёнка, гибкий график, бесплатная Школа наставников и поддержка команды контента 👌

Где откликаться:
🔡наставник
🔡автор контента

Mobile Native ️️

11 Dec, 06:15


От Kotlin до машинного кода

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

Читать (Ru)

Mobile Native ️️

09 Dec, 21:18


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

GitHub → SVG to Compose

Mobile Native ️️

09 Dec, 06:30


Jetpack Compose как unbundled-библиотека. Скорость UI vs. Гибкость разработки

Ещё одна крутая статья от Макса, про оптимизации в Jetpack Compose, а именно про скорость открытия экранов: почему первый переход на Compose-экран занимает больше времени, как с этим связан Zygote и Jetpack Compose как Unbundled library.

👉 Введение
👉 История
👉 Unbundled library
👉 Оптимизация рекомпозиций
👉 Обновление Compose
👉 Baseline profiles
👉 «Прогрев» Compose

Читать (Ru)

Mobile Native ️️

08 Dec, 13:10


Вопперы и табы: как мы сделали меню для Burger King

Ребята из Surf рассказывают, как делали вот такое меню для Burger King.

Список синхронизированный с табами – табы переключаются во время скролла, а при выборе таба происходит скролл в нужное место списка.

Читать (Ru)

Mobile Native ️️

05 Dec, 18:12


Дебаг на максимум: секретные настройки Xcode, которые должен знать каждый разработчик

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

🟢Что такое CPU и GPU и с чем их едят
🟢Blended Layers — cмешанные слои
🟢Copied Images: избавляемся от скопированных изображений
🟢Выравниваем изображения Misaligned Images
🟢Внеэкранная отрисовка Offscreen Rendering
🟢Тени
🟢Маски
🟢Visual Effects

Читать (Ru)

Mobile Native ️️

05 Dec, 12:59


Kotlin 2.1.0: Smarter when with Guard Conditions

Разбор с примерами кода, новой фичи – guard conditions для when, которая появилась в Kotlin 2.1.0.

Читать (En)

Mobile Native ️️

04 Dec, 16:28


Пишем транзишинометр для Андроид. Как понять, что мои экраны открываются быстро?

Интересная статья от Макса из Dodo, в которой он рассказывает как запилить универсальный инструмент (транзишинометр), для замера скорости открытия экранов, который можно использовать как для Fragment-ов, так и для Compose.

Читать (Ru)

Mobile Native ️️

30 Nov, 08:01


Как ускорить проверку приложения с помощью Impact-анализа: Часть 1 — Статические анализаторы

Разработчик из Циан делится опытом, как с помощью статических анализаторов можно оптимизировать и ускорить процесс проверки приложения.

Читать (Ru)

Mobile Native ️️

28 Nov, 06:45


Custom modifiers in Jetpack Compose

В статье рассматриваются различные пути создания кастомных модификаторов в Jetpack Compose.

👉 Using the Composable Modifier Function
👉 Using the composed { } function
👉 Using the new Modifier.Node API

Читать (En)

Mobile Native ️️

27 Nov, 21:44


Deciding Between Flow and Suspend in Repositories: A Detailed Guide

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

Читать (En)

Mobile Native ️️

26 Nov, 23:06


The Ultimate Guide to Writing Clean Jetpack Compose

Большое руководство с рекомендациями, как писать структурированный, понятный и чистый Jetpack Compose код.

🟢Naming Composable functions
🟢Ordering Composable parameters
🟢Emit content OR Return a value
🟢Do not emit multiple pieces of content
🟢Composable must accept and respect a Modifier
🟢Prefer stateless and controlled Composables
🟢State should be Hoisted
🟢Use Padding provided by Scaffold
🟢Avoid adding some modifications directly to the root component of a composable

Читать (En)

Mobile Native ️️

25 Nov, 12:01


👍Стройте эффективную многопоточную/асинхронную инфраструктуру приложений!

Узнайте как на бесплатном уроке онлайн-курса «Android Developer. Professional» — «Kotlin Coroutine в Android-разработке»: регистрация

Что будет на вебинаре?

- Теоретически и практические основы корутины: structured concurrency, builders, suspend функции, coroutine context, обработка exceptions.

- Каналы: producer channel/ Consumer channel; типы каналов по размеру буффера; rendevouz Channel и другие.

- Flow: builders; операторы; обработка исключений во Flow; миграция на Flow.

Результаты вебинара:

- Узнаете, как правильно использовать корутины и suspend функции, глубоко разобравшись в их устройстве и best practices

- Научитесь реализовывать операторы и писать правильные цепочки, используя Flow

- Сможете использовать знания для построения эффективной инфраструктуры приложений.

🔥После вебинара вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, Erid: LjN8K6Q47

Mobile Native ️️

25 Nov, 06:15


Test smarter, not harder: new testing strategies documentation

Гугл обновили официальную документацию по тестированию.

Добавили 7 разделов👇

• Testing strategies
• Screenshot testing
• Performance tests
• Big test stability
• Robolectric strategies
• Test different screen and window sizes
• Libraries and tools to test different screen sizes

Читать (En)

Mobile Native ️️

23 Nov, 16:55


Declarative Gradle - November 2024 Update

Второе обновление про Declarative Gradle.

🔵Introduction
🔵Official Android Software Type Preview
🔵New DCL Language Features
🔵Configuring Software Types from Kotlin DSL
🔵Support for VS Code and Eclipse IDE
🔵Generating Declarative Builds
🔵Try Declarative Gradle Today
🔵What’s Next?
🔵Learn More

Первая часть тут → First look at Declarative Gradle.

Читать (En)

Mobile Native ️️

22 Nov, 16:53


Избавляемся от Android в api-модулях

Небольшой туториал на тему «Как уменьшить количество Android-модулей в проекте при помощи оберток над Android-классами»

Читать (Ru)

Mobile Native ️️

22 Nov, 06:01


Ищем автора эталонного кода! 💎

Если вы уверены, что вашему коду подходит звание «Эталонный», а вам — звание «Автор самого красивого кода», то приглашаем принять участие в Конкурсе красоты кода 2.0 и выиграть классные призы от Сбера: iPhone 16 и умную колонку SberBoom.

Опытные эксперты определят победителей в пяти категориях: Backend, Frontend, DevOps, AI и Mobile, — а награждение пройдёт на ключевом IT-событии HighLoad в Москве, 2 и 3 декабря.

Больше 40 участников прошлого конкурса стали частью команды Сбера. Возможно, следующим станете именно вы — переходите по ссылке и изучайте подробности!

Mobile Native ️️

21 Nov, 22:06


Такие разные Android AppLinks, WebLinks, DeepLinks. Разбираемся и пытаемся сломать

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

Читать (Ru)

Mobile Native ️️

21 Nov, 06:30


Работа с CoordinatorLayout: шапочный разбор

Статья от разработчика из Авито с примером реализации вот такой анимации шапки, на основе CoordinatorLayout и кастомного AppBarLayout.Behaviour.

P.S. Всё бы ничего, и анимация🔥 и статья крутая, наверняка кому-то будет полезна, но хочется спросить – "Авито, а где же Compose? 😉"

Читать (Ru)

Mobile Native ️️

20 Nov, 23:02


Huawei уходит от Android. Придётся ли бизнесу делать приложения для HarmonyOS Next

В 2023 году Huawei заявили об окончательном уходе от Android и переходе на собственную HarmonyOS Next. Для разработчиков это значит, что не получится создавать нативные приложения силами одной команды. Бизнес ждут новые расходы или снижение охвата аудитории.

В статье размышления от техлида Android-разработки в Surf про то, чего ожидать владельцам приложений в России, стоит ли готовиться к очередной разработке на новой ОС и как это сделать.

Читать (Ru)

Mobile Native ️️

20 Nov, 15:03


⚡️ Закрываем сезон мобильный митапов! Присоединяйся к нам 4 декабря на площадке "Ломоносов" в Москве!🔥

Дорогие друзья!

Приглашаем вас на финальное событие этого года – Usetech Mobile Meetup #3, где мы соберем лучших экспертов в мобильной разработке и погрузим вас в мир инновационных технологий! 📱💡

📅 Когда: 4 декабря
🕧 Время: 12:30 — 14:30
📍 Где: г. Москва, Раменский бульвар, 1, площадка "Ломоносов"
🚀 Участие бесплатно, но количество мест ограничено!

ЧТО ВАС ЖДЁТ НА НАШЕМ МИТАПЕ?


- 4 увлекательных доклада от лидеров мобильной разработки из HeadHunter'а, Wildberries, ГК Юзтех и Альфа-банка, которые поделятся секретами успеха и последними тенденциями в мире мобильного программирования!

- Возможность задать вопросы и пообщаться с экспертами отрасли. Не упустите шанс получить подарки за самые креативные вопросы! 🎁

- Множество возможностей для нетворкинга — познакомьтесь с единомышленниками, обменяйтесь опытом и создайте новые бизнес-контакты!

🔑 Основные темы:

- UI-тесты Compose-экранов с Павлом Стрельченко
- Gradle Convention Plugins от Александра Лебедя
- Кодогенерация в iOS с Анной Жарковой
- Создание Figma плагинов глазами Android разработчика с Виталием Перятиным

Не упустите уникальную возможность прокачать свои знания и навыки в мобильной разработке! 📱🎓
Регистрируйтесь по ссылке и станьте частью самого яркого события уходящего года!

❤️ Ждем вас на площадке «Ломоносов» 4 декабря!

Mobile Native ️️

20 Nov, 05:48


Composable Screens

Репозиторий с подборкой сложных пользовательских интерфейсов, реализованных на Compose.

P.S. Пока там только 2 проекта, но в целом есть на что посмотреть

Код на GitHub → Composable Screens

Mobile Native ️️

19 Nov, 15:51


Об анатомии крэшей на iOS «по-взрослому»

Большая статья, в которой рассказывается, как устроены крэши в iOS, откуда они берутся и как с ними взаимодействовать.

Читать (Ru)

Mobile Native ️️

18 Nov, 18:41


Building a Scalable Android

Большая статья с примерами кода, как спроектировать масштабируемую структуру приложения с использованием актуальных инструментов: Retrofit, MVI, UseCases, Hilt, Kotlin Coroutines, Jetpack Compose.

👉 Setting Up Retrofit
👉 Creating the API Service Interface
👉 Dependency Injection with Hilt
👉 Repository
👉 Use Cases
👉 Implementing MVI Components
👉 Displaying Data with Jetpack Compose UI

Читать (En)

Mobile Native ️️

17 Nov, 19:19


О зацикливании рекомпозиции в Jetpack Compose

В статье рассматривается один из кейсов(возможно не очевидный), который может зациклить рекомпозицию в Jetpack Compose и рассказывается как такой кейс пофиксить.

Читать (Ru)

Mobile Native ️️

15 Nov, 13:47


Разбираем iOS-приложение: код, сборка, статические и динамические библиотеки, компиляция, запуск

Достаточно крутая и большая статья про низкоуровневые штуки iOS-приложения: как приложение устроено под капотом, какие этапы проходит перед тем, как оказаться на устройстве пользователя, что такое Executable binary и что происходит внутри препроцессора.

Читать (Ru)

Mobile Native ️️

15 Nov, 06:45


YADRO приглашает Software Engineer на SPRINT OFFER 🔍

Компания-лидер инженерной индустрии в России YADRO проводит SPRINT OFFER для Software Engineer в двух направлениях — Linux-based и Android.

🔵 Оффер в команду KVADRA, которая разрабатывает собственную операционную систему kvadraOS, можно получить всего за 3 дня!

→ На направлении Linux-based вам предстоит адаптировать исходный код Chromium для компьютеров и ноутбуков с нашими аппаратными платформами и вносить изменения в поведение устройств, учитывая продуктовые требования.

→ На направлении Android вы будете заниматься подготовкой unit-тестов своего кода. Разрабатывать собственные и адаптировать чужие приложения, если они входят в базовую поставку ОС.

Чтобы принять участие, до 24 ноября подайте заявку на сайте.

Станьте частью YADRO!

Mobile Native ️️

14 Nov, 23:27


Composable-scoped ViewModel: An interesting experiment

Не знаю зачем, но автор решил провести эксперимент и создать ViewModel с привязкой к жизненному циклу Composable функций. Что из этого получилось - читайте в статье.

Статья большая, с кучей кода и разбором того, как всё устроено под капотом: Lifecycle, Composable и ViewModel.

Читать (En)

Mobile Native ️️

14 Nov, 12:32


Compose Performace - Finding Regressions

Полезная статья, в которой рассказывается как с помощью инструментов Perfetto и Diffetto искать и анализировать проблемные участки в Composable функциях.

Читать (En)

Mobile Native ️️

13 Nov, 21:32


Описываем UseCase'ы правильно

Очередная статья про UseCase'ы – как их правильно готовить по мнению автора.

👉 Что такое архитектура
👉 Часто совершаемые ошибки
👉 Как описывать юзкейсы
👉 Пример кода

P.S. Принципиально ничего нового, но пусть будет

Читать (Ru)

Mobile Native ️️

13 Nov, 14:15


Яндекс проведет «Ночь опенсорс библиотек» для тех, кто интересуется открытым кодом

Мобильные разработчики смогут задать все интересующие вопросы о кросс-платформенной разработке приложений создателям фреймворка DivKit: он позволяет создавать интерфейсы для Android, iOS, Flutter и веб в одном месте и менять их без обновления приложения.

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

Ивент пройдет 14 декабря в московской Библиотеке иностранной литературы. Регистрация уже открыта.

Mobile Native ️️

13 Nov, 05:37


Как силами мобильных разработчиков автоматизировать процесс разработки

Разработчик из Контур рассказывает, как они автоматизировали процесс разработки, реализовав свой сервис с различным, удобными штуками(интеграция с YouTrack / GitLab, уведомления о релизах, напоминание о ревью и т.д.) под себя.

P.S. Мобильщики поработали за девопсов 😉

Читать (Ru)

Mobile Native ️️

13 Nov, 00:10


Сборка мусора в Java. Часть №1. Обзор сборщиков мусора и их различий

Адаптированный под 2 статьи перевод доклада "Garbage Collection in Java: The progress since JDK 8" с последнего Devoxx Belgium.

Первая часть – основы работы сборки мусора в Java, различные сборщики мусора, их особенности, плюсы и минусы.

👉 Что такое сборка мусора?
👉 Принципы работы алгоритмов высвобождения памяти
👉 Какие сборщики мусора существуют в настоящее время
👉 Итоги по имеющимся сборщикам мусора
👉 Заключение

Читать (Ru)

Mobile Native ️️

12 Nov, 09:53


App Intents: новые возможности для разработчиков в iOS 18

Большая статья про App Intents – что это такое и как их использовать для создания сложных сценариев, которые расширят возможности вашего приложения.

🟢Что такое App Intents
🟢Как создать AppIntent? (Intent)
🟢Пример Intent
🟢Пример AppEntity
🟢Что такое Shortcuts
🟢Shortcuts как составляющая часть фреймворка AppIntents
🟢Shortcuts как приложение
🟢Гайдлайн от Apple по созданию App Intents
🟢Открытие приложения при работе с App Intents
🟢Практика
🟢Новые фишки AppIntents, которые могут быть полезны
🟢Обновления для разработчиков
🟢UnionValue
🟢Generated titles
🟢Framework improvements
🟢Вывод

Читать (Ru)

Mobile Native ️️

11 Nov, 09:50


Стать сотрудником Яндекса быстрее и проще, чем кажется. Участвуйте в днях быстрого найма: решите тестовое, пройдите несколько секций собеседования и получите офер за несколько дней.

Ближайшее мероприятие:

• 30 ноября – 1 декабря — для Android- и iOS-разработчиков, офер за 2 дня в команды Карт и Рекламы.

Зарегистрироваться

Mobile Native ️️

11 Nov, 05:45


Modeling ViewModel State in Android: A Guide to Clean, Scalable Patterns

Гайд по тому, как спроектировать чистый и масштабируемый шаблон для работы со стейтом во ViewModel.

Читать (En)

Mobile Native ️️

08 Nov, 21:52


Kotlin Under the Hood: Exploring Objects, Companion Objects, and Annotations: JvmStatic, JvmField, JvmOverloads

Сразу 2 статьи про Objects в Kotlin: как работают под капотом, во что компилируются и интероп с Java.

👉 Exploring Objects, Companion Objects, and Annotations
👉 Understanding Companion Objects in Kotlin

Mobile Native ️️

07 Nov, 21:34


Расширенная шпаргалка по корутинам Kotlin

Перевод на Хабре вот этой статьи – большая шпаргалка-справочник по корутинам.

Читать (Ru)

Mobile Native ️️

07 Nov, 06:33


The beauty of Kotlin Type System

Статья с подробным разбором и примерами системы типов в Kotlin(Any, Nothing, Optional).

Перевод от AppTractor → Красота системы типов Kotlin

Читать (En)

Mobile Native ️️

06 Nov, 09:01


Онлайн-интенсив «Мобильная разработка на Android: от основ до готового продукта» от НИУ ВШЭ

Присоединяйтесь к интенсиву по разработке мобильных приложений под Android от Центра непрерывного образования факультета компьютерных наук НИУ ВШЭ: за три занятия вы освоите базовый синтаксис языка Kotlin, принципы объектно-ориентированного программирования, особенности платформы Android и создадите свое первое мобильное приложение для перевода текста.

В программе:
- Лекции и мастер-классы: основы языка Kotlin и системы Android, создание пользовательского интерфейса с использованием Jetpack Compose, работа с сетью и локальным хранилищем
- Практика: задания с автоматической проверкой на Stepik после каждого занятия для закрепления навыков
- Проект для портфолио: создание своего первого мобильного приложения

Спикер: Юрий Вараксин, ведущий разработчик MD Audit (ГК Softline) и автор курса «Android-разработчик на Kotlin».

Онлайн-интенсив будет проходить с 11 по 21 ноября. Участие бесплатное для всех желающих, необходимо предварительно пройти регистрацию.

Зарегистрироваться

Реклама: Федеральное государственное автономное образовательное учреждение высшего образования «Национальный исследовательский университет «Высшая школа экономики».
Erid:2SDnjctDbZD

Mobile Native ️️

06 Nov, 05:45


Как я писал суперкастомизированное Android-приложение в 2024 году

Автор рассказывает, как писал Android-приложение для отображения анимации алгоритмов сортировки, практически полностью на своих, самописных решениях 😱.

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

Код на GitHub → AlgoSorts

Читать (Ru)

Mobile Native ️️

05 Nov, 13:17


Как устроен сборщик метрик Android-проекта

Android-разработчик из команды VK ID SDK рассказывает, как они писали плагин для сбора метрик и с какими проблемами столкнулись.

👉 Старт
👉 Выбор решения
👉 Архитектура решения
👉 Хранилище метрик
👉 Подсчёт диффа метрик
👉 Работа с репозиторием
👉 Внутреннее устройство метрики
👉 Метрика размера SDK
👉 Gradle-плагин
👉 Заключение

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

Читать (Ru)

Mobile Native ️️

04 Nov, 11:30


iOS-разработчикам, которые хотят прокачать свои навыки работы с многопоточностью – совсем скоро стартует Podlodka iOS Crew!

С 11 по 15 ноября лучшие эксперты разберут многопоточность, Swift Concurrency и алгоритмы в формате удобных онлайн-сессий.

В программе:

🔹 Александр Андрюхин проведёт нас через особенности Swift Concurrency, которых ты точно не знал
🔹 Swift 6 глазами Александра Априамашвили – как переход на новую версию поможет в повседневной работе.
🔹 Антон Марченко расскажет, как async в алгоритмах делает их быстрее.
🔹 Александр Сычев раскроет механизмы работы Thread и объяснит, как это важно для работы с многопоточностью.

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

Присоединяйтесь 👉 https://podlodka.io/ioscrew

А промокод ios_crew_14_wzKlnU сообщества даёт скидку в 500 руб🥳

Mobile Native ️️

04 Nov, 06:54


Как написать Android приложение, которое не будет стыдно положить в портфолио

Большой гайд для новичков, в котором пошагово рассказывается и показывается, как с нуля разработать Android-приложение, используя лучшие архитектурные подходы – Clean Architecture и MVVM с элементами MVI, которые обеспечат поддерживаемость, тестируемость и масштабируемость, что особенно важно для сложных и долгосрочных проектов.

Код на GitLab → Just Notes

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

Читать (Ru)

Mobile Native ️️

01 Nov, 12:23


Используем Yandex MapKit с Compose Multiplatform

Yandex MapKit KMP SDK - неофициальная библиотека для работы с Yandex Mapkit на Kotlin Multiplatform.

В статье автор рассказывает про применение этой библиотеки в проектах на Compose Multiplatform. Библиотеку можно рассматривать как расширенный интероп MapView с UI на Compose для Android таргета, а можно как добавление поддержки Yandex MapKit SDK в common код с модулем для интеграции в Compose UI для Android/iOS приложений.

В предыдущей части можно почитать про разработку библиотеки.

Библиотека на GitHub → Yandex MapKit KMP SDK

Читать (Ru)

Mobile Native ️️

31 Oct, 18:31


iOS Performance Optimization

Репозиторий с подборкой различных ресурсов/статей по оптимизации перфоманса iOS приложений.

🟢Reduce App Size
🟢Reduce Build time
🟢App Launch time
🟢App Runtime
🟢App Hang
🟢Memory usage
🟢CI

GitHub → iOS-Performance-Optimization

Mobile Native ️️

31 Oct, 12:30


Отличные новости для React-разработчиков: монетизировать приложения стало проще 💰

Яндекс выкатил плагин для React Native, а это значит, что сейчас приложения на фреймворке можно подключить к их рекламной сети. Теперь монетизация доступна не только на iOS, Android, Unity и Flutter.

Вот почему почему стоит присмотреться к РСЯ:

Большая база рекламодателей
Рекламная сеть Яндекса собрала большую базу в СНГ и по всему миру: свыше 300 тысяч прямых рекламодателей и более 60 сторонних источников рекламы.

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

Гибкая настройка рекламы
Более 1 000 факторов для подбора релевантной рекламы, 30+ индустрий и рекламных 7 форматов для разных категорий приложений.

Узнать подробнее о монетизации приложений в Рекламной сети Яндекса можно по ссылке.

Mobile Native ️️

31 Oct, 09:22


Главный метод Android-приложения

Короткая статья про главный Java метод main: где и в какой момент он вызывается, в контексте Android-приложения и какое отношение к этому имеет ActivityThread и Zygote.

Читать (Ru)

Mobile Native ️️

30 Oct, 16:45


How to implement Linear Gradient with any angle in Jetpack Compose

Стандартная реализация градиента в Jetpack Compose вполне подходит для примитивных кейсов, но если вы например захотите отрисовать градиент под кастомным углом – не получится, такой настройки нет.

Вот тут статья c примером реализации отрисовки градиента по формуле, а вот тут пример кода.

Пример кода на GitHub → Linear-Gradient-Any-Angle

Читать (En)

Mobile Native ️️

30 Oct, 08:58


Как создавать собственные DSL и применять их при разработке приложений?

Узнайте на открытом уроке «Возможности Kotlin для создания DSL на примере JsonBuilder»!

📅 Дата и время: 31 октября, 19:00 МСК
🔗 Записаться на событие

Что вас ждет

🟢Погружение в назначение, особенности и практическое применение DSL
🟢Практика создания DSL на примере JsonBuilder
🟢Обзор возможностей Kotlin, полезных для создания DSL

👨‍🏫 Урок проведёт Евгений Непомнящий, преподаватель OTUS и опытный старший разработчик с многолетним стажем.

Это занятие будет полезно всем, кто использует Kotlin или хочет изучать этот язык.

Урок приурочен к старту курса «Kotlin Backend Developer. Professional». После занятия вы сможете продолжить обучение по специальной цене и даже в рассрочку!

➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить это интересное мероприятие.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, Erid: LjN8KCPuS

Mobile Native ️️

29 Oct, 11:45


Implementing Overslide interaction in Jetpack Compose

Статья с примером реализации вот такого overslide эффекта на Jetpack Compose.

А в предыдущей статье автора, можно почитать про реализацию overscroll эффекта.

Читать (En)

Mobile Native ️️

28 Oct, 17:30


Партнеры РСЯ смогут подключиться к мобильной аналитике AppMetrica в несколько кликов

AppMetrica упростила процесс получения доступа к расширенной аналитике, для этого достаточно:

👉 Зарегистрироваться в AppMetrica под логином в РСЯ или Adfox
👉 Заполнить профиль
👉 Связать с AppMetrica приложения, которые монетизируются с РСЯ
👉 Подтвердить согласие на передачу данных

После этого данные начнут подгружаться автоматически.

Если вы уже работаете с AppMetrica, вам нужно только добавить связь с приложением Yandex Mobile Ads SDK.

Читать (Ru)

Mobile Native ️️

28 Oct, 13:26


Mastering Android ViewModels: Essential Dos and Don’ts Part 5

Пятая часть из цикла Mastering Android ViewModels, по лучшим практикам работы с ViewModel.

В этой части рассматривается

👉 Избегание хардкода Coroutine Dispatchers
👉 Использование тестирования для ViewModels
👉 Избегание раскрытия suspend функций

Читать (En)

Mobile Native ️️

28 Oct, 06:45


Поговорим про деньги в IT?

Приглашаем опытных IT-специалистов пройти небольшой опрос про зарплаты и бенефиты в технологических компаниях. Это займёт не более 7 минут — а ваше мнение поможет одному крупному российскому работодателю делать актуальные оферы.

Пройти опрос можно здесь

Mobile Native ️️

27 Oct, 10:44


iOS 18 для разработчиков: Ключевые изменения в UIKit

Большая статья с обзором нововведений и самых интересных обновлений UIKit в iOS 18 — новый TabBar, анимации, совместимость UIKit/SwiftUI и т.д..

🟢Сравнение кода в iOS 17 и iOS 18
🟢Новый TabBar в iPadOS 18
🟢Плавные переходы (fluid transitions)
🟢Animations
🟢Gesture recognizers
🟢Automatic trait tracking
🟢List environment trait
🟢UIUpdateLink
🟢Symbol animations
🟢Sensory feedback
🟢Text improvenments
🟢Writing Tools support

Читать (Ru)

Mobile Native ️️

26 Oct, 13:00


Самые весёлые TODO из Android-фреймворка

В выходной день предлагаю почитать фановый материал от Абакара, с подборкой забавных тудух и комментов из AOSP.

Читать (Ru)

Mobile Native ️️

24 Oct, 21:46


Решение проблемы race condition в Kotlin корутинах

Статья с разбором и примерами различных способов решения проблемы race condition в корутинах.

👉 Mutex
👉 Атомарные операции
👉 Channels
👉 Actors
👉 Semaphore
👉 SharedFlow или StateFlow

Читать (Ru)

Mobile Native ️️

24 Oct, 06:45


Тестируйте мобильные приложения без эмуляторов и телефонов
 
Для тестирования мобильных приложений раньше нужно было покупать разные модели смартфонов, обслуживать устройства, передавать их между сотрудниками и все это без возможности провести параллельное тестирование.
 
Сейчас возможно приблизиться к клиентскому опыту, проводить параллельные тесты на разных устройствах, проверять производительность, нажатия и UI. И все это благодаря мобильной ферме от Selectel. Физические устройства покупать не нужно — они доступны к аренде удаленно.
 
Вы можете получить доступ бесплатно. Для этого запросите демо продукта и убедитесь в удобстве мобильной фермы на собственном опыте.
 
Преимущества мобильной фермы Selectel:
● Простор для тестирования как на популярных, так и на редких моделях телефонов — 100+ моделей смартфонов с разными параметрами (Android версии, процессоры, диагонали и т.д.)
● Доступность — легкая аренда и управление устройствами без ограничений по времени сессий через my.selectel
● Удаленная работа на устройствах из любой точки мира
● Удобство — настройки сохраняются, пока устройство закреплено за вами вне зависимости от количества тестов и длины сессии.
● Безопасность — информация о ваших сессиях автоматически удаляется после завершения аренды
 
Оставляйте запрос на демо продукта: https://slc.tl/m8jmn

Реклама АО «Селектел». ИНН: 7810962785 Erid: 2VtzqxMNwKi

Mobile Native ️️

23 Oct, 10:42


Compose Animations Playground

Репозиторий с набором различных анимаций для Compose Multiplatform.

GitHub → ComposeAnimationsPlayground

Mobile Native ️️

22 Oct, 23:02


Paint the Stars — Drawing with Compose and Canvas

Если вдруг вам нужно отрисовать вот такие звёздочки с планетами, на Canvas в Jetpack Compose, вот вам статья 😉

Читать (En)

Mobile Native ️️

22 Oct, 11:45


Ещё нет планов на 16 ноября?
16 ноября встречаемся на большом митапе для мобильных разработчиков


Приходите на Я.Субботник в московский офис Яндекса на «Парке культуры»!

В программе — доклады об iOS и Android, экскурсия по «Красной Розе» и командный квиз с участием автора блога Mobile Developer Алексея Гладкова и руководителя мобильной разработки Супераппа Яндекса Артура Василова. А ещё нетворкинг и афтерпати с угощениями и напитками.

Регистрируйтесь и присоединяйтесь офлайн или онлайн.

Mobile Native ️️

22 Oct, 06:43


Open SwiftUI Animations

Репозиторий с реализациями большого количества разнообразных анимаций на SwiftUI.

GitHub → Open SwiftUI Animations

Mobile Native ️️

21 Oct, 22:12


Gradle Convention Plugins: как облегчить себе жизнь и уменьшить boilerplate в gradle-файлах

Собрал все ссылки на статьи из цикла "Gradle Convention Plugins: как облегчить себе жизнь и уменьшить boilerplate в gradle-файлах" в один пост.

• Проблемы build.gradle-файлов и начальная настройка для написания Gradle Convention Plugins

• Создание плагинов и переиспользуемых частей в .gradle.kts-файлах и Kotlin extension-функциях

• Создание Convention Plugin-ов на базе Kotlin-классов

• Оптимизации кода Gradle Convention Plugins, выводы по результатам использования подхода

Mobile Native ️️

21 Oct, 14:04


How we improved our 1Weather Android app cold startup time by over 70% and slow cold start sessions by over 24%

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

Если коротко: анализ, StrictMode, ленивая инициализация зависимостей, инициализация SDK в бекграунд потоках, вёрстка на ConstraintLayout.

Читать (En)

Mobile Native ️️

21 Oct, 06:45


Успейте занять свое место на CrossConf – главной конференции года по кроcсплатформенной разработке и трендам IT.

8 ноября в Москве соберутся эксперты из Яндекса, VK, Сбера, Ozon, Альфы, Авито и других ведущих компаний. В программе доклады по Flutter, Kotlin, продуктовой разработке, дизайну и управлению в IT.

Что вас ждет:

▪️Более 60 спикеров и 50 докладов о последних трендах .
▪️Нетворкинг, заряд энергии, новые знакомства и идеи.
▪️Afterparty и неформальное общение, вручение премии CrossConf Awards.

Успейте зарегистрироваться до 1 ноября и получите 10% скидку на любое количество билетов. Промокод — LASTCALL.

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

Mobile Native ️️

18 Oct, 10:31


Динамические модули в приложениях на Android: опыт использования Dynamic Feature Delivery

Статья от разработчика Яндекс Go про интеграцию механизма Dynamic Feature Delivery в современную архитектуру Android‑приложения с использованием корутин и внедрение динамического модуля, использующего Flutter.

👉 SplitInstallManager: что это и как работает
👉 Реализация обёртки для SplitInstallManager
👉 Реализация и тестирование DynamicFeatureLoader

Читать (Ru)

Mobile Native ️️

17 Oct, 18:03


Корутины: stackful vs stackless

Довольно полезная статья, в которой автор объясняет разницу между stackless и stackful корутинами: чем они отличаются, какие у них плюсы и минусы, а также в общих чертах рассказывает, как в некоторых языках программирования реализована многопоточность.

👉 Процессы и Потоки
👉 Модель корутин поближе
👉 Stackful и Stackless корутины
👉 Переключение между корутинами
👉 Как реализован стек
👉 Где используются корутины

P.S. В статье корутины рассматриваются как общий концепт, без привязки к конкретному языку.

Читать (Ru)

Mobile Native ️️

17 Oct, 10:31


Тесты для функций compose в андроид

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

👉 Зачем нужны вообще тесты?
👉 Основные виды тестов
👉 Практика

Читать (Ru)

Mobile Native ️️

16 Oct, 10:04


Profiling apps using Instruments

Apple выпустила новую серию туториалов по использованию Instruments для анализа производительности, ресурсов и поведения приложений.

• Getting started with hang analysis
• Identifying a hang
• Analyzing main thread activity
• Determining execution frequency
• Reducing main thread work by doing less
• Executing work asynchronously
• Understanding synchronous and asynchronous hangs
• Ensuring work executes on a background thread

Читать (En)

Mobile Native ️️

15 Oct, 21:07


Как улучшить качество WebRTC-звонков на примере сервиса VK Звонки

Если вдруг делаете звонки через WebRTC, тут разработчик из VK рассказывает, как можно улучшить качество и реализовать некоторые доп. штуки.

👉 WebRTC
👉 Качество и оптимизация
👉 Демонстрация экрана

Читать (Ru)

Mobile Native ️️

15 Oct, 06:45


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

Чтобы расти в профессии и получать крутые офферы, разработчик может прокачать навык построения архитектуры. Он может собрать библиотеку из каналов, статей и видео или пройти полноценный курс.

Курс «Архитектор ПО» от Практикума поможет развить навык решения архитектурных задач. Техлиды Яндекса и других компаний покажут противоположные архитектурные подходы. Благодаря этому разработчику не придётся учиться на своих ошибках — он научится на опыте коллег. За 6 месяцев курса он разработает и добавит в портфолио 5 архитектур.

Курс подойдёт бэкенд-разработчикам, которые:
— работают 2+ лет;
— хотят развиваться на текущей позиции и повышать свой грейд;
— хотят получить должность лида или архитектора ПО.

Успейте записаться на ближайший поток по ссылке

Mobile Native ️️

14 Oct, 20:47


Как зеленый Леруа Мерлен стал желтым Лемана ПРО

Я тут на недельку выпал, вначале отходил от небольшого отпуска, затем погряз в рабочие задачи. Чутка раскидался со всеми делами и возвращаюсь к публикациям.

Статья про то, как делали ребрендинг мобилок из Леруа Мерлен в Лемана ПРО.

👉 Цвета
👉 Картинки
👉 Название
👉 Lottie анимации

Читать (Ru)

Mobile Native ️️

05 Oct, 08:02


Декларативный подход в организации gradle зависимостей в Android-проектах

В догонку ещё одна статья про Gradle, а именно про то, как упростить работу с зависимостями, с помощью своих extension функций.

Читать (Ru)

Mobile Native ️️

04 Oct, 06:45


Прочие оптимизации кода Gradle Convention Plugins, выводы по результатам использования подхода

Заключительная часть из цикла "Как облегчить себе жизнь и уменьшить boilerplate в gradle-файлах", в которой оптимизируется и рефакторится написанный в предыдущих частях код, настраивается область видимости convention-плагинов и extension-функций для конфигурации сборки + подводятся итоги данного подхода.

Читать (Ru)

Mobile Native ️️

03 Oct, 23:04


ByteWeaver в Open Source: инструментирование байт-кода Java во имя великого блага

Большая и полезная статья про байт‑код, как и зачем с ним работать, ByteWeaver и примеры работы с байт‑кодом.

👉 Что такое байт-код
👉 Инструменты для работы с байт-кодом
👉 ByteWeaver и история его становления
👉 Какой байт-код мы можем править
👉 Как можно править байт-код: пример работы с ByteWeaver
👉 Примеры реальных преобразований в проде

ByteWeaver — инструмент для патчинга байт‑кода во время сборки, который может быть полезен разработчикам под Android.

Читать (Ru)

Mobile Native ️️

03 Oct, 12:46


50 терминов системного дизайна, которые должен знать каждый разработчик

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

Читать (Ru)

Mobile Native ️️

02 Oct, 08:16


Koin: как сделать свой DI за 10 минут

Большая статья с примером реализации своего механизма, на котором построен Koin, с разбором возможных проблем построения собственного DI.

👉 Кратко о Koin и Service Locator
👉 Как отличать одинаковые объекты
👉 Создание концепции модулей и удаление объектов из Map
👉 Возможность создания Singleton
👉 Проброс параметров
👉 Выводы

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

Читать (Ru)

Mobile Native ️️

01 Oct, 15:54


Основы BDUI для продуктовых дизайнеров. Шпаргалка

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

👉 В чём суть BDUI, и чем он отличается от классического подхода к разработке
👉 Что такое контракт экрана, контракт компонента, и как с ним работать дизайнеру
👉 Как дизайнеру читать JSON

Читать (Ru)

Mobile Native ️️

27 Sep, 08:02


Проблема UseCase-ов: что нужно знать разработчикам Android

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

Читать (Ru)

Mobile Native ️️

26 Sep, 15:31


Создание Convention Plugin-ов на базе Kotlin-классов

Третья часть из цикла "Как облегчить себе жизнь и уменьшить boilerplate в gradle-файлах", в которой рассматривается создание Convention Plugin‑ов на базе Kotlin‑классов.

Читать (Ru)

Mobile Native ️️

26 Sep, 10:56


Магия ссылок Системы быстрых платежей

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

👉 Пользовательский взгляд
👉 Платежные ссылки под капотом
👉 Особенности работы платежных ссылок на мобильных платформах
👉 Как выбрать подходящий тип платежной ссылки

Читать (Ru)

Mobile Native ️️

21 Sep, 07:45


Как следить за состоянием мобильного приложения?

Разработчик из Циан рассказывает, как они создавали Техническую Мобильную Аналитику (ТьМА) и получили возможность в любой момент времени ответить на вопрос: «Всё ли в порядке с приложением?»

👉 Какую проблему решаем
👉 Понятия технических метрик
👉 Технический инструментарий
👉 Устройство кластера телеметрии в Циан
👉 Реализация телеметрии в мобильных приложениях
👉 Создание метрики
👉 Что мерить?
👉 Сбор данных
👉 Построение графиков
👉 Настройка алертов
👉 Расследование проблем
👉 Вывод

Читать (Ru)

Mobile Native ️️

20 Sep, 22:55


Создание плагинов и переиспользуемых частей в .gradle.kts-файлах и Kotlin extension-функциях

Вторая часть из цикла "Как облегчить себе жизнь и уменьшить boilerplate в gradle-файлах", в которой рассматривается создание плагинов и переиспользуемых частей в .gradle.kts-файлах и Kotlin extension-функциях.

Читать (Ru)

Mobile Native ️️

18 Sep, 15:33


Decompile and Recompile APK using Apktool : Beginners Guide

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

• Apktool
• Keytool
• Apksigner
• Zipalign
• JD-GUI
• dex2jar

Читать (En)

Mobile Native ️️

18 Sep, 06:33


Add powerful analytics modifiers in Jetpack Compose with ModifierLocal!

Интересный способ отправки событий в аналитику через кастомный modifiers.

Читать (En)