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
Dagger + Anvil: Learning to Love Dependency Injection on Android

Пример использования связки Dagger + Anvil.

Если кто не знает, Anvil – Kotlin compiler плагин, упрощающий внедрение зависимостей с помощью Dagger, за счет автоматического мержа модулей и компонентов.

Читать (En)
👍12💩3
Clean StateFlow Transformations in Kotlin

Статья, про преобразования StateFlow, аналогично тому, как это сделано в LiveData через Transformations.

Читать (En)
👍5👎1
Дайджест недели

Сегодня дайджест снова с большим опозданием, ссорян, сбился график. Продолжается поток, не особо хороших новостей, постараюсь коротко обозначить наиболее важные. Apple Pay, Google Pay, Samsung Pay – всё, карты Visa, MC в РФ не работают, Google Play приостанавливает прием платежей в РФ, FB, Twitter и Instagram тоже всё, заблочили. JetBrains приостанавливает разработку в РФ (интересно, это как то коснется Android Studio), продажи в РФ и РБ. Так же, очень много IT-компаний, либо приостанавливают, либо уходят с Российского рынка, вот тут можно посмотреть большой список.

Android

• Dagger + Anvil: Learning to Love Dependency Injection on Android
• Clean StateFlow Transformations in Kotlin
• Reducing mammoth gradle caches
• Measuring Time and Duration in Kotlin
• Как root-права и альтернативные прошивки делают ваш android смартфон уязвимым
• Curved Corner BottomSheet using Canvas and XML
• Recycler View and View level caching
• Sample Android project: MVVM Clean Architecture with Coroutines + Tips
• Android — Send live audio stream from client to server using WebSocket and OkHttp client
• Understanding Android Application Sandbox
• Configuring Scheduled Notifications in Android
• Retrofit — Effective error handling with Kotlin Coroutine and Result API

iOS


• Подборка статей на тему тестов в iOS
• What’s new in Swift 5.6?
• Equality
• Why Apple’s New M1 Chips Are Essential for Rapid iOS Development
• Лайфхаки по многомодульности в iOS
• Functional core Imperative shell in Swift
• State restoration in SwiftUI
• Create a Simple and Maintainable iOS Network Layer With Async/Await
• Жизненный цикл UIViewController
• SceneKit Within SwiftUI

Кроссплатформа / Разработка


• Lambdas and Function References | Kotlin
• Measuring Time and Duration in Kotlin
• Top 12 Flutter Development Tools
• Smile Detection with Flutter and Google ML Kit. A Simplified Introduction to Image Processing
• What’s New in Flutter 2.10
• Introducing the Realm Flutter SDK
• Debugging layout issues using the Widget Inspector | Flutter
• How to use Alchemist for Flutter golden tests

Previous | Next

Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
👍14🔥5💩2😢1
Гайд по архитектуре приложений для Android

В декабре Гугул обновил рекомендации к построению архитектуры. Вот на хабре появился и перевод этих рекомендаций.

👉 Обзор
👉 Слой UI
👉 События UI
👉 Доменный слой
👉 Слой данных
👍19🔥4
Optimization in Swift

Цикл статей про оптимизации в Swift.

👉 Part 1
👉 Part 2
👉 Part 3
👉 Part 4
👍9
Jetpack Compose под капотом: Рекомпозиция и Стабильные типы

В статье рассматриваются основные принципы рекомпозиции в Jetpack Compose и тонкости ее работы.

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

И еще одна статья от автора – "5 практических советов по оптимизации UI на Jetpack Compose"
👍14🔥4🤔1
Reducing Gradle boilerplate in multi-module Android projects

Пример сокращения boilerplate кода Gradle в многомодульных проектах Android.

P.S. Как могли заметить, в воскресенье не вышел дайджест, есть некоторые трудности со временем. Надеюсь со следующей недели стабилизирую график 💪
👍13
Clean Architecture in SwiftUI 5.5

Еща одна актуальная и наглядная статейка про чистую архитектуру.

Структура и слои

👉 Core
👉 Data
👉 Domain
👉 Presentation

Читать (En)
👍8
Step by Step Guide to Download Files With WorkManager

А вот неплохой гайд по загрузке файлов через WorkManager (CoroutineWorker) + для UI в статье используется Jetpack Compose.

