iOS
• Apple работает над новым App Store для игр
• Comprehensive Guide to Mastering KeyPath in Swift
• Beginner’s Guide to Protocol Buffers and gRPC with Swift
• SwiftUI or UIKit in 2024 & 2025
• How to Create Interactive Table View in SwiftUI
• iosdev.abhi/building-a-2048-powerplay-game-for-apple-watch-with-swiftui-235e71d667c3">Building a 2048 PowerPlay Game for Apple Watch with SwiftUI
#ios
Помните, как автор TBH продал его второй раз? Складывается ощущение, что автор Daze учился там, где он преподавал. Раньше Саймонс работал над “инновационным” мессенджером Muze. В 2022, судя по всему, разосрался со своими со-основателями и Muze загнулся. Сейчас он снова делает Daze, точно такой же “инновационный” мессенджер, правда уже в одиночку. Пишут, что еще до выхода у него случился небывалый ажиотаж на видео в Тиктоке. Запуск приложения назначен на ноябрь, но я бы сказал, что и конец у Daze будет похож на Muze.
Разработка
• Introducing Mellum: JetBrains’ New LLM Built for Developers
• Using AI Generated Code Will Make You a Bad Programmer
• 3 Lessons from the Smartest Developers I’ve Worked With
Маркетинг и монетизация
• Daze, креативное приложение для обмена сообщениями с ИИ для Поколения Z, набирает аудиторию еще до запуска
• Сравнение доходов App Store и Google Play в категории Образование в США
• Как потратить шесть лет и быть невидимкой в Play Market
Кроссплатформа
• Интеграция TFLite во Flutter: внедряем модели машинного обучения в мобильное приложение
• rudresh.narwal/top-10-flutter-design-patterns-in-2024-0a8473ca3828">Top 10 Flutter Design Patterns in 2024
• Advanced Flutter Techniques Every Mobile Developer Should Know
iOS
• Создание настраиваемого сегментированного контрола в SwiftUI
• PIPKit — картинка в картинке на iOS
• Objective-C не кусается: как перестать бояться Legacy и стать настоящим iOS-ниндзя
• SwiftUI: Build Our Own Container
• Vapor and Swift Testing: Running tests in parallel
• Making Accessibility Accessible
• How to use Cursor for iOS development
• AnyView is everywhere in Xcode 16
#ios
Как и предполагалось с самого начала, суд отложил требования о запуске альтернативных магазинов в Google Play и практически всех остальных пунктов нашумевшего две недели назад решения. Пока осталось только то, что начиная с 1 ноября 2024 года Google запрещено заключать сделки с операторами связи или производителями устройств, которые блокируют предустановку конкурирующих магазинов приложений в обмен на деньги, долю прибыли или льготы. Все остальное будет предметом апелляции. Которая, как заведено и как показывает пример Apple, может идти годами.
Разработка
• Короткий путь с Senior-ами
• Собеседование продуктового аналитика в Авито: кейс-интервью
• Shape Up, scrum out. Как решать проблемы юзеров за дни, а не за сторипоинты
• AI в медицине
• Software Engineer Titles Have (Almost) Lost All Their Meaning
Маркетинг и монетизация
• Azar пытается вернуть случайные видеочаты Поколению Z
• Где деньги: сравнение доходов App Store и Google Play
Кроссплатформа
• dmilicic/writing-a-personal-website-in-flutter-web-238cb7e69086">Writing a personal website in Flutter Web
• mobileatexxeta/developing-accessible-mobile-apps-with-flutter-1f04cc8be83e">Developing accessible mobile apps with Flutter
iOS
• iOS Swift for VS Code — iOS-разработка в VS Code
• Макросы в Swift: Практическое руководство по использованию
• Внедряем снепшот-тестирование, или пять стадий принятия неизбежного
• Modular Navigation in SwiftUI: A Comprehensive Guide
• Improve your app's UX with SwiftUI's task view modifier
• Migrating Combine to AsyncAlgorithms
• Create ZIP files in Swift without third-party dependencies
• How Do Binaries work together? What breaks ABI?
• Building a Customizable Segmented Control in SwiftUI
• How to significantly improve incremental build time with xcodebuild
#ios
Видео и подкасты за неделю @AppFiles
• (iOS En)
WWDC22: Visualize and optimize Swift concurrency
• (iOS En)
Principal Engineer shares tips to Master System Design and Architecture
• (iOS En)
SwiftUI Toasts
• (iOS En)
How to get started with Swift Testing
• (iOS En)
Create a Bold SwiftUI Flight Boarding Widget
• (iOS En)
Add Micro Interactions to your Tab Bar | SwiftUI
• (iOS En)
iOS/SwiftUI Chat App With Cursor
• (And Ru)
Как следить за качеством работы вашего кода. Tracer. Кирилл Попов
• (And Ru)
1000 откликов и 0 собеседований — как не войти в айти в 2024: кодревью
• (And Ru)
Замена иконок — что может быть проще?
• (And En)
Custom Adaptive layouts in Compose
• (And En)
Region specific resources and broken localization
• (And En)
Applying the Builder Pattern in Kotlin
• (Crs En)
Mobile App Development Course with React Native, Supabase, Next.js
• (Anl Ru)
Собеседование продуктового аналитика в Авито: кейс-интервью
• (Dev Ru)
Shape Up, scrum out. Как решать проблемы юзеров за дни, а не за сторипоинты
• (Tch Ru)
AI в медицине
#ios #android #mobile #video
Android
• Как мы улучшили производительность навигации на Android на 30%
• Loaders — лоадеры для Jetpack Compose
• Понимание прогноза глюкозы в AndroidAPS часть 2
• Динамические модули в приложениях на Android: опыт использования Dynamic Feature Delivery
• The updated Kotlin roadmap is here!
• Compose Multiplatform 1.7.0 Released
• Creating a responsive dashboard layout for JetLagged with Jetpack Compose
#android
Mistral выпускает новые ИИ-модели, оптимизированные для телефонов
Французский ИИ-стартап Mistral выпустил свои первые генеративные модели ИИ, предназначенные для работы на периферийных устройствах, таких как ноутбуки и телефоны.
• Новое семейство моделей, которое Mistral называет Les Ministraux, можно использовать или настраивать для различных приложений, от базовой генерации текста до работы в связке с более мощными моделями для выполнения задач.
• Доступны две модели Les Ministraux — Ministral 3B и Ministral 8B, обе из которых имеют контекстное окно в 128,000 лексем, что означает, что они могут освоить примерно 50-страничную книгу.
• Ministral 8B доступна для загрузки уже сегодня — правда, исключительно в исследовательских целях. Mistral просит разработчиков и компании, заинтересованные в самостоятельном развертывании Ministral 8B или Ministral 3B, связаться с ней для получения коммерческой лицензии.
• Кроме того, Ministral 3B и Ministral 8B через облачную платформу Mistral La Platforme или другие облака, с которыми стартап заключит партнерские соглашения в ближайшие недели. Стоимость Ministral 8B составляет 10 центов за миллион выходных/входных токенов (~750,000 слов), а Ministral 3B — 4 цента за миллион выходных/входных токенов.
И что: в последнее время наблюдается тенденция к созданию небольших моделей для конечных устройств. Google продолжает развивать свое семейство малых моделей Gemma, а Microsoft предлагает свою коллекцию моделей Phi. В последнем обновлении своего пакета Llama представила несколько небольших моделей, оптимизированных для работы на устройствах.
Android
• Google начал развертывание Android 15 на Pixel
• Компьютерное зрение на C++: пишем приложение для поиска объектов под Android
• How we improved our Android navigation performance by ~30%
• Testing Coroutines — Simplified
• Using Kotlin Reflection to Automate Compose Navigation
• runTest vs runBlocking — Simplified
• omdubey170/hello-pentester-07209d5d8d42">Bypassing Location Restrictions on a Android App Using Frida
#android
Вот для чего, в конце концов, и нужны все ваши технологии - делать людей счастливыми. AR-очки для глухой девушки:
Читать полностью…Автор приложения Elite Hoops и одного из популярных блогов про Swift и iOS-разработку, поделился своими результатами за год. Если кратко, то у него 860 платящих клиентов и $3,000 MRR. Если не кратко, то всего его выводы, как ни банально, сводится к маркетингу и тому, что им надо заниматься. Из интересного - маркетинг через побочный проект побочного проекта и Supabase для обратной связи в приложении.
Разработка
• Один год Elite Hoops: 12 маленьких уроков
• Integrating Appium and Cypress for Unified Test Automation
• Code review antipatterns
Маркетинг
• 17 Издание Индекса эффективности от AppsFlyer
• Топ быстрорастущих приложений в России в октябре
Кроссплатформа
• Kotlin Multiplatform Developer Roadmap — план изучения Kotlin Multiplatform
• Самые важные пакеты в экосистеме Dart и Flutter на Pub 2024
• Как подружить Flutter и Huawei — настраиваем App Gallery. Часть 1
• Не пытайтесь динамически загружать код в ваше Flutter-приложение
• oleksandr.kriatov/automated-code-analysis-for-flutter-integrating-sonarcloud-with-github-actions-e82cfe951620">Automated Code Analysis for Flutter: Integrating SonarCloud with GitHub Actions
• kerry.bisset/trying-to-start-a-multiplatform-company-store-with-kotlin-rpc-koin-ktor-and-wasm-57d60a356e01">Trying to Start a Multiplatform Company Store with Kotlin RPC, Koin, Ktor, and WASM
iOS
• Swift Testing: How to Test Your iOS App’s Network Layer
• Calculating the semantic distance between words with the Natural Language framework
• What was early iOS development like
Android
• Тесты для функций Compose в Amdroid
• kerry.bisset/understanding-the-impact-of-multiple-navhosts-on-back-navigation-and-viewmodel-management-in-fe63a9b73f45">Understanding the Impact of Multiple NavHosts on Back Navigation and ViewModel Management in Jetpack Compose
• himv1998/swiggy-sde-2-inteview-experience-android-7906956a924a">SWIGGY SDE-2 Inteview Experience (Android)
• Android Studio Ladybug Feature Drop
• myofficework000/7-kotlin-flow-operators-that-you-must-know-62eb726e3ff4">7 Kotlin Flow Operators that you must know
#ios #android #mobile #dev
Рассказывают, что Google работает над официальным способом запуска Linux-приложений на Android. Весь способ будет сосредоточен в приложении Terminal, которое является частью Android Virtualization Framework (AVF) и содержит WebView, который подключается к виртуальной машине Linux на локальном IP-адресе, позволяя вам выполнять команды Linux с Android-хоста. Изначально приходилось вручную включать это приложение Terminal с помощью команды оболочки, а затем самостоятельно настраивать виртуальную машину Linux. Сейчас Google работает над тем, чтобы Terminal стал универсальным приложением, которое загружает, настраивает, запускает и взаимодействует с экземпляром Debian в виртуальной машине. Зачем нам Linux приложения? Ну, например, на Chromebook-ах работает Linux-версия Android Studio (правда, в версии для x86, в отличие от большинства Android на ARM). Так что, вероятно, это некий шаг в сторону разработчиков и превращения Android-устройств в более полезные терминалы.
Разработка
• Путь тестировщика: ошибки, опыт, деньги
• Мобильная разработка в Алисе и YaOS: как это работает
• Перформанс мобильных приложений
• Дизайн-система 2.0: менеджеры нужны
• Двое за ноутом, не считая copilot’а, или Как внедрить парное программирование
• Так много тимлидов хороших и разных. А я какой?
• Стартап мечты превратился в кошмар
• LinkedIn сообщает о 10 миллионах фрилансеров на Services Marketplace
• 3 Career Principles that got me to Director at Google
Маркетинг
• Самые скачиваемые и зарабатывающие приложения в мире в сентябре 2024
• Как определить целевую аудиторию и повысить охваты вашего мобильного приложения: полное руководство
• Elite Hoops Year One: 12 Bite-Sized Lessons
• How Uber Eats makes you think you want to order food
Кроссплатформа
• Flutter Web глазами мобильного разработчика
• Building a Cross-Platform Camera App with CameraK and Compose Multiplatform
• Making Compose Multiplatform apps feel at home: removing ripple animation on iOS
#mobile #dev
iOS
• Создаем анимацию печати текста на печатной машинке в SwiftUI
• TinyStorage — простая и легкая замена UserDefaults для постоянного хранения данных
• Собеседование iOS-разработчика: проектирование и лайфкодинг
• Introducing Recap: What's Old Is What's New Again
• uwaisalqadri/maintaining-syntactic-sugar-for-optional-in-swift-dfb7f9019fba">Maintaining Syntactic Sugar for Optional in Swift
• Replacing Fastlane with Shell scripts
• Security-scoped bookmarks for URL access
• SaezChristopher/%EF%B8%8F-how-we-reduced-the-build-time-by-2-with-out-xcode-at-shopmium-part-1-f66f6ec51b05">How we reduced the build time by 2 with(out) Xcode at Shopmium
#ios
Видео и подкасты за неделю @AppFiles
• (iOS Ru)
Собеседование iOS-разработчика: проектирование и лайфкодинг (+ все собеседования)
• (iOS En)
Improve Scroll Transitions | SwiftUI
• (iOS En)
Grid Multi-Selection using Pan Gesture | SwiftUI
• (iOS En)
How to Fix UIKit and SwiftUI Menu Buttons (make them easier to tap)
• (iOS En)
TDD Basics with SwiftUI
• (iOS En)
Adopt iPhone 16 Camera Control into your SwiftUI App
• (iOS En)
WWDC22: Design protocol interfaces in Swift
• (And En)
Now in Android: 110 - Android 15, Credential Manager, Android Studio Koala, Compose for TV
• (And En)
FULL Guide to Kotlin's Inline Keyword (inline, crossinline & noinline)
• (And En)
Micro Open Source: From Passion to Pet Project Publication
• (Crs Ru)
Flutter Web глазами мобильного разработчика
• (Crs En)
Build a Book Library App for Android & iOS using ROOM KMP (MVVM)
• (Dev Ru)
Мобильная разработка в Алисе и YaOS: как это работает
• (Dev Ru)
Путь тестировщика: ошибки, опыт, деньги
• (Dev Ru)
Перформанс мобильных приложений
• (Dev Ru)
Дизайн-система 2.0: менеджеры нужны
• (Dev Ru)
Двое за ноутом, не считая copilot’а, или Как внедрить парное программирование
• (Dev Ru)
Так много тимлидов хороших и разных. А я какой?
• (Dev Ru)
Стартап мечты превратился в кошмар
• (Dev En)
Databases In-Depth – Complete Course
• (Dev En)
Electron Course - Code Desktop Applications (inc. React and Typescript)
• (Dev En)
AWS Certified AI Practitioner (AIF-C01) – Full Course to PASS the Certification Exam
#ios #android #mobile #video
Android
• Android 16 может позволить вам поместить любое приложение в плавающий пузырь
• Selenoid на Android – от А до Я
• Авто-трекинг производительности Room Database
• kappdev/how-to-create-a-pulse-effect-in-jetpack-compose-265d49aad044">How to Create a Pulse Effect in Jetpack Compose
• The day we (almost) lost 1,000 customers
• sc128496/bypassing-multiple-checks-on-android-applications-a-security-researchers-experience-2ec1a3005b60">Bypassing Multiple Checks on Android Applications: A Security Researcher’s Experience
#android
Сорен Иверсон придумывать и публикует в Х новые функции для знакомых нам всем приложений. Например, он предлагает, чтобы Tinder предупреждал о слишком устаревших фотографиях. Или мессенджер показывал, сколько времени пользователь читал сообщение. У него так же есть погода в котах и собаках и с гороскопами, встроенная покупка для того, чтобы посмотреть, что удалил пользователь в переписке, F̶i̶n̶d̶ ̶m̶y̶ ̶f̶r̶i̶e̶n̶d̶s̶ Find me friends, анализатор дыхания для ответа бывшей, красные точки для всех уведомлений и много другого полезного. Казалось бы юмор, но нет. Используйте в своих проектах.
Читать полностью…Android
• Анализ сведений о запуске и завершении приложений в Android 15
• Как в eXpress достигали мгновенного рендера отправки сообщения: оптимизация локальной базы данных
• Using popBackStack()? Then Your App Likely Has a Bug.
• Reusable Styles in Compose
• omarsahl/advanced-kotlin-exploring-the-lesser-known-syntax-and-features-0f49e5da9c15">Advanced Kotlin: Exploring Lesser-Known Syntax and Features
• Changes in Android 15 for developers
• Get your App Performance Score
#android
🤮 Сравнение доходов App Store и Google Play в категории Образование в США
Решил перепроверить вчерашние данные про доходы App Store и Google Play и в качестве примера с помощью AppMagic залез в категорию Образование в США.
Попробуйте сами предсказать разделение доходов по платформам?
• В целом Топ-10 приложений в двух магазинах за сентябрь заработали $35 619 120. Для сравнения, в сентябре 2023 года этот показатель — $33 692 080.
• Примечательно, что Duolingo получает 45% всей прибыли этой мобильной категории, еще 16% пользователи платят ClassDojo, а все остальные имеют только однозначный процент доходов. Если взять Топ-100 приложений, то Duolingo получает еще больше, почти половину — 49%.
• Как же доходы распределяются по платформам? На самом деле, тут это распределение практически вторит полученному AppFigures. В App Store Топ-10 приложений для образования в сентябре заработали $29 486 938, а в Google Play $6 558 869. Это, соответственно, 18 и 82% от дохода.
И что: в других категориях и/или странах все немного по другому. Поставьте 👍, если хотите продолжения.
Android
• Суд приостановил решение об открытии Google Play и Android
• Lets-Plot — мультиплатформенное черчение
• Как следить за качеством работы вашего кода. Tracer. Кирилл Попов
• 1000 откликов и 0 собеседований — как не войти в айти в 2024: кодревью
• Замена иконок — что может быть проще?
• Забудьте про терминал! Как я избавлялся от рутинных ADB команды с помощью Shortcuts
• Implementing Overslide interaction in Jetpack Compose
• Unplugged DI - DI.Y Basics
• Making my concurrent algorithm 6000% better
• Using Kotlin Reflection to Automate Compose Navigation
• Analyzing App Startup and Shutdown details in Android 15
• That Weird Compose Crash
• Circular Reveal Animations in Jetpack Compose
#android
🌐🤖 Где деньги: сравнение доходов App Store и Google Play
Очевидный ответ — в App Store больше денег. Стандартное распределение считается как 1 к 2 - на каждый доллар трат пользователей в Google Play приходится 2 доллара трат в App Store. Однако новое исследование AppFigures показывает несколько иную картину.
• В сентябре только 16% всех доходов было получено от покупок в Google Play и 84% — в App Store.
• Если говорить о конкретных долларах, то, по оценкам аналитики, в сентябре потребители потратили на приложения и игры $16.2 миллиарда. На долю Google Play пришлось $2.5 млрд, а на долю App Store — оставшиеся $13.7 млрд. Это валовой доход, то есть то, что пользователи потратили на покупки в приложениях до того, как Apple и Google взяли свои комиссионные.
• Не все категории одинаковы. Больше всего денег потребители потратили на игры — $5.1 млрд в App Store и Google Play. $3.9 млрд, или 75%, пришлось на App Store, так что если у вас есть игра, App Store — самое подходящее место. Забавный факт — App Store дает играм наименьшую долю по сравнению со всеми остальными категориями, кроме одной (Покупки).
• Помимо игр, в пятерку лучших категорий по общему объему трат входят Развлечения, Стиль жизни и Знакомства, Социальные сети и Фото и видео. На долю App Store приходится от 83 до 97% дохода этих категорий.
И что: есть много причин выпускать приложение на обеих платформах, но если доход - ваша главная цель, начните с App Store.
В первой статье рассматривается интересная техника сжатия данных - «сжатие с общим словарем». Она позволяет в определенных ситуациях радикально уменьшить объем передаваемых приложениями данных и, в общем то, не так уж трудна для внедрения. Как пишут, эта техника уже давно используется в таких компаниях, как Google и Amazon, но в последнее время она получила широкое распространение и в сообществе мобильных разработчиков. В целом, даже если вам не надо, посмотрите как оно бывает.
Разработка
• Ускоряем работу приложения с помощью сжатия с общим словарем
• Google выпустил корпоративную версию Gemini Code Assist
• Mistral выпускает новые ИИ-модели, оптимизированные для телефонов
• Тысячи иконок и адаптация под RTL: проектирование интерфейса шаблона мобильного приложения для партнёров Travelpayouts
• How we Outsmarted CSGO Cheaters with IdentityLogger
• Programming a first person shooter from scratch like it's 1995
• Be Suspicious of Success
Кроссплатформа
• Compilers, Virtual Machines and Code Analysis - What makes Dart and Flutter run
#mobile #dev
iOS
• Exploring SwiftUI: Understanding TextRenderer to Animate Words
• Tokenizing text with the Natural Language framework
• Interactive Toasts SwiftUI
• How to get started with Swift Testing
#ios
Интересную позицию сформулировал автор “Антипаттернов Code Review”. Когда один разработчик становится рецензентом кода другого, эти отношения создают временную власть. Рецензент имеет право предотвратить конкретный коммит, даже если в остальное время он не имеет никакой власти над автором кода. Но с полномочиями приходит ответственность. И вы должны использовать полномочия только по назначению, и всегда настолько, насколько это необходимо. В данном случае это сделать код как можно лучше, в соответствии с тем определением «хорошего», которое выработала команда разработчиков в целом. А не использовать эту временную власть над другим разработчиком в качестве рычага для достижения каких-то своих личных целей, возможно, не зависящих от качества кода, а возможно, активно противостоящих ему. В общем, искусство Code Review не всегда лежит в области кода. А иногда и в области Review.
Разработка
• Антипаттерны Code Review
• Early создает Unit-тесты с помощью ИИ
• The Senior Shortcut
Маркетинг
• How to brew the perfect Halloween campaign for app growth
Кроссплатформа
• reachbhakhand/mastering-null-safety-in-dart-a-practical-guide-for-flutter-developers-3f654c71b39e">Mastering Null Safety in Dart: A Practical Guide for Flutter Developers
iOS
• Вычисление семантического расстояния между словами с помощью Natural Language Framework
• Tuist: добавляем генерацию проекта в текущее приложение
• iOS Performance Optimization — рекомендации по оптимизации iOS-приложений
• rishixcode/networking-async-await-in-swiftui-e3bdc9a92cfb">Networking Async/Await in SwiftUI
• Building a Custom Progress Bar in SwiftUI
• Reinventing Core Data Development with SwiftData Principles
• Creating a Theme manager for UIKit using Combine in Swift
• Faster iOS Networking with Shared Dictionary Compression
#ios
🤖 Google начал развертывание Android 15 на Pixel
Можно сказать, что Android 15 официально вышел. Окончательная версия операционной системы была опубликована в Android Open Source Project в прошлом месяце, но на тот момент она еще не была доступна на телефонах и планшетах Pixel, а также на других основных устройствах Android. Сегодня Google объявил, что она наконец-то появилась на устройствах Pixel, вместе с рядом новых функций.
• Одной из главных новых функций в Android 15 является возможность создания «личного пространства» для приложений, которые вы хотели бы скрыть от других людей, получивших доступ к вашему телефону (Google приводит в пример социальные приложения, приложения для знакомств или банковские приложения).
• Многие устройства под управлением Android - не только Android 15 - получат функцию Theft Detection Lock.
• На раскладушках и планшетах Android 15 позволит пользователям закреплять и откреплять панель задач, чтобы они могли выбрать несколько более удобный доступ к своим приложениям. Они так же получат модернизированный режим мультизадачности с возможностью запуска двух приложений на одном экране.
• Android получил функцию архивации приложений.
• Google также начинает раскатывать новый пакет функций (feature drop) для Pixel.
Вот он – шанс погрузиться в разработку игр, если очень давно хочется!
Я много пишу про то, что игры - большая часть мобильного рынка и один из главных драйвер роста индустрии. Если вы еще не сделали свою первую игру, то самое время начать. RuStore, один из лидирующих магазинов приложений в России, проводит конференцию о мобильных играх.
RuStore Mobile Conf: GameDev — это площадка для общения и обмена опытом между разработчиками мобильных игр, бизнесом и экспертами индустрии. На конференции поговорят про все ключевые аспекты создания игр — от идеи до монетизации.
Участвуйте:
• Когда: 2 ноября;
• Совершенно бесплатно;
• Можно представить свою игру и получить фидбэк от спикеров.
Не упустите! Ссылку на регистрацию прикрепляю
Android
• Google готовится запустить Linux-приложения на AndroidДень, когда мы (почти) потеряли тысячу клиентов
• Зачем нужен crossinline — вопросы с собеседований
• Xbox начнет продажи игр в приложении для Android
• MusicSearch — песни, исполнители и все, что с ними связано
• Обходим ошибку в системных настройках печати на телефонах RealME
• Ktor 3.0 Is Now Available With New Features and Improved Performance
• michalankiersztajn/kotlin-design-patterns-builder-explained-b95f14ea730c">Kotlin Design Patterns: Builder Explained
• Seamless Real-Time Location Tracking with gRPC, Kotlin & Jetpack Compose
• One click dependencies fix
#android
Остерегайтесь парения в космосе
Вся разработка за неделю - странное поведение UserDefaults и признание Google Play монополией, анимации космоса и авто-трекинг производительности, роль продуктового дизайнера, как перехватывают зашифрованный HTTP-трафик, новый рекорд приложений с подпиской и многое другое. Заходите!
🔨 Автор статьи “Остерегайтесь UserDefaults” открыл прекрасное. Оказывается, iOS иногда все-таки шифрует данные в UserDefaults (как она решает что шифровать я так и не понял, но не суть). А расшифровать их можно только когда пользователь разблокировал устройство. Учитывая Live Activity на экране блокировки и предварительный разогрев приложений получаем превосходную коллизию, когда UserDefaults не может выполнять то, собственно для чего создавалась (например, получает даже не nil
, а 0
вместо количества заходов пользователя в приложение):
Суть UserDefaults в том, что он должен надежно хранить простые, нечувствительные данные, чтобы к ним можно было обратиться в любой момент. Тот факт, что теперь эта ситуация кардинально изменилась, и что ваше приложение может быть запущено фактически в любое время, делает ситуацию невероятно запутанной, опасной и трудной для отладки.
iOS
• Остерегайтесь UserDefaults: история о труднопонимаемых ошибках и потерянных данных
• Пишите на Swift как Apple
• DevTutor for SwiftUI — примеры SwiftUI
• Applying visual effects combined with scrolling in SwiftUI
• How to listen for property changes in an @Observable class using AsyncStreams
• Mastering Swift’s RunLoop: A Comprehensive Guide
• Mastering container views in SwiftUI. Values.
• dhairyavora_35186/swift-memory-handle-with-care-a-fun-dive-into-advanced-ios-memory-management-4a0b2792a5e5">Swift Memory: Handle with Care! A Fun Dive into Advanced iOS Memory Management
#ios