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
Memory management when using async/await in Swift

Cтатья про особенности управления памятью при работе с async/await.

👉 Implicit captures
👉 Cancelling tasks
👉 Long-running observations

Читать (En)
👍6🔥2
Android Developer News

Вчера вышла первая Developer Preview версия Android 13. Первую бету обещают в апреле, а стабильный релиз где-нибудь к сентябрю. Подробности о сроках релизов тут. И наверное уже видели, вышел Jetpack Compose 1.1.

👉 The first developer preview of Android 13
👉 Jetpack Compose 1.1 is now stable
👉 Jetpack Compose Roadmap
Android Modularization Preps: Things to know Before Modularizing Your App

А вот вам еще одна статейка на тему многомодульности.

👉 Разделение слоев и фичей
👉 Инкрементная сборка Gradle
👉 Циклические зависимости
👉 Динамические фичи

Читать (En)
👍11🔥5
Clean Architecture on iOS

Про архитектуру, как и про SOLID много не бывает 😁, поэтому ловите статейку, про чистую архитектуру в iOS. Там про основные принципы Clean Architecture, такие как тестируемость, разделение на слои т.д., про SOLID, про UI паттерны (MVC, MVVM, MVP, VIPER) и вот это вот всё.

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

Из интересного, на этой недели вышла первая Developer Preview версия Android 13 и вышел Jetpack Compose 1.1, а Apple показала интересную фичу Tap to Pay, которая позволит использовать iPhone в качестве платежного терминала через NFC.

Android

• Android RecyclerView — Creating a Custom File Template
• 3 Android Techs That Are Sunsetting in 2022
The first developer preview of Android 13
Jetpack Compose 1.1 is now stable
Android 12L Beta 3
• Android Modularization Preps: Things to know Before Modularizing Your App
Where should you store your secret keys in Android?
• Maps Compose
• JankStats Goes Alpha
• Authenticating on Android with the AppAuth Library
• How I hacked an Android app for a premium feature
Как мы перешли с kotlinx.synthetics на Android View Binding
• How To Use Hilt to Setup a Solid Architecture in Android

iOS


• Microapps architecture in Swift. Dependency Injection.
• Top iOS Fundamental Interview Questions and Answers
• Memory management when using async/await in Swift
When should you use Decimal instead of Double?
Управление памятью в Swift
Как устроен счетчик ссылок в Swift
• Clean Architecture on iOS
Разбираем SceneDelegate и AppDelegate в iOS 13
Идентификаторы элементов в XCUITest
• Xcode 13.3 Beta 2 Release Notes
• Почему я против enum
Ускоряем прохождение iOS UI-тестов. Часть 1. Запускаем тесты без сборки проекта
• SwiftUI Live-Coding Surf: продолжение

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


• System Design Interview For Mobile Engineers
Kotlin Multiplatform Mobile and how to share ViewModel: An architecture proposal
• Screen templates — using Compose, SwiftUI & KMM
• Flutter: Run code in the background
Preview of Kotlin 1.6.20
How to Code Push Notifications for React Native Apps

Previous | Next

Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
👍8🔥4
Android 13 deep dive: Every change, thoroughly documented

Если еще не успели ознакомиться со всеми изменениями в Android 13, вот вам статья с подробным описанием и скринами.

Читать (En)
👍7
Error Handling with Combine and SwiftUI

Статья, в которой рассматривается обработка ошибок с помощью Combine и SwiftUI (Network Errors, HTTP status code, Server errors, Retry).

Читать (En)
👍6🔥3
Avoid Memory Leak Recommendations For Android Application

Рекомендации по предотвращению утечек памяти. Какие-то пункты могут быть очевидными, но освежить память не помешает.

Так же, напоминаю о существовании библиотеки LeakCanary и официальном гайде Profile memory usage.

Читать (En)
👍7🔥3
Swift Concurrency (async/await)

Подборка материалов про async/await.

👉 Документация
👉 Статьи
👉 Видосы

Читать
🔥10👍6
У Appodeal вышло исследование о рекламной монетизации за 2021 год, в котором собраны наиболее доходные рекламные сети для издателей.

Cогласно этому исследованию, рекламная сеть Яндекса стала одной из самых прибыльных сетей Восточной Европы для мобильных приложений — в баннерах на Android суммарно заплатила владельцам приложений больше, чем другие рекламные сети. Надо принимать во внимание, что это самый популярный формат по доле показов.

Еще из интересных фактов:
Самые высокие eCPM в баннерах на iOS
Второе место в баннерах на iOS по объему выплаченного вознаграждения
• Второе место по объему выплаченного вознаграждения в Rewarded Videos & Interstitials на Android

Полный отчет тут: Performance index 2021 Edition
👍61🔥1
The Complete Guide to Concurrency and Multithreading in iOS

Еще одна статья, про Concurrency and Multithreading в iOS.

👉 Main thread vs Background thread
👉 Async/await and Actor
👉 GCD vs OperationQueue
👉 DispatchGroup

Читать (En)
👍6🔥3
Clean architecture in Android

Давненько не было постов про Clean Architecture в Android 😉. Вот несколько статей, с актуальным стеком (Jetpack Compose, Kotlin, MVVM, Hilt, Paging 3.0, Room, Coroutines).

👉 Часть 1
👉 Часть 2
👍15🔥5
Дайджест недели

