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
Kotlin Multiplatform в мобильной разработке. Рецепты общего кода для Android и iOS

Статья про Kotlin Multiplatform, с примером как можно выносить код в общий модуль.

👉 Общий модуль в KMP
👉 Логика экранов (ViewModel)
👉 Навигация между экранами
👉 Работа с сетью
👉 DI
👉 Хранение данных
👉 Строковые ресурсы
👉 Нативные инструменты (датчики, переход в другие приложения)
👉 Пример фичи (обработка push-уведомлений)

Читать (Ru)
👍20🔥32🥰1
Топ-10 вопросов на Senior Android / Собеседование с разбором ответов и материалами

Не особо слежу за каналом Антона, но иногда посматриваю.

Вот например интересный видос, мок собеседование на Senior Android. И вопросы интересные и кандидат 🔥, можно посмотреть.

Смотреть 📹
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥7👎3🤔2
Android. Принять себя или Cookie?

Достаточно полезная статья, про то, как работать с Сookie в Android, как передаются Cookie, безопасность и вот это вот всё.

👉 Cookie — это что?
👉 Почему их не нужно принимать?
👉 Безопасно ли это?
👉 CookieJar, CookieManager, CookieStore… WebView?

Читать (Ru)
🔥13🤔5👍2
Переход на Gradle 8 Android проекта

Если еще не перевели свой проект на 8 Gradle, вероятно эта статья поможет вам минимизировать время на поиски решения различных нюансов, которые обычно возникают при обновлении.

Читать (Ru)
👍18🔥31
Forwarded from Swift Tips
Ускоряем прохождение iOS UI-тестов

Серия статей про то, как ускорить прохождение UI-тестов: что такое test runner и какие бывают, зачем распараллеливать тесты, зачем стартовать приложение с определенного экрана и какие способы реализации существуют и т.д.

• Запуск тестов без сборки проекта
• Распараллеливание тестов
• Старт приложения с определенного экрана
👍4🔥21
Kotlin под капотом: как избавиться от рекурсии

Новая статья от Макса про Tailrec и хвостовую рекурсию в Kotlin, с примерами и различным вариантами замен рекурсии.

👉 Tailrec и хвостовая рекурсия
👉 Рекурсия в деревьях
👉 Стандартный способ избавления от рекурсии через очередь
👉 Способ избавления от рекурсии через итератор
👉 Способ избавления от рекурсии через sequence.yield
👉 Результаты измерений

Читать (Ru)
👍10🔥3🤔2
Detekt: как статический анализ помогает улучшить код автотестов

Статья от Яндекса про то, как можно повысить качество кода автотестов с помощью статического анализа (Detekt).

👉 Коробочные правила
👉 Примеры наших правил
👉 Как написать своё правило
👉 Способы игнорирования нарушений
👉 Отчётность

Набор правил от Яндекса на GitHub → Detekt rules for UI-tests

Читать (Ru)
👍8🔥3👏2
Списки с душой и стилем: Ваш путь к Jetpack Compose

Статья с обзором и примерами использования списков в Jetpack Compose.

👉 Использование списков в Compose(LazyColumn, LazyRow, Column и Row)
👉 Оптимизация производительности списков
👉 Анимации в списках

Может быть полезно начинающим.

Читать (Ru)
👍174🔥3👌1
Crash Course on the Android UI Layer

Тут стартовал цикл статей про построение UI слоя в Android: стейты, сущности, best practices и. т.д.

👉 Part 1
👉 Part 2
🔥12👍32
Animating Inside and Outside the Box with Jetpack Compose

Большая и полезная статья с примерами различных анимаций в Jetpack Compose.

👉 Custom Animation Handlers
👉 Choreographing Complex Animations
👉 Physics-based Animations for Realism
👉 Gesture-based Animations
👉 State-driven Animation Patterns
👉 Morphing Shapes
👉 Snowfall effect

Читать (En)
👍12🔥21👌1
Forwarded from Swift Tips
Mastering in SwiftUI

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

