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
Где остановится популярность Kotlin?
Kotlin растет.
1. Два месяца назад Kotlin вошел в Топ-20 индекса TIOBE. А в этом месяце он прибавил 0.17% и с 1.15% переместился на 3 позиции - с 18 на 15 место.
2. Первая волна популярности Kotlin пришлась на 2017 год, когда Google объявила о “первоклассной” поддержке Kotlin на Android. Тогда популярность Kotlin в индексе TIOBE достигла почти 1%.
3. Интересный вопрос - где остановится Kotlin? Kotlin полностью интероперабелен с Java, являясь, таким образом, прямым конкурентом этого языка во всех областях.
4. “Определенно, Kotlin может занять место в первой десятке. Сможет ли он стать частью "большой четверки" - вопрос, на который еще предстоит ответить”, - написал Пол Янсен, генеральный директор TIOBE Software.
И что: осталось только iOS-разработку завоевать и больше "ничего не будет. Ни кино, ни театра, ни книг, ни газет – один сплошной Kotlin" (C).
Android
• Новые API для адаптивных макетов в Jetpack Compose
• Exposed: SQL-фреймворк для Kotlin
• Kotlin под капотом: нюансы использования аннотаций
• dugguRK/top-10-android-memory-leak-causes-9cdd8cbd5489">Top 10 Android Memory Leak Causes
• Mastering Camera2 API in Kotlin: A Comprehensive Guide with Examples
• Mastering Kotlin’s Invoke Operator: Simplifying Code and Enhancing Readability
#android
В ходе судебного разбирательства Epic против Google выяснилась забавная вещь про Spotify. Оказывается, даже распространяясь через Play, Spotify платит 0% при своем биллинге и 4% при биллинге магазина. Напомню, что для всех остальных разработчиков Google на 4% снижает свой процент и в лучшем случае это будет 11%. Сам Google объясняет это тем, что "если Spotify не будет нормально работать в сервисах Play и основных сервисах, люди не будут покупать телефоны на базе Android". То есть это своего рода инвестиция в Android. Во всех остальных разработчиков, видимо, инвестировать не надо, надо, чтобы они сбивались в стаи по 21 человеку.
Разработка
• Прежде чем пытаться что-то сделать, убедитесь, что вы можете сделать то, что ничего не делает
• Умный код — это, вероятно, худший код, который вы можете написать
• How to shuffle songs?
• GameMaker to be free for non-commercial purposes and have one-time fee license
• Goodbye, Clean Code
Маркетинг
• Секретная сделка Google позволила Spotify полностью обойти плату за пользование Google Play
Кроссплатформа
• Как добавить Flutter в нативное приложение iOS и протестировать его на Codemagic (Часть 1)
• sahaj.blup/top-12-flutter-open-source-projects-c27fd21fdad9">Top 12 Flutter Open source projects
• flutterwtf/flutter-interview-questions-and-answers-top-30-for-pros-0cdbf1d40ebd">Flutter Interview Questions and Answers: Top 30 for Pros!
• Flutter Responsive UI : Crafting Dynamic Layouts for Every Device
• Flutter Networking Tutorial: Getting Started
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
История с прокидыванием сообщений в iMessage с Android закончила не успев начаться. Напомню, что идея состояла в аренде Mac-ов, к которым можно было коннектится и общаться в мессенджере Apple. С самого начала затея выглядела так себя, а сейчас приложение Nothing Chats выпилили из Google Play, а Sunbird вчера закрылся сам. Выяснилось, что, как и ожидалось, end-to-end шифрования там нет, а файлы вообще хранятся в Firebase 🙈 В следующем году Apple реализует поддержку RCS, что более-менее улучшит обмен сообщениями, а в остальном остается только надеяться на суд, который откроет iMessage.
Разработка
• GameMaker отменил подписку для инди-разработчиков
• Опубликован курс «Генеративный ИИ для начинающих» от Microsoft
• Лев Толстой о мобильной разработке: Искусство написания приложений
• How DoorDash Standardized and Improved Microservices Caching
• The Architecture Of Serverless Data Systems
• anulagarwal12/a-solo-game-developer-generated-over-150-000-in-8-months-from-his-game-with-only-2-reddit-posts-1927d5c4c99f">A solo game developer generated over $150,000 in 8 months from his game, with only 2 Reddit posts
Маркетинг
• Компания Sunbird закрыла свое приложение для обмена сообщениями с iMessage
• Good games don’t die – Can legacy titles save the mobile game industry?
Кроссплатформа
• 10 рекомендаций, которые повысят производительность разработки на Flutter в 2023 году
• Flutter 3.16: обзор обновления фреймворка с комментариями разработчиков Surf
• Как мы отказались от styled-components в React Native приложениях
• samra.sajjad0001/memory-management-in-flutter-best-practices-and-pitfalls-8223a88803df">Memory Management in Flutter: Best Practices and Pitfalls
• aslam.develop912/utilizing-js-library-for-flutter-web-c683c590927f">Utilizing JS Library for Flutter Web
• nikunj09/native-ui-components-in-react-native-part-1-d3d459046e96">Native UI Components in React
iOS
• Отладка представлений SwiftUI: что вызывает изменения?
• enum Guru: Swift enum in depth
• Using Observation framework outside of SwiftUI
• Scoped animations in SwiftUI
• SwiftUI SplitView Compact Column Control
• matheusqcardoso98/swift-reference-types-and-retain-cycles-weak-vs-unowned-memory-1-ad8f1f667780">Reference types and Retain cycles (Weak vs. Unowned)
• Swift UITableView Prefetching: A Guide to Smoother Scrolling
#ios
Android
• Пишем Kotlin DSL для графов навигации в домашних условиях
• Статический анализатор Ktlint для Kotlin в Android
• Custom Savers
• AlexanderObregon/java-memory-leaks-detection-and-prevention-25d1c09eaebe">Java Memory Leaks: Detection and Prevention
• mega-blog/making-tdd-a-habit-in-android-development-part-1-ed9f2d81f50d">Making TDD a Habit in Android Development
• How to Add Content Descriptions in Compose
• Migration from Kapt to KSP
• Nek.12/viewmodel-events-as-state-are-an-antipattern-35ff4fbc6fb6">ViewModel: Events as State are an Antipattern
#android