В нашем новом выпуске исследуем рынок работы для iOS-разработчиков, использование ИИ и кроличьи норы оптимизации, погружаемся в мир Lint-a, строим BDUI, определяем рынок мобильных приложений в 1 квартале 2024 года и многое другое. Подключайтесь!
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

iOS
• Рынок работы для iOS-разработчиков — обсуждение в Reddit
• GPT vs Copilot: кто лучший помощник в написании UI-тестов для iOS?
• ChatGPT для Swift: 5 лучших промптов для генерации кода
• Как я преподавал алгоритмы в 4 местах и проходил iOS-курсы. Что помогло получить работу?
• SwiftUI уроки (часть 14)
• WWDC 2024. Прогнозируем, что ждет разработчиков
• SwiftUI инпут: проблемы и решения
• Победители Apple Design Awards 2024
• Как не наломать дров с Live Activity
• Поваренная книга SwiftUI: изображения и иконки — Часть 3
•
Configuring Previews
•
Do NOT init State externally in SwiftUI
•
Objective-C basics for Swift developers
•
SwiftUI: Two Views Same Size 2 Ways
•
Programmatically Hide Navigation in SwiftUI
•
Using App Intents in a SwiftUI app
•
Swift Package Manager framework creation in Xcode
•
Swift at 10
•
Creating custom buttons and hover effects in visionOS
•
Creating gradient on polylines in SwiftUI MapKit
•
Glitch Text Effect — SwiftUI
•
Vertical Circular Carousel — SwiftUI
•
Modern UIKit: Sneak Peek, Part 1
•
Meet Core Location Monitor
•
Detect animal poses in Vision
•
SwiftfulRouting — программная навигация для SwiftUI
•
SweetPad — iOS-разработка в VSCode
Android
• Вглубь еще одной кроличьей норы оптимизации
• Сам себе экосистема: итоги. Как работают мои самопальные клиенты ВК, YouTube, Telegram на смартфонах 13-летней давности
• Jetpack Compose: совместимость с System UI и иммерсивная строка состояния
• Погружение в мир Lint'a в Android-проекте
• Как создать аудиоплеер. Часть 2. Использование ExoPlayer + Часть 1
• Кодревью опенсорс проекта или как выглядят 10 лет технического долга
• Сколько памяти нужно для сборки? Android-разработчикам о JVM
• Что скрывает State в Compose
• DPE University — обучение Gradle, Apache Maven и Develocity
•
Effective Map Composables: Non-Draggable Markers
•
Injecting your Compose applications with Koin — From Android to Multiplatform
•
Securing the Future: Navigating the Deprecation of Encrypted Shared Preference
•
Kotlin K2 FIR Quickstart Guide
•
Region specific resources and broken localization
•
Everything you want to know about Functional interfaces in Kotlin
•
How I Finally Memorized Modifier Ordering in Compose
•
Android- WorkManager in Clean Architecture
•
Mastering Android Multi-Module Architecture with Convention Plugins
•
Build a Cat Chatbot using Gemini on Android
•
Concurrency & Networking in Android
•
Composition Over Inheritance In Kotlin Explained
•
Why your “BaseActivity” is anti-pattern. Kotlin Delegations
•
Geofence in Android
•
Android Jetpack Compose Keyboard Cheat Sheet
•
Automatically Adjust Navigation Based On Screen Size With NavigationSuiteScaffold
•
Kotlin 2.0, Google IO, Android 15 and More
•
KotlinConfersations’24
•
Compose Migration Side Effects — What Can Go Wrong?
•
The Best Way to Learn as an Android Developer
•
Bytemask — плагин Gradle для шифрования секретных строк
•
ModuleCheck — быстрая проверка графа зависимостей для Gradle
•
Jetmagic — отзывчивые приложения для Android с Compose
Кроссплатформа
• Встроенные коллекции Dart: как реализовать в коде основные структуры данных. Глава из книги
• Best practices локальной аутентификации на Flutter
•
Enhancing Your Flutter Project with Typesafe Packages
•
Streamline Flutter Development with Clean Architecture
•
Dependency Injection in Compose Multiplatform
•
Releasing my First True Kotlin Multiplatform App
•
Apps using Compose Multiplatform on iOS in 2024 — developer insights
•
Automate Flutter Deployments to App Store and Play Store using Fastlane and Github Actions for a lazy developer
•
Live Tracking — Flutter
•
Full Stack Flutter, Firebase and Riverpod – Build a YouTube Clone
Разработка
• Устройство для энтузиастов — телефон на ОС «Аврора»
• Как освободить 20% времени тестировщиков: дизайн-ревью в Lamoda Tech
• Как мы строили BDUI: опыт Яндекс Маркета
• Работа над ошибками: как мы сделали приложение World Class удобнее
• Mobius 2024 offline. День второй + День первый
• Agile увеличивает риск провала проекта на 268%
• Инди-хакинг: как программисту работать на себя — доход на пет-проектах
• Разработчики против тестирования
• Побывав в шкуре тимлида — взгляд разработчика изнутри
•
Самые высокооплачиваемые вакансии мая в сфере разработки приложений
•
Why I retired from the tech crusades
•
How Figma overhauled their Performance Testing Framework
•
Managing My Motivation, as a Solo Dev
•
5 Best Practices for the Sign-up Flow
Аналитика, маркетинг и монетизация
• Рынок мобильных приложений в 1 квартале 2024 года — отчет Sensor Tower
• 26 техник, которыми геймдизайнеры манипулируют игроком в видеоиграх
• Клиентская миграция: как бизнес переводит клиентов из старого приложения в новое
• Как Growth Loops кардинально изменяют подход к продуктовой разработке
• Aptoide запускает альтернативный магазин игр для iOS в ЕС
• Polycam поставил рекорд и достиг выручки в $1 млн в месяц
AI, Устройства, IoT
• Какой ИИ и как помогает разработчикам — опрос Stack Overflow
• Смартфоны станут основным форм-фактором для ИИ
• Устанавливаем и применяем Docker на Repka Pi
• Raspberry Pi 5 получит свой ускоритель ИИ
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.