Наткнулся на интересное исследование от Sensor Tower, которое показало, что в слово «метавселенная» в своё название или описании, добавили уже более 500 мобильных приложений. Как отметили аналитики, если в октябре, до объявления Meta, только 11 приложений заявили о причастности к созданию своих метавселенных, то уже в ноябре их число возросло до 29. В дальнейшем тренд продолжился — в декабре это слово добавили 30 приложений, а в январе — ещё 27. Исследование тут и статья на хабре.

А еще, kotlin synthetic плагин будет удален в конце этого года, с выходом Kotlin 1.8. Если еще не мигрировали, пора это сделать, гайд по миграции тут.

Android

• Android 13 deep dive: Every change, thoroughly documented
• Avoid Memory Leak Recommendations For Android Application
• Jetpack DataStore series
• Clean architecture in Android
• Implement Themed Icons (Android 13)
• Deep dive into Android build process
• JNI, часть 3: производительность Java/JNI/NDK
• Andromeda – open-source design language system implemented in Jetpack Compose
• Kotlin Coroutines Flow in a nutshell
• ComposeAnimations
• Write better tests with the new testing guidance
• Discontinuing Kotlin synthetics for views
• Android Worldwide January 2022

iOS


• Error Handling with Combine and SwiftUI
• Swift Concurrency (async/await)
• The Complete Guide to Concurrency and Multithreading in iOS
• Swift TableManager
• Adapter pattern in practice by swift
• Погружение в Combine: последовательные и объединяющие операторы для улучшения процесса разработки iOS приложений
• Why do we ever need to inherit from NSObject?
• A simple Coordinator Pattern for iOS App
• Mockable Networking layer in iOS
• Модуляризация доменного слоя в UDF. Часть II
• Modifier Monday: .trim(from:to:)
• Deep linking and URL scheme in iOS
• CocoaHeads Февраль 2022

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


• Исследование Appodeal Mobile In-App Ad Monetization Performance Index за 2021 год
• Custom shaped AppBar as seen in the “Bunny Search” app | Flutter
• Integration Testing in Flutter: Getting Started
• Dart, Flutter и кроссплатформа: небольшой разбор на практике
• Flutter App Architecture: The Domain Model
• Создаем и тестируем свой plugin для Gradle 7.0+
• Koin 3.2 Beta & Roadmap for 2022
• Developing Kotlin Multiplatform Mobile Apps using VIPER Architecture
• KDoctor – command-line tool that helps to set up the environment for KMM

Previous | Next

Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
👍11🔥3
Mobile System Design Interviews Series

Серия достаточно крутых статей по System Design Interviews. В избранное

👉 Simple Framework For Mobile System Design Interviews
👉 Additional Topics For Mobile System Design Interviews
👉 File Downloader Library
👉 Caching Library
👉 Image Library
👉 Chat Application
👉 Common Interview Mistakes

И для тех, кто пропустил, еще одна статейка : System Design Interview For Mobile Engineers
🔥11👍3
Kotlin Flow: The easy way to deal with local and remote data

Пример использования Kotlin Flow для работы с local и remote данными.

Читать (En)
👍9🔥5
Преобразование локализованных файлов iOS для проекта Android

Если вдруг вам нужно конвертнуть iOS-ские локализованные файлы в Android XML, можно посмотреть вот эту статью, в которой это делается через регулярку в IDE.

Оригинал статьи тут: Converting Localized iOS Files For Android Project

Читать (Ru)
👍4
Improving UI State management by using a Finite State Machine and MVI architecture

Интересная статья про то, как можно улучшить управление состоянием UI между View и ViewModel, с помощью State Machine + MVI.

Читать (En)
👍4🔥2
Set up an Android CI using GitHub Actions

Про настройку CI для Android через Github Actions можно почитать в этой статье.

А если у вас GitLab, подборка статей тут: Настройка GitLab CI/CD

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

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

В ближайшее время, ежедневных постов на канале возможно будет чуть меньше, но дайджесты по графику – каждое воскресенье в 10:00 по мск. Дальше по ситуации, всем добра ❤️

Android

• Kotlin Flow: The easy way to deal with local and remote data
• Преобразование локализованных файлов iOS для проекта Android
• Improving UI State management by using a Finite State Machine and MVI architecture
• Set up an Android CI using GitHub Actions
• Single contract for android and design teams
• Как применять Branch by Abstraction в проекте на примере Android-разработки
• Android 13 and Text Rendering Algorithms
• Android’s IME Actions: Don’t ignore them.
• MVVM Unit testing on Android
• Android Nightmares | Base classes
• Lottie Android 5.0
• AvatarView for Android: Take Your Profile Images to the Next Level

iOS


• Combining protocols in Swift
• Native Network Monitoring In Swift
• Debugging SwiftUI views: what caused that change?
• A take on iOS Developer Interviews
• Redux-like state container in SwiftUI. Swift concurrency model.
• Home Screen Quick Actions for iOS: Getting Started
• SwiftUI Search: Getting Started
• Как UIView мешал слоям анимироваться
• How ranges work in Swift
• 3 surprises when using Markdown in SwiftUI
• How MVVM devs get MVVM wrong in SwiftUI: From view model to state

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


• Mobile System Design Interviews Series
• Brand New Kotlin Multiplatform Podcast: ATOM
• Все что хотели знать, но боялись спросить про Compose Multiplatform
• A complete guide to Flutter architecture
• Why Flutter is the most popular cross-platform mobile SDK
• Как написать «Пятнашки» на Flutter
• Смотрим исходники Flutter
• Что скрывают популярные курсы? Насколько полезно онлайн образование

Previous | Next →

Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
👍158
Не стоит бояться теней

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

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

Код можно посмотреть тут: AndroidShadows

Читать (Ru)
👍16💩2🔥1