Моя малышка все еще любит самолеты — и я улучшил для нее радар
Продолжение прекрасной статьи про создание приложения-радара для собственного ребенка.
"Моя малышка любит самолеты — и я сделал для нее радар” — это, безусловно, лучшая вещь, которую я написал. Мне удалось попасть в ту самую «золотую середину» между полезным и техническим, и мое искреннее удовольствие от проекта просвечивало в рассказе. Казалось бы, как предприимчивый инди-разработчик, я должен был сразу же вскочить на волну хайпа, выпустить очередной релиз и начать мечтать о монетизации...
Автоматическое удаление кода может показаться странной идеей: написание кода требует больших затрат и он обычно считается активом. Однако когда в кодовой базе миллионы строк, неиспользуемый код становится обузой. Ведь с ним так или иначе нужно работать - поддерживать, если были созданы и не отменены тесты, то тестировать, выделять инженеров на рефакторинг или удаление. И это значительные издержки. Инженер Google Фил Норман написал о своей системе Sensenmann, которая ведает удалением ненужного кода в компании. Интересно посмотреть на обратную сторону разработки, не правда ли? 😀
Разработка
• Проект Sensenmann: удаление кода в масштабе
• Google Ads использует ИИ для создания кампаний
• Clerk получил $30 млн на аутентификацию и авторизацию для разработчиков
• bap_16778/5-achievable-side-hustles-for-developers-946c7cad1ff2">5 achievable side hustles for developers
• App Deep Dive: Peacock
• The Weirdest Bug I’ve Seen Yet
• 39 Challenges on Building Mobile Apps at Scale
Маркетинг
• Как посчитать ценные органические установки
• How to find creative winners and use AI to maximize their value
Кроссплатформа
• Заводим Яндекс Карты в Compose Multiplatform
• Hello MAUI
• Global Gamers Challenge from Flutter
• Multiplatform Magic: One Codebase, Three Platforms
iOS
• Упрощаем локализацию iOS-приложения со String Catalogs
• Регистрация на Swift Student Challenge откроется 5 февраля
• Introducing SwiftUI on visionOS
• Preparing for Swift 6
• Unit Testing a SwiftUI Application using Xcode
• My Toddler Still Loves Planes, So I Upgraded Her Radar
#ios
Из вчерашнего еще занятное - данные от AppFigures по установкам и доходам Among Us. Если вы не следили, то в пике, в июле 2020, игра получила аж 70 миллионов установок в месяц. Это к октябрю того же года вылилось в $9.7 млн чистой прибыли. Сейчас от этого не осталось и следа - установок стало менее 10 млн, а денег менее $100 тысяч. Почему так? Отсутствие изменений. За это время игра не сильно изменилась, сообщество не стало более активным. Те циклы роста (о которых вторая статья в “Маркетинге”) работали ограниченное количество времени и в конце концов выдохлись. И к вопросам о том, как добиться виральности, добавились следующий, даже более важный - как превратить виральность в устойчивый рост. Очевидно, что ребята из InnerSloth ответа (пока) не нашли. Посмотрите на свой продукт. Есть ли в нем виральность? А что будете делать, если найдете?
Разработка
• The Machine Learning Engineering Open Book: справочник по машинному обучению
• Mobile App Architectural Best Practices in Action
• 3 questions that will make you a phenomenal rubber duck
• Sensenmann: Code Deletion at Scale
• The art of shipping faster
Маркетинг
• Among Us: игра, которая не смогла
• Успех Among Us: исследование циклов роста игры, поразившей мир
• Creating an irresistible loyalty program for your app
Кроссплатформа
• Флаттер 3.18 | бета-релиз | Топ-8 фичей
• Publishing Kotlin Multiplatform Swift Packages Using Google Cloud Storage and Cloud Run
iOS
• Поваренная книга SwiftUI: шаринг состояний между представлениями с помощью объектов окружения
• Для Vision Pro пока разработано только 150 приложений
• Apple оплатила российский антимонопольный штраф
• LLMFarm: языковые модели на iOS и MacOS офлайн
• From Challenge to Joy: My Journey Developing Tuist for Scalable Xcode Projects
• iOS UI Testing with Deep Links
• How to write Unit Tests for Code Performance
• dmitrylupich/the-composable-architecture-swift-guide-to-tca-c3bf9b2e86ef">The Composable Architecture: Swift guide to TCA
• ScrollView Bounce Behavior configuration in SwiftUI
• Interactive Widgets With SwiftUI
#ios
Успех Vision Pro от Apple, как и многих других новых технологических платформ, будет во многом зависеть от поддержки сторонних приложений и сервисов. Марк Гурман из Bloomberg написал интересную колонку, в которой говорит, что все более напряженные отношения с разработчиками (по крайней мере крупными), могут помешать успеху новой гарнитуры. Netflix, YouTube и Spotify уже отказались от выпуска приложений (и даже портирования iPad версий), Google и M*** также, похоже, готовы с самого начала отказаться от новой платформы. Да, остались Walt Disney, TikTok, Amazon и Paramount, и вообще пишут, что главное приложение для Vision Pro это браузер, но если что и может затормозить новое устройство Apple (кроме цены), так это правда отсутствие поддержки разработчиков.
* Кстати, тут в соседнем чатике заклевали "Пример Microsoft Apple ничему не научил", но по моему довольно точное описание ситуации.
Разработка
• Huawei презентовал HarmonyOS NEXT
• Как мобильные разработчики занимаются инфраструктурой
• Плюс, работа с платежами и особенности разработки SDK
• Как умирают продукты без дизайн аналитики
• techworldwithmilan/how-to-deal-with-technical-debt-b0065c1a794d">How To Deal With Technical Debt
• The Open Source Sustainability Crisis
Маркетинг
• Почему игры становятся кроссплатформенными и как решить проблему привлечения пользователей
• Among Us: игра, которая не смогла
• X поставил рекорд по прибыли
Кроссплатформа
• Полное руководство по управлению навигацией во Flutter с помощью пакета go_router: часть 1
• Flutter. На пути к совершенству
• Podlodka: Qt — кроссплатформенная разработка приложений под декстоп и не только
• Spotify-KMP: пример приложения на Kotlin Multiplatform
• Customize Your Flutter Environment with Dart Define
• Benchmarking Dart’s json serialization and dataclass ecosystem
• Running Phi-2 a Large Language model like ChatGPT, locally offline in Flutter App
Android
• YTDLnis: загрузчик видео/аудио для Android
• Разбор кода Android-приложения фоторедактора Image Toolbox
• TDD: реальная история внедрения в проект
• mega-blog/improving-unit-test-performance-in-mega-android-bc9bb650d907">Improving unit test performance in MEGA Android
• Level Up Your Daily Coding: Unveiling Four Lesser-Known Tools in Android Studio
• Exploring Health Connect Pt. 2 - Reading and Writing Data
• Making Shadowfax Android App 40% faster
• A Better Hash Map
#android
Традиционная подборка всех новостей и статей за неделю. Адаптируем, отказываемся, критикуем, разбираемся, внедряем, интегрируем, измеряем, спрашиваем, снимаем, гоним на мороз.
Читать полностью…Новая пятничная подборка - видео и подкасты за неделю:
• (iOS Ru)
Мок-собеседование iOS-разработчика (все собесы)
• (iOS En)
Floating Tab Bar for macOS
• (iOS En)
SwiftData Debugging The Easy Way
• (iOS En)
Staging and Committing with Xcode
• (And Ru)
Как улучшить код функциональным подходом
• (And Ru)
Разбор кода Android-приложения фоторедактора Image Toolbox
• (And Ru)
TDD: реальная история внедрения в проект
• (And En)
App Performance Analysis with the Android Studio Profiler
• (And En)
The Top 3 State Management Mistakes On Android
• (Crs Ru)
Podlodka: Qt — кроссплатформенная разработка приложений под декстоп и не только
• (Crs En)
How to Make a Clean Architecture App with Kotlin and Compose Multiplatform
• (Dev Ru)
Как мобильные разработчики занимаются инфраструктурой
• (Dev Ru)
Плюс, работа с платежами и особенности разработки SDK
• (Dev Ru)
Как умирают продукты без дизайн аналитики
• (Dev En)
How to Get a Developer Job – Even in This Economy [Full Course]
• (Dsg En)
Figma Crash Course 2024
Что вы посмотрели/послушали интересного про разработку? Киньте ссылку в комментарии.
🌐 AppFiles
Android
• Бесплатный курс «Введение в IDE рефакторинг кода в Kotlin»
• Samsung представил Galaxy S24 с ИИ от Google
• Introduction to IDE Code Refactoring in Kotlin
• Never Use Exceptions for Logic in Kotlin!
• How to resolve the memory leak issue using an Android Studio profiler
• Koin-Dependent Composable Previews in Android Jetpack Compose
• Level Up Your Daily Coding: Unveiling Four Lesser-Known Tools in Android Studio
#android
Изучайте рефакторинга в IDE для повышения качества кода
У JetBrains вышел новый курс "Введение в рефакторинг кода с помощью IDE в Kotlin". Курс научит вас использовать IDE для форматирования и изменения вашего кода, чтобы он стал более читабельным и с меньшей вероятностью выдавал ошибки. Это отличный выбор для начинающих и развивающихся программистов, желающих писать профессиональный код.
Курс состоит из восьми разделов, в которых вы сможете изучить и применить различные техники рефакторинга. Вы узнаете о лучших практиках по стилю и форматированию кода, о том, как выявлять и избегать распространенных проблем, а также о том, как эффективнее использовать IDE для повышения качества кода.
Некоторые другие темы, которые вы можете встретить в курсе:
• Соглашения об именовании и правила стиля
• Root рефакторинг против floss рефакторинга
• Методы автоматического рефакторинга для перемещения, извлечения и инлайнинга кода
• Рефакторинг в соответствии с паттернами проектирования
Курс доступен бесплатно тут: https://plugins.jetbrains.com/plugin/23048-introduction-to-ide-code-refactoring-in-kotlin
Samsung представил Galaxy S24
Но больше занятны анонсы Google 🤷🏻♂️.
1. Внутри — Snapdragon 8 Gen 3 (или Exynos 2400), AMOLED экраны от 6.2 FHD+ до 6.8 Quad HD+ 120 Гц, от 8 до 12 Гб оперативной памяти, хранилища от 128 Гб до 1 Тб, три или четыре камеры (в лучшем случае это 200 МП f/1.7 со стабилизацией + 12 МП f/2.2 + 10 МП f/2.4 с 3х оптическим зумом и стабилизацией + 50 МПf/3.4 с 5х зумом и стабилизацией), Android 14 c One UI 6.1. Цена от 800 за Samsung Galaxy S24 до 1300 долларов за Samsung Galaxy S24 Ultra.
2. Более железа интересно то, что Gemini, передовое семейство моделей генеративного ИИ от Google, появится на Galaxy S24. Gemini Pro, модель среднего уровня, будет работать в приложениях Notes, Voice Recorder и Keyboard, обеспечивая «улучшенные функции обобщения». Gemini Nano — более эффективная и компактная модель — позволит использовать новую функцию Magic Compose, которая будет писать сообщения в таких стилях, как «взволнованный», «формальный» и «лирический», прямо на устройстве. Помимо Gemini, в Galaxy S24 будет использоваться модель Imagen 2 от Google, которая ляжет в основу функций редактирования фотографий в приложении Gallery. Samsung станет одним из первых партнеров, который протестирует и Gemini Ultra.
3. Google так же анонсировал новый способ поиска на телефонах Android, получивший название «Circle to Search». Функция позволит искать в любом приложении с помощью таких жестов, как обведение, выделение, заштриховка или постукивание. Это дополнение призвано сделать более естественным взаимодействие с Google Search в любой момент, когда возникает вопрос — например, при просмотре видео, фото в соцсети или во время разговора с другом по мессенджеру.
И что: превращение всей платформы Android в поверхность для поиска — это не просто «значимое» изменение для потребителей, это своего рода признание того, что поисковый бизнес Google нуждается в укреплении за счет более глубокой интеграции с самой ОС смартфона. И то, что таких "интеграций" будет все больше.
Android
• Simple Calendar: простой календарь с событиями, задачами, настраиваемыми цветами и виджетами
• Отчаяние, отказы и академический отпуск: как я за год вернул уверенность и стал Android-разработчиком
• MVI Architecture Explained On Android
• Compose and Conquer: A Tale of Effortless Android Navigation3
• Kotlin: An Illustrated Guide - Sealed Types
• Blurring the Lines: How to Achieve a Glassmorphic Design with Jetpack Compose
#android
Сам себе FaceApp
GPUPixel - это высокопроизводительная библиотека фильтров красоты для изображений и видео, написанная на C++11. Чрезвычайно проста в компиляции и интеграции, имеет очень маленький размер. Работает на GPU и содержит встроенные фильтры, позволяющие добиться результатов коммерческого уровня. Поддерживает все платформы, включая iOS, Mac, Android, и теоретически может быть перенесена на любую платформу, поддерживающую OpenGL/ES.
GPUPixel на GitHub: https://github.com/pixpark/gpupixel
В первой статье - обсуждение интересного вопроса, нужны ли нам аналитики продуктовые менеджеры? Конъюнктурщики и просто ***даболы, размытые функции, безответственность знатно подпортили образ. Если прибавить к этом зарплаты и, соответственно, кокращения, которые идут в первую очередь, вырисовывается совсем неприглядная картина. Но автор делает кажется правильный вывод - “выживут люди, искренне стремящиеся примирить интересы клиентов, коммерции и технологий в интересах разработки продуктов мирового класса. И они продолжат доказывать индустрии, что менеджеры по продукту действительно нужны”.
Разработка
• Действительно ли нам нужны менеджеры по продуктам?
• От стажера до ведущего разработчика — как расти в IT
• Locofy превращает макеты в код с помощью ИИ
• Applying the SPACE Framework
• How Apple built iCloud to store billions of databases
• FunCorp/how-to-build-and-optimize-a-content-feed-in-a-ugs-app-in-2023-52673ba53d6a">How to Build and Optimize a Content Feed in a UGC App in 2023
Маркетинг
• App Store разделят «на две части» — европейскую и нет
Кроссплатформа
• niranjanky14/multiplatform-ui-library-redwood-d2f0786c33c6">Multiplatform UI library: 🪵Redwood
Apple планирует ввести тарифы и ограничения на стороннюю загрузку приложений
В ближайшее время компания Apple объявит об изменениях в политике, которые должны соответствовать Закону о цифровых рынках в Европе, срок введения которого истекает в марте. DMA заставит Apple разрешить стороннюю загрузку приложений на iPhone, чтобы уменьшить монопольный контроль компании над программным обеспечением на iOS.
Однако как именно это будет происходить, остается под вопросом. The Wall Street Journal считает, что понимает план Apple. А состоит он в том, чтобы все равно сохранить контроль над приложениями и платформой.
Apple все равно собирается проверять и одобрять все загружаемые сторонние программы и брать плату за покупки в них. Как это будет реализовано пока никто не знает, но, как пишут, установить можно будет только подписанные ключом Apple приложения. По ключу можно будет установить разработчика и с него потребовать деньги. Требовать, видимо, будут все те же 27%.
И что: если описание достоверно, то Apple очевидно подрывает большую часть антиконкурентных ограничений, изначально предусмотренных DMA. Вполне вероятно, что после истечения мартовского срока Европейская комиссия введет дополнительные требования и принудительные меры. И будет новый раунд.
Android
• Winlator: эмулятор Windows (x86_64) для Android
• Coroutine patterns in Android, and why they work
• michalankiersztajn/room-database-relationships-explained-729d3c705fd9">Room Relationships Explained
• Android ViewModel: Single state or not?
• Jetpack Compose: Passing data implicitly in Composable screens
#android
Регистрация на Swift Student Challenge откроется 5 февраля
Swift Student Challenge 2024 - конкурс для молодых разработчиков от Apple. Регистрация начнется 5 февраля и будет открыта три недели.
В рамках конкурса 2024 года из 350 победителей компания выделит 50 лучших, за их выдающиеся работы, и пригласит их в Купертино для участия в необычном мероприятии. Все победители получат годовое членство в Apple Developer Program, бесплатный ваучер на сдачу сертификационного экзамена App Development with Swift и специальный подарок от Apple.
Подробнее о победителях прошлого года вы можете узнать тут. А о необходимых инструментах и используемых технологиях здесь.
Android
• Вопросы с собеседований: В чем разница между LinkedList и ArrayList
• Программируем лучше: 4 неизвестных инструмента в Android Studio
• ssharyk/8-extension-methods-to-use-in-every-android-project-e1888731c737">8 simple extension methods to use in every Android project
• Gradle: from Newbie to Strong fundamentals
• How to automatically test a Google Play Subscription
• DIY: your own Dependency Injection library!
• Lateinit vs Lazy in Kotlin
#android
Тема Win9x для Jetpack Compose
Это захватывающий момент для Material Design и Jetpack Compose!
GitHub: https://github.com/nassendelft/compose-win9x-theme
iOS
• Пишем интерактивный виджет
• Отношения Apple с разработчиками могут помешать Vision Pro
• Компании критикуют 27% налог Apple
• An Approach to Handling App Launch States in SwiftUI
• One-way bindings in SwiftUI
• Developing with Swift in Visual Studio Code
• Asynchronous SwiftUI buttons
• SwiftUI View Models: A Polymorphic Approach
• How to place a view in the UINavigationBar and increase its height
#ios
Huawei презентовал HarmonyOS NEXT
В прошедшую пятницу китайская компания презентовала свою новую ОС.
1. Huawei HarmonyOS NEXT — это “следующая большая вещь” от китайской компании. о время презентации представители компании отметили, что HarmonyOS Next построена с нуля и полностью на собственных решениях, включая ядро (HarmonyOS), файловую систему (EROFS/HMDFS), компиляторы (Ark Compiler), нейросети (Pangu) и библиотеки.
2. Ядро, по утверждению Huawei, в три раза эффективнее использует память, чем ядра Linux. Компания утверждает, что в ОС используется "гетерогенный нативный механизм", благодаря чему операционная система способна обеспечить плавность работы.
3. Приложения для HarmonyOS Next можно разрабатывать на языке ArkTS или Cangjie вместе с UI-фреймворком ArkUI и ArkUI-X, в качестве дизайн-системы используется HarmonyOS Design, а код можно писать в среде DevEco Studio.
4. Отказавшись от Android, HarmonyOS Next потеряла и все приложения — сейчас в магазине есть всего около 200 программ, но уже к концу года компания планирует увеличить это число до 5 тыс. В будущем Huawei ставит целью получить 500 тыс. приложениями. Компания планирует вложить в экосистему 7 миллиардов юаней — от нативных приложений до инструментов разработки. Эти инвестиции не просто денежные, они направлены на будущее технологий и призваны воспитать новое поколение разработчиков благодаря сотрудничеству с более чем 300 учебными заведениями.
И что: вряд ли ОС получит большое распространение за пределами Китая и рыночные перспективы не очень понятны. Но, как заведено, по первому времени разработчиков будут заливать деньгами, так что можно подсуетиться и заработать на партнерстве с самим Huawei.
Галерея иконок iOS-приложений
Подборка (чуть менее 2000) иконок. Разбито по цветам, дизайнерам, категориям, годам. Есть аналогичные сайты для macOS и wathcOS.
Сайт: https://www.iosicongallery.com/
Уиии! © Добро пожаловать в 2013 🥳 EA снова начала тестирование Plants vs. Zombies 3. Судя по моим записям, игра уже выходила в софт-лонч в 2020 году, а потом ее списали на доработку. Видимо на это понадобилось 4 года и вот новая версия опять в тестовом запуске, причем уже на более крупных рынках - в Великобритании, Нидерландах, Австралии и т.п. К чему это все - Supercell посрамили. 4+ года на разработку и тесты это, видимо, новый рекорд 🪻
Разработка
• Измерение производительности мобильных приложений в продакшене
• Пример Microsoft Apple ничему не научил
• Сундар Пичаи предупредил сотрудников Google о грядущих увольнениях
• Netflix отказался от поддержки Vision Pro
• Что можно улучшить в приложении? часть 2. Крадем как художники у Lamoda
• The Software Engineer’s Role as an API
• Designing better target sizes
Маркетинг
• Plants vs. Zombies 3 снова вышли в софт-лонч
Кроссплатформа
• Интеграция видеоплеера YouTube во Flutter
• Почему Flutter?
• jonasuekoetter/scaling-a-flutter-team-1dc2ddfd2065">Scaling a Flutter team
• Build a Custom Bottom Navigation Bar in Flutter with Animated Icons from Rive
• Dart & Flutter DevTools Extensions
iOS
• Вопросы с собеседований: Асинхронные задачи в Swift
• ADAMANT Messenger for iOS: клиент блокчейн-мессенджера
• SwiftUI Grid Tutorial: Neat Rows & Custom Column Alignments
• The Flexible Swift Error Handling
• How to use ApiKit to model an API and fetch data from it
• sabapathy7/force-update-show-new-app-version-is-available-ae97fee706b3">Force Update & show new App Version is Available
• cmallikarjun118/scheme-vs-target-in-xcode-unraveling-the-mystery-e78fb86184fa">Scheme vs. Target in Xcode: Unraveling the Mystery
#ios
🟥 Что делать в Сочи в марте? Писать мобильные приложения, конечно же!
С 18 по 29 марта в Сочи пройдёт научно-практический интенсив по мобильной разработке от Young&&Yandex и Университета «Сириус».
На смене будет представлено два направления: нативная разработка на iOS и мультиплатформенная разработка на Flutter.
Что вы успеете в ходе интенсива
🔶 Прокачаетесь в хард-скилах: создадите полноценные мобильные приложения под руководством ведущих разработчиков Яндекса и узнаете о современных инструментах разработки.
🔶 Поработаете над софтами: научитесь организовывать работу и ресурсы в команде, а также получите опыт совместной разработки.
🔶 Классно проведёте время: вас ждёт нетворкинг, природа Сочи — горы и море, а ещё выпускной в офисе Яндекса.
Что вы получите после прохождения интенсива
🔶 Качественный пет-проект в ваше портфолио.
🔶 Грамотное резюме: вы пройдёте мастер-класс по оформлению резюме, что будет полезно на любом этапе вашей карьеры.
🔶 Пробное собеседование в Яндекс: лучших мы пригласим стать сотрудниками.
Кто может принять участие в интенсиве
😀 Мы приглашаем принять участие в отборе студентов всех курсов бакалавриата, магистратуры и аспирантуры, интересующихся современными технологиями создания приложений на iOS или Flutter. Подробнее о необходимых навыках можно узнать здесь.
Обучение, проезд, проживание и питание на время смены предоставит Университет «Сириус».
💫 Успейте подать заявку и решить тестовое до 4 февраля включительно: https://clck.ru/37ESJJ
Крайне рекомендую прекрасную первую статью с двумя не менее прекрасными выводами. Первый - делать фигню, которая никому не нужна, не надо и даже вредно. Второй - чтобы не делать фигню, надо задавать правильные вопросы (об этом как раз и книга). А в целом - интересная история основателя инструмента для Code Review.
Разработка
• «Спроси маму» в разработке: задавайте правильные вопросы, когда все вам лгут
• GPUPixel: кроссплатформенные эффекты красоты
• UX – как лучше улучшать
• Experimenting with Handwriting Recognition for The New York Times Crossword
• Measuring mobile apps performance in production
• why lowercase letters save data
• How Apple built iCloud to store billions of databases
Маркетинг
• ROBODORO: трекер времени для iOS от red_mad_robot
Кроссплатформа
• How To FIX Text Overflow In Flutter
iOS
• Apple разрешает ссылки на стороннюю оплату в американском App Store
• Внедрение зависимостей для создания элегантных горизонтальных архитектур
• Полезные материалы для начинающих iOS разработчиков
• Visualising the build process of your iOS app with XCLogParser
• Thoughts And Tips After My App Was nominated For A Golden Apple Award From AppleVis
• blorenzop/error-handling-in-swift-f9ca87490e26">Error handling in Swift
#ios
🧩 Apple разрешает ссылки на стороннюю оплату в американском App Store
В связи с тем, что Верховный суд США отказался рассматривать апелляцию Apple в ее судебной тяжбе с Epic Games, компания Apple объявила о внесении ряда изменений в руководство App Store.
1. Apple ранее запрещала разработчикам размещать в своих приложениях ссылки на альтернативные платежные системы.
2. Изменения, которые Apple вносит в руководство App Store, пока действуют только на территории Соединенных Штатов. Они аналогичны изменениям, которые Apple ранее внесла специально для приложений для знакомств в Нидерландах.
3. Apple разрешает разработчикам указывать ссылки на альтернативные способы оплаты при условии, что приложение также предлагает покупки через собственную систему Apple. Нужно подать заявку, внести запись в plist, правильно создать новые экраны.
4. Комиссия составит 12% для разработчиков, являющихся участниками программы App Store Small Business Program, и 27% для остальных приложений. Разработчики будут обязаны предоставлять отчетность о покупках вне приложения и перечислять соответствующие комиссионные. Apple имеет право проверять отчетность разработчиков на предмет соблюдения ими своих комиссионных обязательств, а также начислять проценты и компенсировать платежи. Впрочем, сама компания признает, что всех проверить будет невозможно.
И что: What a Time to Be Alive!
Android
• Как улучшить код функциональным подходом
• Kotlin-Swift interopedia
• jigar.rangani1/sealing-the-deal-mastering-sealed-classes-in-android-with-kotlin-44ff34b4609f">Sealing the Deal: Mastering Sealed Classes in Android with Kotlin
• The Magic of Kotlin Result Class
#android