В каком состоянии находится вся индустрия мобильных приложений? Это нелегко оценить, учитывая, что существует так много способов взглянуть на рынок, но есть одна тенденция, о которой должен знать каждый, кто работает над приложением или игрой — будь вы инди-разработчик, маркетолог или руководитель, отвечающий за приложение. В AppFigures вывели главный тренд - количество скачиваний снижается, а доходы растут. Меньше загрузок и больше приложений, чем когда-либо, означает, что вам придется работать еще усерднее, чтобы получить каждую загрузку. Оптимизация в App Store имеет значение, оптимизация рекламных расходов имеет значение, оптимизация онбординга имеет значение. И как только вы получите загрузку, вам нужно будет как можно лучше конвертировать ее в доход, потому что шансы получить платящего пользователя выше все время падают.
Разработка
• System Design-интервью для практиков
• 10 тупых вопросов на собеседовании (и как на них отвечать)
• Локальная разработка в Авито
• Why, after 6 years, I’m over GraphQL
• We need visual programming. No, not like that.
Маркетинг
• Загрузки падают, а доходы растут — главный тренд экономики приложений
• Самые скачиваемые и зарабатывающие приложения в мире в июне 2024
• Sekai получил лицензию на «Наруто» для разработки приложений для фанатов аниме
• How we use friction logs to improve products at Stripe
Кроссплатформа
• FlowMVI — архитектурный фреймворк Kotlin Multiplatform на основе корутинов
• Как я исправил краш Realm в KMP Desktop на старых версиях macOS
• Flutter Design Systems: Exploring Modern Alternatives to Material Design
iOS
• Проверяем, есть ли новая версия приложения в App Store
• SwipeActions — свайпы для любого View
• По оценкам IDC, в 2024 году Apple продаст менее 500 тысяч устройств Vision Pro
• Пишем свой Swift макрос без лида, ИТ-курсов и кредитов
• How to delay server requests for user's search query with SwiftUI and Combine
• New visionOS sample code
• Some tips & tricks with the new iOS 18 ScrollView API
• Blend Modes in SwiftUI
#ios
Американские продажи Apple Vision Pro практически мертвы
Продажи гарнитуры Vision Pro от Apple в США не достигли и 100,000 штук за квартал с момента появления в феврале, согласно данным компании IDC.
• По прогнозам, в текущем квартале продажи устройства на внутреннем рынке упадут на 75%, но запуск Vision Pro на международном рынке в этом месяце, как ожидается, отчасти компенсирует это падение.
• Отзывы об устройстве в целом неоднозначны. В основном пользователи были впечатлены аппаратным обеспечением и технологиями, представленными в Vision Pro, но есть вопросы к фактическим функциям устройства, интуитивности управления с помощью жестов, весу и удобству, а также к VR в целом.
• Пользователи также критикуют отсутствие контента для устройства. Для Vision Pro так и не появилось "киллер аппов".
И что: вроде как хотели реализовать полмиллиона устройств, но, очевидно, этого в 2024 даже близко не достигнут. Но вряд ли Apple сильно переживает. Для устройства ценой в $3500 даже на порядок меньшие продажи извне кажутся хорошими. Apple уже работает над новой версией гарнитуры, которая будет стоить гораздо меньше. По прогнозам IDC ее продажи вырастут более чем в два раза, когда она появится во второй половине 2025 года 🥽
🏝Еще один проект нашего читателя. FlowMVI - это архитектурный фреймворк Kotlin Multiplatform на основе корутинов с обширным набором функций, мощной системой плагинов и богатым DSL.
Преимущества:
• Мощная система плагинов для автоматизации процессов и повторного использования любой бизнес-логики по вашему желанию
• Создавайте полностью асинхронные, реактивные и параллельные приложения - без необходимости ручной синхронизации потоков
• Создавайте кроссплатформенные компоненты бизнес-логики без использования кода платформ, с подключаемым пользовательским интерфейсом
• Автоматическое восстановление после любых ошибок и предотвращение сбоев
• Автоматическая обработка жизненного цикла многоплатформенной системы
• Встроенная поддержка отладки, протоколирования, тестирования, отмены/повтора, кэширования и длительного выполнения задач
• Автоматическое сжатие, сохранение и восстановление состояния на любой платформе
• Никаких базовых классов, сложных интерфейсов или фабрик фабрик - логика декларативна и строится с помощью DSL
• Перезапускаемые, многократно используемые компоненты бизнес-логики без внешних зависимостей и выделенных жизненных циклов
• Создавайте безопасные машины состояний во время компиляции с помощью понятного DSL
• Первоклассная поддержка Compose Multiplatform, оптимизированная для производительности и простоты использования
• Используйте как MVVM+ (функциональный), так и MVI (model-driven) стиль программирования
• Основная библиотека зависит только от корутинов Kotlin, больше зависимостей нет
• Основная библиотека полностью покрыта тестами
FlowMVI на GitHub: https://github.com/respawn-app/FlowMVI
Платформа: Android/кроссплатформа
⭐️: 249
Если у вас есть библиотеки, открытые или просто интересные пет-проекты, делитесь. Будем публиковать.
Android
• Strong Skipping Mode — новый способ оптимизации стабильности в Jetpack Compose
• Kotlin Coroutines под капотом
• Safe your API Keys via Secrets Gradle plugin
• Ticket UI Using compose
• Improving Perceived Performance with Delayed Visibility
• From Zero to Billions: Building a High-Performance Kotlin App in Two Months
#android
Экспортируем иконки из Figma в проект одним кликом
Перенос дизайна в код — лёгкая и быстрая задача, на автоматизацию которой не хочется тратить время? А если иконок тысячи, платформ несколько, а код для пограничных случаев только плодится? Тогда нужно всё сделать по-человечески — автоматизировать.
Android-разработчик из финтех-компании Точка Александр Ворошилов рассказал про «человеческий фактор» в рутинной задаче и автоматизацию переноса иконок в проект. Всего один скрипт — и разработчик доволен!
Большинство приложений и сайтов с подпиской использует темные паттерны
Федеральная торговая комиссия США совместно с двумя другими международными сетями по защите прав потребителей объявила в четверг о результатах исследования, посвященного использованию «темных паттернов» в подписных приложениях.
• В ходе анализа 642 веб-сайтов и приложений, предлагающих услуги подписки, было обнаружено, что почти 76% использовали как минимум один темный шаблон, а почти 67% — более одного.
• Под темными паттернами понимается ряд дизайнерских приемов, которые могут тонко подталкивать пользователей к каким-либо действиям или подвергать риску их конфиденциальность. Это скрытие информации, препятствование, назойливость, принуждение к действию, социальное доказательство и другие.
И что: в другом исследовании 95% приложений содержали одну или несколько форм дарк паттернов, а в среднем у популярных приложений 7 разных паттернов. так что FTC еще подошла к вопросу с осторожностью. Но судя по долям, темные паттерны уже стали стандартом и не обманешь - не заработаешь 😞
Хороший пример того, насколько IOS разработка сложнее Android - Карты от Google. Понадобилось 5 (пять) лет, чтобы реализовать в картах спидометр и информацию об ограничениях скорости 🗺 Думаю, что это связано с персональными данными и безопасностью. А вы как думаете?
Разработка
• MobileLLM - Language Models for On-Device Use Cases
Маркетинг
• Wayther — приложение с прогнозом погоды, разработанное специально для автопутешествий
• Карты Google на iOS начали показывать спидометр (через 5 лет после Android)
Кроссплатформа
• Rive-анимация для Flutter-приложений: почему мы любим ее больше Lottie, когда ее применять и какие фишки использовать
• sachin.dev2910/google-pay-integration-in-flutter-app-payments-in-flutter-app-c85f1c7e260e">Google Pay Integration in Flutter App
iOS
• Постепенный перенос проектов и пакетов на Swift 6
• StreamUI — генерация видео в SwiftUI
• Пишем виджет в Control Center (iOS 18)
• Automating pre-production iOS app builds
• Running a package from Xcode Build phase
• syeda.annie.asad/xcuitest-ios-automation-with-pom-techniques-3f0dc733a6fb">XCUITest (iOS) Automation with POM Techniques
• froig/write-clean-and-maintainable-xcuitests-with-screen-chaining-fdb545b347fc">Write Clean and Maintainable XCUITests with Screen Chaining
• AI features in Xcode 16: is it good?
#ios
Android
• Fig — Google Таблицы в качестве удаленного конфига
• Valkyrie — генерация Compose ImageVector из SVG/XML
• Which Map Transformation Should I Use?
• Exploring Material3 Adaptive Layout
• michalankiersztajn/kotlin-builder-inference-explained-b6cca7b7ff77">Kotlin Builder Inference Explained
• RxJava to Kotlin Coroutines: The Ultimate Migration Guide
#android
Библиотека нашего читателя. Valkyrie - плагин Intellij IDEA/Android Studio для генерации Compose ImageVector из SVG/XML. Удобное форматирование кода для сгенерированной иконки, поддержка перетаскивания внутри IDE.
Valkyrie на GitHub: https://github.com/ComposeGears/Valkyrie
Платформа: Android
⭐️: 16
Если у вас есть библиотеки, открытые или просто интересные пет-проекты, присылайте. Будем публиковать.
Шоу под названием Epic vs Apple никогда не закончится твои повести нет да напишутся. На прошлой неделе Apple отклонила Epic Games Store, потом одобрила, потом сказала, что одобрила “временно”. В следующем релизе надо изменить в нем кнопки установки и покупки, потому что эти слишком похожи на «дизайн и позиционирование» Apple 🌐. Тим Суини встал на дыбы и сказал пошли вы в жопу - это абсурдно, переделывать ничего не будем. Не знаю как вам, а мне это уже поднадоело.
Разработка
• Разработка библиотек с использованием подхода Request for Comments
• Менеджмент — ловушка или лучший карьерный путь для разработчика?
• Чистый код – не значит правильный: clean code, паттерны, лучшие практики
Маркетинг
• Apple «временно» одобрила Epic Games Store, но потребовала изменений
• Самые скачиваемые и зарабатывающие приложения в России в июне 2024
• How to improve funnel conversion
Кроссплатформа
• Multiplatform UI с Compose
• tom.sabel/mastering-date-and-time-management-in-ios-with-kotlinx-datetime-a-step-by-step-guide-ba1fe3bc32fe">Mastering Date and Time Management in iOS with Kotlinx DateTime: A Step-by-Step Guide
iOS
• DSFDropFilesView — NSView для drag-and-drop файлов
• Поваренная книга SwiftUI: кнопки — Часть 1
• Как побеждать в конкурсах от Telegram
• Изучаем новые структуры данных для iOS разработчика
• Mastering Animatable and AnimatablePair in SwiftUI
• SwiftUI can be a bit... eager
• Laying out views with ContainerRelativeFrame in SwiftUI
• Make videos with SwiftUI
• Zoom transitions
#ios
Видео и подкасты за неделю @AppFiles
• (iOS Ru)
Как побеждать в конкурсах от Telegram
• (iOS En)
SwiftUI Draggable Tab Bar
• (iOS En)
SwiftUI Re-Orderable Tab bar
• (iOS En)
SwiftUI Swipe to Hide Header
• (iOS En)
Mastering Swift Testing: Run Serialized Tests with One Line of Code
• (iOS En)
Explicit ViewBuilder
• (iOS En)
My Favorite SwiftUI Updates in iOS 18
• (iOS En)
Exploring Predictive Code Completion in Xcode 16
• (iOS En)
Pomodoro Timer App - SwiftUI
• (And Ru)
Переходишь на Compose? Не спеши!
• (And Ru)
Как работает ТВ в Android TV?
• (And Ru)
Нужны ли Android-разработчики на заводе?
• (And Ru)
Gradle DSL изнутри
• (And Ru)
Kotlin DSL как единый источник правды для решения многих задач
• (And En)
Lifecycles, Coroutines and Scopes
• (And En)
Developer first Gradle builds
• (And En)
DataFrame: Kotlin's Innovative Approach to Data Structures
• (And En)
Texts, dates, numbers, currencies, plurals, etc. App internationalization guide
• (Crs Ru)
Multiplatform UI с Compose
• (Crs En)
Unit & UI Testing With Compose Multiplatform
• (Crs En)
Full Guide to Dependency Injection With Koin for Compose Multiplatform
• (Crs En)
Kotlin Multiplatform Libraries Evolution
• (Crs En)
React Native & Expo Router Course – Build a Meditation App
• (Dev Ru)
Чистый код – не значит правильный: clean code, паттерны, лучшие практики
• (Dev Ru)
Менеджмент — ловушка или лучший карьерный путь для разработчика?
• (Dev Ru)
Разработка библиотек с использованием подхода Request for Comments
• (Dev Ru)
Пишем приложение на Ktor
• (Dev Ru)
Kotlin Script: для кого, зачем и как
• (Dev En)
AI and Kotlin: A Perfect Mix
• (Dev En)
Go for Absolute Beginners – Tutorial
Делитесь тем, что вы смотрели!
#ios #android #mobile #video
Android
• Интеграция форматирования кода в Android-проекты
• Android Studio: debugging is a kind of hell for years and years
• akshaynagamalla23/on-device-machine-learning-with-tensorflow-lite-ec4544acfb50">On-Device Machine Learning with TensorFlow Lite
• nitinjain1236/complete-guide-to-ace-an-android-developer-interview-47fe6fdaf507">Complete Guide to Ace an Android Developer Interview
#android
Android
• Samsung выпустит Android XR гарнитуру осенью
• Как обойти множественное наследование в Kotlin и Java. Агрегация и композиция
• Парсим данные из Google Sheets с помощью Kotlin и Retrofit в Android
• Overscroll animations in Jetpack Compose
• Type Safe Bottom Navigation in Jetpack Compose
• Stack vs. Heap in Kotlin: Understanding Memory
• Restartable functions from first principles
#android
Развенчиваем расширение возможностей
Очередная подборка всех материалов за неделю - пишем виджет для Control Center и делаем куб для сторис, развенчиваем мифы про современную Android-разработку и оптимизируем приложение, переходим с Xamarin на Flutter, оцениваем важные вещи в программировании, используем темные паттерны, подбираем самые скачиваемые и зарабатывающие приложения в России в июне.
Яндекс устраивает Yandex Summer Mobile Party!
Приходите на вечеринку для мобильных разработчиков, где мы отдохнём, пообщаемся и совсем немного поговорим о работе.
Вас ждут нетворкинг, музыка, коктейли, короткие лайтнинги о жизни в мобильной разработке, а ещё PeerLab с обсуждением ваших кейсов! Спикеры поделятся, как преодолеть страх и ненависть в проектной деятельности, а ещё расскажут о разработке Яндекс Клавиатуры.
Регистрируйтесь уже сейчас. Мы рассмотрим вашу заявку и пришлём приглашение 16–17 июля.
Увидимся на Yandex Summer Mobile Party! 🎉
Пришла новая статистика по зарплатам от Хабр Карьеры. Медианная зарплата в первом полугодии 2024 выросла на 8%. Больше всего в регионах, в Волгограде аж на 25%. У мобильных разработчиков на 9%, в среднем до 217К. Зарплаты разработчиков в Objective-С продолжают оставаться самыми высокими в этом исследовании. Однако в первой половине 2024 медиана зарплаты у них снизилась на 10%, до 342К. Впрочем, зарплат в выборке всего 43, так что аналитика так себе (впрочем, кажется, и в общем показатели можно довольно легко накрутить). Самый ощутимый рост был у разработчиков в Kotlin (+16%), до 290К, C (+14%) до 180 000 ₽, также на 11% выросли зарплаты в Swift и Elixir.
Разработка
• Rust и Kotlin растут в TIOBE Index
• Зарплаты IT-специалистов в первой половине 2024: +8% по всей России
• Моё тестовое в Билайн на позицию стажёра
• How to set priorities?
• Weird things I learned while writing an x86 emulator
Маркетинг
• Большинство (76%) приложений и сайтов с подпиской использует темные паттерны
• How apps can innovate
Кроссплатформа
• Colors AI — генератор цветовых схем с ИИ на Flutter
• Rewriting freezed with Macros
• m1nori/codemagic-setup-with-flavors-flutter-ci-cd-0edfcb9bb24f">Codemagic setup with flavors. Flutter CI/CD
iOS
• Как работает AdAttributionKit
• Добавляем в приложение SwiftUI холст Freeform, чат и видеозвонки
• Check if your app has a newer version on the App Store using Swift
• Streamlining Menu Browsing with OCR Text Recognition
• Utilizing Apple’s oslog for Enhanced Logging in Xcode
#ios
Пляжный IT-фестиваль ULCAMP’24 ждёт тебя!
🗓19-21 июля
📍Ульяновская область, база отдыха «Славянское подворье»
ULCAMP — масштабный неформальный IT-фестиваль. Здесь встречаются все: от «джунов» до топов IT-компаний. Уже 11 лет ULCAMP собирает более 3000 человек.
В программе:
📎3 сцены с лекциями и дискуссиями про код, дизайн и науку.
📎4 баркемпа, где сами участники становятся спикерами.
📎Спортивные состязания по 7 видам спорта за Кубок ULCAMP.
📎Активности от партнёров: квизы, настолки, турниры по FIFA. И даже катание на парусной яхте!
А ещё мы подготовили музыкальную программу до самого утра!
🎶19 июля — Alfa Music Night: выступят DJ Alex Twain, Dj Kradson, группа ДИСКОПРОВОКАЦИЯ и хедлайнер — Найк Борзов!
🎶20 июля — ILWT, группа DJ Середина Лета, Богдан Титомир, Бахыт Компот, GorillaGun и Стас Экстаз.
Ждём тебя на самой незабываемой IT-тусовке этого лета!
Купить билет
ТГ-канал ULCAMP’24.
Реклама. АНО «Ульяновский совет культивации интернет-технологий». ИНН: 7325996041 erid: LjN8JwcUi
Еще один проект нашего читателя. Colors AI - это бесплатный генератор цветовых схем с открытым исходным кодом и использующий глубокое обучение на основе Colormind и Huemint API. Приложение сделано в шаблоне BLoC с помощью Flutter SDK и доступно для всех основных операционных систем, включая мобильные.
Colors AI на GitHub: https://github.com/tsinis/colors_ai
Платформа: кроссплатформа
⭐️: 117
Если у вас есть библиотеки, открытые или просто интересные пет-проекты, присылайте. Будем публиковать.
Android
В чем-то вторя вчерашней заглавной статье, первая тут подчеркивает жизненную важность анализа и оценки информации, которую вы потребляете. Очень важно отдавать предпочтение практичности, а не слепому принятию популярных практик или следованию за технологическими авторитетами 👇
• Развенчиваем 6 мифов про современную Android-разработку
• Создавай и упрощай: оптимизируем Android-приложение с видеоконтентом
• New ways of optimizing stability in Jetpack Compose
• How to Configure Android Build System?
• Kotlin Code Reuse: Composing like you're Inheriting
• janishar.ali/android-mvvm-architecture-for-a-production-ready-app-2892b6dca02f">Android MVVM Architecture for A Production Ready App
• basaransuleyman/leveraging-bff-and-dynamic-ui-in-android-applications-with-jetpack-compose-27d81edb7c7c">Leveraging BFF and Dynamic UI in Android Applications with Jetpack Compose
#android
Самые главные вещи на свете - это не вещи. А самые важные проблемы в программировании — не технические. Хотя обсуждать, на каком языке должно быть реализовано приложение, писать красивый и лаконичный код, смотреть, как далеко можно зайти в чисто функциональном программировании, - очень весело, все это вторично по отношению к определению пользовательского опыта, к разработке удобного интерфейса, к тому, чтобы все было просто и понятно, к тому, чтобы убедиться, что вы создаете что-то, чем действительно могут пользоваться люди, для которых вы это разрабатываете. Это более важные решения. Если коротко, дело не в технологии ради технологии. Речь идет о возможности реализовать свои собственные идеи.
Разработка
• Важные вещи в программировании 2024
• ChatGPT хорошо программирует в задачах, существовавших до 2021 года, но испытывает трудности с новыми
• Building and scaling Notion’s data lake
• Reverse Engineering TicketMaster's Rotating Barcodes (SafeTix)
Маркетинг
• Приложение для арт-терапии Scribble Journey позволяет выразить эмоции с помощью зарисовок
• Lamoda Tech Analytics Party: материалы встречи
Кроссплатформа
• Первый взгляд на переход с Xamarin Native на Flutter
• Build Android and iOS apps with SwiftUI
• Code push for Flutter
iOS
• Backpressure in Combine
• Building a custom application UI with SwiftUI & iOS 18 API
• Building the inverted scroll of a messaging app
• Mobile Deployment Pipelines for $0
• 5 Strategies for Managing Image Resources Effectively in iOS
#ios
ChatGPT хорошо программирует в задачах, существовавших до 2021 года, но испытывает трудности с новыми
Недавнее исследование, в ходе которого выяснялось, насколько хорошо ChatGPT программирует, показало, что он вполне неплох. По крайней мере в задачах, с которыми он знаком 🤖
• Исследование, опубликованное в июньском номере IEEE Transactions on Software Engineering, проверило GPT-3.5 на 728 задачах с LeetCode на пяти языках программирования (C, C++, Java, JavaScript и Python).
• На задачах, существовавших в LeetCode до 2021 года, ChatGPT решал легкие задачи в 89% случаев, задачи средней сложности — в 71% случаев, а трудные — в 40% случаев.
• Однако при тестировании на задачах, которые появились в LeetCode после 2021 года, результаты решения легких, средних и трудных задач снизились до 52%, 40% и 0.66% соответственно.
Когда дело доходит до проблем с алгоритмами после 2021 года, способность ChatGPT генерировать функционально корректный код страдает. Иногда он не может понять смысл вопросов даже для задач легкого уровня, — говорит исследователь. - Разумная гипотеза о том, почему ChatGPT лучше справляется с проблемами алгоритмов до 2021 года, заключается в том, что эти проблемы часто встречаются в обучающем наборе данных.
Android
• Как работает ТВ в Android TV?
• Нужны ли Android-разработчики на заводе?
• Gradle DSL изнутри
• Kotlin DSL как единый источник правды для решения многих задач
• Переходишь на Compose? Не спеши!
• Android Crypto Samples — примеры криптографии
• Architecture related decisions in Android - Error handling and Monads
• Kotlin’s @Keep Annotation: Keeping Your Code Safe and Sound
• Let's clarify some misconceptions around android development these days
• Declarative Gradle
• michalankiersztajn/top-5-android-studio-plugins-4c534ef7221d">Top 5 Android Studio Plugins
#android
Железо для типизированных ошибок
Новая подборка всех статей за неделю - макросы и типизированные ошибки, форматирование кода и Unit-тесты, «железо» для Android Studio, переход на docs as code, возвращение Myspace для Поколения Z, AirPods с камерами и многое другое. Подключайтесь!
В App Store в США на первое место вышла новая социальная сеть для Поколения Z - noplace. Профессионалы говорят, что noplace отчаянно напоминает современный Myspace. В новом приложении есть красочные настраиваемые профили, которые позволяют людям делиться всем: от статуса отношений до того, что они слушают или смотрят, что они читают или делают, и многим другим. Правда, пока только в тексте. Так что заодно напоминает и Х на заре своей деятельности. В общем, вот идеальный рецепт для нового приложения - берете какой-нибудь закрывшийся 20 лет назад проект и выпускаете его “для Поколения Z”. Опа, вот и “волшебный и веселый Интернет” возвращается.
Разработка
• Генеративный ИИ появился в сервисе VK для сбора и анализа ошибок в приложениях
• Should you learn C to "learn how the computer works"?
Маркетинг
• Социальная сеть noplace, смесь Twitter и Myspace для Поколения Z, заняла первое место в App Store
Кроссплатформа
• Simplify Network Management with CMPConnectivityMonitor in Compose Multiplatform
• rishad2002/concurrency-is-crucial-in-mobile-app-development-because-it-allows-an-app-to-perform-multiple-tasks-398faeb56f9d">Understanding Concurrency in Flutter
iOS
• ZLPhotoBrowser — фотопикер в стиле Wechat
• Адаптируем VoiceOver для людей
• Принципы SOLID на примере iOS-разработки
• dfs.techblog/evolution-of-sdui-in-ios-app-development-c53adade164d">Evolution of SDUI in iOS App development
• AsyncStream and AsyncSequence for Swift Concurrency
#ios