В новом выпуске быстрый старт и дело правительства США против Apple, цена Чистой Архитектуры и Android 15 Developer Preview 2, современный способ организации зависимостей, сила последовательности, топ быстрорастущих приложений в России в марте и многое другое.
Подключайтесь!
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
iOS
• Быстрый старт, или Как ускорить запуск iOS-приложений
• YandexMapKit и SwiftUI: обратный геокодинг
• Интерактивные виджет-подборки в Иви (iOS)
• Путь iOS-разработчика: как я много собеседовался и попал на стажировку
• Разработка под Apple Vision Pro
• Как встроить в TextField индикатор загрузки и кастомную View
• США подали в суд на Apple за незаконную монополию
• ЕС присматривается к Core Technology Fee
• Поваренная книга SwiftUI: тексты и шрифты — часть 1
• Apple может лицензировать ИИ-модели Google или OpenAI
• Swift Tooling: Windows Edition
• If you use UserDefaults in an app
• SwiftUI Tasks Blocking the MainActor
• Store a codable model into AppStorage
• Oh Sh*t, My App is Successful and I Didn’t Think About Accessibility
• Customizing a Chart in Swift Charts
• How to support dark mode in SwiftUI programmatically
• How SwiftUI & Concurrency Could Forward Fix Their Issues
• How to migrate an iOS app to Bazel
• XCUITest + SauceLabs + GitHub Actions = Incredible Mobile iOS CI/CD Automation
• Async Unit Testing: The Comprehensive Guide
• Mockirinha — a approach to write unit test for API requests
• Getting Started with Structured Concurrency in Swift
• Optimizing UI Testing Efficiency with Page Object Model
• Our journey with Swift thus far — some notes and reflections
• SwiftUI-Container View’s hierarchy
• Prompt to code in Xcode with Claude 3
• How to link to native type extensions in DocC
• Tuist-ing TravelPerks iOS app for Faster Build Times
• Your How-To Guide for Implementing Image Cropping and Rotating in iOS
• Hacking Disneyland’s App to fix a Freeze
• JSON Parsing With Pagination
• Build 3D content for visionOS Apps
• Long Press Button With Progress Bar
• Create a 3D shiny card in SwiftUI
• Sign In With Apple — Firebase
• SwiftUI Horizontal Wheel Picker
• JTAppleCalendar: библиотека календаря на Swift
• Swiftfin: видеоплеер Jellyfin для iOS и tvOS
Android
• Вы за это заплатите! Цена Чистой Архитектуры. Часть 1 + Часть 2
• Осваиваем ViewModel в Android: «можно» и «нельзя» — Часть 1
• Вышел Android 15 Developer Preview 2
• Разработка под Android в 2024 году
• Зачем в мобильной разработке использовать Flow, если есть мощный ChannelFlow?
• Android TOML. Просто о каталогах зависимостей в Android Studio
• Современный способ организации зависимостей в Android. Version catalog (TOML) и Gradle convention plugin
• Разработка новостного приложения. Часть 4
• Мапим данные из domain в ui модуль в многомодульном проекте
• Animations with Lookahead in Jetpack Compose
• Adding Ktlint to your Android project
• Optimize App Performance By Mastering Stability in Jetpack Compose
• The Ktor Roadmap for 2024
• Customize Clickables and Ripples
• Stressing the JVM GC on Android
• Automating Android App Deployment to Firebase App Distribution With Fastlane
• Accessibility Checks with Jetpack Compose Previews
• Jetpack Compose needs a Design System layer
• Composition over Inheritance: My refactoring recipe
• @Composable Modifier vs composed factory in Jetpack Compose
• Stop Passing Event/UI-Action Callbacks in Jetpack Compose
• Android Localization: List Formatter in Android
• Kotlin’s JDK release compatibility flag
• Build Wear OS application using Jetpack Compose
• Detecting Banker Malware Installed on Android Devices
• Optimizing CI/CD Processes with Selective Testing
• Now in Android: 101 — Android 15 Developer Preview 2, TheAndroidShow, the Google I/O date, & more
• How to Implement Biometric Auth in Your Android App
• This Is My FAVORITE Error Handling Class
• Java vs. Kotlin: The Ultimate Showdown of Virtual Threads & Coroutines
• Gramophone: музыкальный плеер на Media3 и Material Design
• Routine Tracker: календарь-планировщик для Android
Кроссплатформа
• ViewModel + Kotlin Multiplatform. Пробуем нативное решение
• Тестирование пользовательского интерфейса во Flutter
• Dart 3.1 и ретроспектива программирования в функциональном стиле в Dart 3
• Рецепт приготовления кроссплатформенного мобильного видеоредактора
• Fixing FVM with an open source mindset
• Flutter & ML Kit 1.0: AI powered Apps
• How to use KMP library inside the Flutter plugin?
• The power of open-source. Making Maestro work better with Flutter
• Flutter-Clean Architecture
• Introducing the Redacted Widget for Flutter: Enhance Your Loading Experience!
• Advanced Theming Techniques in Flutter: Leveraging Extensions for Dynamic UIs
Разработка
• Как растратить свою карьеру — один комфортный год за другим
• Перехват трафика мобильных приложений
• Сила последовательности в побочных проектах
• Как рождаются идеи pet-проектов?
• О вреде Test Driven Development
• Почему навигация в Google, Booking и Spotify именно такая, и какую лучше выбрать вам
• Собеседование по System Design: проектируем клон Авито
• Не работал в FAANG — не программист: полгода работы в Apple
• Программисты не нужны
• Как инсайт Netflix удвоил конверсию Gett
• GitHub предлагает автоматическое исправление уязвимостей в коде с помощью ИИ
• JetBrains запускает TeamCity Pipelines для упрощения работы с CI/CD
• Visual Studio App Center закрывается
• Interviewing at Staff+ level
• How Figma’s databases team lived to tell the scale
• Vision Pro is an over-engineered «devkit»
• Make CI/CD Part of Your Development Flow With TeamCity Pipelines
• How Tinder Scaled to 1.6 Billion Swipes per Day
• Empirically supported code review best practices
• Tooltip: A small design element with a big UX impact
• This is the moment to reinvent your product
• How to Solve 1000 Leetcode Problems in 300 Days?
• Will AI Devices Kill UX?
• AutoDev: ИИ-помощник для разработки
• Shattered Pixel Dungeon: кроссплатформенный «рогалик»
Аналитика, маркетинг и монетизация
• Приложение для ведения бюджета Copilot переживает бум после закрытия Mint
• Epic Games запускает магазин на iOS и Android
• Топ быстрорастущих приложений в России в марте
• Sensor Tower покупает data.ai
• Приложение Apple Sports не смогло опередить конкурентов
• Casual Gaming in 2024: Using Insights From 2023
AI, Устройства, IoT
• Quantization Deep Dive, или Введение в современную квантизацию
• Ищем Арнольда Шварценеггера среди мужчин, женщин и детей с помощью нейросети на С++
• Расчёт вкусов пользователя для ленты рекомендаций с применением item2vec-подхода
• Умный офис в «Москва-Сити» на Home Assistant: автоматизируем только нужное
• Демистифицируем машинное обучение – из разработчика в ML-инженеры
• Исследователи обнаружили неисправимую уязвимость в чипах Apple Silicon
• Google DeepMind разработал ИИ ассистента для футбола
• Лучшие механические клавиатуры 2024
• xAI Илона Маска открыл код ИИ-модели Grok
• Новый метод обучения ИИ от Apple сохраняет конфиденциальность
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подключайтесь!
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
iOS
• Быстрый старт, или Как ускорить запуск iOS-приложений
• YandexMapKit и SwiftUI: обратный геокодинг
• Интерактивные виджет-подборки в Иви (iOS)
• Путь iOS-разработчика: как я много собеседовался и попал на стажировку
• Разработка под Apple Vision Pro
• Как встроить в TextField индикатор загрузки и кастомную View
• США подали в суд на Apple за незаконную монополию
• ЕС присматривается к Core Technology Fee
• Поваренная книга SwiftUI: тексты и шрифты — часть 1
• Apple может лицензировать ИИ-модели Google или OpenAI
• Swift Tooling: Windows Edition
• If you use UserDefaults in an app
• SwiftUI Tasks Blocking the MainActor
• Store a codable model into AppStorage
• Oh Sh*t, My App is Successful and I Didn’t Think About Accessibility
• Customizing a Chart in Swift Charts
• How to support dark mode in SwiftUI programmatically
• How SwiftUI & Concurrency Could Forward Fix Their Issues
• How to migrate an iOS app to Bazel
• XCUITest + SauceLabs + GitHub Actions = Incredible Mobile iOS CI/CD Automation
• Async Unit Testing: The Comprehensive Guide
• Mockirinha — a approach to write unit test for API requests
• Getting Started with Structured Concurrency in Swift
• Optimizing UI Testing Efficiency with Page Object Model
• Our journey with Swift thus far — some notes and reflections
• SwiftUI-Container View’s hierarchy
• Prompt to code in Xcode with Claude 3
• How to link to native type extensions in DocC
• Tuist-ing TravelPerks iOS app for Faster Build Times
• Your How-To Guide for Implementing Image Cropping and Rotating in iOS
• Hacking Disneyland’s App to fix a Freeze
• JSON Parsing With Pagination
• Build 3D content for visionOS Apps
• Long Press Button With Progress Bar
• Create a 3D shiny card in SwiftUI
• Sign In With Apple — Firebase
• SwiftUI Horizontal Wheel Picker
• JTAppleCalendar: библиотека календаря на Swift
• Swiftfin: видеоплеер Jellyfin для iOS и tvOS
Android
• Вы за это заплатите! Цена Чистой Архитектуры. Часть 1 + Часть 2
• Осваиваем ViewModel в Android: «можно» и «нельзя» — Часть 1
• Вышел Android 15 Developer Preview 2
• Разработка под Android в 2024 году
• Зачем в мобильной разработке использовать Flow, если есть мощный ChannelFlow?
• Android TOML. Просто о каталогах зависимостей в Android Studio
• Современный способ организации зависимостей в Android. Version catalog (TOML) и Gradle convention plugin
• Разработка новостного приложения. Часть 4
• Мапим данные из domain в ui модуль в многомодульном проекте
• Animations with Lookahead in Jetpack Compose
• Adding Ktlint to your Android project
• Optimize App Performance By Mastering Stability in Jetpack Compose
• The Ktor Roadmap for 2024
• Customize Clickables and Ripples
• Stressing the JVM GC on Android
• Automating Android App Deployment to Firebase App Distribution With Fastlane
• Accessibility Checks with Jetpack Compose Previews
• Jetpack Compose needs a Design System layer
• Composition over Inheritance: My refactoring recipe
• @Composable Modifier vs composed factory in Jetpack Compose
• Stop Passing Event/UI-Action Callbacks in Jetpack Compose
• Android Localization: List Formatter in Android
• Kotlin’s JDK release compatibility flag
• Build Wear OS application using Jetpack Compose
• Detecting Banker Malware Installed on Android Devices
• Optimizing CI/CD Processes with Selective Testing
• Now in Android: 101 — Android 15 Developer Preview 2, TheAndroidShow, the Google I/O date, & more
• How to Implement Biometric Auth in Your Android App
• This Is My FAVORITE Error Handling Class
• Java vs. Kotlin: The Ultimate Showdown of Virtual Threads & Coroutines
• Gramophone: музыкальный плеер на Media3 и Material Design
• Routine Tracker: календарь-планировщик для Android
Кроссплатформа
• ViewModel + Kotlin Multiplatform. Пробуем нативное решение
• Тестирование пользовательского интерфейса во Flutter
• Dart 3.1 и ретроспектива программирования в функциональном стиле в Dart 3
• Рецепт приготовления кроссплатформенного мобильного видеоредактора
• Fixing FVM with an open source mindset
• Flutter & ML Kit 1.0: AI powered Apps
• How to use KMP library inside the Flutter plugin?
• The power of open-source. Making Maestro work better with Flutter
• Flutter-Clean Architecture
• Introducing the Redacted Widget for Flutter: Enhance Your Loading Experience!
• Advanced Theming Techniques in Flutter: Leveraging Extensions for Dynamic UIs
Разработка
• Как растратить свою карьеру — один комфортный год за другим
• Перехват трафика мобильных приложений
• Сила последовательности в побочных проектах
• Как рождаются идеи pet-проектов?
• О вреде Test Driven Development
• Почему навигация в Google, Booking и Spotify именно такая, и какую лучше выбрать вам
• Собеседование по System Design: проектируем клон Авито
• Не работал в FAANG — не программист: полгода работы в Apple
• Программисты не нужны
• Как инсайт Netflix удвоил конверсию Gett
• GitHub предлагает автоматическое исправление уязвимостей в коде с помощью ИИ
• JetBrains запускает TeamCity Pipelines для упрощения работы с CI/CD
• Visual Studio App Center закрывается
• Interviewing at Staff+ level
• How Figma’s databases team lived to tell the scale
• Vision Pro is an over-engineered «devkit»
• Make CI/CD Part of Your Development Flow With TeamCity Pipelines
• How Tinder Scaled to 1.6 Billion Swipes per Day
• Empirically supported code review best practices
• Tooltip: A small design element with a big UX impact
• This is the moment to reinvent your product
• How to Solve 1000 Leetcode Problems in 300 Days?
• Will AI Devices Kill UX?
• AutoDev: ИИ-помощник для разработки
• Shattered Pixel Dungeon: кроссплатформенный «рогалик»
Аналитика, маркетинг и монетизация
• Приложение для ведения бюджета Copilot переживает бум после закрытия Mint
• Epic Games запускает магазин на iOS и Android
• Топ быстрорастущих приложений в России в марте
• Sensor Tower покупает data.ai
• Приложение Apple Sports не смогло опередить конкурентов
• Casual Gaming in 2024: Using Insights From 2023
AI, Устройства, IoT
• Quantization Deep Dive, или Введение в современную квантизацию
• Ищем Арнольда Шварценеггера среди мужчин, женщин и детей с помощью нейросети на С++
• Расчёт вкусов пользователя для ленты рекомендаций с применением item2vec-подхода
• Умный офис в «Москва-Сити» на Home Assistant: автоматизируем только нужное
• Демистифицируем машинное обучение – из разработчика в ML-инженеры
• Исследователи обнаружили неисправимую уязвимость в чипах Apple Silicon
• Google DeepMind разработал ИИ ассистента для футбола
• Лучшие механические клавиатуры 2024
• xAI Илона Маска открыл код ИИ-модели Grok
• Новый метод обучения ИИ от Apple сохраняет конфиденциальность
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.