• Which architecture is better: Redux or MVVM?
• Use @StateObject and @ObservableObject
• Create @Published variable with care
• Breaking down the content of the body into smaller to minimize the compilation time
• Prefer @State for the animations instead of @Published
• Declare Observable objects at a specific place to avoid unnecessary UI update
• Find which data change is causing a SwiftUI view to update
• Use LazyHStack and LazyVStack if you have a long list
• Is there anything similar to viewDidLoad()?
• Use UIKit components directly in SwiftUI
• Conditional modifier
• Avoid using .padding and .frame together
• Use GeometryReader wisely
• Use AnyView occasionally
• Must use ID with Foreach and List
• Prefer using Text over Label
• Use Group to return multiple view instances
• Use .fixedSize() to specify that the frame doesn’t change

Перевод от AppTractor → Мастерство работы в SwiftUI

Читать (En)
🔥21👍1
Android Kotlin Coroutines interview questions

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

Читать (En)
🔥325👍3
С Наступающим Новым Годом!!! 🎄🥳🎉

Предпоследний пост в этом году.

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

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

Канал в этом году не особо вырос, но остальную статистику держим на уровне 🔥. В новом году подумаю над вариантами масштабирования.

С Наступающим Новым Годом, друзья!!! 🥂
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉1810👍4🍾3
Новогодний Дайджест 🎅

Итак ребята, если вдруг вам нечем будет заняться в новогодние праздники, специально для вас собрал наиболее популярные посты в структурированном виде за весь год 😱, точно найдете для себя что-то полезное 😉

Android 🖥

• 7 Jetpack Compose Projects to Become a Better Android Developer
• 10 Open-Source Projects That’ll Make You Excited About Using Jetpack Compose
• Jetpack Compose Samples
• Jetpack Compose Codelabs
• Android Basics with Compose
• Осознанная оптимизация Compose
• Best Practices for Compose Navigation in Multi-Module Project
• Migrating to Jetpack Compose — an interop love story
• Performance with Jetpack Compose
• Jetpack Compose: Mastering States
• Реализуем современный UI на Jetpack Compose
• Android Kotlin Coroutines interview questions
• Работа с асинхронными операциями с помощью Kotlin Coroutines
• Coroutines Guide
• Kotlin Coroutines Recipes
• Kotlin Coroutines Best practices
• Kotlin Coroutines Tutorial for Android: Getting Started
• От потоков к корутинам: как и почему видоизменились примитивы синхронизации в языке Kotlin.
• Learn Kotlin Flow by real examples for Android
• Kotlin. Коллекции
• Серия статей – Kotlin под капотом
• Mastering Kotlin : A Comprehensive Guide
• Вопросы и ответы для собеседования по Kotlin
• Inline, noinline, crossinline, reified in kotlin with examples
• Best practices for error handling in Kotlin
• Kotlin Performance Tuning: 20 Best Practices You Should Know
• Kotlin: взгляд изнутри — преимущества, недостатки и особенности
• Teach Computer Science with Kotlin
• Архитектура Android. Понятно и подробно
• Guide to Good Android App Architetture
• Clean Android multi-module offline-first scalable app in 2022
• Clean Architecture for Android Sample Project
• Modern Android Development in 2023
• Multi-Module Architecture in Android
• The "Real" Modularization in Android
• How to architect Android apps
• Crash Course on the Android UI Layer
• Android-разработка для новичков: 20+ полезных ресурсов
• Android Developer Roadmap 2023
• Deep Dive Into Android Memory
• Где и как можно ускорить приложение на Android
• Эффективное и комплексное устранение утечек памяти в Android
• How ViewModel works under the hood
• Best Practises In ViewModel
• Communicating with fragments
• Многопоточность в мобильной разработке
• Gradle Cache: Your build’s best friend
• Shielding Your App: Implementing Best Practices for Android Security
• Reverse Engineering and Analyzing Android Apps
• Обзор актуальных инструментов шифрования в Android
• Ускоряем поиск по коду в Android Studio
• Список фишек Android Studio для ускорения разработки
• Оптимизация сборок Android приложений: ProGuard, D8, R8. Тайны обфускации

iOS💸

