Mobile Native ️️
5.59K subscribers
833 photos
6 videos
3 files
956 links
Полезные материалы по мобильной разработке. Статьи, подборки, нововведения, анонсы.

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

Автор: @artemiygreg
iOS / Swift: @swift_tips
Библиотеки и инструменты: @mobile_dev_tools
Митапы: @meetup_today
Download Telegram
Работа с UI-автотестами под Android: от запрета мерджа к особенностям запуска

Ребята из OK рассказывают о своём подходе к работе с UI-автотестами в Android.

👉 Как устроен запрет мерджа
👉 Как смогли стабилизировать тесты
👉 Как настроили параметризацию запуска

Читать (Ru)
Forwarded from Swift Tips
SwiftUI Field Guide

Каким-то чудом я пропустил достаточно крутой сервис – SwiftUI Field Guide, где чуваки на интерактивных примерах объясняют как работает верстка в SwiftUI. Можно менять параметры, двигать ползунки при этом виден код и сразу показывается как меняется верстка 🔥

Сайт активно дополняется. Вот список того, что уже есть👇

Introduction

• View Trees
• Debugging

Modifiers

• Aspect Ratio
• Padding
• Offset
• Fixed Frames
• Flexible Frames
• Overlay

Views

• Image
• Shape

Containers

• HStack
• VStack
• Scroll View
• Layout

Concepts

• Alignment
• Ideal Size
• Safe Area

Однозначно в избранное

Сайт → Swiftuifieldguide
Глобальные события в мобильном приложении

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

Читать (Ru)
Подборка бесплатных книг

Забирайте репозиторий с огромным количеством бесплатных книг по разным технологиям на разных языках, в том числе и на русском.

Имейте в виду, репозиторий достаточно старый, вероятно что-то может быть deprecated

GitHub → Free Programming Books
Perk up your understanding of generics

Подробный иллюстрированный гайд по дженерикам.

👉 Introduction to Generic Types
👉 Type Parameter Constraints
👉 Generics in Practice
👉 Generics in the Standard Library
👉 Trade-Offs of Generics

Читать (En)
Колитесь, уходили на обед безвозвратно? 😂

На моей практике был похожий случай. Чувак устраивается к нам в компанию, в первый день пришёл, побегал по кадрам с доками, пробыл в офисе час, другой и свалил =))
Как протестировать Android-приложение, которому требуются разрешения

Подробный туториал по написанию UI-тестов на Kaspresso для приложений, которым требуются разрешения.

Читать (Ru)
Игра в безопасность Android-приложений

Большая и полезная статья, в которой рассматриваются различные процессы взлома Android-приложений(отслеживание http/https трафика, ресурсы, AndroidManifest, обфускация/деобфускация, C++) и возможные варианты защиты.

Читать (Ru)
Кодогенерация токенов дизайн-системы для Android по Figma API

Большая статья про то, как поддерживать дизайн-систему в консистентном состоянии с помощью автоматизации и интеграции Figma → Android.

👉 Почему решили идти в историю с автоматизацией
👉 Research и первая попытка
👉 Data-слой
👉 Генерация цветов
👉 Генерация типографики
👉 Генерация изображений
👉 Работа с устаревшими (или deprecated) токенами
👉 Остальные токены
👉 Генерация XML для Android View System
👉 Схема генерации. Итоговый проект
👉 Итоги
👉 Полезные ссылки

Читать (Ru)
Конструкторы-самозванцы в Kotlin

Интересная статья про некоторые особенности в Kotlin, связанные с вызовами конструкторов классов и функциями, которые имеют аналогичный синтаксис.

Читать (Ru)
“Лента” в Yandex Mobile Ads SDK 7

В седьмую версию SDK добавили новый рекламный формат, который способен вместить десятки рекламных объявлений в один блок. “Лента” подойдет для утилит, новостей, классифайдов и других приложений с возможностью пролистывания. Пока инструмент доступен в бета-режиме для Android-приложений.

А в этой короткой статье есть описание всех остальных обновлений. Для iOS тоже есть интересные фичи.

Читать (Ru)
Mastering Android ViewModels: Essential Dos and Don’ts Part 2

Вторая часть из цикла Mastering Android ViewModels. Эта часть про возможные проблемы при использовании мутабельных состояний в качестве контрактов.

