Адвент-календарь 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 еще в середине ноября, но все равно - кажется это не очень правильно.
Видео и подкасты за неделю:
• (iOS En)
Swift Data One to Many Relationships
• (iOS En)
SwiftData Starter Project
• (iOS En)
SwiftUI Shine Effect – Custom View Modifier
• (iOS En)
SwiftUI: Infinite Looping ScrollView - iOS 17
• (iOS En)
SwiftLeeds 2023 Videos
• (And Ru)
Разработка UI на Jetpack Compose
• (And Ru)
Треш-обзор Geekbrains. Полный разбор курса по Android
• (And En)
What's new in Android Studio Hedgehog
• (And En)
Now in Android: 96 - New APIs for adaptive layouts, Google Play updates, and more!
• (And En)
compileSdk VS. targetSdk VS. minSdk - THIS Is the Difference
• (And En)
Full Guide to Shared Element Transition Animation in Android with Jetpack Compose
• (Crs En)
Shared Navigation on Kotlin Multiplatform with Decompose (KMP)
• (Crs En)
Coil Goes Multiplatform with Colin White
• (Crs En)
Step-by-Step Guide: Creating a Peer-to-Peer Tic Tac Toe Game in Flutter
• (Dev Ru)
Автотесты в AvitoTech
• (Dev Ru)
Секреты собеседований с Алеексеем Быковым (Reddit)
• (Dsg Ru)
Podlodka #343: что такое Motion Design?Поставьте 👍 и поделитесь подборкой!
На 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
Ускоряем утечки памяти
Вот и новый еженедельный дайджест - про iOS, Android, кроссплатформу и все вокруг. Поставьте 👍 и поделитесь с коллегами! Еще у меня есть канал IT Insights, где новости и статьи про код, технологии и все самое интересное, возможно и за пределом мобайла. Вот, например, "Архитектурные антипаттерны" - распространенные антишаблоны, как их избежать и преодолеть "подводные камни" проектирования.
У Data.ai и Google вышло “практическое” руководство по монетизации приложений. По большей части - делайте хорошо, а плохо не делайте. Из интересного - график средних цен для встроенных покупок, пик которых пришелся на весну, и календарь ключевых моментов на 2024 год с разными праздниками, к которым можно приурочить свои активности. В общем, не обязательно, но местами может быть полезно.
Разработка
• Как мы (не) вкатились в геймдев. Часть 1
• Knowledge Graphs from scratch with Python
Маркетинг
• Как монетизировать приложения - практическое руководство Data.ai и Google
• Лучшие приложения и игры в Google Play 2023
• Лучшие приложения года в App Store Awards 2023
• Повышение Результативности Мобильного Маркетинга: Использование AIGC, Apple Search Ads и Steam Creatives для Повышения Эффективности UA
Кроссплатформа
• Хитрый виджет: разбор тестового Flutter-задания. Детективная нуар-история
• Sharing codebase between platforms — a look at Kotlin and Compose multiplatform
• Flutter + Flame + Tiled = a simple game field prototype for a strategy game
• React Native's New Architecture
• Reactive Programming in Flutter
• shabbir.kody/shimmer-skeleton-effects-in-flutter-b8755b3e57bb">Shimmer & Skeleton Effects In Flutter