В новом выпуске отслеживаем состояние переключателя тихого режима, изучаем макросы Swift и Android-разработку, катим фичи без релизов, собираем слезы вкатунов, отказываемся от скромности и многое другое!

В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!



iOS

• iOS: Узнать и отслеживать состояние физического переключателя тихого режима
• Изнутри: Swift макрос — #Preview
Макросы в Swift
Swift 5.9. Что нового?
• Жизненный цикл объектов SwiftUI
• Фил Шиллер «должен убрать свои руки от App Store»
• Apple обновила ресурсы для дизайнеров
•  Implementing Carousel Slider Inspired From Material Carousel
•  SwiftUI Glassmorphism — Glass Background Effect
•  Easily Add Filtering In SwiftData Using Searchable
•  I screwed up one key accessibility behavior, and now I’m on a mission to do better
•  iOS 17: Notable UIKit Additions
•  The debut of the ButtonRepeatBehavior view modifier
•  A Deep Dive Into Observation: A New Way to Boost SwiftUI Performance
•  The Power of Function Builder: Swift VS SwiftUI
•  #Preview SwiftUI Views using Macros
•  Creating a Joystick Control in SwiftUI
•  Scalable Navigation With Deep Links in SwiftUI
•  Revamping Trendyol’s iOS App: A Modularization Success Story
•  All about Silent Push Notifications. Step-by-Step Guide
•  Recreating iMessage’s Sticker Peel-Off Effect
•  Agile Architecture in Swift
•  Effective Task cancellation in Swift by leveraging Combine’s AnyCancellable
•  Writing a modern iOS Networking Library with Swift Concurrency
•  Libraries with resources optimized for build time and application size
•  How to use String Catalogs for localization in Swift
•  Unleashing Xcode’s Potential: 6 Uncommon Xcode Extensions for Senior iOS Engineers
•  Implementing location search by address into the iOS app
•  How to set up Gitlab CI/CD with Fastlane for iOS-project on a Mac mini
•  Working with C callback functions in Swift
•  Mapbox Maps SDK iOS: интерактивные настраиваемые карты
•  ReSwift: однонаправленный поток данных в Swift
•  iOS Starter Kit: примеры для начинающих

Android

• Как самому научиться Android-разработке
• Тестирование мобильных игр перед релизом: инструменты и лучшие практики в Google Play
• Как мы снизили время запуска FullStory на Android на 75%
• Обзор библиотек для скриншот-тестирования Android проектов. Часть 1
• Android: смотрите на больших экранах
• Готовим конфигурацию Android-приложения с помощью Dynamic Proxy и рефлексии
• Google обновляет дизайн логотипа Android
•  Location location location, revisited — Android Developers Backstage
•  Intents & Intent Filters — Android Basics 2023
•  Resources & Qualifiers — Android Basics 2023
•  Seal the Deal with Kotlin — A Look at Sealed Classes and Sealed Interfaces
•  Exploring Jetpack Compose Anchored Draggable Modifier
•  Lindy effect in surnames problem
•  I re-wrote Grab Android App. Do I regret it?
•  Server-Sent Events in Android (with Node.js)
•  Modularizing Our Driver App For Android
•  MockResponseInterceptor: Simplifying Retrofit API Response Mocking in Android
•  Dropbox rebuilt its search experience 40% faster with Jetpack Compose
•  How to create a welcoming codebase
•  Simplify Testing Kotlin Flows with Turbine
•  Understanding memory leaks
•  Talkback Ordering in Android Jetpack Compose
•  Performance With Jetpack Compose
•  Tools and tips I wish I knew when I started Android development
•  Records in Android Studio Flamingo
•  Avoid Java double brace initialization
•  Jetpack compose — How to implement Custom Pager Indicators
•  TranslationPlugin: перевод текста в IntelliJ/Android Studio
•  Flagfit: флаги функций для Android и Kotlin

Кроссплатформа

• Dart для бэкэндеров. Часть 1
• Flutter meetup от Evrone
•  Creating Kotlin Multiplatform SDK
•  Demystifying Local AAR Usage in Flutter: Step-by-Step Guide for Flutter Plugins and Projects
•  Modularizing Flutter UI with Factory Constructors
•  Flutter — Learn the Importance of Constraints in Layout Creation
•  Write unit tests and UI tests in your Kotlin Multiplatform app!
•  Migration to go_router — dev’s story
•  Unifying our workflow: the journey to monorepo with Kotlin Multiplatform Mobile
•  Flutter — iOS App Release on AppStore using Bitbucket Pipeline
•  Sealed Classes in Dart: Unlocking Powerful Features

Разработка

Как катить фичи без релизов. Часть 2: про низкоуровневый Server Driven UI
• Одна строчка кода, которая стоила $8,000
Как мы делаем тестирование прозрачным. Всё об инфраструктуре QA
JTBD-метод на практике для решения тестового задания
Автотесты: кому они крайне необходимы, а кто может без них обойтись?
Как дизайнеру спасти ситуацию с помощью исследования. За пару часов, $4 и без разработки
• Топ-10 самых востребованных у работодателей языков программирования
• Видео Yandex BDUI Conf
• СЛЕЗЫ ВКАТУНА: Реальная история входа в IT в 2023
• Avito Design Talk: дизайнер vs. продакт
• Охэхэнный подкаст: кто такой тимлид
• Niantic снова проводит увольнения
• Tesla добавляет поддержку сторонних приложений
• Только четверть программистов однозначно счастливы, работая в IT
• Не будьте скромным разработчиком
• 4 ошибки, которых следует избегать, чтобы построить бизнес из одного человека
•  Nokia is finally making news with its new UI language
•  Where Do Old Programmers Go?
•  How Spotify’s design optimizes for sign-up conversions
•  12 Mobile App UI/UX Design Trends 2023
•  How We Scaled to 100 Million Active Users Using Kafka and Golang — Eventual Consistency
•  Nobody Listens to UX
•  I Wish I Knew These 10 Software Architectural Styles Before the Interview
•  To Be A Great Software Developer — You Need a System

Аналитика, маркетинг и монетизация

• Социальная сеть IRL, получившая $200 млн инвестиций, сообщила о закрытии
• Как попасть в фичеринг
• MyTracker запустила инструмент для оценки портрета аудитории сайта или приложения
• Корейский Alwayz пытается сделать шоппинг веселым и социальным
• Реклама Facebook* в Европе позволит скачивать приложения напрямую
• Категория «Здоровье и фитнес» в 2022 — отчет AdQuantum и Sensor Tower
• В AppMetrica появились кастомные дашборды
• TikTok закрывает свой клон BeReal
• Траты россиян на мобильные игры в крупнейших магазинах приложений упали втрое
• Загрузки переходят на летний режим
• Помогли запустить приложение для помощи детям в экстренных ситуациях

AI, Устройства, IoT

Как я написал конвертер 3D-моделей из подручных средств
• Prompt-инженер как новый тренд. Требования и зарплаты у специалистов
• Zabbix-мониторинг устройств IoT метеостанции с помощью Repka Pi
• Device Twins в 5G и Edge Computing
• Разгоняем BLE
• ChatGPT запустили на Windows 3.1
• Google отменил свои AR-очки Project Iris и переключился на создание платформы
• Google запустил обучающий курс по генеративному ИИ
•  Embedchain: создание LLM чат-ботов на основе собственных данных

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.