Android
• Blueprint — размеры Composable
• Annoying problems with Android projects
• Finally Ternary Operator in Kotlin 2.0
• The on-device Vector Database for Android and Java
• Securing the Future: Navigating the Deprecation of Encrypted Shared Preferences
#android
Как сделать мобильные приложения, которые приносят $3,000 в день
Виктор Сералеев (теперь из Чили) на Reddit написал свою историю инди-разработки - как он создал ряд сервисных приложений и начал зарабатывать $3,000 в день. После чего Apple его забанила. Поначалу забрала его $110,000, потом отдала, но теперь он судится с Apple за восстановление аккаунта, но это уже тема другой статьи.
Правда, как обычно, есть нюанс. Комментаторы на Hacker News подозревают, что его приложения некоторым образом скам, которые манипулируют пользователям, продавая им подписки за $4 в неделю.
Что-то не так… эти приложения не выглядят достойными 33K/MRR. Я подозреваю, что была проведена какая-то манипуляция, чтобы… помочь?
GDE по Flutter и Dart из Тринидад и Тобаго написал программную статью о том, почему Flutter все-таки не умрет. Тезиса два. Во-первых, на нем уже работают приложения крупных компаний и собственные “денежные” проекты Гугла. Во вторых, это отличная точка входа для облачных сервисов компании - разработчики их подключают “по умолчанию”, а дальше слезть уже трудно. Вряд ли оба эти пунктам могут существенно повлиять на судьбу Flutter в Google (“Это наша корова и мы ее доим”), но пока на фронте кроссплатформенных фреймворков кажется наступило затишье. Как вам кажется?
Разработка
• SQL vs NoSQL: как выбрать архитектуру БД для мобильного приложения, чтобы потом не пришлось ничего переписывать
• Как понять, что пора выпускать новое приложение вместо старого? Разбираем со стороны бизнеса
• MobileLlama3: Run Llama3 locally on mobile
• Big Data is Dead
• How to create mobile apps that make $3,000 a day
Маркетинг
• ИИ-репетиторы незаметно меняют подход к обучению детей
• Алгоритмы, модели и пицца: как с помощью programmatic-рекламы эффективно привлекать и возвращать пользователей. Кейс «Додо Пиццы» и Bidease
Кроссплатформа
• Почему я продолжаю ставить на Flutter
• Migrating UI-oriented Android library to Compose Multiplatform
• The rollercoaster of releasing an Android, iOS, and macOS app with Kotlin Multiplatform
• How BigPay Increased Flutter Developer Velocity
• These New Flutter/Dart Features Make My Life Easier
iOS
• DeskPad — виртуальный монитор для шаринга экрана
• Стэнфордский курс CS193P “Разработка iOS приложений в SwiftUI” Весна 2023: русскоязычный конспект с адаптацией к iOS 17
• Programmatic navigation in SwiftUI with NavigationPath and navigationDestination
• Replacing The Deprecated cornerRadius View Modifier In SwiftUI
• ChatGPT for Swift: Top 5 code generation prompts
• vladislavshkodich/remove-observableobject-from-your-swiftui-model-cb455e9572ef">Remove ObservableObject from your SwiftUI model
• The fundamentals of iOS at Revolut
#ios
Android
Прочитайте, что обновилось в адаптивных макетах Compose:
• Обновления в адаптивных макетах Compose с I/O
• Compose Guard — плагин Gradle для обнаружения регрессий в Jetpack Compose
• Обсуждаем Google I/O 2024
• Взлом и защита Android-приложений
• Моментальный запуск: как VK Клипы работают с плейбэком видео на Android
• Google Bets on Kotlin Multiplatform: Koin Leads for Android & KMP
• Injecting Composables with Dagger without losing it
• Caching Strategies in Android
• KotlinConf 2024 announcements
• Change App Theme - Personalizing Accessibility
• A Developer’s Roadmap to Predictive Back (Views)
#android
Максимальную стоимость покупки в Google Play подняли до $1000
Почти незамеченной на I/O прошла новость о том, что в Google Play теперь можно делать покупки в $1000.
• Изначально при появлении Google Play лимит одной покупки составлял 200 долларов, но в конце 2015 года он был увеличен до 400 долларов. Теперь, спустя почти восемь с половиной лет, Google поднял лимит стоимости одной покупки до 1000 долларов.
Понятно, что немногие продукты будут стоить $999.99, если речь идет о покупках в приложении. Вероятно главная область применения - приложения, которые существуют исключительно для того, чтобы показать другим, насколько вы богаты, или корпоративные программы или сервисы, предлагающие годовую подписку.
С другой стороны, Google Play с годами значительно расширил инструменты биллинга и варианты оплаты. В частности, на I/O компания представила новую функцию рассрочки подписки, которая позволяет разработчикам предлагать пользователям возможность оплачивать долгосрочные подписки в течение определенного времени. Разработчики, желающие взимать 999.99 долларов за приложение или сервис, могут воспользоваться этой опцией, чтобы разбить платежи по времени, что, по словам Google, уже привело к увеличению общего числа подписок на 8% и росту расходов пользователей на 4%.
💵 Звучит Ecstasy of Gold (или так)
Преодолевая баги кнопочных телефонов
Очередная подборка всех статей за неделю - работаем с SwiftUI на iOS 14, снова обсуждаем Google I/O 2024 и проводим скриншот-тестирование для превью Compose, оцениваем Flutter 3.22, пишем 2D-игры для кнопочных телефонов нулевых и многое другое. Подключайтесь!
Compose Multiplatform для iOS достиг бета-версии
Версия фреймворка 1.6.10, анонсированная вчера на KotlinConf’24, включает в себя несколько мощных функций, а также повышает уровень поддержки iOS до Beta и Web до Alpha.
Основные моменты:
• API мультиплатформенных ресурсов теперь стабилен, и в эту библиотеку внесено несколько долгожданных улучшений.
• Есть экспериментальная библиотека навигации, основанная на Jetpack Compose Navigation.
• Общая библиотека Lifecycle с общей реализацией ViewModel.
• Поддерживается Kotlin 2.0.0 с использованием нового Gradle-плагина компилятора Compose.
• Compose Multiplatform для iOS стал Бетой
• Compose Multiplatform для Web стал Альфой
Прекрасный тред от человека, который сумел сделать и продать два одинаковых проекта - TBH и GAS. Собственно, каждый пункт можно “отливать в граните”, но в целом смысл в том, что каналы тестирования, распространения и маркетинга гораздо важнее вашей идеи. “Большинство продуктовых идей мертвы “по прибытии”, потому что невозможно создать условия для получения ценности. Заставить 7 взрослых друзей установить приложение и воспроизводить это - нетривиальная задача. Если вы сможете придумать, как это сделать, то это уже большая идея, чем ваша первоначальная концепция”. Очень рекомендую для всех инди и не очень. Впрочем, последний совет тоже обязателен к исполнению :)
Разработка
• Создание продуктов — это безжалостный гринд
• Мое решение 3-х проблем MVx
• Как мы спасаем жизни с помощью геймификации
• Как я делаю build больших Android/iOS проектов со 128 GB памяти на старом Mac
• How I failed at Test-Driven Development and what it took to get it right
Маркетинг
• Praktika использует ИИ-аватаров для более естественного изучения языков
Кроссплатформа
• kanellopoulos.leo/5-extra-packages-to-use-with-flutter-3-22-in-2024-81a0d8afc78b">5 extra packages to use with Flutter 3.22 in 2024
iOS
• MVVM: архитектурный шаблон для структурирования представлений SwiftUI
• Reducing iOS Test execution time with Selective Testing
• CocoaHeadsNL Meetup
• Reducing the Size of Cash App for iOS
#ios
Очередная статья про эйджизм и “выйти из IT” и, собственно, то, что ждет всех из нас. Средний возраст программистов самый большой в США, и это всего 32.8 года. Индустрия молода, но со временем, конечно, будет стареть, и седые программисты уже не будут вызывать удивление. В статье есть самые типовые варианты развития для разработчиков, а у вас есть план выхода?
—
#самоповтор из 2021 года. Проблема никуда не делась, а, скорее, даже усилилась и план выхода нужен как никогда.
Android
• Пишем plugin для Jetbrains IDE: отображение файлов вне проекта в Project Tool
• Need of ViewCompositionStrategy in Jetpack Compose
• What's new in Kotlin 2.0.0
• Mastering Jetpack Compose Performance
• christopher.mederos/something-worth-sharing-cf3e3f5083cf">Something Worth Sharing — How to use Composables on Social Media
#android
erid: LjN8KbFhp
2LEADS делится секретами OEM-продвижения 🗣
Как получить больше установок и оптимизировать расходы?
Агентство нового мобильного маркетинга 2Leads провело исследование и теперь делится опытом, как выработать эффективную стратегию работы с OEM-инвентарем.
Изучены площадки Xiaomi и Huawei, но выводы подходят и для других OEM-источников.
Используйте эти советы, чтобы повысить эффективность своих кампаний!
Исследование 🟩Реклама ООО"ТУЛИДС" ИНН 6317122270
Android
• Скриншот-тестирование для превью Compose
• Google запускает новую функцию, чтобы вернуть пользователей к установленным приложениям
• ComposeLife — игра «Жизнь» на Jetpack Compose
• Kotlin 2.0 Release
• kacper.wojciechowski/kotlin-2-0-android-project-migration-guide-b1234fbbff65">Kotlin 2.0 — Android project migration guide
• Why Calling a Composable from a Regular Function Isn’t Possible
• engineervishvnath/design-social-media-app-like-tiktok-for-android-5f44462f4dad">Design Social Media app like TikTok for Android
• Essential Android Design Patterns: MVVM, MVP, and More
#android
Платформа управления программной инженерией Jellyfish запустила то, что она называет «первым в отрасли инструментом сравнительного анализа». Он позволит инженерам проверять, насколько хорошо они работают по сравнению с другими компаниями. Jellyfish Benchmarks основан на анонимизированных данных, которые компания собирает со всех инженерных групп.
Пользователи получают доступ к более чем 50 метрикам, включая время, затрачиваемое на рост, количество решенных issues, частота развертывания, смердженные пул-реквесты, коммиты, дни программирования, частота инцидентов, среднее время восстановления (MTTR), и пр.
Такие агрегированные общеотраслевые инженерные данные дают больше контекста для понимания, позволяя компаниям сравнивать и сопоставлять внутренние данные с данными своих коллег из разных секторов.
—
#самоповтор из 2021 года. Платформа до сих пор работает и меряет все что ни попадя. 👍 если интересные такие "исторические" новости, 🥱 если вы ретроград
iOS
• Финалисты Apple Design Award 2024
• Разбираемся с типографикой в visionOS
• How to create custom @Environment values in SwiftUI
• Slowly migrating from Objective-C to Swift
• @preconcurrency usage in Swift explained
#ios
Финалисты Apple Design Award 2024
Каждый год премия Apple Design Awards отмечает инновации, изобретательность и технические достижения в области дизайна приложений и игр. Но конкурс также стал чем-то большим - это момент, когда можно сделать шаг назад и отметить сообщество разработчиков Apple во всех его проявлениях.
Всего есть 7 категорий:
• Восторг и веселье
• Инклюзивность
• Инновации
• Взаимодействие
• Социальное влияние
• Визуальные и графические эффекты
• Пространственные вычисления
Вот, например, победители в Визуальные и графические эффекты:
Приложения
• Sunlitt: Sun Position and Path
• Meditate - Mindfulness app
• Rooms
Игры
• DEATH STRANDING DIRECTOR'S CUT
• Lies of P
• Honkai: Star Rail
Все наминанты тут.
Android
• Автоматизация подготовки релиз-кандидата
• Как создать Android-приложение чат-бота с генеративным ИИ Google
• App Architecture: JUnit Tests
• Compose UI Test and Preview Hacks!
• Kotlin Mobile Monorepo
#android
Разработка
• Стоит ли сегодня идти в айти?
• ChatGPT на вопросы по программированию дает 52% неправильных ответов
• Как собеседовать мобильных инженеров? Системный дизайн спешит на помощь!
• Проводим и проходим Mobile System Design-интервью
• Как сделать приложение на базе ChatGPT
• Daylight DC1 — попытка создать спокойный компьютер
• Writing a Unix clone in about a month
Маркетинг
• Максимальную стоимость покупки в Google Play подняли до $1000
Кроссплатформа
• Compose Multiplatform для iOS достиг бета-версии
• Why am I continuing to bet on Flutter
iOS
Посмотрите, как писать игры для Playdate:
• Как писать игры на Swift для Playdate
• Поваренная книга SwiftUI: изображения и иконки — Часть 2
• TOP 10 горячих клавиш для Xcode
• Swift Plugins: ускоряем сборку проекта
• Объединяем Combine и Swift Concurrency
• Apple обновляет Форумы для разработчиков
• Unidoc — масштабируемый механизм документирования кода Swift
• How Do You Know Whether or Not SwiftUI Previews and Preview Content Are Excluded From App Store Builds?
• Tricking iOS Into Animating App Icons
• This is what peak UIKit looks like
• jpmtech/your-complete-guide-to-push-notifications-in-swiftui-8a13f5588662">Your Complete Guide to Push Notifications in SwiftUI
• How to build segmented circular progress views in SwiftUI with Swift Charts
• Apple rich text fundamentals
#ios
ChatGPT на вопросы по программированию дает 52% неправильных ответов
Чат-боты с искусственным интеллектом, такие как ChatGPT от OpenAI, продаются как революционные инструменты, которые помогут работникам стать более эффективными и, возможно, в будущем полностью заменят людей. Но новое исследование показало, что ChatGPT отвечает на вопросы по программированию неправильно.
1. В исследовании Университета Пердью было изучено 517 вопросов по программированию на Stack Overflow, которые затем были переданы в ChatGPT.
2. Анализ показал, что 52% ответов ChatGPT содержат неверную информацию, а 77% — многословны.
3. Тем не менее, участники исследования все равно предпочитали ответы ChatGPT в 35% случаев из-за их полноты и хорошо сформулированного стиля изложения.
4. Удивительно, но программисты, участвовавшие в исследовании, не всегда улавливали ошибки, допускаемые чат-ботом с искусственным интеллектом. В 39% случаев они не замечали дезинформации в ответах ChatGPT.
И что: необходимо понимать риски, которые вы берете на себя, используя ИИ в программировании. Это не только проблемы ошибок и неправильной архитектуры, но и вопросы безопасности, которые могут быть критическими.
Видео и подкасты за неделю:
• (iOS Ru)
Объединяем Combine и Swift Concurrency
• (iOS Ru)
TOP 10 горячих клавиш для Xcodу
• (iOS Ru)
Swift Plugins: ускоряем сборку проекта
• (iOS En)
SwiftUI TabView Offset Reader - Scrollable Tabs
• (iOS En)
Meet mergeable libraries
• (iOS En)
Fix failures faster with Xcode test reports
• (iOS En)
Dive deeper into SwiftData
• (iOS En)
CocoaHeadsNL Meetup: Adidas Apps Architecture/Managing our large iOS App
• (iOS En)
3 Advanced Tips to Code Like a Pro in Swift (from an ex-Apple engineer 🍎)
• (iOS En)
Hacker Text Effect - SwiftUI
• (iOS En)
Build your next website in Swift
• (And Ru)
Обсуждаем Google I/O 2024
• (And Ru)
Взлом и защита Android-приложений
• (And Ru)
Моментальный запуск: как VK Клипы работают с плейбэком видео на Android
• (And En)
Sustaining best performance with Android adaptability technology
• (And En)
Advanced graphics features in mobile games with Vulkan
• (And En)
3 things to improve your Android App experience: Edge to Edge, Predictive Back, and Glance
• (And En)
Make it faster - Android Developers Backstage
• (And En)
How to Use the Google's New Screenshot Testing Framework for Compose
• (And En)
KotlinConf'24 - Keynote
• (Crs En)
How to Setup a Room DB for Kotlin Multiplatform Compose
• (Dev Ru)
Как собеседовать мобильных инженеров? Системный дизайн спешит на помощь! (+ другие собеседования)
• (Dev Ru)
Проводим и проходим Mobile System Design-интервью
• (Dev Ru)
Стоит ли сегодня идти в айти?
• (Dev Ru)
Как сделать приложение на базе ChatGPT
Посоветуйте в комментариях интересные каналы по мобильной или не очень разработке? 🌐 @AppFiles
#ios #android #mobile #video
Apple обновляет Форумы для разработчиков
Должно быть, в Купертино умер какой-то медведь...
1. Форумы разработчиков Apple были переработаны к WWDC24, чтобы помочь разработчикам общаться с экспертами, инженерами Apple и друг с другом для поиска ответов и получения советов.
2. Вы получите доступ к расширенной базе знаний и сможете быстрее получать ответы, чтобы вернуться к созданию и совершенствованию своего приложения или игры.
3. Все участники программы Apple для разработчиков (42+ млн) теперь имеют приоритетный доступ к советам экспертов на форумах.
И что: теперь-то заживем!
Android
• «Картинка в картинке» приходит на Google TV
• Ketch — загрузчик файлов на основе WorkManager
• Adaptive Compose Layouts
• KotlinConf'24 - Keynote
• VolodymyrSch/the-complexities-of-clean-architecture-use-cases-71ac89ea8b40">The Complexities of Clean Architecture Use Cases
#android
22 июня приглашаем на конференцию Yandex BDUI Conf от Яндекса и Яндекс Маркета! 🎉
Приходите послушать доклады спикеров и поучаствовать в нетворкинге. Будет два трека с контентом: инфраструктурный - про разработку своих решений и продуктовый - про внедрение готовых фреймворков. Обсудим, как с помощью бэкенда сделать красивые и функциональные приложения.
Вас ждут доклады спикеров Яндекса, Авито и X5 Tech! После — дискуссия про карьеру мобильных разработчиков. Ещё вы сможете поучаствовать в активностях Яндекс Маркета, выиграть мерч, погулять в летнем дворике и записаться на экскурсию в офис Яндекса.
Зарегистрироваться можно здесь. А следить за новостями конференции — на сайте.
Конференция пройдёт 22 июня в Москве в «Экстрополисе». Если не получится прийти очно, присоединяйтесь к нашей трансляции!
До встречи на Yandex BDUI Conf — будет здорово! 👋
Недавно я писал про новый тренд в дейтинге - эксклюзивные приложения для знакомств. Такие, для вступления в которые нужно получить одобрение или приглашение от других пользователей, которые работают на определенную аудиторию или предлагают уникальные фичи. Еще один пример - Raya, приложение знакомств с/для знаменитостей, перешагнуло важный рубеж в $100 млн пользовательских трат. Мораль - казалось бы, в индустрии приложений для знакомств уже есть все, что нужно. Где Тиндер и где мы? Но все же при правильном подходе найти ключ к аудитории можно и даже нужно.
Разработка
• Copilot получает Extensions
• Какие возможности клавиатур подглядеть у Tinder, YouTube и Revolut
• Геймдев, про который мы забыли: как работали 2D-игры на кнопочных телефонах нулевых
• Hidden vs. Disabled In UX
• Things You Should Never Do As A Software Engineer
Маркетинг
• Multicast Games: как удержаться на высоте в геймдеве (и как на это влияет мобильная аналитика)
• Raya, приложение знакомств для знаменитостей, зарабатывает $100 млн
Кроссплатформа
• Победители Global Gamers Challenge
• Flutter 3.22 — наше мнение
• Что Flutter 3.22 нам готовит?
iOS
• Foil — правильная обертка для UserDefaults
• SwiftUI на iOS 14: преодолевая баги и улучшая перформанс в 3 раза
• Comparing CI/CD tools for iOS
• Unleashing the Power of Web3 and Blockchain in iOS
• Safely distribute new Machine Learning models to millions of iPhones over-the-air
#ios
Разработка
• Утечки памяти в мобильных приложениях: руководство для QA-инженеров
• Writing commit messages
• How Amazon built a high-performant, durable, & consistent in-memory database
• adnan.khan.dev/test-driven-development-tdd-is-not-the-solution-dafb0021c2d5">Test-Driven Development (TDD) is Not the Solution
Маркетинг
• Web-To-Web User Acquisition Guide 202
Кроссплатформа
• Сравнение архитектурных паттернов GetX и BLoC
• Qt 6.7.1 Released
• On-device Vector Database for Dart/Flutter
• Essential Libraries for Compose Multiplatform
iOS
• Глубокие ссылки для локальных уведомлений в SwiftUI
• Подробно об акторах в Swift
• MVVM: An architectural coding pattern to structure SwiftUI Views
• Quick guide on Combine essentials in Swift
• batrakov.vitaly/how-to-modularize-monolith-ios-app-e4d0a9477c9e">How to modularize Monolith iOS App
#ios
Google запускает новую функцию, чтобы вернуть пользователей к установленным приложениям
В новостях с I/O я писал о какой-то новой странной "поверхности", которая работает с Engage SDK. Сейчас появилось немного больше информации.
1. Это своеобразные виджеты, но не от одного приложения, а от групп. С помощью этой Engage-поверхности разработчики смогут предлагать глубокие ссылки, открывающие определенные страницы в их мобильных приложениях.
2. Например, при нажатии на изображение кроссовок пользователь Android попадает на страницу приложения для покупок, где он может завершить покупку, возможно, ему будет предложено купить то, что он сохранил в своей корзине. Однако кроссовки были представлены внутри «поверхности», которая включала и другие товары, которые можно было купить в разных приложениях. Другими словами, вместо виджетов, посвященных одному приложению, новая поверхность, похоже, сможет группировать контент из похожих приложений, чтобы побудить пользователя повторить покупку и завершить свое "путешествие".
3. Функция будет не только напоминать пользователям о том, что они хотят сделать в приложении, но и подталкивать их к действию, предлагая выгодные предложения. «Вы сможете демонстрировать персонализированные рекомендации и акции, гарантируя, что пользователи обнаружат контент, который в противном случае могли бы пропустить».
4. Кроме того поверхность будет рекомендовать приложения, которые пользователи еще не установили, используя «убедительный контент» из этих приложений.
5. Engage SDK для разработчиков пока доступен только по приглашениям, но потребительский опыт будет запущен только в конце этого года.