В нашем новом дайджесте пишем виджет для Control Center и делаем куб для сторис, развенчиваем мифы про современную Android-разработку и оптимизируем приложение, переходим с Xamarin на Flutter, оцениваем важные вещи в программировании, используем темные паттерны, оцениваем самые скачиваемые и зарабатывающие приложения в России в июне. Подключайтесь!
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
iOS
• Расширяем возможности мобильного приложения на WebView. Опыт Ozon Банк
• Постепенный перенос проектов и пакетов на Swift 6
• Пишем виджет в Control Center (iOS 18)
• Изучаем новые структуры данных для iOS разработчика
• Куб для ваших сторис*
• Что нового в Swift 6?
• По оценкам IDC, в 2024 году Apple продаст менее 500 тысяч устройств Vision Pro
• Как работает AdAttributionKit
• Поваренная книга SwiftUI: кнопки — Часть 1
• Mastering Animatable and AnimatablePair in SwiftUI
• SwiftUI can be a bit… eager
• Zoom transitions
• Backpressure in Combine
• Building a custom application UI with SwiftUI & iOS 18 API
• Building the inverted scroll of a messaging app
• Mobile Deployment Pipelines for $0
• 5 Strategies for Managing Image Resources Effectively in iOS
• Automating pre-production iOS app builds
• Running a package from Xcode Build phase
• XCUITest (iOS) Automation with POM Techniques
• Write Clean and Maintainable XCUITests with Screen Chaining
• AI features in Xcode 16: is it good?
• Check if your app has a newer version on the App Store using Swift
• Streamlining Menu Browsing with OCR Text Recognition
• Utilizing Apple’s oslog for Enhanced Logging in Xcode
• Zoom Transitions — SwiftUI
• AI Features in Xcode 16: is it Good or Bad?
• Laying out views with ContainerRelativeFrame in SwiftUI
• Animated Scroll Wheel Picker — SwiftUI
• Removing More Button from Tab bar — SwiftUI
• Create Interactive In-App Polls With SwiftUI
• StreamUI — генерация видео в SwiftUI
• DSFDropFilesView — NSView для drag-and-drop файлов
Android
• Развенчиваем 6 мифов про современную Android-разработку
• Kotlin Coroutines под капотом
• Strong Skipping Mode — новый способ оптимизации стабильности в Jetpack Compose
• Создавай и упрощай: оптимизируем Android-приложение с видеоконтентом
• Видео с прозрачностью на Jetpack Compose – запросто
• Как обойти множественное наследование в Kotlin и Java. Агрегация и композиция
• Architecture related decisions in Android — Error handling and Monads
• Kotlin’s @Keep Annotation: Keeping Your Code Safe and Sound
• Let’s clarify some misconceptions around android development these days
• Declarative Gradle
• Top 5 Android Studio Plugins
• Which Map Transformation Should I Use?
• Kotlin Builder Inference Explained
• RxJava to Kotlin Coroutines: The Ultimate Migration Guide
• How to Configure Android Build System?
• Kotlin Code Reuse: Composing like you’re Inheriting
• Android MVVM Architecture for A Production Ready App
• Leveraging BFF and Dynamic UI in Android Applications with Jetpack Compose
• Safe your API Keys via Secrets Gradle plugin
• Ticket UI Using compose
• Improving Perceived Performance with Delayed Visibility
• From Zero to Billions: Building a High-Performance Kotlin App in Two Months
• The Top 5 Practices That Make My Android Architecture More Scalable
• Generating Kotlin SDKs with Smithy
• Kotlin/Native BigDecimal: A drop-in replacement for java.math.BigDecimal
• K2: How to Make a Better Compiler but Keep Kotlin the Same
• It’s Compose O’Clock, Draw on My Watch!
• Crashlytics for your Android apps
• Kotlin Code Reuse: Composing like you’re Inheriting
• Exploring Material3 Adaptive Layout
• Valkyrie — генерация Compose ImageVector из SVG/XML
• Fig — Google Таблицы в качестве удаленного конфига
Кроссплатформа
• Первый взгляд на переход с Xamarin Native на Flutter
• Как мы переходили с Xamarin на Flutter
• Rive-анимация для Flutter-приложений: почему мы любим ее больше Lottie, когда ее применять и какие фишки использовать
• Mastering Date and Time Management in iOS with Kotlinx DateTime: A Step-by-Step Guide
• Build Android and iOS apps with SwiftUI
• Google Pay Integration in Flutter App
• Codemagic setup with flavors. Flutter CI/CD
• HTTP Requests in Kotlin Multiplatform With Ktor — KMP for Beginners
• Compose Multiplatform performance on iOS
• Code push for Flutter
• Rewriting freezed with Macros
• FlowMVI — архитектурный фреймворк Kotlin Multiplatform на основе корутинов
• Colors AI — генератор цветовых схем с ИИ на Flutter
Разработка
• Новый опрос Developer Nation
• Сам написал, сам полетал: как и зачем я разработал 3D-игру с нуля под компьютеры из 90-х в 2024 году?
• Важные вещи в программировании 2024
• Моё тестовое в Билайн на позицию стажёра
• РКН по ошибке снес безобидное приложение в AppStore, на волне последних чисток
• 5 советов по разработке игр от соло-разработчика
• System Design-интервью для практиков
• 10 тупых вопросов на собеседовании (и как на них отвечать) + все собеседования
• Локальная разработка в Авито
• Rust и Kotlin растут в TIOBE Index
• ChatGPT хорошо программирует в задачах, существовавших до 2021 года, но испытывает трудности с новыми
• Building and scaling Notion’s data lake
• MobileLLM — Language Models for On-Device Use Cases
• How to set priorities?
• Weird things I learned while writing an x86 emulator
• AI on Mac Made Easy: How to run LLMs locally with OLLAMA in Swift/SwiftUI
• Learn TypeScript — Full Course for Beginners
Аналитика, маркетинг и монетизация
• Sekai получил лицензию на «Наруто» для разработки приложений для фанатов аниме
• 76% приложений и сайтов с подпиской использует темные паттерны
• Приложение для арт-терапии Scribble Journey позволяет выразить эмоции с помощью зарисовок
• Самые скачиваемые и зарабатывающие приложения в России в июне 2024
• Apple «временно» одобрила Epic Games Store, но потребовала изменений
• Pokemon Go: история революции в дополненной реальности
• Lamoda Tech Analytics Party: материалы встречи
• Wayther — приложение с прогнозом погоды, разработанное специально для автопутешествий
• Карты Google на iOS начали показывать спидометр (через 5 лет после Android)
• How to improve funnel conversion
• How apps can innovate
AI, Устройства, IoT
• Обзор нейросетей для создания иллюстраций и артов
• Как жить в загородной бане, пока строится умный дом
• Как выбрать контроллер для DIY (сводная таблица по 30++ моделям с комментариями)
• Сравниваем новые чипы Qualcomm с процессорами Apple, Intel и AMD
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
iOS
• Расширяем возможности мобильного приложения на WebView. Опыт Ozon Банк
• Постепенный перенос проектов и пакетов на Swift 6
• Пишем виджет в Control Center (iOS 18)
• Изучаем новые структуры данных для iOS разработчика
• Куб для ваших сторис*
• Что нового в Swift 6?
• По оценкам IDC, в 2024 году Apple продаст менее 500 тысяч устройств Vision Pro
• Как работает AdAttributionKit
• Поваренная книга SwiftUI: кнопки — Часть 1
• Mastering Animatable and AnimatablePair in SwiftUI
• SwiftUI can be a bit… eager
• Zoom transitions
• Backpressure in Combine
• Building a custom application UI with SwiftUI & iOS 18 API
• Building the inverted scroll of a messaging app
• Mobile Deployment Pipelines for $0
• 5 Strategies for Managing Image Resources Effectively in iOS
• Automating pre-production iOS app builds
• Running a package from Xcode Build phase
• XCUITest (iOS) Automation with POM Techniques
• Write Clean and Maintainable XCUITests with Screen Chaining
• AI features in Xcode 16: is it good?
• Check if your app has a newer version on the App Store using Swift
• Streamlining Menu Browsing with OCR Text Recognition
• Utilizing Apple’s oslog for Enhanced Logging in Xcode
• Zoom Transitions — SwiftUI
• AI Features in Xcode 16: is it Good or Bad?
• Laying out views with ContainerRelativeFrame in SwiftUI
• Animated Scroll Wheel Picker — SwiftUI
• Removing More Button from Tab bar — SwiftUI
• Create Interactive In-App Polls With SwiftUI
• StreamUI — генерация видео в SwiftUI
• DSFDropFilesView — NSView для drag-and-drop файлов
Android
• Развенчиваем 6 мифов про современную Android-разработку
• Kotlin Coroutines под капотом
• Strong Skipping Mode — новый способ оптимизации стабильности в Jetpack Compose
• Создавай и упрощай: оптимизируем Android-приложение с видеоконтентом
• Видео с прозрачностью на Jetpack Compose – запросто
• Как обойти множественное наследование в Kotlin и Java. Агрегация и композиция
• Architecture related decisions in Android — Error handling and Monads
• Kotlin’s @Keep Annotation: Keeping Your Code Safe and Sound
• Let’s clarify some misconceptions around android development these days
• Declarative Gradle
• Top 5 Android Studio Plugins
• Which Map Transformation Should I Use?
• Kotlin Builder Inference Explained
• RxJava to Kotlin Coroutines: The Ultimate Migration Guide
• How to Configure Android Build System?
• Kotlin Code Reuse: Composing like you’re Inheriting
• Android MVVM Architecture for A Production Ready App
• Leveraging BFF and Dynamic UI in Android Applications with Jetpack Compose
• Safe your API Keys via Secrets Gradle plugin
• Ticket UI Using compose
• Improving Perceived Performance with Delayed Visibility
• From Zero to Billions: Building a High-Performance Kotlin App in Two Months
• The Top 5 Practices That Make My Android Architecture More Scalable
• Generating Kotlin SDKs with Smithy
• Kotlin/Native BigDecimal: A drop-in replacement for java.math.BigDecimal
• K2: How to Make a Better Compiler but Keep Kotlin the Same
• It’s Compose O’Clock, Draw on My Watch!
• Crashlytics for your Android apps
• Kotlin Code Reuse: Composing like you’re Inheriting
• Exploring Material3 Adaptive Layout
• Valkyrie — генерация Compose ImageVector из SVG/XML
• Fig — Google Таблицы в качестве удаленного конфига
Кроссплатформа
• Первый взгляд на переход с Xamarin Native на Flutter
• Как мы переходили с Xamarin на Flutter
• Rive-анимация для Flutter-приложений: почему мы любим ее больше Lottie, когда ее применять и какие фишки использовать
• Mastering Date and Time Management in iOS with Kotlinx DateTime: A Step-by-Step Guide
• Build Android and iOS apps with SwiftUI
• Google Pay Integration in Flutter App
• Codemagic setup with flavors. Flutter CI/CD
• HTTP Requests in Kotlin Multiplatform With Ktor — KMP for Beginners
• Compose Multiplatform performance on iOS
• Code push for Flutter
• Rewriting freezed with Macros
• FlowMVI — архитектурный фреймворк Kotlin Multiplatform на основе корутинов
• Colors AI — генератор цветовых схем с ИИ на Flutter
Разработка
• Новый опрос Developer Nation
• Сам написал, сам полетал: как и зачем я разработал 3D-игру с нуля под компьютеры из 90-х в 2024 году?
• Важные вещи в программировании 2024
• Моё тестовое в Билайн на позицию стажёра
• РКН по ошибке снес безобидное приложение в AppStore, на волне последних чисток
• 5 советов по разработке игр от соло-разработчика
• System Design-интервью для практиков
• 10 тупых вопросов на собеседовании (и как на них отвечать) + все собеседования
• Локальная разработка в Авито
• Rust и Kotlin растут в TIOBE Index
• ChatGPT хорошо программирует в задачах, существовавших до 2021 года, но испытывает трудности с новыми
• Building and scaling Notion’s data lake
• MobileLLM — Language Models for On-Device Use Cases
• How to set priorities?
• Weird things I learned while writing an x86 emulator
• AI on Mac Made Easy: How to run LLMs locally with OLLAMA in Swift/SwiftUI
• Learn TypeScript — Full Course for Beginners
Аналитика, маркетинг и монетизация
• Sekai получил лицензию на «Наруто» для разработки приложений для фанатов аниме
• 76% приложений и сайтов с подпиской использует темные паттерны
• Приложение для арт-терапии Scribble Journey позволяет выразить эмоции с помощью зарисовок
• Самые скачиваемые и зарабатывающие приложения в России в июне 2024
• Apple «временно» одобрила Epic Games Store, но потребовала изменений
• Pokemon Go: история революции в дополненной реальности
• Lamoda Tech Analytics Party: материалы встречи
• Wayther — приложение с прогнозом погоды, разработанное специально для автопутешествий
• Карты Google на iOS начали показывать спидометр (через 5 лет после Android)
• How to improve funnel conversion
• How apps can innovate
AI, Устройства, IoT
• Обзор нейросетей для создания иллюстраций и артов
• Как жить в загородной бане, пока строится умный дом
• Как выбрать контроллер для DIY (сводная таблица по 30++ моделям с комментариями)
• Сравниваем новые чипы Qualcomm с процессорами Apple, Intel и AMD
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.