• In-App Purchases in iOS
• Swift iOS interview questions and answers
• 7 iOS Projects to Become a Better iOS Developer
Разбираем ошибки начинающих iOS-разработчиков
Как не потерять голову (и память) при поиске утечек в iOS
Building Large-Scale Apps with SwiftUI: A Guide to Modular Architecture
• Swift async/await. Чем он лучше GCD?
• Как стать iOS-разработчиком?
• Многопоточность в iOS-разработке
• Awesome iOS Dev Tools
• Полезные iOS-инструменты для дебаггинга
• iOS Developer Roadmap 2023
• Расширенное управление памятью с помощью Unsafe Swift
• 10 quick tips to increase your iOS code quality
• 10 tips to increase your iOS code quality – Part 2
• Server-Driven UI using SwiftUI
• Книги по Swift и iOS-разработке для начинающих специалистов и профессионалов
• Ускоряем прохождение iOS UI-тестов
• Mastering in SwiftUI
• Как хранить данные в iOS: UserDefaults, Keychain и сэндвичи

Common 🛠

• Основы алгоритмов
• Git Cheat Sheet
• Книга – Чистый код: создание, анализ и рефакторинг.
• Чистый код
• System Design Interview
• Clean Code — A practical approach
• Cracking the Mobile System Design Interview (iOS & Android)
• Делай нейминг как сеньор
• Mobile Applications Data Security

Что посмотреть 📹

• Часть 1
• Часть 2
• Часть 3

Еще раз с наступающим друзья, увидимся в январе 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
👍278🎄4🔥32
Пример исследовательского реверс-инжиниринга приложения Zone Launcher

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

👉 Объединение split-apk в один apk
👉 Декомпиляция кода apk
👉 Разархивировние apk и изменение android-байткода (smali) функций
👉 Сборка измененного байткода
👉 Ужатие и подписание нового apk своей подписью

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

А валидацию версии лучше делать двойную и на клиенте и на бэке, это конечно не 100% гарантия, но значительно может усложнить задачу взлома.

Читать (Ru)
👍6🔥6🤔1😍1
My Top 10 Clean Code Tips for Kotlin Mobile in 2024

10 советов для написания более чистого кода.

👉 Organize project files
👉 One, Two… Refactor!
👉 Avoid Deep Nesting: Confronting the Arrowhead Anti-Pattern
👉 Document your code
👉 Limit Global State and Singletons
👉 Avoid complex oneliners
👉 Use names for values instead of it
👉 Avoid hack-like or genius code
👉 Avoid IfNeeded and Maybe functions
👉 Sleep well

Читать (En)
👍12🔥5👎31🤔1
Разбираемся, почему Google Play Protect посчитал 2ГИС вредоносным ПО

Все же видели некоторое время назад, что Android пользователи начали получать от Google Play уведомления о том, что 2ГИС вредоносное приложение и его нужно удалить?

Так вот, Google Play Protect ошибочно посчитал 2ГИС вредоносным приложением, а ребята из 2ГИС разобрали ситуацию публично на хабре, с предположениями почему так произошло, с техническими нюансами, ответами на вопросы и деталями, для чего используются различные пермишены в приложении.

Читать (Ru)
👍8🤔3🗿2👎1🔥1
Как вкатиться в безопасность android приложений в 2024

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

👉 Особенности предметной области
👉 Что почитать на тему безопасности и анализа
👉 Базовые инструменты
👉 Как выглядит процесс анализа приложения
👉 Прочие обучающие материалы

Читать (Ru)
🔥94👍1
Создание и использование BOM в Gradle

В статье рассказывается про то, как можно организовать BOM (bill of materials) для управления версиями зависимостей + рассматриваются более сложные кейсы создания и использования BOM в Gradle-проектах.

👉 Зачем вообще нужен BOM?
👉 Как выглядит BOM?
👉 Когда создавать свой BOM?
👉 Что такое Rich Model и Gradle Module Metadata?
👉 Как несколько BOM сочетаются друг с другом?
👉 Управление версиями Gradle-плагинов через BOM

Читать (Ru)
🔥6👍4🤔1
Полезные материалы для начинающих Android разработчиков

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

Читать (Ru)
🔥94👍1
Forwarded from Swift Tips
Разборы важных новинок для iOS-разработки с WWDC 2023

Разборы новинок для iOS-разработки с WWDC 2023 от ребят из KTS.

👉 Mergeable libraries
👉 Что нового в Xcode
👉 Push Notifications. Что менялось в последние годы?
👉 Live Activities
👉 Что нового в UIKit
👉 Что нового в Swift 5.9
👉 Swift Macros
👉 SwiftData

Читать (Ru)
👍7🔥3🤔1👨‍💻1