👉 Нарушение инкапсуляции
👉 Риски целостности данных
👉 Повышенная сложность
👉 Проблемы параллелизма
👉 Проблемы тестирования
👉 Архитектурная ясность
👉 Отсутствие контроля над подписчиками

Читать (En)
Capturing composable to a bitmap without losing a state

Обзор библиотеки Capturable для захвата UI Composable и генерации Bitmap без потери качества.

Библиотека на GitHub → Capturable

Читать (En)
Что делать, если кандидат оказался сеньором или психом: советы на случай форс-мажоров

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

Читать (Ru)
Dependency Injection in Compose

Статья с рекомендациями по использованию Hilt в Compose. Как предоставляются и определяются зависимости, чем отличается от привычного подхода на Fragment/Activity и т.д.

👉 Scoping dependencies
👉 What’s different in Compose
👉 Use ViewModel and Compose Navigation
👉 Use an enclosing class with constructor injection
👉 Avoid storing dependencies in CompositionLocal
👉 Use Entry Points
👉 Use a custom dependency Component

Читать (En)
Forwarded from Swift Tips
Popular git config options

Самые популярные настройки Git config.

pull.ff only or pull.rebase true
merge.conflictstyle zdiff3
rebase.autosquash true
rebase.autostash true
push.default simple, push.default current
init.defaultBranch main
commit.verbose true
rerere.enabled true
help.autocorrect 10
core.pager delta
diff.algorithm histogram
core.excludesfile ~/.gitignore
includeIf: separate git configs for personal and work
fsckobjects: avoid data corruption
submodule stuff

Читать (En)
Kotlin Learning Guide

Jetbrains подготовила большой гайд с демо и курсами по изучению Kotlin для всех уровней 👍

👉 Introduction to Kotlin
👉 Kotlin Onboarding
👉 Kotlin Koans
👉 AtomicKotlin
👉 Kotlin Core
👉 Coroutines and Channels
👉 Introduction to IDE Code Refactoring in Kotlin
👉 Algorithmic Challenges in Kotlin
👉 Kotlin Developer
👉 Introduction to Ktor
👉 Kotlin Backend Developer (Spring Boot)
👉 Introduction to Android With Kotlin
👉 Android Developer With Kotlin

Будет полезно как новичкам, так и разработчикам с опытом.

Читать (En)
Swift Cheatsheet for Android/Kotlin Developers

Относительно большая статья с сравнением Swift и Kotlin: синтаксис, основы и некоторые распространённые шаблоны.

👉 Basics (Variables, Optionals/Nullability, Functions, etc)
👉 Structures and Classes
👉 Optional Binding
👉 Enums
👉 Dictionary / Map
👉 Extensions
👉 Protocols

Читать (En)
Что посмотреть на выходных. Подборка полезностей 👇

Накопилась очередная порция интересных и полезных видосов.

Лекции Young&&Yandex

• Android - Вводная про платформу
• Android - Погружение в JVM
• Android - View в Android
• Android - Продвинутый UI
• Android - Архитектура
• Android - Корутины
• Android - Потоки и асинхронность
• Android - Инструменты разработки
• Android - Jetpack compose
• Network в Android
• Gradle и система сборки Android

• iOS - Вводная про платформу
• iOS - Advanced Swift programming
• iOS - Persistence
• iOS - Архитектура
• iOS - Concurrency
• iOS - Слой представления UIView
• iOS - Слой вью-контроллеров UIViewController
• iOS - SwiftUI
• Алгоритмы - теория и практика

Mobius

• Android – Как мы создавали дизайн-систему на Jetpack Compose
• DION – Интеграция MediaPipe в Android-приложение видеоконференцсвязи
• BDUI – удовольствие или боль
• BDUI на 100%: управляем шиммерами с бэкенда
• Убиваем Lottie? Тащим Rive?
• Cracking the Mobile Interview
• iOS — Навигация в SwiftUI
• Как Compose Multiplatform for iOS может убить Flutter?
• Рецепт приготовления кроссплатформенного мобильного видеоредактора
• Жизнь инди в Google Play
• Tracer — альтернатива Crashlytics. Другой взгляд на аналитику ошибок в приложениях
How to safely update state in your Kotlin apps

Статья про управление и безопасное обновление состояния.

👉 What is a state? What is a state transaction?
👉 Making State Reactive
👉 Unifying States
👉 Making State Consistent with State Families
👉 Making State Updates Parallel
👉 Serializable State Transactions

Читать (En)