Читать (En)
🔥16👍4
OAuth в мобильных приложениях

Достаточно полезная и подробная статья про то, какими способами можно реализовать OAuth в мобилках. В статье показан пример на Android, но основная логика применима и к iOS. В целом ничего нового, но для тех, кто не работал с OAuth, будет в самый раз.

Библиотеки из статьи: AppAuth-Android и AppAuth-iOS

Читать (Ru)
👍7🔥5👎1
RxJava: простыми словами о сложном

Отличный доклад про RxJava от Алексея Быкова (@nonewss). Не смотря на появление корутин, RxJava все еще остается популярным фреймворком, на котором написано множество проектов, которые необходимо поддерживать. На мой взгляд, доклад рассчитан по большей части для начинающих, но и опытным тоже не помешает освежить память.
👍13💩2👏1
Дайджест

Как вы могли заметить, в воскресенье дайджест снова не вышел, поэтому компенсирую, вашему вниманию большой и мощный 2-ух недельный дайджест 🔥

По новостям: Apple Pay отрубили карты МИР, Google объявила о запуске пилотной программы по использованию приложениями сторонних вариантов оплаты, Google I/O 2022 пройдет 11-12 мая онлайн.

Отвалилась подписка на Medium, если вдруг кто-то знает рабочие способы оплаты из РФ – напишите плиз в личку.

Android 🤖

• Гайд по архитектуре приложений для Android
• Jetpack Compose под капотом: Рекомпозиция и Стабильные типы
• Reducing Gradle boilerplate in multi-module Android projects
• Step by Step Guide to Download Files With WorkManager
• RxJava: простыми словами о сложном
• Охота на toggle: Как простую фичу сделать максимально сложно
• Dependency Injection with HILT in Android
• Play Time with Jetpack Compose
• Gradle Plugins: Why? How?
• Gradle all the way down: Testing your Gradle plugin with Gradle TestKit
• Configuring Scheduled Notifications in Android
• Flippable (Jetpack Compose utility library)
• Memory Leaks in Reactive Android Programming
• The simplest way to create Creational design patterns in Kotlin
• Best Kotlin features that I value most as Java Developer
• How to build a beautiful multiple view RecyclerView app — The right way
• Android 13, 13 лучших функций в новых обновлениях
• 10 Jetpack Compose Projects To Inspire You
• Jetpack DataStore - wrap up
• Android Studio Dolphin Canary 6 now available
• Using performance class to optimize your user experience

iOS
🍏

• Optimization in Swift
• Clean Architecture in SwiftUI 5.5
• The Best Way to Organise iOS Project Architectures
• Как я занял третье место в конкурсе Telegram и выиграл $ 2 000
• Как я визуализировал граф билда. Build Graph for Xcode
• Abstract types and methods in Swift
• Swift 5.6 Released
• Browser Note and the process of building an iOS 15 Safari Extension
• How to modularize existing iOS projects using Swift Package
• How to use the #available attribute in Swift
• Safer and cleaner UserDefaults and AppStorage
• FormatStyle Deep Dive
• Creating a SwiftUI Looping Background Video
• Improved Type Safety With SwiftGen
• Scalable Modular Architecture in iOS
• AxisTabView for SwiftUI
• Getting Accurate Profiling Data from iOS Applications
• Introducing Swift Async Algorithms
• Fixing SwiftUI's Automatic Preview Updating Paused
• Как варить дизайн-систему для живого приложения
• Swift Coding Standards Using Loops

Кроссплатформа / Разработка
💻

• OAuth в мобильных приложениях
• Java: продвинутая конкурентность
• Jetpack Compose в проектах на React Native: плюсы, минусы и интеграция
• Regular Expressions in Kotlin
• Актуализация данных в списках Flutter-приложения
• Kotlin Tips: Loops
• Combining noscripts and DSLs is Kotlin’s most underrated feature
• Sliver во Flutter, или как работает скролл
• Top companies using Flutter in 2022
• Flutter App Architecture with Riverpod: An Introduction
• Flutter Project Structure: Feature-first or Layer-first?

Previous | Next

Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
👍14🔥2
Как мы в QIWI внедряли Kotlin Multiplatform Mobile (KMM)

