iOS
• Aespa: фото и видео в 2 строчки кода
• SwiftUI: Разбираемся с identity на примере переходов
• Как добавить drag and drop в ваше приложение
• Modern iOS Navigation Patterns
• knoo/whats-new-in-uikit-bc8a98090cfc">What’s new in UIKit
• Mastering MapKit in SwiftUI. Camera.
• Implementing Drag Gestures In Xcode 15 (SwiftUI)
#ios
🚀 Мои друзья из Appbooster приглашают на вебинар «Продвижение приложений в мобильных сторах в 2024 году»
🙌 Будет все самое интересное:
• Как подготовить приложение к продвижению с точки зрения ASO
• Работа с репутацией в App Store и Google Play
• Как подобрать запросы для продвижения
• Стратегии продвижения в App Store и Google Play
• Как настроить кампании в платформе Appbooster
• Что нового в платформе Appbooster
• Разбор успешных кейсов
• Полезные инструменты для продвижения
• Есть ли жизнь в альтернативных сторах
🎁 Для всех зарегистрировавшихся на вебинар будет доступна акция «Новогодний кэшбэк». Все подробности — на вебинаре.
Дата и время проведения: 20 декабря в 17:00 (мск)
Длительность: 1 час
Спикер: Анна Назарова, аккаунт-менеджер платформы Appbooster
👉 Зарегистрироваться на вебинар!Реклама. ООО "ДЖУСИСОФТ". ИНН 6312098419. erid: LjN8JufEF
На Reddit нашел интересное обсуждение - разработчик, вернувшийся к iOS-разработке спустя 4 года мягко говоря недоумевает по поводу того, как все усложнилось (ну или по крайней мере не улучшилось). Архитектуры - говно, async/await - днище, отладчик и Xcode - совсем полное днище, SwiftData - сахарный ненадежный бардак ну и все в таком духе. В общем, оказалось, что он такой не один:
Все новые функции и фреймворки кажутся полуфабрикатами, сломанными, и часто приходится возвращаться к старым парадигмам, потому что Apple не знает, каким вообще должно быть программирование на iOS. Функциональное, реактивное, основанное на наблюдателях? Понятия не имею, но удачи вам в попытках использовать новые API.
С другой стороны многие говорят, что все совсем не так и на самом деле iOS-разработка вполне упрощается и просто надо развиваться в своей области. Короче, крайне занимательное чтение, рекомендую.
Разработка
• Как я использую мутационное тестирование для поддержки хорошего покрытия тестами
• Вопросы с собеседований: что такое Copy-On-Write
• Как много языков может влезть в одного программиста?
• What I Wish I Knew As a Mid-Level Engineer
• How to arrange GitHub actions to improve feedback cycles
• Dr. Bazel: How I Learned to Stop Worrying and Love Building Systems
Маркетинг
• Epic Games выиграла в суде у Google
• Как я потерял $2,85 млн и решил создать приложение для массового инвестирования
Кроссплатформа
• Build a watch app using Flutter
• punnyarthabanerjee/handling-real-time-data-in-flutter-efficiently-without-firebase-9b088c1b20d3">Handling Real-time data in Flutter efficiently without Firebase
iOS
• iOS-разрабокта становится сложнее — обсуждение на Reddit
• Поваренная книга SwiftUI: добавление кастомной формы к представлению SwiftUI
• Symbolicate crash logs with Xcode
• Leveraging Emerge Tools in CI/CD Pipelines for iOS App Size Optimisation
• Distributing a Swift Macro using CocoaPods
• Writing Custom SwiftLint Rule with SwiftSyntax
• cjckytxz/getting-to-swift-weak-part-1-d6a0e54599e4">Getting to Swift.weak { }
#ios
Epic Games выиграла в суде у Google
Спустя три года после того, как производитель Fortnite компания Epic Games подала в суд на Apple и Google, обвинив их в незаконной монополии на магазины приложений, Epic наконец одержала победу.
1. Присяжные по делу Epic против Google сегодня вынесли свой вердикт - они пришли к выводу, что Google превратила свой магазин приложений Google Play и сервис Google Play Billing в незаконную монополию.
2. Epic "в основном" проиграла свою борьбу с Apple два года назад. Но дело Epic против Google оказалось совсем другим. Оно было связано с секретными сделками по распределению доходов между Google, производителями смартфонов и разработчиками крупных игр, которые, по внутреннему мнению руководителей Google, были призваны сдержать конкурентов в магазинах приложений. Дело показало, что Google боялась именно Epic. И все это было решено судом присяжных, в отличие от решения Apple.
3. Пока мы не знаем, что именно выиграла Epic, это решит судья, который определит, каковы будут соответствующие последствия. Компания Epic не требовала денежной компенсации — она хотела, чтобы суд сказал Google, что каждый разработчик приложений имеет полную свободу вводить свои собственные магазины приложений и свои собственные биллинговые системы на Android. В какой форме - пока непонятно.
4. Google заявил, что компания планирует обжаловать вердикт.
И что: на самом деле, ничего особо революционного нет - и Google, и даже Apple, которая выиграла, уже готовы к стороннему биллингу и альтернативным магазинам. Конечно, сделали они это так, что лучше бы не делали, но это уже дело следующих судебных разбирательств.
Android
• Как интегрировать Dynamic Features в Android-приложение
• Tusky: Android-клиент для Mastodon
• Когда официальные гайды не такие и полезные или WebSocket на ktor
• How to build Wrapped 2023 in Compose Animation
• Kotlin K2 Compiler's Latest Features: Subtle Under-the-Hood Advances for Koin
• Exceptions for control flow in Kotlin
• What can Advanced / Lesser Known Modifiers do for your UI
• How I use Mutation Testing to Drive Good Test Case Coverage
#android
Опубликованы SDK, для которых Apple будет требовать подпись
Если ваше приложение использует эти сторонние библиотеки, то с весны 2024 года вы должны будете включать их в новый манифест конфиденциальности.
1. На WWDC23 компания Apple представила новые декларации конфиденциальности и подписи для SDK, чтобы помочь повысить осведомленность о том, как сторонние SDK используют данные.
2. В файлах манифеста конфиденциальности в едином стандартном формате описываются методы обеспечения конфиденциальности для стороннего кода в приложении.
3. Apple на прошлой неделе перечислила SDK, для которых надо будет делать privacy manifest и подпись. Среди самых заметных и популярных - Alamofire, Charts, Cordova, масса библиотек FB, практически весь Firebase, Flutter, OneSignal, Protobuf, RxSwift, sqflite, UnityFramework.
И что: что-то из разряда объяснения использования UserDefaults
, бессмысленное и беспощадное 😤
🤝 Мы давно уже привыкли к совместной работе над документами, кодом, макетами. Но до сих пор в основном эта задача решается в рамках традиционного CRUD, что приводит к существенным проблемам как для пользователей, так и разработчиков.
12 декабря в 19.00 приглашаем на вебинар “Разработка кооперативных API для совместной работы над документом”, на котором исследуем решение компании Google в сервисе Google Docs, применив интересный реверс-инжиниринг.
📌 На занятии:
• сосредоточимся на подходе, позволяющем нескольким людям одновременно вести работу над одним документом;
• обсудим теоретические и алгоритмические аспекты решения;
• проанализируем возможную реализацию на стороне бэкенда и поймем, сколько это будет стоить;
• спроектируем API для тестовой прикладной задачи.
👉Регистрация https://otus.pw/C3PTu/?erid=LjN8JueKG
Урок пройдет в рамках курса «Kotlin Backend Developer. Professional». При поступлении в группу обучения возможные разные способы оплаты и рассрочка платежа.Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Вчера, вместе с Gemini, Google представил и AlphaCode 2, улучшенную версию генератора кода AlphaCode, представленного лабораторией DeepMind около года назад. Его уже протестировали на Codeforces - AlphaCode 2 показал лучшие результаты, чем в среднем 85% участников. Это по сравнению с примерно 50% участников, которых его предшественнику удалось обойти на том же подмножестве задач. То есть был средний программист, стал уже хороший. AlphaCode 2 может понимать задачи программирования, связанные со «сложной» математикой и теоретической информатикой. Среди прочих достаточно сложных методов AlphaCode 2 способен выполнять динамическое программирование. Правда, пока использование модели стоит крайне дорого и отдавать его в использование не планируют. Но в общем понятно, что конец программирования все ближе.
Разработка
• Google показал AlphaCode 2 на основе Gemini
• Как устроен протокол iMessage
• bagder/111538350617290554">How the first gen iPod was reverse engineered to run Rockbox
Маркетинг
• 5 прогнозов для мобильных приложений 2024
• How to implement gamification and enhance your app’s user experience
Кроссплатформа
• Инструкция: как быстро настроить GitLab CI/CD на Flutter-проекте
• shubhamsoni82422/safeguarding-your-flutter-apps-a-practical-guide-to-secure-flutter-app-development-in-2023-9ea3228db9a2">Safeguarding Your Flutter Apps
Android
• Вопросы с собеседований: для чего нужны сервисы в Android-приложении
• KSP2 Preview: Kotlin K2 and Standalone Source Generator
• Improve Your Android App Performance With Baseline Profiles
• Kotlin under the hood: The nuances of using annotations in Kotlin
• Is it okay to use runBlocking?
#android
Android
• Новая основа для искусственного интеллекта в Android
• CountryCP: выбор страны в Compose
• kapilvij/android-interview-questions-e52dfb2cd64c">Android Interview Cheat Sheet
• Live Mosaic at Droidcon London 2023
• 100% Flakiness-free UI test automation with Kaspresso and Allure Testops
#android
Beeper Mini — новое приложение для переписки в iMessage с Android (и оно работает)
Beeper Mini - новое приложение от "большого" Beeper, который занимается агрегацией мессенджеров.
1. Ранее все использовали виртуальные Mac для общения в iMessage. Но это создавало очевидные проблемы с безопасностью.
2. Для Beeper Mini сделали реверс инжиниринг протокола, деконструировали конвейер обмена сообщениями Apple от начала и до конца. Самым сложным, по словам автора, было взломать то, что, по сути, является висячим замком Apple на всей системе - проверку, является ли подключенное устройство настоящим продуктом Apple.
3. Интересно, что основой для работы послужил прототип 16-летнего школьника, который доказал саму возможность "проникновения" в iMessage и с которым теперь работает автор Beeper.
4. Код iMessage от Beeper будет с открытым исходным кодом, чтобы другие пользователи могли ознакомиться с ним.
5. Конечно, Apple глубоко защищает iMessage как механизм блокировки для iPhone, и трудно представить, что компания навсегда проигнорирует появление сторонних решений для мессенджера. Но сейчас все отлично работает - и с вожделенными "синими пузырями".
И что: если вы 16-летний школьник - для вас нет ничего невозможного 💬 Будьте как школьник ☺️
Android
• Улучшение производительности Android-приложения NordVPN с помощью плагина Compose Compiler
• Реализация параллакс-карусели из SwiftUI в Jetpack Compose
• mortitech/better-previews-in-compose-with-custom-annotations-dc49b94ff579">Better Previews in Jetpack Compose, Tips and Tricks
• Kotlin Delegation: A Powerful Code Organization Technique for Reusability and Maintainability
• dugguRK/mastery-on-invoke-kotlin-8f1ebb4828d0">Mastery on Invoke Kotlin
• Clean Architecture for Android MVI
• amsavarthan/stealing-api-keys-security-in-android-495dd5285892">Stealing API keys — Security in Android
#android
Собрал все записи собеседований мобильных разработчиков, нечто вроде Awesome Interviews
✅. iOS и Android, с разделением (эфемерным, конечно, но все же) по грейдам - Junior, Middle, Senior. Всего получилось более 60 видео, если есть чем дополнить - можно прямо в личку кидать. По мере выхода новых тоже буду добавлять, так что если интересно - следите за обновлениями.
Разработка
• Онлайн собеседования мобильных разработчиков
• Рынок смарт-часов восстанавливается
• Самые высокооплачиваемые вакансии ноября в сфере разработки приложений
• Автотесты в AvitoTech
• Секреты собеседований с Алеексеем Быковым (Reddit)
• Треш-обзор Geekbrains. Полный разбор курса по Android
• Podlodka #343: что такое Motion Design?
• UI/UX Design: The Fastest Way to Make Your Designs More Interesting
• How Google takes the pain out of code reviews, with 97% dev satisfaction
• How Uber Computes ETA at Half a Million Requests per Second
Маркетинг
• Самые скачиваемые и зарабатывающие приложения в России в ноябре 2023
• Маркетологи в мобайле: Александра Мареева («Спортмастер»)
• Capsule: новости на основе ИИ и человеческих редакторов
• Threads обгоняет X
Кроссплатформа
• FreeToGame: KMP-проект для Android, iOS, Desktop и Wear OS
• Welcome Fleet with Kotlin Multiplatform Tooling
• Kotlin Multiplatform Development Roadmap for 2024
• Flutter GameDev with Casual Games Toolkit & Flame
iOS
• Swift Utilities — Интеграция SwiftUI в UIKit
• Pow: анимационные эффекты для SwiftUI
• Поваренная книга SwiftUI: создание представления-сетки
• Вопросы с собеседований: в чем разница Weak и Unowned в Swift
• GetInRhythm/building-robust-ios-applications-the-art-of-modularization-a21bf5350c6a">Building Robust iOS Applications: The Art of Modularization
• Apple’s use of AppKit, Catalyst, Swift and SwiftUI in macOS Sonoma
• Using on-demand resources for securely storing API keys in iOS apps
• Observable Architecture Beta
• Easy app walkthroughs with MarkWalkthrough
• AsyncStream in the real world: wrapping an Apple Photos callback
• From viewWillAppear to viewIsAppearing - Perfecting Your iOS View Transitions
#ios
Google открыл доступ к Gemini Pro
На прошлой неделе Google представил свою самую функциональную ИИ-модель - Gemini. Gemini является мультимодальной - она может принимать как текстовые, так и графические данные. Компания представила разработчикам Android возможность использовать самую маленькую модель Gemini Nano на устройствах через AICore. А сегодня Google представил разработчикам Android новые возможности доступа к модели Gemini Pro, которая работает вне устройства, в центрах обработки данных Google.
1. Gemini Pro доступна через Gemini AP. Чтобы упростить интеграцию Gemini Pro, вы можете использовать Google AI SDK, клиентский SDK для Android.
2. Google AI Studio предоставляет разработчикам упрощенный способ интеграции модели Gemini Pro, создания промптов, ключей API и легкого превращения идей в приложения с искусственным интеллектом. осле разработки подсказки в Google AI Studio вы можете просто нажать на действие "Получить код", чтобы сгенерировать фрагмент кода на языке Kotlin, и начать интеграцию Gemini уже сегодня, используя Google AI SDK для Android.
3. В Android Studio есть новый шаблон проекта для разработчиков, чтобы они могли сразу же начать работу с Google AI SDK для Android.
И что: крайне просто и приятно, ждем решения от Apple.
Адвент-календарь MonkeyUser на 2023 год
Все в пост не влезло, поэтому отдельными картинками тут.
Android
• Amazon выпустил AWS SDK для Kotlin
• Compose Preference: экран настроек в Material 3
• sedakundakitchen/unit-testing-kotlin-flow-emissions-86ae7cc32333">Unit testing Kotlin Flow emissions
• Zooming out Twilio Migration
• alex.hrindii/how-to-share-and-publish-detekt-config-14e816d6c8ae">How to share and publish Detekt config?
• satish24sp/firebase-dynamic-link-deprecation-and-its-alternates-81d72e33734">Firebase dynamic link deprecation and its alternates
• How we tested a Google Play application
#android
Вышли первые Mobile Interview — неформальные беседы про мобильную разработку в Яндексе
Ребята из разных команд мобильной разработки Яндекса рассказывают, какие задачи решают каждый день и почему им нравится эта работа. Первые выпуски уже можно посмотреть на YouTube-канале Yandex for Mobile:
🔸 В первом выпуске обсудили инфраструктуру Такси. Как и зачем собирать команду мобильной инфраструктуры приложения и чем ребята занимаются на ежедневной основе.
🔸 Во втором выпуске разбирались в разработке Карт. Какие задачи ребята решают, как адаптируются под сложности определения геолокации, развивается ли MapKit, как уживаются приложения Карт и Навигатора.
🔸 В третьем выпуске беседовали о разработке под iOS. Как мы делали браузер под iOS, легко ли переключаться между платформами и под какую проще разрабатывать, что нужно сделать, чтобы завоевать авторитет в большой команде, и в чём заключается специфика разработки браузеров.
🔸 В четвёртом выпуске поговорили с деврелом. Что за люди делают мероприятия для мобильных разработчиков, как организовать большую конференцию и не сойти с ума, чем ещё занимаются DevRel-команды и зачем простым разработчикам связываться с ними.
Смотрите интервью и подписывайтесь на YandexforMobile?utm_source=tg&utm_medium=social&utm_campaign=yfm&utm_content=apptractor&erid=2VtzqvQT9pv">канал — скоро там выйдет пятый выпуск Mobile Interview.
У Nielsen Norman Group вышла прекрасная статья о том, нужно ли вам создавать отдельное приложение для умных часов. В целом этот подход применим ко всем продуктам, но тут дело еще усугубляется тем, что, по данным исследования, 80% приходилось на встроенные в устройство приложения, такие как сообщения, трекеры активности и таймеры. Еще процентов 15 на музыку. А все остальное - ВООБЩЕ никому не нужно. Подход же - не создавайте приложение для умных часов только потому, что можете. Тратьте на это время и ресурсы только в том случае, если вы уверены, что это предлагает уникальную ценность.
Разработка
• Стоит ли создавать приложение для умных часов?
• Операционные системы — Как это работает
• Как зарабатывать на обучении в IT?
• TypeScript убил JavaScript?
• Apple выпустила библиотеки машинного обучения для Apple Silicon
• Как я пытался облегчить работу в поликлинике
• Exploring accessibility regulations and guidelines
• Processing Payments in Firebase with Stripe
• Navigation patterns in mobile applications. How to make the right choice?
• rohitverma_87831/my-interview-experience-at-google-afc1080df175">My Interview Experience at Google
Маркетинг
• Лучшая мобильная игра в Game Awards 2023
• Pimento использует ИИ для превращения брифов в креативные мудборды
Кроссплатформа
• PWA vs. нативные приложения: когда и как выбрать?
• lordjadawin/the-anatomy-of-dart-code-analysis-understanding-key-entities-ba75cf20d8ba">The Anatomy of Dart Code Analysis: Understanding Key Entities
• Implementing Blurred Bottom TabBar in React Native
• Separation of Concerns in Flutter Applications
• Flutter Deep Linking: The Ultimate Guide
iOS
• Опубликованы SDK, для которых Apple будет требовать подпись
• Apple заблокировала Beeper Mini «в целях безопасности»
• Откройте для себя Journaling Suggestions API
• Swift 30 Projects: 30 учебных проектов для изучающих iOS-разработку
• Разработчики будут бесплатно получать 25 часов Xcode Cloud в месяц
• Marin's Side Projects 2023
• How to customize the macOS About Panel in SwiftUI
• AsyncPhoto for displayng large photos in SwiftUI
• henribredtprivat/create-an-ios-share-extension-with-custom-ui-in-swift-and-swiftui-2023-6cf069dc1209">Create an iOS Share Extension with custom UI in Swift and SwiftUI (2023)
• The Complete Guide to JSON Web Tokens (JWT) Authentication in iOS
• Is iOS programming hard now?
• A Guide to Geofences in SwiftUI
#ios
Идеальная основа для рефлексии
Собрал новый еженедельный дайджест - про iOS, Android, кроссплатформу и все вокруг. Поставьте 👍 и поделитесь с коллегами! Еще у меня есть канал IT Insights, где новости и статьи про код, технологии и все самое интересное, возможно и за пределом мобайла. Вот, например, симулятор ядерного реактора - всего три ручки, а сколько удовольствия!
Видео и подкасты за неделю:
• (iOS En)
How To Create A Tic Tac Toe Game in Xcode 15 (SwiftUI)
• (iOS En)
Interactive Widgets – Intents
• (iOS En)
SwiftUI Complex Hero Animation With Synchronized ScrollViews
• (iOS En)
Create your first app with SwiftUI and SwiftData
• (iOS En)
Swift Data Many to Many relationships
• (iOS En)
How To Create And Use A Card View in Xcode 15 (SwiftUI)
• (And Ru)
Как интегрировать Dynamic Features в Android-приложение
• (And En)
Enhancing Jetpack Compose app performance
• (And En)
Latest Updates to Google Play, New APIs in Jetpack Compose, and more dev news!
• (And En)
mutableStateOf() VS. mutableIntStateOf() - Auto-Boxing Explained
• (And En)
Is it okay to use runBlocking?
• (Crs Ru)
PWA vs. нативные приложения: когда и как выбрать?
• (Crs En)
Flutter GameDev with Casual Games Toolkit & Flame
• (Dev Ru)
Операционные системы — Как это работает
• (Dev Ru)
Как зарабатывать на обучении в IT?
• (Dev Ru)
TypeScript убил JavaScript?
• (Dev En)
MLOps Course – Build Machine Learning Production Grade ProjectsКонечно же поставьте 👍 и поделитесь подборкой!
iOS
• Поваренная книга SwiftUI: создание кастомного модификатора представления
• ColorfulX: градиенты с Metal
• sharaev_vl/handling-new-enum-cases-in-swift-unknowncasedecodable-protocol-08e54fa37aef">Handling new Enum cases in Swift. UnknownCaseDecodable protocol
• Distributing a Swift Macro using CocoaPods
• GPT's specifically for Apple Frameworks
• Mastering in SwiftUI
• swift2931/stop-abusing-value-type-7cf4f64f2015">Stop abusing value type
#ios
Только что Google анонсировал Gemini, самую “мощную модель компании”. Как обычно “ничего непонятно, но очень интересно” (С). Если серьезно, то (кажется) это большая языковая модель, которая была разработана с учетом гибкости, поэтому она может работать в любых системах — от центров обработки данных до мобильных устройств. Она была оптимизирована для трех различных размеров: Ultra, Pro и Nano. Ultra должна работать на серверах, а Nano, соответственно, на смартфонах. В первом варианте это Bart, в нано - резюмирование текста, контекстные умные ответы, расширенная корректура и исправление грамматики. Снаружи в Android 14 все оборачивается в Android AICore, этот SDK управляет моделями, режимами выполнения, функциями безопасности и многим другим, упрощая работу по внедрению ИИ в ваши приложения. Уже есть программа раннего доступа, так что можно попробовать.
Разработка
• Мода на плоский дизайн наконец-то прошла?
• Microsoft открыла Terminal Chat
• «Яндекс» открыл доступ к YandexGPT API для всех пользователей в режиме превью
• Are your engineering “best practices” just developer dogmas?
• Your GitHub pull request workflow is slowing everyone down
Маркетинг
• Beeper Mini — новое приложение для переписки в iMessage с Android (и оно работает)
• Как продвигать приложение детской одежды в VK Рекламе и Яндекс Директе - кейс Gulliver Market и Rocket10
• Discord провел редизайн мобильного приложений с акцентом на сообщения
• How to Build a Personal Brand as a Developer
Кроссплатформа
• mrclemrkz/why-flutter-is-not-the-best-mobile-app-development-tool-3d2d7d833331">Why Flutter is “NOT” the Best Mobile App Development Tool
• How to implement push notifications in Kotlin Multiplatform
• Practical Functional Programming in Dart and Flutter
• mofeejegi/calling-platform-specific-dependencies-in-kotlin-multiplatform-69dbc9a841a2">Calling Platform-Specific Dependencies in Kotlin Multiplatform
iOS
• Swift: Simulating Inheritance in structs with the Power of enums
• Are You Truly Adopting MVVM? Or Just a Badly Shaped MVP?
• SFSafariViewController in SwiftUI: Open webpages in-app
• Mastering MapKit in SwiftUI. Customizations.
• 7 Steps to Add Chat to a SwiftUI App Using Firebase
#ios
Первый стабильный релиз Flutter 1.0 вышел 5 лет назад, с чем платформу и поздравляем. За это время он охватил все платформы, обзавелся игровым движком и многим остальным и стал основным выбором для настоящей кроссплатформенной разработки. Не все так безоблачно - Flutter начал терять руководителей, его начал поджимать KMP, но в целом он уже вышел на траекторию нормального развития, так что, кажется, будущее у него вполне отличное.
Разработка
• Amazon выпустил Q, своего помощника с искусственным интеллектом
• Bumble For Friends использует ИИ для написания первого сообщения
• Animate Anyone приближает создание видео-дипфейков
• Интернационализация от i до n: как мы переводим интерфейсы в Фантехе Яндекса
• How psychology design products that win customers
• Data Quality Score: The next chapter of data quality at Airbnb
Маркетинг
• Дизайн АБ тестов
• France in three charts: Installs, sessions, and retention rates
Кроссплатформа
• Handling Asynchronous Data in Flutter with Generic Classes
• e.yram/building-a-spreadsheet-interface-in-flutter-a-quick-guide-976fee9c6d26">Building a Spreadsheet Interface in Flutter: A Quick Guide
iOS
• Использование on-demand ресурсов для безопасного хранения ключей API в iOS-приложениях
• IMSwitch: графические переключатели для SwiftUI
• Testing private functions in Swift
• melissazm/future-proofing-your-projects-for-swift-6-a-comprehensive-guide-1ccb1b90abd1">Future-Proofing Your Projects for Swift 6: A Comprehensive Guide
• SwiftUI for Jetpack Compose developers - State
• Interactive Widgets – Intents
• jpmtech/easily-change-the-language-of-the-simulator-to-test-your-app-0fd980596467">Easily Change the Language of the Simulator to Test Your App
#ios
Android
• Вышла стабильная версия Android Studio Hedgehog
• Готовим конфигурацию Android-приложения с помощью Dynamic Proxy и рефлексии
• Разработка UI на Jetpack Compose
• Idiomatic Kotlin: Merge Two Strings Alternately + Benchmarks
• Implementing an animated column section header using Jetpack Compose
• Improving NordVPN’s Android performance using the Compose Compiler plugin
• Koin, Ktor & Paging in KMM
• Global Google Developer Experts Share Their Favorite Tools and Advice for New Developers
• Custom Pull to Refresh in Jetpack Compose
#android
• First look at AndroidX Bluetooth
Самые скачиваемые и зарабатывающие приложения в России в ноябре 2023
В установках Телеграм и Wildberries снова поменялись местами — маркетплейс даже увеличил установки по сравнению с октябрем, но Telegram вырос больше и в ноябре набрал более 3.4 миллиона новых пользователей. А так в десятке все без особых изменений.
По деньгам ВКонтакте и Телеграм снова возглавляют список самых зарабатывающих, а дальше игры меняются местами друг с другом. На 9 месте снова Литрес, а на 10 — FaceApp.
Десятка зарабатывающих:
1. VK: social network, messenger
2. Telegram
3. PUBG MOBILE
4. Royal Match
5. Tanks Blitz PVP битвы
6. Roblox
7. Gardenscapes
8. Homescapes
9. Litres: Books and audiobooks
10. FaceApp: Perfect Face Editor
Не совсем запуск, но интересный пример роста - приложение Wink на фоне запуска своего платформенного сериала "Слово пацана" поднялось в чарте установок аж на 161 место. Wink опередил все остальные стриминги, в том числе "Кинопоиск". Правда, пока это в доходы не вылилось, впрочем у онлайн-кинотеатра есть веб-платежи и период бесплатного смотрения, так что итоги лучше подводить в декабре. Любопытно в ASO: если в 🌐 страницу приложения полностью забрендировали под новый сериал, то в Google Play он даже не упоминают. Конечно, iOS-приложение обновили на прошлой неделе, а на Android еще в середине ноября, но все равно - кажется это не очень правильно.