Темы



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

В нашей новой еженедельной подборке поиск применения App Clip и небезопасности Синглтона, Инструменты Android-разработчика и победа над техдолгом в RuStore, архитектура кроссплатформенного многомодульного приложения, миллионы за считыватели QR-кодов, как мог бы выглядеть Windows Phone в 2024 и многое другое. Подключайтесь!

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

ivkmf79oodkyaxvxpmqnr55icem.png

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

• Как мы искали применение App Clip… и нашли?
• Почему паттерн Синглтон небезопасен в iOS-разработке
• Hero анимация в SwiftUI с помощью NavigationTransition
• Как я участвовал в iOS Widget Challenge и что из этого вышло
• Защита iOS-приложений от реверс-инженеринга
• Использование TextRenderer для создания выделенного текста
• Apple нарушает закон ЕС о цифровых рынках
• Apple открывает Translate API
• Xcode 16 потребует 16 Гб для работы Predictive Code Completion
• А так ли нужны акторы в Swift Concurrency?
• Swift 5.9: разбираем интероп и «женим» с С++
• Реактивный Swift Concurrency
• 377ae0333d0f4b7b97307c9eea5ee21a.gifExploring Translation Framework: Language Availability
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWhat«s new in SwiftUI for iOS 18
• 377ae0333d0f4b7b97307c9eea5ee21a.gifExtend your Xcode Cloud workflows
• 377ae0333d0f4b7b97307c9eea5ee21a.gifIs it just me or I still find SwiftUI lacking in major areas as my app scales up?
• 377ae0333d0f4b7b97307c9eea5ee21a.gifRunning a package from Xcode Build phase
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUsing multi-step animations in SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifNavigating Accessibility: A SwiftUI vs. UIKit Comparison
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to quickly run your iOS app in a different language
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngiOS 18 TextField Selection API — SwiftUI
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftUI Custom Time Picker Like Apple Timer App
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngiOS 18 TextField Selection API — SwiftUI
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngXcode 16 Navigation Shortcuts in 12 Minutes
• 96716bcb926741e79bb1c284a88083ca.pngInjectionIII — Hot Reloading для Swift

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

• Инструменты Android-разработчика
• Как мы победили техдолг в RuStore
• Почему умение дебажить один из самых важных навыков для разработчика
• Подробное руководство по Logcat в Android Studio с примерами
• Топ-10 вопросов о корутинах 2024
• Современные способы запуска фоновой работы в Android
• Как мы создали свой инструмент для доставки сборок Android-приложений
• Low performer в Android 2024
• Динамические свайпы с помощью ItemTouchHelper
• Как устроены аннотации в Kotlin. Часть 1
• Android: form builder на старых добрых View
• Эволюция Android тестов с Marathon Test Runner
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWhat Are Dynamic App Shortcuts?
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSeamless Screenshot Testing for Compose with Screenshotbot
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUsing Lists in Compose Previews
• 377ae0333d0f4b7b97307c9eea5ee21a.gifThe Starter kit for Android Platform Engineering
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAutomatic (almost) resource generation from Figma for Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow Baseline Profile Improve Skeelo Android App Performance
• 377ae0333d0f4b7b97307c9eea5ee21a.gifA robust MVI implementation with Jetpack Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to Use ViewModel with Jetpack Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUnleashing the Debugging Magic: Cracking Android Native Shared Libraries
• 377ae0333d0f4b7b97307c9eea5ee21a.gif4 Strategies to Secure API keys in Android Applications
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngNow in Android: 108 — Android 15 Beta 3, Google AI Studio, Gemini in Android Studio, and more
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngCompose UI for… a Light Switch
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngWrite your own Kotlin lint checks
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngTap it! Shake it! Fling it! Sheep it! — The Compose Gesture Animations Dance
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngAnimations with Jetpack Compose
• gtu1iaz0-ajkbqpeq8n6dmql4zq.png7 Features in Kotlin«s Standard Library that You Might Have Overlooked
• gtu1iaz0-ajkbqpeq8n6dmql4zq.png7 Kotlin Stdlib Features You Might Have Overlooked
• 96716bcb926741e79bb1c284a88083ca.pngScroll Block — трекер использования социальных сетей для Android
• 96716bcb926741e79bb1c284a88083ca.pngiCore — модульные компоненты для быстрого создания Android-приложений

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

• Архитектура кроссплатформенного многомодульного приложения
• Создаем Flutter-приложение для оплаты через СБП без натива
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWhat can I do with «Extension Types» in Dart?
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMeasure and optimize your Flutter app size
• 377ae0333d0f4b7b97307c9eea5ee21a.gifFlutter: Detecting Cyclic Dependencies in a Monorepo
• 377ae0333d0f4b7b97307c9eea5ee21a.gifKotlin MultiPlatform vs Flutter
• 377ae0333d0f4b7b97307c9eea5ee21a.gifImprove Your Dart Code with Dependency Injection: Understanding Loose and Tight Coupling
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAdvanced Theming Techniques in Flutter: Effortless Color Schemes
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to Share Resources in Compose Multiplatform
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngExpect/Actual in Kotlin Multiplatform
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngKotlin Multiplatform Alchemy: Making Gold out of Your Swift Interop
• 96716bcb926741e79bb1c284a88083ca.pngPeopleInSpace — люди в космосе Kotlin Multiplatform

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

• Как пирамида тестирования уплывает на сторону разработки
• Подключаем GigaCode к мобильной разработке
• Как мог бы выглядеть Windows Phone в 2024
• Все софт скиллы — про преодоление страха и силу воли
• Что дальше после разработчика в Google
• Роль дизайнера в проекте
• 377ae0333d0f4b7b97307c9eea5ee21a.gifFrom the 80«s to 2024 — how CI tests were invented and optimized
• 377ae0333d0f4b7b97307c9eea5ee21a.gifProgrammers Should Never Trust Anyone, Not Even Themselves
• 377ae0333d0f4b7b97307c9eea5ee21a.gifOur Experience with CodeRabbit: A Game-Changer in Automated Code Review
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSoftware Architecture is Hard
• 377ae0333d0f4b7b97307c9eea5ee21a.gifGetting 100% code coverage doesn«t eliminate bugs
• 96716bcb926741e79bb1c284a88083ca.pngAptabase — открытая аналитика для приложений

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

• Directo упрощает прямое бронирование жилья с помощью расширения Chrome
• Маркетологи в мобайле: Ольга Бигбашева (Rendez-Vous)
• RuStore станет обязательным
• 6 шагов успешного продвижения e-commerce приложения — кейс Технопарк и Rocket10
• Google приостанавливает распространение игр на реальные деньги в Play Store
• Владельцы iPhone платят миллионы за считыватели QR-кодов
• Как я развиваю свое приложение для хранения прочитанных книг?

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

• Как быстро растут нейросети: прогресс Stable Diffusion за все время
• KC868-M16v2: мечта ардуинщика (16 токовых каналов, 3 канала напряжения, SD, LAN, POE, дисплей, RTC и SH3x)
• Сборка и отладка прошивки IoT-модуля: Python, make, апельсины и чёрная магия
• LLM Compiler оптимизирует код и компиляторы
• Уязвимость в Rabbit R1 позволяет третьим лицам просматривать ответы ИИ
• 8 микрокомпьютеров для работы с искусственным интеллектом
• Google анонсирует новые Pixel 13 августа

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

© Habrahabr.ru