Мобильная разработка за неделю #520 (18 — 24 декабря)

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
В этом дайджесте «условное ценообразование» для подписок и как управлять сложностью состояния, еще одно проигранное дело Google и как компания смогла проиграть там, где Apple выиграла, как почувствовать себя кассиром, анимации переходов во Flutter, рефакторинг кода и многое другое!

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



iOS

• Custom Segmented Control
• Beeper отказывается от борьбы с Apple и выкладывает код в open source
• Вопросы с собеседований: коллекции в Swift
• Поваренная книга SwiftUI: состояние, привязка, ObservableObject и ObservedObject
• В Internet Archive нашли старые приложения и игры из TestFlight
• Apple представила «условное ценообразование» для подписок
•  Plain Swift — a simple Swift IDE for Windows
•  Should you add final to all your Swift classes?
•  Decoupled stacked sheet navigation with multiple modals in SwiftUI
•  Integrating Haptic Feedback In SwiftUI Projects
•  Hierarchical background styles in SwiftUI
•  Stop using MVVM and abusing Observable classes in SwiftUI
•  Coordinator Pattern for iOS Apps
•  Why I chose The Composable Architecture for SwiftUI and never looked back
•  Mastering MapKit in SwiftUI. Interactions.
•  Preparing your App for VoiceOver: Accessibility Actions
•  How to get the most played Apple Music songs and albums using Swift
•  Quick Search with SwiftUI Searchable
•  Xcode 15’s Hidden Treasure: Logging Like a Pro 2024
•  Swift: Singleton Pattern
•  The Case Against [unowned self]
•  iOS UI Testing with Deep Links
•  Scalable and Modular System Design for the simplest iOS App
•  Creating a Scrolling Parallax Effect with SwiftUI
•  SwiftUI View Models: Lifecycle Quirks
•  Become More Senior iOS Developer with these 4 Xcode Tips & Tricks
•  ❸☻- Simulation Emojimix on Xcode
•  Building Complex Scroll Animations With New iOS 17 APIs
•  SwiftUI Widgets | App Groups | Charts | Expense Tracker App
•  How To Create A Submission Form In Xcode 15
•  This is the CRAZIEST Swift code you’ll ever see
•  SwiftData CloudKit
•  SwiftUI Animated Toasts
•  BadgeIcon: системные иконки для SwiftUI
•  Google AI SDK for Swift: генеративный ИИ для ваших приложений

Android

• Как управлять сложностью состояния — Сергей Опивалов
• Создаем пассивный UI в Jetpack Compose
• Подключение сканера к Android или как почувствовать себя кассиром
• Stone. Квалификаторы и идентификаторы
• Как устроен Gradle Config Cache. Лучшие Практики. Интервью с инженером команды Gradle
• Google выплатит $700 млн в еще одном споре о Play Store + Все изменения, которые произойдут в Google Play и загрузке приложений
• Что нового в AOSP 14
• Вопросы с собеседований: для чего нужны inline функции
•  Animating Inside and Outside the Box with Jetpack Compose
•  The ViewModel’s leaked Flow collectors problem
•  Glassmorphic Bottom Navigation in Jetpack Compose
•  Building Passive UI in Jetpack Compose
•  Kandy: the new Kotlin plotting library by JetBrains
•  Don’t use var in enums
•  Unleashing WebSocket in Android?
•  Effect Handlers in Jetpack Compose: A Complete Guide
•  Kotlin under the hood: how to get rid of recursion
•  Foreground Services in Android 14: What’s Changing?
•  Multi-Module with Clean Architecture
•  Crash Course on the Android UI Layer | Part 2
•  Fortifying Android Apps: A Comprehensive Guide to Securing Your App and Codebase with Kotlin
•  State Management in Jetpack Compose
•  Live Streaming and Audio Equalizer with ExoPlayer in Jetpack Compose
•  Android Thread & Relation With Coroutine
•  Demystifying Kotlin: Understanding the Inner Workings of Inline Functions
•  How to handle single-event in Jetpack Compose
•  Android Launch Modes Explained
•  (W)rap — Android Developers Backstage
•  Introducing Gemini, Google at NeurIPS 2023, and more dev news!
•  Performance Optimization with @Stable and @Immutable in Jetpack Compose
•  Demystifying Pixel Shaders (AGSL)
•  Do You Have to Learn Clean Architecture as a Beginner?
•  NanoKt: библиотека расширений для Android и Kotlin
•  Ludwig: набор UI-компонентов для Jetpack Compose
•  Android-PiP: реализация «картинки в картинке»

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

