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
Generics in Swift explained with code examples

А вот отличная статейка на тему дженериков в Swift, в которой рассматриваются основные аспекты с примерами кода (что такое generics, как использовать).

Читать (En)
🔥6
Performance Considerations for Memory Leaks: An Android Cookbook

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

👉 Статические ссылки (Context, Activity, Fragment, View)
👉 Взаимодействие с UI из компонентов не относящихся к Android, например Presenter или ViewModel
👉 Работа с Bitmap (bitmap?.recycle())
👉 Ссылки на UI объекты в бекграунд потоках
👉 Вложенные нестатические классы

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

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

Наш большой и мощный 2-ух недельный дайджест 💪. За прошедшие две недели было несколько интересных новостей:

1. Apple разрешила использовать сторонние способы оплаты в Южной Корее с комиссией в 26% 😁
2. Google выплатит разработчикам около 90 миллионов долларов по иску монополизации рынка и взимании несправедливой платы в размере 30% за app-purchases и in-app purchases, сделанные через Play Store.

Android 🤖

• Modularising Trendyol Android App for Build Efficiency
• We need to go deeper: диплинки и кодогенерация
• A Solution for Combining Kotlin Suspend Function + Retrofit
• 14 задач по Kotlin lists, которые заставят вас подумать
• 8 anti-patterns in Android codebase and why I hate them
• 5 Useful Kotlin Extensions for Android Developers
• Stop passing Context into ViewModels
• Customizing AnimatedContent in Jetpack Compose
• Compose End to End тестирование. Основы
• Setup your CI/CD Pipeline with Fastlane and Github actions for Android apps
• Performance Considerations for Memory Leaks: An Android Cookbook
• Compose sample app: UI state with Flow, offline first
• Side Effects in Jetpack Compose
• The God-level Kotlin Function
• How OkCredit Android App boosted Network Performance by 30%
• Advance Architecture for Android Project
• Control In-app update in Android
• A better way to pass Data from Api to Composable - Jetpack Compose
• MVI Pattern in Android
• Best Android App Templates and Themes of 2022
• 7 Jetpack Compose Projects to Become a Better Android DeveloperPart- 3
• Load Fragments in Jetpack Compose: Beyond What Google Taught
• Kotlin DataFrame Preview
• Screen response time. A critical metric for user experience
• How to learn Kotlin with IntelliJ IDEA and Android Studio integrated courses

iOS
🍏

• Исследование российских команд iOS разработки, 2022
• Переход на SwiftUI: внедряем TabView взамен UITabBarController
• Generics in Swift explained with code examples
• ARKit 6. Что нового?
• Decoding Dynamic JSON with Swift Codable
• Implement SwiftUI Navigation With NavigationStack and NavigationSplitView
• Understanding VIPER Architecture
• 7 Useful iOS Libraries You Should Use in Your Next ProjectPart- 4
• A Complete Guide to iOS App Auto Deployment with CI-CD
• Диспетчеризация в Swift: погружение в теорию и практику
• Приключение на 5 минут: как мы переводили все зависимости на SPM
• Creating Cool UI: iOS Shape Morphing
• Async/await в Swift 5.5: асинхронность «здорового человека»
Removing Dependencies: One Weird Trick for Increasing Happiness,
• Existential any in Swift explained with code examples
• Multi-platform image resizing
• VIP design pattern (or Clean Swift)
• The power of task view modifier in SwiftUI
• AsyncSequence & AsyncStream Tutorial for iOS
• Async Composable Architecture: The Problem
• Typed Payloads in SwiftUI using NSUserActivity
• Testing Throwing Methods In Swift Actors

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

• Build a Flutter app with Very Good CLI and Supabase
• Getting Started With Staggered Animations in Flutter
• Dart Code v3.44
• Flutter для автомобиля. А почему бы и нет?
• Announcing the Dart Custom Lint package
• Dynamic theme color with Material 3 (You) in Flutter
• Deep Linking in React Native
• Flutter battery app made with Klutter
• How to write Flutter code efficiently
• Flutter 3: What are enums and what is new about it
• Как мы перешли на регулярные релизы мобильного приложения. Часть I
• Improving shared architecture for a Kotlin Multiplatform, Jetpack Compose and SwiftUI app

