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?Поставьте 👍 и поделитесь подборкой!
Android
• Элегантная обработка событий в Kotlin — рефакторинг в 7 шагов
• FlexibleBottomSheet: удобный Bottom Sheet для Jetpack Compose
• Первый месяц жизни приложения BookDesk или как меня пытались взломать
• Списки с душой и стилем: Ваш путь к Jetpack Compose
• dugguRK/kotlin-functions-every-developer-should-know-with-examples-3f88ce36ba66">Kotlin Functions Every Developer Should Know with Examples
• 3 Android Studio Plugins for a Better Developer Experience for Kotlin
#android
Лучшие приложения и игры в Google Play 2023
Тут же и Android подъехал.
• Лучшее приложение года для Android - Imprint: Learn Visually
• Лучшая игра года - Honkai: Star Rail
• Лучшее multi-device приложение - Spotify
• Лучшее для развлечений - Bumble For Friends: Meet IRL
• Для персонального роста - Voidpet Garden: Mental Health
• Приложение на каждый день - Artifact: Feed Your Curiosity
• Скрытая жемчужина - Aware: Mindfulness & Wellbeing
• Лучшее приложение с ИИ - Character AI: AI-Powered Chat
• Лучшее приложение для семьи - Paw Patrol Academy
• Для добрых дел - AWorld in support of ActNow
• Лучшее приложение для часов - WhatsApp Messenger
• Лучшее для планшетов - Concepts: Sketch, Note, Draw
• Для Chromebook - FlipaClip: Create 2D Animation
А какое приложение вы выбрали бы лучшим?
Notepad++ исполнилось 20 лет, с чем его можно только поздравить 🥳 Эти посты готовятся именно в этом редакторе А еще Microsoft открыла ThreadX - доставшуюся ей в наследство RTOS, о которой, может быть, вы и не слышали, но которая работает в 12 миллиардах устройств. В частности, именно на ThreadX сделан загрузчик Raspberry Pi. Microsoft ОС досталась в наследство после покупки, стала частью Azure RTOS и теперь вот выложена в open source. Для внесения изменения наверняка нужны сильно специфические знания, но сама возможность поковырять то, что недавно было закрытым, не может не радовать.
Разработка
• Microsoft открыла ThreadX
• Прощай, чистый код
• Бесплатный генератор swift publish блога на Netlify
• Проект: AI Note Recorder или как я не выполнил цель на 2023 год
• Architecture Antipatterns
• Evaluating M3 Pro CPU Cores: General Performance
• Notepad++ v8.6: 20th-Year Anniversary
Маркетинг
• Новый Инструмент «Пути» в MyTracker для визуализации путей пользователей
• Маркетологи в мобайле: Happy Birthday Edition
• Vimcal улучшает рабочий календарь с помощью ИИ
• Pika Labs получает $55 млн на генеративный ИИ для видео
Кроссплатформа
• Step-by-Step Guide: Creating a Peer-to-Peer Tic Tac Toe Game in Flutter
• benovedoz/secure-the-user-data-on-icloud-drive-with-flutter-db2ad4d0a608">Secure the user data on iCloud Drive with Flutter
• ximya/clean-your-ui-code-in-flutter-7c58bf3e267d">Clean Your UI Code in Flutter
iOS
Обратите внимание на забавное извращение - iOS-разработка на JetBrains Fleet.
• GridView: простое создание сеток для SwiftUI
• DebugMenu и визуальная иерархия элементов интерфейса
• SwiftUI Shine Effect – Custom View Modifier
• iOS development with JetBrains Fleet
• Shipping Values Between Actors
• Mastering MapKit in SwiftUI. Basics
• blorenzop/mapkit-swiftui-009a0eb1695c">Working with MapKit in SwiftUI
#ios
Android
• Обзор актуальных инструментов шифрования в Android
• foSho: type safe навигация для Compose
• The Android Backstage of Mercado Libre Warehouses
• a.poplawski96/donts-in-modern-android-kotlin-development-bad-practices-anti-patterns-chapter-i-d38cba2f5f7d">“Don’ts” in modern Android/Kotlin Development (Bad practices & Anti-patterns)
• Kotlin under the hood: How inline functions work
• Demystifying Kotlin StateFlows: A Deep Dive
• Component-based Approach. Implementing Screens with the Decompose Library
• Full Guide to Shared Element Transition Animation in Android with Jetpack Compose
#android
Моя малышка любит самолеты — и я сделал для нее радар
Моя любимая тема - интересные и полезные пет-проекты, решающие собственные проблемы. Вот, например, iOS тех-лид сделал для своего ребенка самолетный радар ✈️ Все проблемы (главная из которых - не потратить все время на создание иконки :)) он описал в интересной статье.
Если у вас есть интересный домашний (или не очень) проект - поделитесь, давайте напишем и про него.
Android
• Топ-10 причин утечки памяти в Android
• Как устроен Android в умных колонках Яндекса
• Топ-10 вопросов для Senior Android: собеседование с разбором ответов и материалами
• Reorderable: таскание элементов в (Lazy)Column и (Lazy)Row
• Kotlin под капотом: inline функции
• Preparing for Network Failures this Holiday Season
• Emoji error! Using the latest Compose with compileSDK < 34
• Oh no, another type safe Compose Navigation library for Android
• How to make Espresso tests more readable and stable
• Introducing a Gradle plugin for Screenshotbot
• Exploring Molecule and Beyond with Jake Wharton
#android
Как использовать геймплей в создании перформящих креативов
Рекомендую пару статей от наших друзей из Rocket10 - про рекламные креативы. Первая часть про теорию, во второй разбираются лучшие рекланые объявления топовых игр разных жанров: Head Ball 2, Fishdom и Pokerist.
Исследование The State of Developer Ecosystem 2023 от JetBrains
Еще к вопросу о популярности языков программирования - вот новое ежегодное исследование от JetBarins, данные опроса 26K+ разработчиков.
1. Самые используемые языки - на картинке сверху.
2. На протяжении многих лет Rust входил в число самых популярных языков для изучения. В 2023 году Rust впервые занял первое место. Rust не только обогнал Go и стал главным выбором для тех, кто хочет перейти на другой язык, но и пользователи Go стали первыми в очереди тех, кто готов перейти на Rust.
3. Потеряв за последние годы две трети своих пользователей, язык Objective-C, похоже, подходит к концу.
4. Использование Kotlin и Swift хоть на 1%, но снизилось.
Видео и подкасты за неделю:
• (iOS Ru)
Swift-уроки: Actor
• (iOS Ru)
Как получить международный оффер iOS-разработчику
• (iOS En)
Simple Drop Down Picker – SwiftUI
• (iOS En)
SwiftUI: New Observation Framework
• (iOS En)
SwiftUI Tooltips with TipKit (Popover & Inline Tips)
• (iOS En)
8 Tips to Design a Great Paywall
• (iOS En)
SwiftData Lightweight Migrations
• (iOS En)
Swipe Actions For ScrollView - No Gestures! - iOS 17 Scroll APIs
• (iOS En)
How to Make a Color Picker with ScrollView, Scroll Position and Visual Effects
• (And Ru)
Как устроен Android в умных колонках Яндекса
• (And Ru)
Топ-10 вопросов для Senior Android: собеседование с разбором ответов и материалами
• (And En)
Firebase Demo Day Recap, Flutter 3.16, and more dev news!
• (And En)
A Team of 20 to Publish an App?! - THIS New Google Play Policy Change is CRAZY
• (And En)
How to Migrate an Android Project to Kotlin Multiplatform (KMP)
• (And En)
Custom Savers
• (And En)
Circuit – Android App Architecture Masterclass with Zac and Josh from Slack
• (Crs En)
The State of Kotlin Multiplatform
• (Crs En)
Getting Started With KMP: Build Apps for iOS and Android With Shared Logic and Native UIs
• (Crs En)
Build Apps for iOS, Android, and Desktop With Compose Multiplatform
• (Dev Ru)
Мыслим как Platform Engineer
• (Dev Ru)
Podlodka #347: развитие продукта от 0 до 1
• (Dev Ru)
Tracer — альтернатива Crashlytics: другой взгляд на аналитику ошибок в приложениях
• (Dev Ru)
Как качать миллионы фотографий в сутки, выдержать кратный рост и не умереть?
• (Aur Ru)
Насколько реален российский айфон: разговор с Максимом Горшениным.
• (AI En)
Machine Learning with Python and Scikit-Learn – Full CourseПоставьте 👍 и поделитесь подборкой!
Разработчики Spotify поделились своей практикой отслеживания размера приложений. Процесс многоступенчатый и есть несколько интересных положений, вроде понимания карбонового следа (!) увеличения размера, системы отслеживания для каждого изменения кода, атрибуции всех изменений или прописанной политики с четко определенными положениями, дающими возможность делать исключения (привет Ferrari и Ф-1). В целом, как обычно, очень красиво, но для небольших проектов абсолютно бессмысленно.
Разработка
• Как Spotify отслеживает размеры приложений
• Magic Research: соло-разработчик заработал более $150,000, сделав всего 2 сообщения на Reddit
• Reflecting on 18 years at Google
• It’s OK if your code is just good enough
Маркетинг
• Что такое метрика ага-момента и как ее найти
• Mastering SKAN 4: The essentials for iOS success
Кроссплатформа
• Как добавить Flutter в нативное приложение iOS и протестировать его на Codemagic (Часть 2)
• Our journey from React Native to Expo for mobile app development at Alan
iOS
Посмотрите занятную историю как Apple забанила (нашего?) разработчика с сотней тысяч долларов на счету.
• ChatGPT-4 в помощь: используем AI в доработке простого iOS-приложения
• Kingfisher: загрузка и кеширование изображений
• Our developer account was removed by Apple, and they haven't paid out $108,878
• Conquering the Climbing Stairs Challenge with Swift: A Dynamic Programming Approach
• andrewjosephmuniz/my-thought-process-behind-my-muaythaijournal-app-028180af7809">From Concept to App Store: The Making of MuayThaiJournal
• Automatic Component Sizing - SwiftUI for iOS 17
• Replacing your logging framework with OSLog
• Simple Drop Down Picker – SwiftUI
#ios
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
iOS
• Working with XcodeKit
• Add Quick Actions to SwiftUI App
• SwiftUI geometryGroup() Guide: From Theory to Practice
• Create Your Own Step Counter SwiftUI App in 5 Minutes
#ios
Объявлены победители App Store Award
Поздравляем победителей!
• Приложение года для iPhone - AllTrails: Hike, Bike & Run
• Приложение года для iPad - Prêt-à-Makeup
• Приложение года для Mac - Photomator – Photo Editor
• Приложение года для Apple Watch - SmartGym: Gym & Home Workouts
• Приложение года для Apple TV - MUBI: Stream Great Cinema
• Лучшая игра для iPhone - Honkai: Star Rail
• Лучшая игра для iPad - Lost in Play
• Лучшая игра для Mac - Lies of P
Приложения, оказавшие наибольшее культурное влияние
• Finding Hannah
• Pok Pok | Montessori Preschool
• Proloquo
• Too Good To Go: End Food Waste
• Unpacking
Ссылки - тут.
Android
• Android. Принять себя или Cookie?
• Вопросы с собеседований: что такое контент-провайдер (Content Provider) в Android
• dugguRK/android-service-vs-intentservice-in-kotlin-edc84aa92305">Android: Service vs IntentService in Kotlin
• android-world/understanding-the-key-function-in-jetpack-compose-34accc92d567">Understanding the Key Function in Jetpack Compose
• artem_shevchenko/the-composable-java-vm-shut-down-issue-ffb29a881306">The Composable Memory Leak And Java VM Shut Down Issue
• Elegant Event Handling in Kotlin — A Refactoring Walkthrough
• Gestures in Jetpack compose — All you need to know
#android
Если вы целый день работаете за компьютером, инвестирование в отличную клавиатуру, как и в лучший монитор, это решение, которое может напрямую повысить качество вашей жизни. Нашел и совсем кратко перевел обзор лучших клавиатур для разработчиков. Лучшая - ASUS Scope 96 Strix II, если что, но мне понравилась Keychron Q6 Pro. В общем, если у вас еще нет желания на Новый год - можно повыбирать ⌨️
Разработка
• Лучшие клавиатуры для программирования 2023
• Бесплатный курс «Современное программирование на C++»
• Доступность игр для людей с ограниченными возможностями: проблемы и их решения
• How to Become a Data Engineer
• Microsoft opens sources ThreadX under MIT license
Маркетинг
• Фальшивый трафик в 2023 году будет стоить рекламодателям $71 млрд
• Roku and Unity team up to transform mobile app marketing
Кроссплатформа
• Как добавить Flutter в нативное приложение iOS и протестировать его на Codemagic (Часть 3)
• Kotlin Multiplatform в мобильной разработке. Рецепты общего кода для Android и iOS
• yamen.abd98/code-generator-using-flutter-source-gen-build-runner-9cc1fe0e2ff2">Code Generator using Flutter
iOS
• Моя малышка любит самолеты — и я сделал для нее радар
• Swift Evolution: Reading and learning from proposals
• Working with custom metadata in mp4 files
• Using on-demand resources for securely storing API keys in iOS apps
• Practical Examples of Swift Extensions
• Top SwiftUI Interview Questions for 2023
• Automating Memory Leak Detection with CI Integration for iOS
#ios
Новостей особых нет, а вот в комментариях появилась интересная тема про исследования - каким спортом вы увлекаетесь? В смысле постоянно следите и более менее знаете нюансы, а не просто смотрите чемпионат мира. Опрос в следующем посте.
Разработка
• Зарплаты за год в IT выросли на 8.5%
• Мыслим как Platform Engineer
• Tracer — альтернатива Crashlytics: другой взгляд на аналитику ошибок в приложениях
• Как качать миллионы фотографий в сутки, выдержать кратный рост и не умереть?
• Насколько реален российский айфон: разговор с Максимом Горшениным.
• Podlodka #347: развитие продукта от 0 до 1
• Размышления о 18 годах работы в Google
• Исследование The State of Developer Ecosystem 2023 от JetBrains
• Что можно улучшить в своем приложении? Крадем как художники у Яндекс.Еды
• A good engineer thinks like a product manager
Маркетинг
• Wasted Ad Spend Report 2024: The Global Impact of Invalid Traffic
Кроссплатформа
• codersangam/top-14-vs-code-extensions-for-fast-flutter-app-development-e41cb86080e5">Top 14 VS Code Extensions for Fast Flutter App Development
• Creating an automated test framework for React Native apps
• Overflow Indicator in Flutter: Mastering UI Responsiveness
iOS
• Поваренная книга SwiftUI: создание круглого представления в SwiftUI
• Variablur: размытие для SwiftUI на основе Metal
• Swift-уроки: Actor
• Как получить международный оффер iOS-разработчику
• SwiftLeeds 2023 Videos
• How to store images in SwiftData
• Refactoring Your iOS AppDelegate
• New to Bitrise: Enhanced Xcode Reporting & Build Annotations
• Months of rewriting code and tests to async/await
• Unit Test the Observation Framework
• Router Pattern for SwiftUI Navigation
#ios
Отладка Google в домашних условиях
Вот и новый еженедельный дайджест - про iOS, Android, кроссплатформу и все вокруг. Поставьте 👍 и поделитесь с коллегами! Еще у меня есть канал IT Insights, где новости и статьи про код, технологии и все самое интересное, возможно и за пределом мобайла. Вот, например, "Спасибо, что подержали мою уточку" - о том, как искать решение проблем просто объясняя их.
Всем кэшбэк! На связи Appbooster 👋
🎁 Наступила долгожданная Чёрная пятница. Продвигайте приложения и возвращайте 50% от суммы пополнения баланса!
🔸Акция действует в период с 24 по 30 ноября 2023 года включительно.
🔸Минимальная сумма пополнения — 50 тыс. рублей.
🔸При пополнение на общую сумму от 50 тыс. рублей кэшбэк составит 50%*.
🔸Учитываются и суммируются все платежи в период акции, то есть можно пополнять баланс несколькими суммами.
Кэшбэк будет начислен через 3-5 дней после окончания акции.
👉 Пополнить баланс прямо сейчас!
*Максимальная сумма возврата составляет 300 тыс. рублей. Акция не суммируется с другими акциями, спецпредложениями и кэшбэками. Предложение действительно только для клиентов, использующих платформу Appbooster на основании договора оферты.
Размышления о 18 годах работы в Google
Если вам интересно, почему Google стал таким - вот внутреннее мнение от разработчика Flutter. Он уволился, проработав 18 лет в компании, и записал свои мысли.
На картинке, кажется, вся документация по дизайну для основных слоев Widget, RenderObject и dart:ui 😀
Android
• Где остановится Kotlin: язык поставил новый рекорд в индексе TIOBE
• Law of Demeter with examples in Kotlin
• KaushalVasava/in-app-update-in-android-2023-c47beb1e3a7e">In-App Update in Android 2023
• skydoves/build-video-calling-for-your-android-whatsapp-clone-with-jetpack-compose-8dbb1924844e">Build Video Calling for Your Android WhatsApp Clone With Jetpack Compose
• azazakram007/how-to-create-an-animated-splash-screen-for-android-a-step-by-step-guide-39cc27baaff4">How to Create an Animated Splash Screen for Android: A Step-by-Step Guide
• How to Migrate an Android Project to Kotlin Multiplatform (KMP)
#android
Tesla выложила в open source всю конструкцию и дизайн оригинального Roadster
Компания Tesla выложила в открытый доступ все конструкторские и инженерные разработки оригинального автомобиля Roadster. Сюда входит все - от руководств пользователя до схем и разъемов. Выпуск нового поколения Roadster отстает от графика на несколько лет. Обнародование дизайна может быть намеком на то, что выпуск нового поколения Roadster близок к завершению. В начале этого года Элон Маск заявил, что окончательный дизайн и проектирование Roadster будут завершены к концу 2023 года, поэтому производство автомобиля должно начаться к концу 2024 года.
Исходники: https://service.tesla.com/roadster