Темы



Мобильная разработка за неделю #567 (2 — 8 декабря)

В новом дайджесте уменьшение размера банковского приложения и транзишинометр для Android, вопперы и табы, сертификаты и профили, сколько приложений, из выпущенных в 2024 году, стали успешными, вранье LLM и многое другое. Подключайтесь!

vu7okqorr-0cjump8frh9sxs_fo.png

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

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

• Анимируем представления UIKit с помощью анимации SwiftUI
• Как я уменьшил размер банковского приложения для iOS на 50%
• Cursor AI в iOS-разработке. Приложение «Фото с Flickr.com»
• Удобная навигация в SwiftUI для iOS 16 и выше
• Портал, манулы и мячи: опыт разработки для Apple Vision Pro. Часть 2
• Бразильский суд отменил антимонопольное решение по Apple
• Tesla представила приложение для Apple Watch
• Как работает App Store на Новый год
• Как мы внедряли пакетный менеджер и поняли всё про iOS-зависимости
• Как мы сделали внутренний сервис в The Composable Architecture
• 377ae0333d0f4b7b97307c9eea5ee21a.gifChatGPT in Xcode: is it good?
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSimple state sharing and persistence in Swift
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWhy Can«t You Loop Over Ranges of Characters in Swift
• 377ae0333d0f4b7b97307c9eea5ee21a.gifBuilding a Clone of the Messages app in SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifStretching audio by small amounts using Swift
• 377ae0333d0f4b7b97307c9eea5ee21a.gifText field enhancements in SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifTesting completion handler based code in Swift Testing
• 377ae0333d0f4b7b97307c9eea5ee21a.gifIntegrating Live Activity and Dynamic Island in iOS: A Complete Guide
• 377ae0333d0f4b7b97307c9eea5ee21a.gifLeveraging the Power of Generic Protocols in Swift
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDebugging SwiftUI Layouts: Tips, Tricks, and Techniques
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to Create Dynamic iOS Apps: Remote Styling with SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSingleton in XCode 16
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngWhy not build Apple Intelligence ourselves?
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to Limit the Xcode Console Spam with CloudKit and SwiftData
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftUI App Intro Animation«s — Walkthrough Page Animation«s
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngExtract UIKit View From SwiftUI View
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwift Testing 101 — Xcode 16 Tutorial
• 96716bcb926741e79bb1c284a88083ca.pngSFBAudioEngine — работа с аудио для macOS, iOS и tvOS
• 96716bcb926741e79bb1c284a88083ca.pngMotionMachine — мощная, элегантная и модульная анимация на Swift
• 96716bcb926741e79bb1c284a88083ca.pngATProtoKit — простая работа с AT Protocol

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

• Пишем транзишинометр для Android. Как понять, что мои экраны открываются быстро?
• Вопперы и табы: как мы сделали меню для Burger King
• Выделение слов в Compose
• От Kotlin до машинного кода
• Изогнутое нижнее меню в Jetpack Compose
• Jetpack Compose как unbundled-библиотека. Скорость UI vs. Гибкость разработки
• Самостоятельная доработка Android APS
• Настройка Sora Editor
• Play Integrity API становится быстрее и надежнее
• Как мы использовали Dynamic Feature Delivery на Android
• Как в Яндекс Музыке пишут визард с помощью Jetpack Compose
• Gradle уже не тот! Мнение билд инженера
• 377ae0333d0f4b7b97307c9eea5ee21a.gifKotlin trick: writing shared Enum utility code
• 377ae0333d0f4b7b97307c9eea5ee21a.gifKotlin 2.1.0: Smarter when with Guard Conditions
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMigration Guide from Retrofit and KAPT to Ktor and KSP
• 377ae0333d0f4b7b97307c9eea5ee21a.gifRich Link Representation in Jetpack Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid Studio Meerkat | 2024.3.1 Canary
• 377ae0333d0f4b7b97307c9eea5ee21a.gifTop 6 Tips for Starting a Modern Android Codebase From Scratch
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid Binder Mechanism: The Backbone of IPC in Android
• 377ae0333d0f4b7b97307c9eea5ee21a.gifBuild AI-Powered Chatbot Apps for Android Using Firebase
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngClipping and masking | Jetpack Compose Tips
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to Create a One-Time Password TextField in Jetpack Compose
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngImmutable and Persistent Lists
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHot Reload Magic
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngAndroid 15 for Raspberry Pi 5
• 96716bcb926741e79bb1c284a88083ca.pngAerial Views — скринсейвер для Android по мотивам Apple TV
• 96716bcb926741e79bb1c284a88083ca.pngSVG to Compose — утилиты для конвертации SVG в ImageVector

malx8hbgozt6lee8rmxmg96_s6a.pngКроссплатформа

• Два новых линта в Dart 3.4
• Гайд по кроссплатформенной разработке с использованием React Native
• Пишем golden-тесты для генераторов кода на Dart
• 377ae0333d0f4b7b97307c9eea5ee21a.gifLessons learned releasing my first Flutter app on iOS
• 377ae0333d0f4b7b97307c9eea5ee21a.gifBuilding a WatchOS Companion App for Flutter
• 377ae0333d0f4b7b97307c9eea5ee21a.gifGoogle needs to invest in more Flutter
• 377ae0333d0f4b7b97307c9eea5ee21a.gifFlutter: Simplified Unidirectional Data Flow
• 377ae0333d0f4b7b97307c9eea5ee21a.gifFlutter vs. React Native«s New Architecture: Performance Benchmark
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngUUID in Kotlin Multiplatform
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to Manage Run-Time Permissions in Android and iOS with Compose Multiplatform

7081c634ec176ab6b953d9d19e82a09a.pngРазработка

• Почему не стоит указывать сертификаты в своем профиле
• Особенности использования сторонних сервисов в мобильных приложениях на примере Firebase
• В HarmonyOS нашли виртуальный Android
• Самые высокооплачиваемые вакансии декабря в сфере разработки приложений
• Как повысить свою ценность в ИТ: в поиске новых компетенций
• Карьерный маршрут: от мидла до архитектора ПО
• Построение event-driven приложения с Apache Flink
• От исполнителя до менеджера менеджеров: что поможет, а что не спасет
• PL/SQL — SQL на стероидах: Oracle, энтерпрайз, базы данных
• 377ae0333d0f4b7b97307c9eea5ee21a.gif4 Ways to Lead Meetings That Work
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMaking a trading Gameboy: A pocket exchange and algo trading platform
• 377ae0333d0f4b7b97307c9eea5ee21a.gifEngineers Do Not Get To Make Startup Mistakes When They Build Ledgers
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWASM-4: Build retro games using WebAssembly for a fantasy console

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

• Сколько приложений, из выпущенных в 2024 году, заработало больше $100,000?
• Custom Product Pages: как их внедрить и получить максимальную отдачу от рекламы iOS-приложения
• Сторис в МП — новая боль? Что делает ВкусВилл, Т-Банк, Авито и другие?
• Новогоднее освещение для дока и меню Mac
• Прогнозы Adjust на 2025 год: как мобильный маркетинг трансформируется в новых условиях 
• Cameo открывается для всех
• Кто выиграет от продажи Chrome?
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngPlaytime EMEA 2024

8538129f5e7b404a720121cb9c3814db.jpgAI, Устройства, IoT

• Что побуждает LLM врать и как этого избежать в своих продуктах
• Малопотребляющий датчик с передачей данных по радиоканалу
• Смарт-очки Samsung дебютируют в январе

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

© Habrahabr.ru