В новом дайджесте ускорение запуска приложений и спойлер-эффект кна Swift, сборщик метрик Android-проекта и рисование звезд, замена Firebase, идеальный встраиваемый язык, приложение для заметок, которое не стремится сделать вас более продуктивным и многое другое. Подключайтесь!
Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
iOS
• Почему ваша задача выполняется в главном потоке?
• Как ускорить запуск iOS-приложения в 2 раза с помощью Network Instrument
• Быстрый доступ к VPN в iOS с помощью App Intents
• Как реализовать спойлер-эффект как в Telegram на Swift?
• Как в Duolingo удалили 10,000 строк кода с помощью Reaper
• Предотвращаем порчу кодовой базы в iOS-проектах с помощью прекоммит хуков
• Как мы запекали 3D-пиццу
• Есть ли ORM круче SwiftData
• Макросы спустя полгода: не все так гладко
• DriverKit: гоняем данные по проводу без мам, пап и MFi
• HomePod с дисплеем, homeOS и Apple Intelligence выйдет на рынок в следующем году
• Server side Live Activities guide
• Getting Started with Hummingbird
• SwiftUI Animations
• Using the #expect macro for Swift Testing
• Using PreviewModifier for Quick Xcode Previews
• SwiftUI: Configurable Widget to Let Our User Choose!
• Mastering container views in SwiftUI. Sections.
• Blending colors dynamically with the mix modifier
• Mastering Actors and Concurrency — Best Practices
• Implementing Shared With You in SwiftUI
• Fixing Bitcode Issues in Xcode 16: How to Resolve Invalid Executable Errors When Uploading iOS Builds
• How XcodeGen reduced the TDD in Swift codebase by 58,000+ lines
• How to Perfectly Merge SwiftUI and UIKit Navigation: A Step-by-Step Guide
• How to Use Accessibility Inspector for iOS Apps
• CoreML in Action: From Concept to Code
• S.O.L.I.D. in Swift
• Recreate Apple’s Stopwatch: Mastering Millisecond Precision in SwiftUI
• Видео SwiftCraft 2024
• Alternative App Icons in Xcode 16
• New in Xcode16: the macro @Previewable
• SwiftUI — Support Prior iOS Versions — Backward Compatibility
• Embedded Swift and 16×16 LED Matrix Animation Overview
• Preview Updates in Xcode 16
• Auto Scrolling Infinite Carousel — iOS 18
• LinksKit — удобное представление SwiftUI для отображения общих ссылок
• SymSpellSwift — коррекция орфографии и нечеткий поиск
• SwiftUI Flow Layout — потоковый макет на SwiftUI
Android
• Как устроен сборщик метрик Android-проекта
• Рисуя звезды: рисование с помощью Compose и Canvas
• Koin: как сделать свой DI за 10 минут
• Шлём биткоины с Android (и смотрим транзакции)
• Новый подход к безопасному управлению состояниями в Kotlin-приложениях
• Создание уведомлений на языке Kotlin
• Gemini Nano теперь доступен на Android в экспериментальном режиме
• Что такое Hilt
• ImageVector vs painterResources — Under the hood
• Why fullMode hates Gson so much?
• Optimized Image Loading for Compose and Kotlin Multiplatform
• Demystifying the Android Build Process: A Deep Dive into APK Generation
• Quick introduction to Large Language Models for Android developers
• How to Ripple Outside of Compose Material
• Our journey with compose animations
• A Beginner’s Guide to Building Android from AOSP
• Exploring the Declarative Nature of Jetpack Compose
• Startup Profiles: The Quick Fix for Painfully Slow App Startups
• Jetpack Compose Tutorials and Playground
• Using kotlin-inject in a Kotlin/Compose Multiplatform project
• How to bring your AI Model to Android devices
• A quick glance at AppWidget
• Implementing Type-Safe Multi-Module Nested Navigation in Bottom Navigation using Jetpack Compose
• Weather App For Android Wear OS Using Compose
• How to “Safely” Migrate from Retrofit to Ktor
• Integrating the Gemini API in Android
• How to Navigate From ViewModels With a Custom Navigator
• Android Application with Microsoft Identity Platform
• Applying the Factory Method and Abstract Factory Patterns in Kotlin
• YourSpace — семейный локатор и общение
Кроссплатформа
• Как Dart VM выполняет твой код?
• Inspektify: KMP network inspection library
• Hotwire Native
• A Simple way to organize your code in Flutter
• Automate Your Flutter Environment Setup: One Script to Configure It All
• Realistic folder opening animation in Flutter
• 2D Game in Flutter using Flame
• Multiplayer drawing with Flutter and Serverpod. Full tutorial.
• Texty — текст с различными стилями, эффектами и анимацией для Compose Multiplatform
Разработка
• Чем можно заменить Firebase — Обсуждение на Reddit
• 10 SDK, чтобы улучшить ваше мобильное приложение
• 3 совета для улучшения читабельности кода
• Разработчики получают мало пользы (если вообще что-то получают) от ИИ-помощников
• Aspect Build получил $3.85M на улучшение работы с Bazel
• Самые высокооплачиваемые вакансии сентября в сфере разработки приложений
• Уволить нельзя терпеть
• Lua – идеальный встраиваемый язык
• ⅔ российских компаний используют ИТ-шеринг
• Shadow Calls and Circuit Breakers: Uber’s Safe Approach to Mobile Network API Migration
• It’s hard to write code for computers, but it’s even harder to write code for humans
• Don’t Be Afraid to Re-Invent the Wheel
• Evolving GitHub Issue
• A Local-First Case Study
• Why do programmers need private offices with doors?
• From Manual Pain to Automation Chaos: Finding the Right Balance
• Giving depth to your App Icons
• The reality of the developer job market with ex-Googler YK Sugi
Аналитика, маркетинг и монетизация
• Самые скачиваемые и зарабатывающие приложения в России в сентябре 2024
• Новый запрос на обмен контактами в iOS 18 стал угрозой для новых социальных приложений
• Epic подала в суд на Samsung и Google
• Napkin — приложение для заметок, которое не стремится сделать вас более продуктивным
• Новое приложение Wordy поможет вам учить язык во время просмотра фильмов и шоу
• Проектируем А/Б-эксперименты грамотно
AI, Устройства, IoT
• Когда в автомобиле нет системы GNSS…
• Новый подход к безопасному управлению состояниями в Kotlin-приложениях
• Как в Купере масштабировали машинное обучение и что из этого получилось
• Ищем потерявшихся питомцев с помощью нейросетей
• OpenAI запускает «Холст» для программирования с ChatGPT
• Poolside, занимающийся ИИ-программированием, привлек $500 млн
• Nvidia открыла новую ИИ-модель, готовую соперничать с GPT-4
• Ello обучает детей чтению и с помощью ИИ позволяет детям создавать свои собственные истории
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
iOS
• Почему ваша задача выполняется в главном потоке?
• Как ускорить запуск iOS-приложения в 2 раза с помощью Network Instrument
• Быстрый доступ к VPN в iOS с помощью App Intents
• Как реализовать спойлер-эффект как в Telegram на Swift?
• Как в Duolingo удалили 10,000 строк кода с помощью Reaper
• Предотвращаем порчу кодовой базы в iOS-проектах с помощью прекоммит хуков
• Как мы запекали 3D-пиццу
• Есть ли ORM круче SwiftData
• Макросы спустя полгода: не все так гладко
• DriverKit: гоняем данные по проводу без мам, пап и MFi
• HomePod с дисплеем, homeOS и Apple Intelligence выйдет на рынок в следующем году
• Server side Live Activities guide
• Getting Started with Hummingbird
• SwiftUI Animations
• Using the #expect macro for Swift Testing
• Using PreviewModifier for Quick Xcode Previews
• SwiftUI: Configurable Widget to Let Our User Choose!
• Mastering container views in SwiftUI. Sections.
• Blending colors dynamically with the mix modifier
• Mastering Actors and Concurrency — Best Practices
• Implementing Shared With You in SwiftUI
• Fixing Bitcode Issues in Xcode 16: How to Resolve Invalid Executable Errors When Uploading iOS Builds
• How XcodeGen reduced the TDD in Swift codebase by 58,000+ lines
• How to Perfectly Merge SwiftUI and UIKit Navigation: A Step-by-Step Guide
• How to Use Accessibility Inspector for iOS Apps
• CoreML in Action: From Concept to Code
• S.O.L.I.D. in Swift
• Recreate Apple’s Stopwatch: Mastering Millisecond Precision in SwiftUI
• Видео SwiftCraft 2024
• Alternative App Icons in Xcode 16
• New in Xcode16: the macro @Previewable
• SwiftUI — Support Prior iOS Versions — Backward Compatibility
• Embedded Swift and 16×16 LED Matrix Animation Overview
• Preview Updates in Xcode 16
• Auto Scrolling Infinite Carousel — iOS 18
• LinksKit — удобное представление SwiftUI для отображения общих ссылок
• SymSpellSwift — коррекция орфографии и нечеткий поиск
• SwiftUI Flow Layout — потоковый макет на SwiftUI
Android
• Как устроен сборщик метрик Android-проекта
• Рисуя звезды: рисование с помощью Compose и Canvas
• Koin: как сделать свой DI за 10 минут
• Шлём биткоины с Android (и смотрим транзакции)
• Новый подход к безопасному управлению состояниями в Kotlin-приложениях
• Создание уведомлений на языке Kotlin
• Gemini Nano теперь доступен на Android в экспериментальном режиме
• Что такое Hilt
• ImageVector vs painterResources — Under the hood
• Why fullMode hates Gson so much?
• Optimized Image Loading for Compose and Kotlin Multiplatform
• Demystifying the Android Build Process: A Deep Dive into APK Generation
• Quick introduction to Large Language Models for Android developers
• How to Ripple Outside of Compose Material
• Our journey with compose animations
• A Beginner’s Guide to Building Android from AOSP
• Exploring the Declarative Nature of Jetpack Compose
• Startup Profiles: The Quick Fix for Painfully Slow App Startups
• Jetpack Compose Tutorials and Playground
• Using kotlin-inject in a Kotlin/Compose Multiplatform project
• How to bring your AI Model to Android devices
• A quick glance at AppWidget
• Implementing Type-Safe Multi-Module Nested Navigation in Bottom Navigation using Jetpack Compose
• Weather App For Android Wear OS Using Compose
• How to “Safely” Migrate from Retrofit to Ktor
• Integrating the Gemini API in Android
• How to Navigate From ViewModels With a Custom Navigator
• Android Application with Microsoft Identity Platform
• Applying the Factory Method and Abstract Factory Patterns in Kotlin
• YourSpace — семейный локатор и общение
Кроссплатформа
• Как Dart VM выполняет твой код?
• Inspektify: KMP network inspection library
• Hotwire Native
• A Simple way to organize your code in Flutter
• Automate Your Flutter Environment Setup: One Script to Configure It All
• Realistic folder opening animation in Flutter
• 2D Game in Flutter using Flame
• Multiplayer drawing with Flutter and Serverpod. Full tutorial.
• Texty — текст с различными стилями, эффектами и анимацией для Compose Multiplatform
Разработка
• Чем можно заменить Firebase — Обсуждение на Reddit
• 10 SDK, чтобы улучшить ваше мобильное приложение
• 3 совета для улучшения читабельности кода
• Разработчики получают мало пользы (если вообще что-то получают) от ИИ-помощников
• Aspect Build получил $3.85M на улучшение работы с Bazel
• Самые высокооплачиваемые вакансии сентября в сфере разработки приложений
• Уволить нельзя терпеть
• Lua – идеальный встраиваемый язык
• ⅔ российских компаний используют ИТ-шеринг
• Shadow Calls and Circuit Breakers: Uber’s Safe Approach to Mobile Network API Migration
• It’s hard to write code for computers, but it’s even harder to write code for humans
• Don’t Be Afraid to Re-Invent the Wheel
• Evolving GitHub Issue
• A Local-First Case Study
• Why do programmers need private offices with doors?
• From Manual Pain to Automation Chaos: Finding the Right Balance
• Giving depth to your App Icons
• The reality of the developer job market with ex-Googler YK Sugi
Аналитика, маркетинг и монетизация
• Самые скачиваемые и зарабатывающие приложения в России в сентябре 2024
• Новый запрос на обмен контактами в iOS 18 стал угрозой для новых социальных приложений
• Epic подала в суд на Samsung и Google
• Napkin — приложение для заметок, которое не стремится сделать вас более продуктивным
• Новое приложение Wordy поможет вам учить язык во время просмотра фильмов и шоу
• Проектируем А/Б-эксперименты грамотно
AI, Устройства, IoT
• Когда в автомобиле нет системы GNSS…
• Новый подход к безопасному управлению состояниями в Kotlin-приложениях
• Как в Купере масштабировали машинное обучение и что из этого получилось
• Ищем потерявшихся питомцев с помощью нейросетей
• OpenAI запускает «Холст» для программирования с ChatGPT
• Poolside, занимающийся ИИ-программированием, привлек $500 млн
• Nvidia открыла новую ИИ-модель, готовую соперничать с GPT-4
• Ello обучает детей чтению и с помощью ИИ позволяет детям создавать свои собственные истории
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.