Как сломать то ли дом, то ли лабораторию
Новая подборка всех статей за неделю - оцениваем результаты WWDC и Apple Intelligence, тащим GeckoView в Почту и понимаем ошибки ChatGPT, рассказываем про самые скачиваемые и зарабатывающие приложения в России в мае, ломаем бинарный код и многое другое.
Французская каузальная Voodoo за 500 миллионов евро купила BeReal. Voodoo утверждает, что в настоящее время у BeReal более 40 миллионов ежемесячных активных пользователей, половина из которых пользуется приложением не менее шести дней в неделю. Voodoo утверждает, что приобретение даст BeReal «возможность продолжить инновации в области новых функций и сфокусироваться на росте». Тем не менее, о проблемах социальной сети говорят уже с год - рост пользовательской базы остановился, а вменяемый способ монетизации команда так видимо и не нашла. Так что продажа Voodoo, кажется, лучший выход для создателей. Зачем это гиперказуальщикам не совсем понятно, но видимо скоро узнаем.
Разработка
• C++ впервые обогнал C в рейтинге TIOBE
• How terminal works
• Redesigning Pinterest’s Ad Serving Systems with Zero Downtime
Маркетинг
• VK запускает сервис для A/B-тестирования и анализа новых функций в приложениях и сайтах
• Какие приложения «скопировала» Apple на WWDC 2024
• Voodoo покупает BeReal
Кроссплатформа
• Как быстро запустить мобильное приложение для веб-сервиса: опыт Авиасейлс для бизнеса
• Flutter - long term review. What is happening?
iOS
Будет ли работать такой код?
let offset: Double = 5.0;
let index: Int = 10;
let angle = (180.0 - offset + index * 5.0) * .pi / 180;
Будущее ChromeOS - это использование Android
Сегодня компания Google объявила о том, что ChromeOS в будущем будет «в значительной мере разрабатываться на основе стека Android».
• В частности, ChromeOS будет использовать ядро Android Linux и фреймворки Android.
• В качестве примера можно привести то, как ChromeOS уже переходит на Bluetooth-стек Android после того, как ранее поддерживала свой собственный. Переход (с Bluez на Fluoride) привел к ускорению сопряжения, а также к повышению успешности сопряжения Bluetooth и повторного подключения.
• Google назвала искусственный интеллект одной из главных причин этого шага: «Привнесение технологического стека на базе Android в ChromeOS позволит нам ускорить темпы внедрения инноваций в области искусственного интеллекта в ядро ChromeOS».
Работа, в которой участвуют производители чипов и оборудования, «начинается уже сейчас» и «не будет готова для потребителей в течение некоторого времени».
Вчера была WWDC, но хотел обратить внимание на статью, которая ярко характеризующую использование ИИ в разработке - “Как одна ошибка ChatGPT стоила нам $10,000+”. Чуваки из YC пилили подписку и генерировали модели для БД с помощью ChatGPT. Ну тот и нагенерил так, что UUID у них на сервере практически не менялся, и из-за этого пользователи не могли подписаться. Усугублялось это тем, что серверов было несколько и в рабочее время они активно деплоили, в результате пул ID скидывался и все работало. А по ночам они просто теряли подписчиков с катастрофической скоростью - как минимум на $10К. Так что генерить код прекрасно, но понимать нагенеренное еще лучше 🙈
Разработка
• The Ultimate Guide to Becoming a Rockstar Product Engineer
Маркетинг
• How to improve your voluntary churn
• Decoding user behaviour: leveraging cognitive biases in app development
Кроссплатформа
• Когда проснулся и узнал, что существуют PWA
• dudhatkirtan/what-is-buildcontext-in-flutter-e45b9dfea839">What is BuildContext in Flutter
iOS
• Искусственному интеллекту – быть: какие обновления представила Apple на WWDC 2024
• WWDC 2024. Обсуждаем, что по факту
• WWDC 2024. Чем удивляют разработчиков
• Что нового в Xcode 16: ИИ и лучшие Preview
• @Previewable: динамические превью SwiftUI
• Apple предлагает разработчикам свой генеративный ИИ Apple Intelligence
• Что нового в Swift 6?
• Псевдоним типа в Swift
• How to automatically apply promotional text and ‘What’s new’ notes to new versions in Swift using the App Store Connect API
• How GitHub reduced testing time for iOS apps with new runner features
#ios
Что нового в Xcode 16
Xcode 16 приносит много обновлений. Главное - появление ИИ, которое отметили еще в кейноуте. В Xcode появится предиктивное завершение кода, основанное на модели машинного обучения, специально разработанной для Swift и SDK Apple. Для предиктивного завершения кода требуется Mac с Apple Silicon и минимум 16 ГБ объединенной памяти под управлением macOS 15.
Кроме того:
• Поддержка EditorConfig
• Explicitly built modules - более действенные сообщения об ошибках, улучшенная производительность отладчика и лучшие решения по планированию, которые максимизируют параллелизм. Теперь LLDB может напрямую импортировать явно собранные модули Swift и Clang.
• Новый алгоритм дедупликации кода обеспечивает дополнительную экономию объема кода и улучшенную производительность линковки
• Новый механизм выполнения для Preview - общие продуктовые сборки между Build, Run и Preview, переключение между ними происходит мгновенно
• Preview теперь поддерживает предварительный просмотр представлений внутри статических библиотек
• Вы можете вырезать текст из редактора исходных текстов, а затем использовать «Новый файл из буфера обмена» для быстрого извлечения части исходного файла в новый файл
• Ссылки на папки с возможностью сборки - записывайте в файл проекта только путь к папке, не перечисляя содержащиеся в ней файлы. Это минимизирует изменения в проекте при добавлении и удалении файлов и позволяет избежать конфликтов с командой по контролю исходного кода
• Swift-DocC теперь предупреждает о документации для параметров и возвращаемых значений, которая не существует для данного документированного API
• Множество функций в Instruments
• Swift Testing - совершенно новый фреймворк тестирования, созданный для Swift с нуля
Видео с WWDC: https://www.youtube.com/watch?v=BAQ9EhAm2eM
Release Notes: https://developer.apple.com/documentation/xcode-release-notes/xcode-16-release-notes
Android
• Bytemask — плагин Gradle для шифрования секретных строк
• Как мы разобрали монолитное приложение для бизнеса на модули
• Кодревью опенсорс проекта или как выглядят 10 лет технического долга
• Сколько памяти нужно для сборки? Android-разработчикам о JVM
• Как создать аудиоплеер. Часть 3
• Что скрывает State в Compose
• Everything about Customizing coroutine contexts in kotlin
• Accessibility Tests in Compose - Name, Role, Value
#android
Рынок кроличьих нор
Новая подборка всех статей за неделю - исследуем рынок работы для iOS-разработчиков, используем ИИ и проходим кроличьи норы оптимизации, погружаемся в мир Lint-a, строим BDUI, определяем рынок мобильных приложений в 1 квартале 2024 года и многое другое. Подключайтесь!
Видео и подкасты за неделю:
• (iOS Ru)
Как не наломать дров с Live Activity
• (iOS En)
Glitch Text Effect - SwiftUI
• (iOS En)
Vertical Circular Carousel - SwiftUI
• (iOS En)
Modern UIKit: Sneak Peek, Part 1
• (iOS En)
Meet Core Location Monitor
• (iOS En)
Detect animal poses in Vision
• (And Ru)
Кодревью опенсорс проекта или как выглядят 10 лет технического долга
• (And Ru)
Сколько памяти нужно для сборки? Android-разработчикам о JVM
• (And Ru)
Что скрывает State в Compose
• (And En)
Automatically Adjust Navigation Based On Screen Size With NavigationSuiteScaffold
• (And En)
Kotlin 2.0, Google IO, Android 15 and More
• (And En)
KotlinConfersations'24
• (And En)
Compose Migration Side Effects - What Can Go Wrong?
• (Crs Ru)
Best practices локальной аутентификации на Flutter
• (Crs En)
Full Stack Flutter, Firebase and Riverpod – Build a YouTube Clone
• (Dev Ru)
Баланс между скоростью и надежностью: переиспользовать нельзя перепроверять
• (Ind Ru)
Инди-хакинг: как программисту работать на себя — доход на пет-проектах
• (Dev Ru)
Разработчики против тестирования
• (Dev Ru)
Побывав в шкуре тимлида - взгляд разработчика изнутри
Посоветуйте в комментариях интересные каналы по мобильной или не очень разработке? 🌐 @AppFiles
#ios #android #mobile #video
Android
• Сам себе экосистема: итоги. Как работают мои самопальные клиенты ВК, YouTube, Telegram на смартфонах 13-летней давности
• zorbeytorunoglu/why-your-baseactivity-is-anti-pattern-kotlin-delegations-a270e98fc87f">Why your “BaseActivity” is anti-pattern. Kotlin Delegations
• KaushalVasava/geofence-in-android-8add1f6b9be1">Geofence in Android
• thomas.bernard.310/jetpack-compose-keyboard-cheat-sheet-c3107070e005">Android Jetpack Compose Keyboard Cheat Sheet
#android
Рынок работы для iOS-разработчиков - обсуждение в Reddit
Прочитал (@AppTractor) все обсуждение и на самом деле все не так плохо. Да, много тех, кто много месяцев не может найти работу, но много и тех, кто нашел почти сразу. К тому же, скорее всего, человек без работы скорее оставит тут отзыв, чем человек с работой.
Прогноз в целом положительный:
Я надеюсь, что в конце этого года, когда процентные ставки упадут, ситуация улучшится. Компании печально известны отсутствием проницательности. Они переборщили с наймом во время пандемии и переборщили с увольнением сейчас. Надеюсь, они найдут баланс. Оставайтесь в безопасности и повышайте свою квалификацию, мальчики и девочки.
Android
• Jetpack Compose: совместимость с System UI и иммерсивная строка состояния
• ModuleCheck — быстрая проверка графа зависимостей для Gradle
• Android- WorkManager in Clean Architecture
• fatiharslan2634/mastering-android-multi-module-architecture-with-convention-plugins-bfee89f3ec38">Mastering Android Multi-Module Architecture with Convention Plugins
• Build a Cat Chatbot using Gemini on Android
• Concurrency & Networking in Android
• Composition Over Inheritance In Kotlin Explained
#android
Почему я бросил Android-разработку после 10 лет и чем планирую заниматься сейчас
В этой статье я расскажу о том, почему я навсегда ушел из Android-разработки, проработав в этой отрасли почти десять лет.
Перевод: https://apptractor.ru/android10
—
#самоповтор из 2022 года. Удивительно, но автор почти смог - перешел на Flutter 😀
Ни месяца без нового магазина для iOS! В июне запускается Aptoide, игровой магазин с 6 (шестью) играми (это в 3 раза больше, чем 2 приложения у AltStore, но все же чувствуется что-то не то... 🥸), а в будущем планируют подключить еще "сотни разработчиков". Главное отличие в занятной схеме разделения доходов - если пользователь нашел приложение через поиск или рекомендации в магазине, компания берет 20%, если же разработчик привлекает пользователей через платную рекламу или через свои каналы, то “налог” составляет 10%. Чуть менее интересно, что пользователей собираются принимать по списку ожидания, чтобы не превысить лимит в 1 миллион установок и не платить Apple пресловутый CTF. Определенно, Aptoide к успеху идет.
Разработка
• NTP для мобильных разработчиков: Как точное время повысит качество ваших приложений
• How Figma overhauled their Performance Testing Framework
Маркетинг
• Aptoide запускает альтернативный магазин игр для iOS в ЕС
Кроссплатформа
• Встроенные коллекции Dart: как реализовать в коде основные структуры данных
• Streamline Flutter Development with Clean Architecture
• Dependency Injection in Compose Multiplatform
• callmeryan/releasing-my-first-true-kotlin-multiplatform-app-60d81e739eb0">Releasing my First True Kotlin Multiplatform App
Видео и подкасты за неделю @AppFiles
• (iOS Ru)
iOS под санкциями
• (iOS Ru)
Как сократить вес приложения: переносим картинки и строки локализации на сервер
• (iOS En)
Главное выступление WWDC 2024
• (iOS En)
Выступление Platforms State of the Union
• (iOS En)
What’s new in Xcode 16
• (iOS En)
New Text Renderer API in SwiftUI - Xcode 16
• (iOS En)
What’s New in SwiftUI
• (iOS En)
I rebuilt the visionOS from scratch
• (And En)
Now in Android: 107 - KotlinConf, Android Studio updates, I/O recaps, AndroidX updates, and more
• (And En)
Top 3 updates around Compose across form factors at Google I/O ‘24
• (And En)
Why I Stopped Using popBackStack() to Navigate Back
• (And En)
Add Real-Time Features to your Mobile App with Darryn Campbell
• (And En)
Reified Type Parameters
• (Crs En)
KMP vs. Flutter - Who Will Win The Cross-Platform Battle?
• (Dev Ru)
Ошибки и исключения под капотом — Прерывания, try-catch, монады
• (Dev Ru)
BDUI как стратегия мобильного приложения
• (Dev En)
Learn High-Level System Design by Coding YouTube – Full Course
Посоветуйте в комментариях интересные каналы по мобильной или не очень разработке?
#ios #android #mobile #video
Android
• Дэйв Бёрк уходит с должности вице-президента по разработке Android
• Будущее ChromeOS — это использование Android
• Android: Проблема отрисовки в Jetpack Compose
• Creating Custom PDFViewer in Jetpack Compose Android
• Debugging dependencies in Gradle
• Creating Custom Annotations
• Dynamic Layouts with ContextualFlowRow and ContextualFlowColumn
• Reified Type Parameters
#android
Как улучшать архитектурные навыки в ежедневных задачах по программированию
Есть много способов расти как разработчику, но все они требуют большого времени и усилий. Я предлагаю практические упражнения, которые могут быть частью ваших повседневных задач, без необходимости начинать собственный проект или проходить курсы.
Статья: https://apptractor.ru/info/articles/kak-uluchshat-arhitekturnye-navyki-v-ezhednevnyh-zadachah-po-programmirovaniyu.html
—
#самоповтор из 2021 года. Разработка - вечное самосовершенствование. Даже не знаю, хорошо это или плохо 😵💫
⚡️Руководитель команд разработки и один из разработчиков мобильного приложения Яндекс Карт рассказали, как они росли вместе с проектом.
Хотите так же? Это возможно 💯
Команда мобильной разработки Карт и Навигатора расширяется, и мы ищем:
➡️ iOS-разработчика
#Москва #Белград #iOS
Что вы будете делать: участвовать в разработке мобильного приложения для iOS, глубоко прорабатывать задачи команды, совершенствовать процессы и инфраструктуру разработки.
➡️ Android-разработчика
#Москва #Android
Что вы будете делать: участвовать в разработке мобильного приложения для Android, помогать расширять возможности существующих сценариев и создавать новые.
Приходите, будем расти вместе💪
Реклама. ООО "Яндекс", ИНН 7736207543.
Android
• Как и зачем мы затащили GeckoView в Почту
• Как сломать скомпилированный код, не нарушая бинарную совместимость
• KotStep — пошаговые компоненты для Jetpack Compose
• MVI at Eventbrite
• The elephant in the room: How to update Gradle in your Android project correctly
• Automating large scale refactors using lint and generative AI
#android
Искусственному интеллекту – быть: какие обновления представила Apple на WWDC 2024
Вот еще один обзор по конференции:
Значительную часть летней конференции Apple уделила внедрению искусственного интеллекта в свои устройства и традиционно рассказала об обновлениях операционных систем своих устройств. Технический директор студии разработки мобильных приложений CleverPumpkin Александр Кияйкин внимательно посмотрел презентацию и поделился главными новостями, которые нельзя пропустить.
Ну что, как вам WWDC 2024? Перемещение иконок по экрану и калькулятор на iPad, конечно, amazing, но вот интеграция с macOS выглядит действительно круто. Как и автономные агенты, которые понимают задачи и приложения с помощью AI. Ну а Genmoji вообще топ :) А самое главное - еще AI приходит в Xcode. Ждем Platforms State of the Union. Ниже традиционный опрос про конференцию.
Разработка
• Как одна ошибка ChatGPT стоила нам $10,000+
• Управление мотивацией для соло-разработчика
• Обнаружены вредоносные расширения VSCode с миллионами установок
• Разработчики против тестирования
• Баланс между скоростью и надежностью: переиспользовать нельзя перепроверять
• Инди-хакинг: как программисту работать на себя — доход на пет-проектах
• Agile увеличивает риск провала проекта на 268%
• How to Build Anything Extremely Quickly
Маркетинг
• Самые скачиваемые и зарабатывающие приложения в России в мае 2024
• Самые скачиваемые и зарабатывающие приложения в мире в мае 2024
Кроссплатформа
• Best practices локальной аутентификации на Flutter
iOS
• Победители Apple Design Awards 2024
• Как не наломать дров с Live Activity
• Check Update iOS — проверка новой версии в App Store
• iOS-разработчики в 2024 году: какие нужны скилы и как проходит процесс найма
• Concurrency in Swift 6
• SwiftUI Bottom Sheet: How to Hide Unwanted UI Components
#ios
Agile увеличивает риск провала проекта на 268%
Исследование показало, что вероятность провала программных проектов, использующих Agile-методики, на 268% выше, чем у тех, кто их не использует.
Хотя исследование, проведенное по заказу консалтинговой компании Engprax, можно рассматривать как тонко завуалированную рекламу методологии Impact Engineering, оно усиливает подозрения в том, что Agile-манифест может оказаться несколько переоцененным.
• Вероятность успеха проектов с четкими требованиями, задокументированными до начала разработки, была на 97% выше. Для сравнения, один из четырех столпов Манифеста Agile — «Работающее программное обеспечение важнее исчерпывающей документации».
• Согласно исследованию, составление спецификации до начала разработки может привести к 50% увеличению успеха, а обеспечение точности требований по отношению к реальной проблеме — к 57%.
• Вероятность успеха проектов, в которых инженеры чувствовали свободу в обсуждении и решении проблем, была на 87% выше.
И что: зачастую проблемы кроются вовсе не в этой методологии разработки. К тому же легко забыть, что у других методологий есть свои недостатки.
В Stack Overflow провели опрос 1700 разработчиков об использовании ИИ-помощников. Большинство респондентов (76%) сообщили, что используют или планируют использовать ИИ-помощники для программирования. Среди мобильных разработчиков таких 60%. Лидируют ChatGPT и GitHub Copilot, однако по совокупности увеличение продуктивности/удовлетворенность абсолютный лидер Codeium. Так что будете внедрять - попробуйте его.
Разработка
• Какой ИИ и как помогает разработчикам — опрос Stack Overflow
• Смартфоны станут основным форм-фактором для ИИ
• Mobius 2024 offline. День второй
• 5 Best Practices for the Sign-up Flow
Маркетинг
• Клиентская миграция: как бизнес переводит клиентов из старого приложения в новое
Кроссплатформа
• Automate Flutter Deployments to App Store and Play Store using Fastlane and Github Actions for a lazy developer
• sanjaysharmajw/live-tracking-flutter-9e2621a863eb">Live Tracking — Flutter
iOS
• Рынок работы для iOS-разработчиков — обсуждение в Reddit
• SwiftfulRouting — программная навигация для SwiftUI
• GPT vs Copilot: кто лучший помощник в написании UI-тестов для iOS?
• Swift at 10
• Creating custom buttons and hover effects in visionOS
• Creating gradient on polylines in SwiftUI MapKit
• Glitch Text Effect - SwiftUI
#ios
На Reddit большое обсуждение поиска работы для iOS-разработчиков. Даже не знаю, радоваться или огорчаться, вроде как не сильно все отличается от России - толпы некачественных джунов, которых никуда не берут, сотни претендентов на вакансии, 30-40 собеседований, поиск работы на любую позицию занимает около полугода, люди уходят в пресловутый Flutter, RN и другие направления. 👍 если написать обзор
Разработка
• Raspberry Pi 5 получит свой ускоритель ИИ
• Как мы строили BDUI: опыт Яндекс Маркета
• Работа над ошибками: как мы сделали приложение World Class удобнее
• Managing My Motivation, as a Solo Dev
Маркетинг
• Рынок мобильных приложений в 1 квартале 2024 года — отчет Sensor Tower
Кроссплатформа
• jacobras/apps-using-compose-multiplatform-on-ios-now-beta-in-2024-developer-insights-fe24b224d754">Apps using Compose Multiplatform on iOS in 2024 — developer insights
iOS
• ChatGPT для Swift: 5 лучших промптов для генерации кода
• Has anybody here been laid off? How’s the market for devs right now?
• Vertical Circular Carousel - SwiftUI
#ios
Рынок мобильных приложений в 1 квартале 2024 года
У Sensor Tower вышел отчет о мировом рынке мобильных приложений в 1 квартале 2024 года. Вот некоторые интересные цифры из него.
• Расходы пользователей выросли почти на 10% по сравнению с 2023 годом — до $35.8 млрд.
• Приложения выросли на 19.4% ($15.5 млрд), игры на 2.9% ($20.3 млрд).
• Траты на iOS выросли на 11.5%, на Android на 5.3%.
Традиционно iOS более чем вдвое опережает Android по доходам.
Android
• Вглубь еще одной кроличьей норы оптимизации
• Что такое sealed класс — вопросы с собеседований
• Погружение в мир Lint'a в Android-проекте
• The Best Way to Learn as an Android Developer
• Region specific resources and broken localization
• Everything you want to know about Functional interfaces in Kotlin
• How I Finally Memorized Modifier Ordering in Compose
#android