Интересная и полезная статья, про историю внедерения KMM от QIWI. Полезно будет всем, кто подумывает о внедрении KMM или просто интересуется кроссплатформой.

Вы тоже заметили, что KMM становится больше?)

Читать (Ru)
👍14👎6🔥2
Шорткаты для Xcode в виде Cheat sheet

Habr: Шорткаты для Xcode в виде Cheat sheet
PDF файлик тут: Cheat sheet for Xcode
Github: Cheat sheet for Xcode
👍11🔥4
Дайджест недели

Новость этой недели – в России планируют запустить свой магазин приложений для Android, планируемая дата запуска - 9 мая. Интересно посмотреть, что из этого получится. А еще был интересный кейс с приложением ВТБ Инвестиции - вместо удалённого официального приложения, Google Play предлагает мошенников, почитать можно тут.

Android 🤖

• My Top 7 Clean Code Tips for Android Developers
• How to Implement Pagination With Jetpack Compose
• Keyboard handling in Jetpack Compose
• Exploring MovableContentOf in Jetpack Compose
• State-Machine in Android/Kotlin
• How a single Android developer improved Lyft’s Drivers app startup time by 21% in one month
• Draftsman – is an on-device layout inspector for Android apps
• Kotlin Tips: Doing More with the Elvis Operator
• Dagger/Hilt vs Koin for Jetpack Compose Apps
• Improving code quality in Android
• Common Android Interview Questions
• Android Tips | Advanced Shapes for your Drawables
• How to Catch/Handle Exceptions Globally in Android
• 10 tips from 10 years of android development experience

iOS
🍏

• Шорткаты для Xcode в виде Cheat sheet
• Effortless Concurrency in Swift with Async/Await
• Справочники в iOS: храним, обновляем, используем
• Every Screen in Your App Should Be a Scrolling View
• Создаем кастомный лоадер (спиннер или UIActivityIndicator) в UIKit
• AnyObject, Any, and any: When to use which?
• How to force two lines of Text in SwiftUI
• Releasing Tuist 3.0
• Swift: Why is my @MainActor code running in the background?
• How to add and handle actions for iOS push and local notifications
• How to add text input actions to iOS push and local notifications
• Retain Cycles and Memory Management in Swif
• Here's the ULTIMATE tip to find memory leaks in Xcode!
• Modern Swift Concurrency
• Promote like a pro

Кроссплатформа / Разработка
💻

• Как мы в QIWI внедряли Kotlin Multiplatform Mobile (KMM)
• Why and How We Rewrote Our Biggest Mobile App From Scratch
• Coding an Instagram Clone With Flutter and Feeds
• Develop A Secure Banking Mobile Application With These Eight Security Methods
• Why Go Native Mobile If Possible
• How to reduce React Native App size by 70–85% using these simple methods
• Dependency Inversion vs. Dependency Injection
• Implement Kotlin Flow race/amb operator
• Understanding Flutter Navigator 2.0
• Custom icons in Flutter
• Kotlin Multiplatform Mobile (KMM) at Granular

Previous | Next

Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
🔥6🥰1👏1
Rx to Coroutines Concepts

Цикл статей про сравнение и переезд Rx to Coroutines.

👉 Part 1 Async vs. Reactive
👉 Part 2 Structured Concurrency
👉 Part 2.1 Exceptions
👉 Part 3 Deferred & Channels
👉 Part 4 Cold Flows
👉 Part 5 Shared Flows
👍16🔥4
50 вопросов и ответов для собеседования по Swift в 2022 году

Cписок вопросов c ответами для собеседования по Swift.

Оригинал тут: 50 Swift Interview Questions and Answers in 2022

И еще несколько ссылок по теме

👉 Top iOS Fundamental Interview Questions and Answers
👉 Mobile System Design Interviews Series
👉 System Design Interview For Mobile Engineers
👍11🔥3
Наиболее распространенные уязвимости в мобильных приложениях

Довольная полезная и важная статья про безопасность в мобилках и наиболее распространенные уязвимости.

👉 Небезопасное хранение данных
👉 Хранение учетных данных
👉 Аутентификация в сторонних сервисах
👉 Хранение ключей шифрования
👉 Отсутствие защиты канала связи (SSL Pinning)

Читать (Ru)
👍6🔥4