← Previous | Next →

Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Библиотеки и инструменты: @mobile_dev_tools
Подписаться: @mobile_native
Чат: @mobile_native_chat
👍4❤‍🔥3🔥1
Android In-app update

Круто же, когда приложение может само обновляться и мы, как разработчики может управлять этим процессом. Если вдруг вы не работали с in-app update, вот несколько статей, которые помогут понять основной принцип работы.

В первой статье показан сам принцип работы с in-app update, разные типы обновления с учетом логики приоритетов обновления, а во второй статье пример того, как можно запилить доп. логику для force обновления через firebase remote config.

Полезые ссылки

👉 In-app update
👉 Control In-app update in Android
👉 The easiest way to implement Firebase RemoteConfig in Android
👉 In-app updates docs
👍24
Navigation in Multi Modular App using DeepLinks

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

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

Код из статьи тут: NavigationWithMultiModuleApp

Читать (En)
👍9🔥1
A Perception of Exception in Kotlin Coroutines

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

Читать (En)
👍6🔥1👏1
Switching between SwiftUI’s HStack and VStack

Несколько вариантов реализации собственного DynamicStack на SwiftUI, который будет автоматически переключаться между HStack и VStack в зависимости от ориентации (portrait, landscape).

Читать (En)
👍5
How to make Android Studio look Awesome!

В какой-то момент статья затералясь в избранном и я забыл ее опубликовать. Надо исправить это дело 😉

Если вы, как и я, первым делом после установки студии идете меняеть в ней тему на какую-нибудь Dracula или на свою кастомную – статья вам однозначно зайдет 😎

Кроме тем, в статье так же есть несколько прикольных плагинов типа Atom Material Icons или тот же Rainbow Brackets.

Читать (En)
👍16👎6
How to Show Library Dependency Tree in Android Studio?

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

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

Читать (En)
👍8🔥3
Исследование российских команд Android разработки, 2022

А вот стартанули ежегодный опрос и по Android направлению. Вопросы и темы, аналогичные iOS опросу.

👉 Как Android разработчики получают новые знания
👉 Какие команды Android разработки самые сильные
👉 Сколько человек решило уехать, а сколько – остается в России
👉 Какие книги больше всего рекомендуют прочесть
👉 Сколько мобильщиков работает удаленно, а сколько – в офисе

Результаты опросов в публичном доступе будут +/- через месяц (середина августа). Если вдруг пропустили, опрос по iOS тут.

Пройти опрос
👍6👎3
Дайджест недели

Twitter хочет обязать Илона Маска через суд выполнить свои обязательства, то бишь купить Twitter 🤷‍♂️. Первое заседание должно состоятся завтра (19 июля).

Уже видели, что в Android Studio Electric Eel должна появиться фича, которая позволит просматривать логи из Crashlytics непосредственно в IDE? Выглядит прикольно и должно быть супер удобно 🔥

На этой недели будет проходить несколько онлайн/офлайн ивентов по мобилкам раз (Санкт-Петербург), два (Санкт-Петербург) и три (Ереван).

Android 🤖

• Android In-app update
• Navigation in Multi Modular App using DeepLinks
• A Perception of Exception in Kotlin Coroutines
• Podlodka Android Crew!
• How to make Android Studio look Awesome!
• How to Show Library Dependency Tree in Android Studio?
• Исследование российских команд Android разработки, 2022
• Ускорение сборок flavors и buildTypes малой кровью и кастомным BuildConfig
• (Not so) Gentle introduction to Polymorphic Serialization in Kotlin
• Parallel processing with state management in Lazy Column -Jetpack Compose
• ViewPager in Jetpack Compose with dot indicators (within minutes)
• 2 Ways to Request Permissions in Jetpack Compose
• Fixing Problems of Jetpack Compose Navigation
• Nested Auto Scroll For Section Based Lists With Jetpack Compose
• Performance best practices for Jetpack Compose (GoogleIO 2022 recap)
• 5 Awesome Custom Button Designs made with Jetpack Compose
• Custom Views Library for your Android Project
• Redundant DTO-Domain Mapping in Kotlin Flow
• The Quick Developer’s Guide to Migrating Apps to Android 12

