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 года. Платформа до сих пор работает и меряет все что ни попадя. 👍 если интересные такие "исторические" новости, 🥱 если вы ретроград
Если вы всегда хотели знать, но боялись спросить какова судьба эмуляторов игр, которые совсем недавно разрешили в App Store, то у AppFigures уже есть ответ - судьба незавидная. Delta, который выпускается дольше всех и является самым удобным в использовании, также является самым популярным эмулятором игр в App Store. Он был приложением №1 по количеству загрузок, как среди приложений, так и среди игр. За это время он был установлен на 5.3 млнустройств, и это довольно скромная оценка. Большая часть загрузок, примерно 37%, пришлась на США, на втором месте — Китай. Остальные были распределены по 75 с лишним странам. Но… после “медового месяца” загрузки стали стремительно падать. Сейчас игровой эмулятор занимает 47-е место в американском App Store, а количество загрузок сократилось почти до десятой части от того, что было в первые дни. За последние несколько дней было выпущено еще три новых эмулятора, включая Gamma, PPSPP и RetroArch. PPSPP достиг пика на 3 месте в американском чарте, но довольно быстро сошел на нет, а два других даже не попали в топ-10. Причина проста - ни один из этих эмуляторов не обеспечивает удобного доступа к играм и не имеет предустановленных игр. Вместо этого они предлагают запутанный способ скачивать пиратские игры и возиться с их установкой.
Разработка
• Fortran и COBOL снова вошли в Индекс TIOBE
• Грабим Дома на Собеседовании в Google
• Особенности построения интерфейса для разных платформ
• Как я code coverage внедрял да Gradle plugin для baseline писал
• Avito QA meetup
• JetBrains выпускает Aqua — IDE для автоматизации тестирования
• Слежка через пуш-уведомления на смартфонах
• Case Study: UX/UI Design of the First Licensed Digital Bank in Mexico
• maha-/developers-spend-close-to-57-of-their-time-firefighting-than-innovating-cisco-survey-98243c963c9c">Developers spend close to 57% of their time firefighting than innovating
Маркетинг
• Эмуляторы ненадолго захватили App Store и быстро сошли на нет
•
Кроссплатформа
• Полнодуплексное соединение во Flutter
• Announcing the winners of the Global Gamers Challenge
• Consuming Jetpack Paging KMP code in SwiftUI and Compose clients
iOS
• SwiftSecurity — современный фреймворк для Keychain API
• Новый App Store Transparency Report
• TimecodeKit — таймкоды SMPTE для Swift
• TextField с автодополнением
• SwiftUI-навигация: просто, нативно и декларативно
• Удивительный мир внутри .ipa
• Core Motion framework в финансовых приложениях
• SwiftUI: Camera App with AVFoundation
• Running code when App is Ready
• Build your next website in Swift
• Understanding typography in visionOS
• What Does spacing = nil Mean in SwiftUI?
#ios
Fortran и COBOL снова вошли в Индекс TIOBE
Индекс TIOBE призван отразить относительную популярность компьютерных языков, поэтому стало неожиданностью появление в Топ-20 двух языков, появление которых датируется пятидесятыми годами.
1. Войдя в Топ-20 в апреле 2021 года, Fortran продолжает расти и теперь поднялся на самую высокую за всю историю позицию — №10. Это действительно достижение для языка, который впервые был выпущен в октябре 1956 года с полным названием «Система трансляции формул IBM» (The IBM Formula Translating System).
2. "Основная причина воскрешения Fortran — растущая важность численных/математических вычислений. Несмотря на множество конкурентов в этой области, у Fortran есть причины для существования. В джунглях языков Фортран кажется быстрым, имеющим встроенную поддержку математических вычислений, зрелым и бесплатным. Тихо, медленно, но верно Фортран завоевывает позиции. Это удивительно, но неоспоримо".
3. Другой legacy-язык, который растет в индексе TIOBE — это COBOL. В январе 2024 года он вновь вошел в Топ-20 ,потом выпал, а в этом месяце снова оказался там на 20 месте.
4. Разработанный в 1959 году, COBOL до сих пор широко используется в legacy-системах, лежащих в основе критически важных бизнес-операций в таких отраслях, как банковское дело, страхование и здравоохранение. Его наивысшая позиция в индексе TIOBE была №8 в 2001 году, и хотя можно было бы ожидать, что он уже давно сошел со сцены, исследование 2022 года, проведенное по заказу поставщика COBOL компании Micro Focus, показало, что организации все еще держатся за свой COBOL-код, и что количество приложений на COBOL на самом деле не сокращается, а растет.
И что: старый, но не устаревший (С) И эти люди говорят про legacy код годичной давности 😀
Разработка
• Стоит ли сегодня идти в айти?
• 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 для разработчиков пока доступен только по приглашениям, но потребительский опыт будет запущен только в конце этого года.
Android
• Генеративный ИИ в Android и эффективность фоновой работы приложения — важное с Google I/O 2024
• Как создать аудиоплеер. Часть 1. Что под капотом
• Путешествие к центру Композиции
• Scout: новый фреймворк для ускоренного и безболезненного управления зависимостями
• Компиляторные плагины: модификация и анализ Сompose
• morganes56/from-junior-to-senior-the-real-way-to-implement-clean-architecture-in-android-8514005e85e1">From Junior to Senior: the real way to implement Clean Architecture in Android
• Jetpack Compose Best& Bad Practices with Common Usages
• Inline, noinline, crossinline, reified — Kotlin inline and the bytecode magic
• Android, Compose and automated screenshots making
#android
Новый App Store Transparency Report
Apple опубликовала второй Отчет о прозрачности App Store
• Всего в App Store 1,870,119 приложений это немногим больше прошлого года
• Всего на review было подано 6,892,500 приложений
• Отклонено 1,763,812 версий приложений
• Основные причины отклонения - Performance, Legal и Design
• Удалено приложений - 116,117 . Подано 18,628 апелляций на удаление приложений. Восстановлено приложений - 322. То есть шанс восстановиться - 1.7%.
• Всего зарегистрированных разработчиков - 42,219,169. Это примерно на 5 миллионов больше, чем год назад.
• Закрыто аккаунтов разработчиков - 117,843
• Еженедельное количество посетителей в App Store - 734,673,588
• Количество скачиваний приложений в неделю - 787,999,950
• Повторных скачиваний - 1,656,894,821
• Среднее количество пользователей в неделю, которые ищут что-либо в App Store - 398,499,012
Карантин I/O
Подборка всех статей за неделю - обсуждаем прошедшую I/O, проводим карантин UI-тестов, смотрим как Notion ускорил запуск на Android в 2 раза, отмечаем новые Flutter и Dart, боремся с догмами программирования и многое другое. Залетайте!