• Рынок работы для iOS-разработчиков — обсуждение в Reddit
• GPT vs Copilot: кто лучший помощник в написании UI-тестов для iOS?
• ChatGPT для Swift: 5 лучших промптов для генерации кода
• Как я преподавал алгоритмы в 4 местах и проходил iOS-курсы. Что помогло получить работу?
• SwiftUI уроки (часть 14)
• WWDC 2024. Прогнозируем, что ждет разработчиков
• SwiftUI инпут: проблемы и решения
• Победители Apple Design Awards 2024
• Как не наломать дров с Live Activity
• Поваренная книга SwiftUI: изображения и иконки — Часть 3
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• Вглубь еще одной кроличьей норы оптимизации
• Сам себе экосистема: итоги. Как работают мои самопальные клиенты ВК, YouTube, Telegram на смартфонах 13-летней давности
• Jetpack Compose: совместимость с System UI и иммерсивная строка состояния
• Погружение в мир Lint'a в Android-проекте
• Как создать аудиоплеер. Часть 2. Использование ExoPlayer + Часть 1
• Кодревью опенсорс проекта или как выглядят 10 лет технического долга
• Сколько памяти нужно для сборки? Android-разработчикам о JVM
• Что скрывает State в Compose
• DPE University — обучение Gradle, Apache Maven и Develocity
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• Встроенные коллекции Dart: как реализовать в коде основные структуры данных. Глава из книги
• Best practices локальной аутентификации на Flutter
•

•

•

•

•

•

•

•


• Устройство для энтузиастов — телефон на ОС «Аврора»
• Как освободить 20% времени тестировщиков: дизайн-ревью в Lamoda Tech
• Как мы строили BDUI: опыт Яндекс Маркета
• Работа над ошибками: как мы сделали приложение World Class удобнее
• Mobius 2024 offline. День второй + День первый
• Agile увеличивает риск провала проекта на 268%
• Инди-хакинг: как программисту работать на себя — доход на пет-проектах
• Разработчики против тестирования
• Побывав в шкуре тимлида — взгляд разработчика изнутри
•

•

•

•

•


• Рынок мобильных приложений в 1 квартале 2024 года — отчет Sensor Tower
• 26 техник, которыми геймдизайнеры манипулируют игроком в видеоиграх
• Клиентская миграция: как бизнес переводит клиентов из старого приложения в новое
• Как Growth Loops кардинально изменяют подход к продуктовой разработке
• Aptoide запускает альтернативный магазин игр для iOS в ЕС
• Polycam поставил рекорд и достиг выручки в $1 млн в месяц

• Какой ИИ и как помогает разработчикам — опрос Stack Overflow
• Смартфоны станут основным форм-фактором для ИИ
• Устанавливаем и применяем Docker на Repka Pi
• Raspberry Pi 5 получит свой ускоритель ИИ
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.