Цифры, советы и все интересное о разработке мобильных приложений и сервисов. Комментарии и вопросы можно писать прямо @lbogolubov • Аудитория https://t.me/apptractor/1066 • Сайт https://apptractor.ru/ • Поощрения: https://boosty.to/apptractor
Видео и подкасты за неделю @AppFiles
• (iOS Ru)
Разбор SwiftUI проекта стартапа с AI на борту
• (iOS Ru)
Вам не нужно хранилище в приложении
• (iOS En)
SwiftUI Coverflow Carousel
• (iOS En)
My Story & iOS Dev Career Advice
• (iOS En)
Building iOS 18 Photos App UI
• (iOS En)
Zoom Transitions SwiftUI
• (iOS En)
Custom Operators in Swift
• (And Ru)
Роман Елизаров про Kotlin, корутины и работу в Jetbrains
• (And En)
Advanced layout animations in Compose (Shared elements)
• (And En)
Refactoring to Expressive Kotlin
• (And En)
From Zero to Billions: Building a High-Performance Kotlin App in Two Months
• (And En)
Managing Complexity With Ktor
• (Crs Ru)
Flutter Dev Podcast: навигация во Flutter
• (Crs Ru)
Особенности сервиса Яндекс Про и будущее Flutter
• (Crs En)
Permission Handling in Compose Multiplatform
• (Crs En)
Create a Splash Screen in Compose Multiplatform for iOS & Android
• (Crs En)
Uniting Native SDKs into Kotlin Multiplatform
• (Crs En)
Compose Multiplatform on Mobile at Instabee for Over a Year
• (Dev Ru)
Личный бренд разработчика
• (Dev Ru)
Ход королевы: как российское шахматное приложение покорило мир
• (Dev En)
Building an Effective Data Product Strategy
• (Dev En)
System Design Concepts Course and Interview Prep
Что вы посмотрели за неделю?
#ios #android #mobile #video
Не особо верилось, но в магазине AltStore PAL появились первые сторонние приложения - целых четыре штуки. Это iTorrent, торрент-клиент для iOS, который можно использовать без джейлбрейка iPhone или iPad, и qBitControl, удаленный клиент qBittorrent для iOS-устройств. Плюс PeopleDrop — это ориентированная на знакомства «платформа социальных открытий», которая соединяет вас с другими пользователями в реальном мире, когда они проходят мимо. Кроме того, есть приложение UTM SE для эмуляции других операционных систем, таких как Windows, Linux и macOS, на iOS. Apple запрещает все торрент-приложения в своем собственном магазине iOS, утверждая, что они «часто используются для нарушения прав третьих лиц». Но теперь, когда Закон ЕС о цифровых рынках ослабил возможности технологического гиганта по контролю за своим «огороженным садом», пользователи iOS в пределах континента могут получить немного больше пиратства свободы.
Разработка
• Инженеры-программисты не являются (и не должны являться) техниками
• Результаты опроса разработчиков Stack Overflow 2024
• Mistral выпускает Large 2 как ответ ChatGPT и Llama
• The Process That Kept Dying
Маркетинг
• Как управлять вниманием пользователя
• Building an Effective Data Product Strategy
Кроссплатформа
• Полный гайд по тестированию на Flutter. Часть 3: Mocking и Stubbing
• Пишем собственный макрос на Dart 3.5: глубокий разбор
• Free Flutter Icons by Hugeicons
iOS
• В AltStore PAL появились первые сторонние приложения
• Что такое guard в Swift — вопросы с собеседований
• Разработка игр под Apple Vision Pro: ARKit, realityKit, Reality Composer Pro
• Exploring Indie Life: Reducing Friction by CI/CD
#ios
Результаты опроса разработчиков Stack Overflow 2024
Erlang остается самой "выгодной" для разработчиков технологией. Swift и Objective-C идут почти вровень. По сравнению с прошлым годом Swift наконец-то обогнал своего старого конкурента, а Kotlin заметно отстает по зарплате. Однако оплата у всех значительно снизилась - например у Swift с $86,897 в 2023 до $75,184 в 2024. И это еще ничего, Objective-C
"подешевел" с $90,000 до $73,648, а Kotlin с $78,207 в год до $65,815.
Впрочем, зарплаты снизились почти по всем языкам, кроме Nim, Erlang и Apex.
Android
• Google объединяет 3 команды, чтобы сделать Play Store лучшей платформой для разработчиков
• Kotlin’s :: Operator Explained
• mirsaidoff/introduction-of-new-dependency-management-version-control-and-kotlin-dsl-migration-4a49bfa09065">Introduction of new Dependency Management (Version Control) and Kotlin DSL migration
• KrishVerma7/mvi-made-easy-a-beginners-guide-to-mvi-with-example-and-comparison-with-mvvm-57394b02b21e">MVI Made Easy: A Beginner’s Guide to MVI with Example and comparison with MVVM
#android
База смартфонов для удаленного тестирования от 1 Р/мин
Тестирование мобильных приложений раньше: ищете и покупаете смартфоны разных моделей и версий, ремонтируете и обслуживаете устройства, передаете их между сотрудниками, не можете провести параллельное тестирование.
Тестирование мобильных приложений сейчас: проводите параллельные тесты на различных устройствах, проверяете производительность, нажатия и UI, максимально приближаясь к клиентскому опыту. Физические устройства покупать не нужно — они доступны к аренде удаленно в дата-центре Selectel.
Преимущества мобильной фермы Selectel:
▪️ Простор для тестирования как на популярных, так и на редких моделях телефонов — 100+ моделей смартфонов с разными параметрами (Android версии, процессоры, диагонали и т.д.)
▪️ Доступность — легкая аренда и управление устройствами без ограничений по времени сессий через панель my.selectel.
▪️ Удаленная работа на устройствах из любой точки мира
▪️ Удобство — настройки сохраняются, пока устройство закреплено за вами вне зависимости от количества тестов и длины сессии.
▪️ Безопасность — информация о ваших сессиях автоматически удаляется после завершения аренды
Регистрируйтесь и создайте мобильную ферму для тестирования за 1 р/мин: https://slc.tl/jkizt
Реклама АО «Селектел». ИНН: 7810962785
Erid: 2VtzqvKtqMt
Android
Senior Android-инженер(ка?) из Eventbrite написала про реализацию MVI-архитектуры в компании. Пишут, что внедрение архитектуры Model-View-Intent не только улучшило приложение для Android, но и упростило процесс разработки. Приняв MVI, в компании оптимизировали управление состояниями, улучшили поток данных и обеспечили более предсказуемое и последовательное поведение приложений. С MVI путь к созданию исключительного пользовательского опыта с помощью интуитивно понятных и хорошо структурированных приложений становится более понятным и достижимым.
• MVI в Eventbrite
• Как публиковать библиотеку в Maven Central Portal в 2024 году
• Разбираемся с новой уязвимостью Android-библиотеки Jetpack Navigation: как открыть любой фрагмент из вашего приложения?
• Обнаружение банковских троянов на устройствах Android
• michalankiersztajn/kotlin-sealed-class-vs-sealed-interface-0199013d2a98">Kotlin sealed class VS sealed interface
• Publish on Maven Central
• Enhancing Code Quality with detekt for Static Analysis
• abruneau1993/playing-with-compose-screenshot-testing-and-github-action-632f31d0822b">Playing with Compose Screenshot testing and Github Action
#android
Android Studio заработаете в вебе (с помощью Project IDX)
• Project IDX - это веб-среда разработки от Google. Project IDX использует виртуальную машину Linux и уже предлагает симуляторы Android или iOS. В ней также предусмотрена помощь в программировании с помощью ИИ Gemini.
• На I/O Connect Bengaluru компания Google рассказала о том, как она хочет сделать «создание приложений для Android таким же универсальным, как и устройства Android, на которые они нацелены».
• Это предполагает потоковую передачу Android Studio из облака в браузер с помощью Project IDX.
• Чтобы создать, спроектировать и протестировать Android-приложения в веб-браузере, потребуется минимальная настройка.
И что: демократизация Android-разработки это прекрасно 🧰 Еще больше приложений для очистки!
iOS
• Поваренная книга SwiftUI: кнопки — Часть 2
• SwiftPM — фреймворки вместо кофе
• BookPlayer — iOS-плеер для аудиокниг
• Удобная навигация в SwiftUI для iOS 16 и выше
• Adding values to the SwiftUI environment with Xcode 16’s Entry macro
• Exploring SwiftUI: Make SF Symbols Wiggle Wiggle
• kalidoss.shanmugam/best-vs-worst-coding-practices-in-swift-20-key-examples-e70ca2c2a0f3">Best vs. Worst Coding Practices in Swift: 20 Key Examples
• Async await in Swift: The Full Toolkit
#ios
В Google Play начинается большая чистка
С конца августа Google вводит новые политики в отношении приложений с минимальным функционалом.
• В первую очередь под раздачу попадут приложения с ограниченной функциональностью и содержанием. Примеры - статичные приложения без специфических функций, например, приложения с текстом или PDF-файлами, приложения с очень небольшим количеством контента, не обеспечивающие интерес пользователя, например, приложения с одной картинкой для обоев, приложения, которые предназначены для того, чтобы ничего не делать, или не имеют никаких функций.
• Во вторую очередь возьмутся за неисправную функциональность. Запретят приложения, которые аварийно завершаются, принудительно закрываются, зависают или работают нестабильно.
И что: Google делает акцент на том, чтобы каждое приложение обеспечивало бесперебойную работу и привлекательный пользовательский опыт, что соответствует стремлению компании к качеству. Новые правила вступят в силу 31 августа 2024 года и потенциально затронут широкий спектр приложений, в том числе популярные и широко загружаемые в настоящее время.
Видео и подкасты за неделю @AppFiles
• (iOS Ru)
10 вопросов с собеседования iOS-разработчика (+ все собеседования)
• (iOS Ru)
Прощаемся с XCAssets. Экспорт картинок из Figma на CDN, а оттуда — в приложение
• (iOS Ru)
SwiftPM — фреймворки вместо кофе
• (iOS En)
Custom Button Styles like a PRO! (SwiftUI)
• (iOS En)
Facebook* Messenger Gradient Effect - SwiftUI
• (iOS En)
Custom SwiftUI Countdown Timer
• (iOS En)
SwiftUI: Drop Down Picker
• (iOS En)
Exploring the Swift Algorithms Package
• (And Ru)
Android-разработка в 2024 году
• (And Ru)
Вынос сборки Android-проектов с машины разработчика на сервер
• (And En)
Micro optimizations - Android Developers Backstage
• (And En)
Edge-to-edge and insets | Compose Tips
• (And En)
Exploring Exposed: A Kotlin Solution to Database Access
• (And En)
Debugging the Future: Exploring Coroutine Debugger Tools
• (Crs En)
How to Generate Executables in KMP (apk, iab, msi, dmg, deb)
• (Crs En)
Local Preferences in Kotlin Multiplatform With DataStore
• (Crs En)
Enabling Kotlin Multiplatform Success: The Android Jetpack Journey
• (Crs En)
Making the Big Kotlin Multiplatform Decision
• (Dev Ru)
Mobile Performance: расшифровка метрик
• (Dev Ru)
Видео Yandex BDUI Conf 2024
• (Dev En)
Multithreading for Beginners
Что вы посмотрели за неделю?
#ios #android #mobile #video
О чем говорят разрабы
Читать полностью…Android
• Топ-5 плагинов для Android Studio
• Finch — меню для отладки Android-приложений
• Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024
• Сериализация с Kotlin Serialization
• Создание кастомизированного кругового загрузчика в Jetpack Compose: изучение Android Canvas и анимации
• Jetpack Compose is a great idea, but poor implementation
• Android 15 Beta 4
• MVI at Eventbrite
#android
Соавтор Манифеста Agile говорит о "переосмыслении" проекта
Все мы посмеялись над исследованием, в котором говорилось, что Agile увеличивает риск провала проекта на 268%. Но, как я и писал в послесловии к той новости, зачастую проблемы кроются вовсе не в этой методологии, а в неправильном ее применении. И вот вступила тяжелая артиллерия - Джон Керн, один из авторов манифеста Agile, раскритиковал исследование и говорит, что снова попытается объяснить методологию людям.
• Я считаю, что исследование — это мусор. Оно даже отдаленно не отражает то, что я бы считал Agile. Предположение, что в Манифесте говорится “откажитесь от четких требований — зачем вам они нужны” просто глупо…
• Почему мы возвращаемся к этим гигантским диаграммам или гигантским процессам? Ну, потому что это успокаивает тех менеджеров среднего звена, которые на самом деле не знают, что происходит. Они могу ухватиться за это, могут видеть роли, и это приятно. Знаете, диаграммы выглядят великолепно. И это почти как водопад — это дает ложное чувство безопасности.
• В оригинальном манифесте Agile есть определенная чистота, которая с годами разрушалась по мере того, как вокруг концепции разрабатывались процессы, фреймворки и инструменты.
• С 2023 года Керн и другие, по его словам, «переосмысливают Agile». Цель — найти примеры. «Места, где Agile процветает, пролить на них свет, чтобы люди могли увидеть, как выглядит хороший подход».
• Потому что дело не в том, чтобы использовать Kanban или Scrum… есть некоторые заблуждения относительно разницы между тем, чтобы делать какие-то Agile-фреймворки, и тем, чтобы быть Agile. Чем больше людей поймут, что стоит за Agile-мышлением и что это не та глупая чушь, которую вы видите повсюду, тем больше шансов, что мы сможем помочь людям справиться с постоянно растущей сложностью. Так что речь идет о том, чтобы помочь людям понять, что нужно для того, чтобы быть Agile, чтобы они могли развивать свой собственный потенциал, а затем и потенциал своей команды, а затем и организации.
И что: Керн называет Манифест вечным: «В нем заложена суть той социальной вещи, которую мы называем разработкой программного обеспечения, и, на самом деле, его несложно распространить на любой вид разработки продуктов».
Android
• iagrawalshubham/server-driven-ui-android-implementation-e4ae865b10d0">Server-Driven UI Android Implementation
• Real-Time Pose Detection in Camera with ML Kit in Android
• kerry.bisset/kotlin-serialization-json-mistakes-i-made-with-polymorphism-and-more-e8ae367dc90a">Kotlin Serialization — Json mistakes I made with Polymorphism and More
#android
Главные неприятности разработки
Продолжаю обозревать исследование Stack Overflow 2024 года. Самое распространенное недовольство разработчиков с большим отрывом - технический долг. Второе место практически делят сложность стека разработки, стека развертывания и надежность инструментов/систем. Далее идет отслеживание работы, обновления основных компонентов, количество используемых инструментов и необходимость показывать собственный вклад в работу. На последнем месте обеспечение безопасности. А что вам доставляет недовольство?
Android
• Paperize — смена обоев с Kotlin, Jetpack Compose и Material 3
• Blinkit Interview Experience for SDE — Android Role 2024
• Room Tutorial(Part I): Grasping the Fundamentals
• The Path from Appium to Kaspresso
#android
CodeRun: онлайн-тренажер для улучшения навыков программирования
Я часто пишу о том, что в разработке необходимо постоянное совершенствование. А что за совершенствование без практики? Будь то LeetCode, пет-проекты, даже чтение статей - все должно закрепляться созданием кода.
CodeRun - тренажер от Яндекса, который поможет улучшить ваше программирование. В нем есть каталог заданий, который составляли эксперты Яндекса и приглашенные эксперты, а сложность можно настроить под свой уровень знаний. Топ-фичи платформы: наличие тематических и авторских подборок, а также сезонные турниры. В последних можно получать призы за достижения — лидерам в рейтинге вручают мерч, сертификаты и другие плюшки.
2 сезон уже стартовал, а значит, самое время залетать и посоревноваться за ценные призы. Лучшие из лучших получат возможность попасть в штат Яндекса по упрощенному формату найма!
Весной Google объявил о масштабных перестановках в своих внутренних командах, отвечающих за аппаратное и программное обеспечение. Такие проекты, как Pixel, Chrome, Chrome OS и Android слились в «Платформах и устройствах». Тогда это преподносилось так, что компания сможет удвоить усилия в области искусственного интеллекта. Сейчас внутри этого направления возникла подгруппа, которая занимается экосистемой для разработчиков. В ней объединись команды инструментов для создания приложений (Android Studio), распространения приложения среди потребителей (Google Play) и обеспечения безопасности приложений (Ecosystem Trust). Цель - поддерживать разработчиков на протяжении всего жизненного цикла приложений, будь то создание и тестирование приложений, их выпуск и обновление, привлечение пользователей, повторное привлечение пользователей, удержание пользователей, помощь в монетизации, и все это при поддержке безопасности платформы. Пока неизвестно, как именно новая команда надеется добиться улучшений, но есть надежда, что объединение всех команд, которые раньше отвечали за разные части пути разработчика, поможет Google быстрее реагировать на проблемы и отзывы.
Разработка
• Вышла Llama 3.1, самая большая открытая модель ИИ
• Software engineers are not (and should not be) technicians
Маркетинг
• С какими проблемами сталкиваются дизайнеры, делая сервис для арабских пользователей
Кроссплатформа
• Как работают изоляты в Dart?
• Migrating A Flutter Application From GetIt To Bloc
• The Future of Flutter
iOS
• Swift Testing Revolutionary — конвертер XCTest в Swift Testing
• Как уменьшить расход памяти при загрузке UIImage с диска
• Top Interview Questions for Senior iOS Developer in 2024
• What’s New in SF Symbols 6 - WWDC24
• 5 very useful functions from Swift Algorithms
#ios
Разработка
• Уязвимость в Telegram для Android позволяла скрывать файлы в поддельных видеороликах
• Google переносит Android Studio в веб с помощью Project IDX
• 18 Ways Businesses are Launching New Products with Speech AI
Маркетинг
• Топ быстрорастущих приложений в России в июле
Кроссплатформа
• Полный гайд по тестированию на Flutter. Часть 2: Простые модульные тесты
• 3jacksonsmith/end-to-end-testing-in-react-native-with-maestro-a-comprehensive-guide-c644bbb71ed8">End-to-End Testing in React Native with Maestro: A Comprehensive Guide
• setState in Flutter — Exposed!
iOS
• Slack представляет виджеты для iPhone
• Разворачиваем стенд для UI-тестирования iOS на базе Selenoid
• Memory consumption when loading UIImage from disk
• kalidoss.shanmugam/swift-enums-best-practices-and-hidden-features-cdce09426c38">Swift Enums: Best Practices and Hidden Features
• Sized-to-fit SwiftUI bottom sheet
• Formatting time in a Text view in SwiftUI
• Leveling Up Your Debugging Skills with LLDB Commands in Xcode
#ios
Сегодня заканчивается новый опрос Developer Nation - ответьте на ряд вопросов о языках программирования, инструментах разработчика и платформах. Ваши ответы помогут людям и компаниям заметить новые тенденции и создать лучшие инструменты для поддержки разработчиков. Опрос охватывает 13 областей разработки, включая веб и мобайл, десктопы и облака, промышленный IoT, игры, машинное обучение и ИИ. Он доступен на 10 языках, в том числе и на русском.
Разработка
• 10 вопросов с собеседования iOS-разработчика
• Прощаемся с XCAssets. Экспорт картинок из Figma на CDN, а оттуда — в приложение
• Mobile Performance: расшифровка метрик
• Как веб-специалисту начать пентест API мобильного приложения и не сломать макбук
• Видео Yandex BDUI Conf 2024
• Audapolis: Edit audio files by word, not waveform
Маркетинг
• Japan App Trends 2024 Report
Кроссплатформа
• Xcode-Kotlin 2.0 Release
• Convert Your Native Project to Kotlin Multiplatform: Why, When and How
• How to Create a Search Bar in Flutter
Android
• В Google Play начинается большая чистка
• Next Player — видеоплеер для Android
• Android-разработка в 2024 году
• Вынос сборки Android-проектов с машины разработчика на сервер
• Jetpack Compose: отличная идея, но плохая реализация? — обсуждение на Reddit
• Разбираемся с MavenGate. Настолько ли он страшен на самом деле
• Как устроены аннотации в Kotlin. Часть 2
• Architecture related decisions in Android - Mapping
• Variance (in & out) in Kotlin Explained
• How derivedStateOf works: a deep d(er)ive
• Don't Lock the Screen Orientation! Handling Orientation in Compose
• Building On-Device Face Recognition In Android
• Container Transform in Jetpack Compose
#android
Мобильная разработка за неделю #507: загрузки падают, а доходы растут
В новом выпуске создаем макросы без лида, ИТ-курсов и кредитов, прощаемся с XCAssets и пишем приложения для Android 1.0, программируем кастомные макеты в Compose и переосмысливаем Agile, определяем главный тренд экономики приложений, продвигаем аудиокниги в инновационной глобальной AR-кампании и многое другое. Подключайтесь!
Jetpack Compose: отличная идея, но плохая реализация? — обсуждение на Reddit
В прошлый раз прошлись по SwiftUI, в этот раз обсуждаем Compose. Автор поста не Reddit пишет:
В целом мне очень нравится идея Jetpack Compose, но я думаю:
• реализация часто плохая/переусложненная/неполная
• документация как всегда оставляет желать лучшего (все, что выходит за рамки Hello World, трудно изучить)
• в целом, слишком много проблем на данный момент (по состоянию на июль 2024 года), на мой взгляд.
Все, что выходит за рамки основ, кажется чрезмерно сложным, удивительно недоработанным и откровенно болезненным в использовании.
У Audible (приложение с аудиокнигами Amazon) запустилась интересная рекламная кампания - There’s more to imagine when you listen. Ее называют самой большой AR-кампанией на сегодняшний день. Суть в том, что взяли несколько видео билбордов, поставили за ними камеры и сделали трансляцию на экраны того, что происходит за ними с дополнением - собственно, рекламой Audible (заглавная картинка - пример с "Русалочкой" на Таймс Сквер). Такая вот большая дополненная реальность. Мне нравится - модный AR на коленке и даже не надо использовать смартфон.
Разработка
• Соавтор Манифеста Agile говорит о «переосмыслении» проекта
Маркетинг
• Audible оживляет аудиокниги с помощью инновационной глобальной AR-кампании
• Стресс-тест оплаты по QR на кассе в супермаркете. Сравниваем мобильные интерфейсы банков
Кроссплатформа
• Макросы на Dart: первые ощущения от использования и лайфхаки на будущее
• Step by step guide to becoming a Flutter Developer in 2024
iOS
• Марко Армент переписал Overcast
• Exporting SwiftUI views to images with ImageRender
• Build and Run iOS App Tests with GitHub Actions – 2024 Tutorial with Example
• Developing an Infinite Four-Direction Scrollable Pager with SwiftUI
#ios
Mistral представил две новые языковые модели — Codestral для генерации кода и MathΣtral для “математических рассуждений”. Основаны они на новой архитектуре, известной как Mamba. Обе открыты и готовы к использованию на собственной платформе Mistral. Как обычно пишут, что лучше, быстрее, выше и дальше конкурентов. И если с кодом более менее все понятно, то вот MathΣtral - специфическая 7B модель, предназначенная для математических рассуждений и научных открытий. Так что вперед - за открытиями!
Разработка
• Mistral представил две новые ИИ-модели — Codestral Mamba для кода и Mathstral для научных изысканий
• How I build simple Mac apps using Go
Маркетинг
• Практическое руководство: как использовать аналитику App Store Connect
• Геймификация продукта. Три механики с которых нельзя начинать: баллы, ачивки, лидерборд
Кроссплатформа
• Реализация доступности с помощью Flutter
• Компонентная архитектура приложений на Flutter: почему выбрать BLoC недостаточно
• Introducing KoVibes a Kotlin Multiplatform library
• React Native + Expo: Simplifying Cross-Platform Mobile App Development
iOS
• Как запустить нативный код из WKWebView
• Animatable — анимации для представлений SwiftUI
• Скрытая (на виду) сила KeyPath'ов
• 1000's applications, 2 interviews. Whats wrong with my resume?
• Developing an Infinite Four-Direction Scrollable Pager with SwiftUI
• Facebook Messenger Gradient Effect - SwiftUI
• ayhamxv12instagram/swift-6-future-of-ios-development-cb176a4ae4cf">Swift 6: Future of iOS Development
#ios