Лучшее из вчерашнего в #dev - Инжиниринг больше про людей, чем про технологии (link)
Многие инженеры недооценивают важность навыков общения с людьми. Они начинают изучать программирование и полагают, что будут просто кодить весь день и им не придется ни с кем общаться. На самом деле все обстоит иначе. Инженерное дело - одна из самых дружелюбных сфер деятельности. Все дело в хорошем сотрудничестве, согласованности, командной работе и помощи друг другу.
Android
• Google представил гибридный интерфейс в Wear OS
• Новостное приложение: с нуля до публикации в Google Play. Часть 1
• Прокси-сервер для Android на Go
• Stop Using Test Tags in the Jetpack Compose Production Code
• Navigation in Jetpack Compose
• Ins and Outs of Kotlin Variance
• Container transform animation with Jetpack Compose
• Easily add document scanning capability to your app with ML Kit Document Scanner API
#android
Qualcomm открывает AI Hub
На выставке Mobile World Congress компания Qualcomm представила инструмент, упрощающий доступ разработчиков к ИИ-моделям.
1. Новый Qualcomm AI Hub содержит подборку из более чем 75 генеративных моделей ИИ, которые разработчики могут легко загружать на устройства, работающие на базе Qualcomm.
2. Библиотека содержит некоторые из самых популярных моделей в отрасли, такие как Whisper, система автоматического распознавания речи от OpenAI, и Stable DIffusion, модель преобразования текста в изображение от Stability AI.
3. Qualcomm AI Hub автоматически применяет аппаратные оптимизации к моделям для повышения производительности искусственного интеллекта на устройстве. Кроме того, модели доработаны таким образом, чтобы максимально эффективно использовать все ядра Qualcomm AI Engine, включая NPU, CPU и GPU, что позволяет повысить энергоэффективность, снизить нагрузку на память и увеличить скорость вычислений в четыре раза
4. Компания намеревается постоянно добавляться новые модели.
5. Qualcomm сообщает, что оптимизированные модели доступны уже сегодня как на Qualcomm AI Hub, так и на GitHub и Hugging Face.
И что: ИИ-на устройствах не только позволяет ускорить работу приложений, но и соблюсти конфиденциальность в отношении персональных данных. А в целом "пограничный" ИИ развивается семимильными шагами, что не может не радовать.
Видео и подкасты за неделю:
• (iOS Ru)
Введение в разработку под Apple Vision Pro
• (iOS En)
iOS Dev's Thoughts on Working in Apple Vision Pro
• (iOS En)
How to use ContentUnavailableView in SwiftUI
• (iOS En)
How to use Grid in SwiftUI
• (iOS En)
How to use NavigationSplitView in SwiftUI
• (iOS En)
Apple Maps Bottom Sheet
• (iOS En)
65 tips to use Xcode like a PRO
• (iOS En)
Advance Map Interaction - Draggable Annotation
• (And Ru)
Новостное приложение: с нуля до публикации в Google Play. Часть 1
• (And En)
Fan’otations - Android Developers Backstage
• (And En)
derivedStateOf VS. remember(key) - THIS is Really the Difference
• (And En)
Full Beginner's Guide to the Jetpack Compose Preview in Android Studio
• (And En)
Mastering Jetpack Compose Previews - Test your UI before it tests you
• (Dev Ru)
Публичное собеседование на позицию Head of QA
• (Dev Ru)
Обязательные знания для тимлида
• (Dev Ru)
Краш-курс по автоматизации тестирования
• (Dev En)
Google Gemini AI Course for Beginners
• (Dsg Ru)
Ozon Tech Community Design Meetup
Что вы интересного посмотрели/послушали про разработку на этой неделе?
🌐 @AppFiles
Android
• SmartFlow: «В начале был пароль...» или новая аутентификация VK ID
• Container transform animation with Jetpack Compose
• Ins and Outs of Kotlin Variance
• Overlapping Lists — Custom Composable Vs RecyclerView
• kappdev/wobbly-coin-animation-in-jetpack-compose-491e51129a96">Wobbly Coin Animation in Jetpack Compose
#android
В 2023 году Roblox выплатил создателям игр $741 млн
Это примерно на 19% больше, чем 623.9 миллиона долларов годом ранее и примерно в 4 раза больше, чем 250 миллионов 4 года назад.
В прошлом году около сотни игр Roblox принесли более $1 млн. Девять игр принесли не менее $10 миллионов. Более 12,000 разработчиков обменяли Robux на валюту реального мира. Около 3,500 человек заработали более $10,000, а 750 — более $100,000.
И что: да, это в основном Escape The Butcher Shop или Toilet Simulator, но почти миллиардный рынок!
Лучшее из вчерашнего в #ios - Расширения в Swift: Как и когда их использовать
Расширения в Swift позволяют расширить существующий класс, структуру, перечисление или протокол новой функциональностью. Будь то пользовательский тип, определенный вами, или текущий тип во фреймворке, расширения могут создавать пользовательские аксессоры и улучшать типы, с которыми вы работаете.
Статья: https://www.avanderlee.com/swift/extensions/
Android
• PhotoView: компонент ImageView с жестами
• Deep dive into delegated properties: разбираемся с делегатами в Kotlin
• Делаю навигацию в приложении на Compose
• Refining Compose API for design systems
• michalankiersztajn/android-biometric-authentication-with-biometricmanager-8e804781a884">Android Biometric Authentication With BiometricManager
• Seven demos to understand coroutines: scope, context and Jobs
• BerkOzyurt/uistate-in-kotlin-basic-information-and-usage-tips-2b07683ddb3f">UIState in Kotlin: Basic Information and Usage Tips
• gokcensolmaz99/retrofit-vs-ktor-client-1c937a827d1b">Retrofit vs. Ktor Client
#android
Лучшее из вчерашнего: shubhgajjar2004/different-ways-to-change-the-color-of-status-bar-and-navigation-bar-in-android-jetpack-compose-edd1c5542257">статья на Medium Различные способы изменить цвет Статус и Нав Бара в Android Jetpack Compose
• EdgeToEdge()
• Accompanist
• Window
Android
• Сквозное тестирование с помощью шаблона Робот и Jetpack Compose
• alitahasubfly/i-made-the-same-app-15-times-here-are-the-results-part-1-introduction-methodology-ae9fcc1485e4">I made the same app 15 times, here are the results
• Evolving our Android CI to the Cloud
• Quick start guide to writing Espresso UI tests on Android
• Type Stability in Compose
• shubhgajjar2004/different-ways-to-change-the-color-of-status-bar-and-navigation-bar-in-android-jetpack-compose-edd1c5542257">Different ways to change the color of Status bar and Navigation bar in Android Jetpack Compose
#android
Обозрел топ самых быстрорастущих приложений января - по загрузкам и выручке. В первом варианте лидируют какие-то дикие приложения-помощники для Стандофф 2 из Google Play. Чему это, кроме ASO, может научить не совсем понятно, зато в денежном топе нашел ServerCat — SSH Terminal. Приложение работает только на iOS и предлагает функции автоматизации для системных администраторов. В нем есть подписки и встроенные покупки и с апреля 2020 года приложение заработало, по оценкам AppMagic, около 800 тысяч долларов с 2 миллионов загрузок (а какая у вас конверсия? :)). Так что заповедь остается все той же - решайте насущные проблемы и станете миллионерами. Ну или спамьте ASO, а вдруг вывезет.
Разработка
• Как затащить новую технологию
• Как увольнять людей?
• Kotlin исполнилось 8 лет
• Event-Driven Architecture Fundamentals and Common Pitfalls (and How to Avoid Them)
Маркетинг
• Топ быстрорастущих приложений в России в январе
• В Европе заработает Epic Games Store
Кроссплатформа
• Создаем гироскопический параллакс-эффект во Flutter
• Как стать Flutter-разработчиком бесплатно?
• Вызовы масштабируемости Kotlin Multiplatform на большом проекте
• Using Amper with Fleet in a Kotlin/Compose Multiplatform project
• What’s new in Flutter 3.19
Android
• Google выпустил первую предварительную версию Android 15 для разработчиков
• Vico: легковесные графики для Android
• Многомодульность для UI-тестов
• Как мы создавали дизайн-систему на Jetpack Compose
• Как мы автоматизировали генерацию Baseline Profile
• Кто-то съел мою память на CI!
• Верхнеуровневый обзор архитектуры CI/CD мобильного приложения
• Random Musings on the Android 15 Developer Preview 1
• Photo StoryTelling - Leveraging Generative AI and Google APIs to compose posts from your photo albums
• Avoid "Useless" Cases in Layered Architecture
• Testing with Accessibility Scanner
• Build Rot: The Hidden Technical Debt in Maven and Gradle Builds
• Understanding Nested Scrolling in Jetpack Compose
#android
Опровергаем технические собеседования
Подборка всех материалов за прошлую неделю - опровергаем архитектурные заблуждения и знакомимся с Swift Algorithms, собеседуемся в RuStore и двигаем рукой справа налево, уменьшаем продуктовую анимацию, тащим новые технологии, идем в Мордор с Фродо и многое другое!
Kotlin исполнилось 8 лет
JetBrains выпустила Kotlin в 2016 году и версия 1.0 вышла 15 февраля. За прошедшее время Kotlin стал главным языком Android-разработки и универсальным языком программирования, который обеспечивает разработку для бэкенда, мобильных устройств, веб-приложений, десктопов и науки о данных.
В конце 2023 года Kotlin достиг 15 места в рейтинге языков программирования TIOBE, а в опросе Stack Overflow 2023 года так же находится на 15 месте, опережая Swift, Dart и борясь с Rust и Go.
В Data.ai
отчитались о росте дейтинга - январь 2024 года поставил рекорд по доходам и загрузкам в категории. Правда, потребители в основном остаются верны своим приложениям и в США Топ-3 приложения занимают более 53% рынка. Впрочем, только в январе 2024 года 28 приложений в стране получили более 1 миллиона долларов, так что ориентация на нишевые сегменты вполне позволяет неплохо жить. А значит всяких чудных приложений для свиданий, о которых я тут периодически пишу, будет все больше.
Разработка
• Rasa, платформа для разработки разговорных чат-ботов, привлекает $30M
• VK Education открывает набор на бесплатные образовательные программы в IT и digital
• Что учесть при портировании приложения на Аврору
• Pkl: Apple's New JSON/YAML Killer
Маркетинг
• Январь поставил рекорд по загрузкам и доходам дейтинг-приложений
• Пиратское приложение Kimi вышло в лидеры App Store
Кроссплатформа
• Создаем параллакс-эффект во Flutter с CustomPaint
• Создание кастомного React Native компонента Switch с помощью библиотек Reanimated и Gesture Handler (Часть 2)
• Apple Wants To Kill PWAs
• Method Channels in Flutter for Native Code Interaction
• The State of React Native
Только что, вместе с OnePlus Watch 2 на базе операционной системы Wear OS 4, Google представил новый “гибридный интерфейс” для этой ОС. Насколько я понял, это новая подсистема, которая распределяет задачи между более мощным процессором приложений (AP) и сверхмаломощным сопроцессором микроконтроллеров. AP выполняет сложные задачи, в то время как менее сложные задачи перекладываются на MCU. Google удалось значительно оптимизировать интерфейс между MCU и AP, что позволило обеспечить очень плавное и интеллектуальное переключение. Так, например, точка доступа может быть переведена в спящий режим, в то время как MCU обрабатывает данные датчиков. Самое приятное для разработчиков то, что эти оптимизации доступны без необходимости вносить какие-либо изменения в код. В целом же новый гибридный интерфейс Wear OS обещает большой прирост производительности и времени работы для смарт-часов.
Разработка
• Qualcomm открывает AI Hub
• Проектируем системный дизайн Spotify
• Ozon Tech Community Design Meetup
• Публичное собеседование на позицию Head of QA
• Обязательные знания для тимлида
• Краш-курс по автоматизации тестирования
• Как создать простой LoRa мессенджер: обмен текстовыми сообщениями между устройствами без интернета
• Agile Cult
• Engineering is more about people than tech
Кроссплатформа
• Пути внедрения поддержки скриптов в Dart/Flutter
• Самый простой CI/CD пайплайн для Flutter приложения с Codemagic
• Build a content recommendation app with Flutter and OpenAI
• Flutter’s 2024 roadmap
iOS
• Минцифры узаконит установку сторонних приложений на iOS
• Поваренная книга SwiftUI: создание и доступ к переменным окружения в SwiftUI
• Себестоимость Vision Pro составляет около $1500
• MLX: фреймворк машинного обучения для Apple Silicon
• Введение в разработку под Apple Vision Pro
• Task и structured concurrency в Swift
• How to delay an animation in SwiftUI
• Modding Plugins back into Xcode
• On-device ML research with MLX and Swift
• Designing APIs with typed throws in Swift
• Embedding a privacy manifest into an XCFramework
• Picture in Picture Cheat Sheet
• How to improve iOS build times with modularization
• Discovering iOS memory leaks: A case study with Firefox app
#ios
О чем говорят делегаты
Подборка всех материалов за прошлую неделю - приложение для Apple Vision Pro за 8 дней и анимированные переходы, Android 15 для разработчиков и делегаты в Kotlin, гироскопический параллакс, разработчики мобильных приложений в 1С и многое другое.
Уже почти 10 лет нет Windows Phone, а ностальгия осталась. Один из фанатов сделал ролик, в котором показывает то, какой могла бы быть Windows 12 Mobile. Да, во многом похоже на Android, но есть и свои находки. И в целом, давайте просто помечтаем не о дуополии, а сразу о трех мобильных ОС ☺️
Разработка
• Какой могла бы быть Windows 12 Mobile
• Go вошел в Топ-10 индекса TIOBE
• Magic AI привлек $117 млн на создание ИИ-программиста
• System Design Interview Question: Design Spotify
• Why would anyone do something as absurd as mob programming?!
Маркетинг
• Apple выпустила приложение Apple Sports со статистикой игр
• В 2023 году Roblox выплатил создателям игр $741 млн
• Отчет Mobile App Trends: 2024 Edition от Adjust и AppLovin
Кроссплатформа
• Практическое применение Sliver’ов для создания современного UI
• Getting started with Serverpod mini
iOS
• Vortex: эффекты частиц для SwiftUI
• Using the New Observation Framework to Network Monitoring in SwiftUI
• SwiftUI Got Isolation Wrong
• How to Handle Optional Values in SwiftData Predicates
• somasharma95/landscape-mode-for-specific-views-in-swiftui-20e4fd5e8bcd">Landscape Mode for Specific views in SwiftUI
• iOSHarsh/mastering-test-driven-development-tdd-in-ios-63e0584a10ae">Mastering Test-Driven Development (TDD) in iOS
#ios
Лучшее из вчерашнего в #dev (1.4К апвоутов на Reddit!) - Ложные представления Junior-разработчиков о том, что значит быть Senior-ом
• У них есть все ответы
• Работают с самыми новыми технологиями
• Не работают над скучными задачами
• Делают большие изменения
• У них есть время отдохнуть
• Они решают, что делать
• Они незаменимы
Статья: https://vadimkravcenko.com/shorts/falsehoods-junior-developers-believe-about-becoming-senior/
Google только что выпустил Gemma 2B и 7B - пару моделей ИИ с открытым исходным кодом, которые позволят разработчикам более свободно использовать исследования, проведенные во флагманском Gemini. Несмотря на небольшие размеры, Google утверждает, что модели Gemma "превосходят значительно более крупные модели в ключевых бенчмарках" и "способны работать непосредственно на ноутбуке или настольном компьютере разработчика". Они будут доступны через Kaggle, Hugging Face, NeMo от Nvidia и Vertex AI от Google.
Разработка
• Gemma - новая открытая модель Google
• Groq ускоряет работу языковых моделей
• Gemma: Introducing new state-of-the-art open models
• Falsehoods Junior Developers believe about becoming Senior
Маркетинг
• State of Mobile Gaming 2024 report
Кроссплатформа
• Исследование State of React Native 2023
• Подключаем микроконтроллер ESP32 к Flutter-приложению
• От Skia к Impeller: эволюция графического движка в кроссплатформенной разработке на Flutter
• Building a Flutter SDK
• jacobras/getting-the-native-ios-look-feel-in-your-compose-multiplatform-app-33371e6ad362">Getting the native iOS look & feel in your Compose Multiplatform app
iOS
• Добавляем SharePlay в iOS-приложение
• Миссия выполнима: как мы создали приложение для Apple Vision Pro за 8 дней
• Механизм внешних покупок по ссылке в StoreKit
• iOS/Swift: подробное руководство по модульным и UI-тестам
• Custom Core Data migrations
• Shrink Images for Accessibility in SwiftUI
• Extensions in Swift: How and when to use them
• Bad practice: not using .isMultiple(of:)
• Swift Macros: Understanding Freestanding & Attached Macros
#ios
В Google Play начали тестировать составление описаний и FAQ с помощью ИИ. В первом случае речь идет о разделе App Highlights, во втором о самых популярных вопросах о приложении. Правда, в обоих вариантах это все очень похоже - описание функций, встроенных покупок, что нравится пользователям и т.п. На данный момент такое ИИ-описание доступно только ограниченному числу пользователей и компания Google не сообщила никаких подробностей о том, когда это раскатают на всех.
Разработка
• Паттерн поиска в мобильном приложении. Какую механику выбрать дизайнеру?
• Кому и зачем нужны разработчики мобильных приложений в 1С
• Вопросы по Appium на собеседовании
• The ideal PR is 50 lines long
• How to be a -10x Engineer
Маркетинг
• Аудитория RuStore достигла 29 млн в месяц
• Google тестирует использование ИИ в Play
Кроссплатформа
• Broadening the scope of dev tools plugins
• The results of the State of React Native 2023
iOS
• Figma Preview: просмотр макетов в Xcode
• Вопросы с собеседований: Что такое ARC (Automatic Reference Counting)
• From Fragile to Agile: Automating the fight against Flaky Tests
• pavel-holec/generating-swiftui-snapshot-tests-with-swift-macros-0f31b231925e">Generating SwiftUI snapshot tests with Swift macros
• Fundamentals of type-driven code
• jaberi.mohamedhabib/elevating-code-sharing-safeguarding-intellectual-property-through-binary-frameworks-in-swift-40d2882965c1">Elevating Code Sharing: Safeguarding Intellectual Property through Binary Frameworks in Swift Packages
• Should You Enable Swift's Complete Concurrency Checking?
#ios
iOS
• Создаем анимированные переходы с помощью Matched Geometry Effect в SwiftUI
• Как устроен Яндекс Go и зачем работать со студентами и стажерами
• Навигация в SwiftUI
• Apple подтвердила прекращение работы PWA в Европе
• Rock Paper Scissor: «камень-ножницы-бумага» в одноранговой сети
• Apple готовит ИИ инструменты для Xcode
• Xcode Console and Unified Logging
• How to Implement the MVVM Design Pattern in Swift
• Swift enums and the danger of the default case
• How to write safer code using the Lock and Key pattern
• Ensuring Secure API Access: Harnessing Apple’s Attest Protocol for iOS App Integration
#ios
Google выпустил первую предварительную версию Android 15 для разработчиков
В Android 15 продолжается работа над созданием платформы, которая поможет повысить производительность и предоставит новые возможности для создания превосходных мультимедийных впечатлений, минимизации потребления энергии, максимально плавной работы приложений и защиты конфиденциальности и безопасности пользователей на самых разных устройствах.
Основные нововведения в Android 15
• Песочница конфиденциальности (Privacy Sandbox) для защиты приватных данных пользователей и обеспечения показа персонализированной рекламы.
• Health Connect из Android 14 теперь является частью платформы и в ней теперь есть новые типы данных для фитнеса, питания и т.п.
• Целостность файлов - FileIntegrityManager в Android 15 включает новые API, которые используют возможности функции fs-verity в ядре Linux. С помощью fs-verity файлы могут быть защищены пользовательскими криптографическими подписями.
• Частичный общий доступ к экрану - Android 15 поддерживает частичный общий доступ к экрану, чтобы пользователи могли делиться или записывать только окно приложения, а не весь экран устройства.
• Управление камерой в приложении - в Android 15 добавлены новые расширения для большего контроля над аппаратной частью камеры и ее алгоритмами на поддерживаемых устройствах.
• Динамическая производительность - новая ОС продолжает улучшать Android Dynamic Performance Framework (ADPF).
Вы можете начать работу уже сегодня, установив образ системы на устройства серии Pixel 6, 7 или 8, а также на Pixel Fold и Pixel Tablet. Если у вас нет устройства Pixel, вы можете использовать 64-битные образы системы с помощью эмулятора Android в Android Studio (лучше использовать последнюю версию Jellyfish).
Видео и подкасты за неделю:
• (iOS Ru)
Как устроен Яндекс Go и зачем работать со студентами и стажерами
• (iOS Ru)
Навигация в SwiftUI
• (iOS En)
Self vs self in Swift – Find out the differences with practical examples
• (iOS En)
SwiftConf ’23 Videos
• (iOS En)
SwiftUI Minimal Todo List With SwiftData & Interactive Widgets
• (iOS En)
SwiftUI CoverFlow
• (iOS En)
Making it Rain – Advanced Special Effects with SwiftUI
• (iOS En)
Pop to Root View When TabView Item is Pressed
• (iOS En)
SwiftData & CloudKit: See How To Add Syncing In Your Apps
• (And Ru)
Многомодульность для UI-тестов
• (And Ru)
Как мы создавали дизайн-систему на Jetpack Compose
• (And Ru)
Как мы автоматизировали генерацию Baseline Profile
• (And Ru)
Кто-то съел мою память на CI!
• (And Ru)
Верхнеуровневый обзор архитектуры CI/CD мобильного приложения
• (And En)
BasicTextField2 - Everything You Need to Know
• (And En)
THIS New Modifier in Compose 1.7.0 Is Amazing!
• (And En)
Mastering Code Quality: A Deep Dive into Custom Linting for Android Developers with Gopal
• (And En)
How to integrate Google sign-in with Credential Manager on Jetpack Compose with Supabase Auth
• (Crs Ru)
Вызовы масштабируемости Kotlin Multiplatform на большом проекте
• (Crs En)
The State of React Native
• (Dev Ru)
Как затащить новую технологию
• (Dev Ru)
Как увольнять людей?
• (Dev En)
Pkl: Apple’s New JSON/YAML Killer
• (Dev En)
Firestore Multiple Databases now generally available, Go 1.22, and more dev news!
Что вы интересного посмотрели/послушали про разработку на этой неделе?
🌐 @AppFiles
Apple готовит ИИ инструменты для Xcode
По слухам, компания Apple работает над новыми крупными функциями искусственного интеллекта. И появятся они не только в iOS 18, но и в собственной IDE компании.
1. Пишут, что Apple «близка к завершению» обновлению Xcode и будет в нем использовать искусственный интеллект для улучшения программирования и тестирования.
2. Речь идет о генерации и дополнении кода, а так же генерации кода для тестирования приложений.
3. Цель Apple — выпустить новые функции ИИ в Xcode уже в конце этого года. Вероятно, речь идет о релизном цикле Xcode 16.
И что: у Android Studio уже есть свой Bot, у остальных есть Copilot и Xcode последним получит ИИ-функции. Станет ли от этого лучше большой вопрос, но проще точно.
Android
• Minimum: минималистичный лаунчер
• End-To-End Testing With Robot Pattern And Jetpack Compose
• domen.lanisnik/guide-to-foreground-services-on-android-9d0127dc8f9a">Guide to Foreground Services on Android 14
• farhaddeveloper98/write-androidstudio-plugin-step-by-step-part1-create-simple-action-toolwindow-with-custom-ui-01aeefceec94">Write AndroidStudio Plugin Step By Step
#android