• Transition Animation: настраиваем анимацию переходов во Flutter
• Создаем federated plugin для Flutter-проекта
• Автоматизированное тестирование событий аналитики в мобильном приложении: насколько это реально и оправдано
• Just DUIT — первый взгляд на server-driven UI фреймворк для Flutter
• Мультиплатформенная разработка на чистой Java
• Android System Design: делаем библиотеку Firebase
• Handle push and locale notifications in your Flutter app
•  Jetpack Preferences DataStore in Kotlin Multiplatform
•  Flutter and SQLite: A Deep Dive into Local Data Persistence
•  Globe (a Flutter & Dart deployment platform) is now in public preview
•  How we built it: Ask Dash — A generative AI Flutter application
•  A novel architecture for Multiplatform applications with Pavel Lahoda

Разработка

• 13 советов для начинающих разработчиков, которые уже прочитали все остальные советы
• Рефакторинг кода, и как его не бояться
• Cоздание идеальных вкладок
• Как подготовиться к собеседованию по System Design мобильному разработчику
• Mobile Web, навигация и при чем тут Nginx
• «Они убивают Lottie — молодцы!»
• История разработки приложения для складных смартфонов Samsung. Часть 2 — гайдлайны
• Модульная запутанность. Как распарсить одну модель в разных модулях
• Оптимизация и автоматизация в бэкенд-разработке мобильных приложений: как ускорить разработку в четыре раза
• Разработка Авто.ру и роль руководителя в команде
• Что такое observability мобильного приложения
• Мобильные релизы в Авито
• Силиконовая Долина глазами российского разработчика
• Релокация на Кипр
•  Redesigning our global order tracking experience
•  I’ve vastly misunderstood the Single Responsibility Principle
•  Empirically supported code review best practices
•  How to Scale an App to 10 Million Users on AWS
•  We Can’t Hire You

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

• Эпический вопрос: как Google проиграл там, где Apple выиграла
• 5 трендов в области маркетинга приложений 2023 — и их проекция на 2024
• Краткое руководство по анализу данных и проведению продуктовых исследований
• Claim, социальная сеть, позволяющая пользователям зарабатывать и обмениваться вознаграждениями, привлекает $4 млн
• Spill, инклюзивная альтернатива X, запускает бету на iOS и Android
• Location — cоздатели Zenly выпускают приложение, похожее на Zenly
• Маркетологи в мобайле. Итоги года 2023. Часть 1
• Топ быстрорастущих приложений в России в декабре
• Итоги года и планы на 2024 от Adjust
• Количество пользователей социальной сети Jagat превысила 10 миллионов
• Спрос на приложения для ментального здоровья почти сошел на нет
• Самые скачиваемые приложения в мире в ноябре 2023
•  Using campaign links to track impressions, downloads, and sales

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

• Управляем школьниками, не привлекая внимание санитаров
• Как пользователи убедили Chevrolet продать им машину за 100 рублей — или проблемы использования ИИ-чатботов
• NORVI Arita: добавляем SD картридер и веб-интерфейс (почти контроллер мечты)
• Сравнение популярных брокеров MQTT с открытым исходным кодом
• Apple разработала прорывной метод запуска LLM на устройствах с ограниченной памятью
• Apple останавливает продажи Apple Watch Series 9/Ultra 2 из-за нарушений патентов

← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Источник: https://habr.com/ru/companies/productivity_inside/articles/782868/


Интересные статьи

Интересные статьи

НИУ ВШЭ, Центральный университет и «Тинькофф» заявили о запуске совместной программы бакалавриата «Дизайн и разработка информационных продуктов». По словам организаторов программы, её цель&n...
DevRel Driven Development (разработка на основе DevRel) стимулирует разработку программного обеспечения благодаря адвокатской деятельности по защите интересов разработчиков, такой как создание докумен...
Это — пятый материал из серии статей, посвящённой разработке REST-серверов на Go. Здесь мы поговорим о ПО промежуточного уровня. У меня есть материал, посвящённый жизненному циклу HTTP-за...
Бывает, что люди, близкие к теме разработки софта спрашивают: чем проектная работа отличается от создания MVP (Minimal Viable Product)? Понятно, что при этом у каждого спрашивающего свой ...
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.