iOS
🍏

• Switching between SwiftUI’s HStack and VStack
• A First Look at SwiftUI NavigationStack, NavigationPath, and “navigationDestination”
• How iOS 16 makes your app launch faster
• Getting UIKit's UICalendarView from iOS 16 fully functioning in a SwiftUI app
• How to add opt-in compiler argument in build.gradle?
• Errors Validation In Swift!
• SwiftUI 4 — Add Scroll Background
• Create custom TextField Styles in SwiftUI
• New in SwiftUI 4 : Range Area Chart
• SwiftUI Preview’s useful features that can improve your productivity 20x times
• When should I use a class vs a struct?
• Architectures comparing for SwiftUI
• Code generation using Swift Package Plugins
• The Facade Design Pattern In Swift

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

• Explore Barcode Scanner In Flutter
• IndexedStack In Flutter
• Implementing Voice Searching In Flutter
• Equatable In Flutter
• My Experience After Using Kotlin Multiplatform in Production Apps for a Year
• Flutter Clean Architecture with Rorty App
• Building our first Kotlin Multiplatform Mobile project

Previous | Next →

Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Библиотеки и инструменты: @mobile_dev_tools
Подписаться: @mobile_native
Чат: @mobile_native_chat
👍6🔥5
Kotlin Coroutines Tutorial for Android : Advanced

Еще один туториал по корутинам.

👉 Что такое Coroutines
👉 Coroutine Builders
👉 Blocking Builder
👉 CoroutineScope
👉 Canceling a Job
👉 CoroutineDispatchers
👉 Handling Exceptions

И всё это с примерами кода.

Читать (En)
🔥15👍5👏1
Stop Using RecyclerView.Adapter

Короткая статья про то, почему нужно использовать ListAdapter вместо RecyclerView.Adapter.

Для тех, кто не юзал ListAdapter – это по сути тот же самый RecyclerView.Adapter, только с уже имеющимися плюшками в виде DiffUtil. В конструкторе требует DiffCallback, имеет готовые методы submitList(…), ну и считает диффы на бэкграунд потоке через AsyncListDiffer.

Читать (En)
👍33🤯9🔥3🤔1
Google разрешит использовать сторонние методы оплаты в приложениях

Google снижает комиссию на 3% (с 15% до 12%) для тех, кто переходит на сторонний биллинг. Только всё это будет работать для неигровых приложений и только для пользователей из Европейской экономической зоны (ЕЭЗ) на основании новых правил.

Читать (Ru)
👍14💩5
30+ SwiftUI Open-Source Projects With Guided Tutorials

Годная подборка, с open-source проектами (более 30) по SwiftUI. Различные графики, анимации, пикерки, вьюверы, виджеты, готовые проекты и прочее. В избранное

Читать (En)
🔥7👍2
The “Real” Clean Architecture in Android: S.O.L.I.D.

Очередная, уже наверное миллионная по счету статья на тему чистой архитектуры. В целом ничего нового (SOLID, интерфейсы, интеракторы, тестирование, зависимости и т.д.), но вдруг что-то подчерпнете из статьи.

Читать (En)
👍19🤮91🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Как мы ускоряли сборку Android-приложения из двух миллионов строк кода

Сказ от Яндекса о том, как они ускоряли сборку Android-приложения на примере Яндекс Браузера, с помощью различных настроек гредла и AGP.

Читать (Ru)
👍20💩3
How to Make Unit Tests for ViewModel Easier to Write and Maintain

Статья про то, как организовать Unit тесты для ViewModel, чтобы упростить их поддержку и написание новых тестов.

Читать (En)
👍16
Getting started with iOS Application Modularization

Гайд для начинающиих по разделению проекта на модули через Cocoa Touch Frameworks.

Читать (En)
👍4
Адаптация Jetpack Compose в hh.ru

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

Как я и говорил выше, вполне логично, что история внедрения начинается с простого экрана "О приложении".

Читать (Ru)
👍15💩4