Как мы искали применение техдолгу
Новая подборка всех статей за неделю - поиск применения App Clip и небезопасность Синглтона, инструменты Android-разработчика и победа над техдолгом в RuStore, архитектура кроссплатформенного многомодульного приложения, миллионы за считыватели QR-кодов, как мог бы выглядеть Windows Phone в 2024 и многое другое. Подключайтесь!
Разработка
• Google анонсирует новые Pixel 13 августа
• 8 микрокомпьютеров для работы с искусственным интеллектом
• ozanani/software-architecture-is-hard-71fe3ddafb60">Software Architecture is Hard
• Getting 100% code coverage doesn't eliminate bugs
Маркетинг
• Must-know LTV benchmarks for app marketers
Кроссплатформа
• sepehrtabeian/improve-your-dart-code-with-dependency-injection-understanding-loose-and-tight-coupling-4637968b925a">Improve Your Dart Code with Dependency Injection: Understanding Loose and Tight Coupling
• Advanced Theming Techniques in Flutter: Effortless Color Schemes
Android
• Scroll Block — трекер использования социальных сетей для Android
• Почему умение дебажить один из самых важных навыков для разработчика
• Как мы победили техдолг в RuStore
• 7 Kotlin Stdlib Features You Might Have Overlooked
• hrdebraj/unleashing-the-debugging-magic-cracking-android-native-shared-libraries-77efdfdf2556">Unleashing the Debugging Magic: Cracking Android Native Shared Libraries
• 4 Strategies to Secure API keys in Android Applications
#android
Android
• Топ-10 вопросов о корутинах 2024
• Как мы создали свой инструмент для доставки сборок Android-приложений
• Инструменты Android-разработчика
• Low performer в Android 2024
• How Baseline Profile Improve Skeelo Android App Performance
• A robust MVI implementation with Jetpack Compose
• How to Use ViewModel with Jetpack Compose
#android
RuStore станет обязательным
В Госдуму внесли законопроект, обязывающий продавать в России смартфоны и планшеты с установленным RuStore.
• В пояснительной записке необходимость принятия инициативы объясняется тем, что отдельные производители, прежде всего производители Apple, ограничивают установку российских приложений. Законопроект запрещает установку запретительных условий и обязывает продавать устройства с уже установленным на них магазином RuStore.
• Правда, iOS-версии магазина приложений RuStore еще нет. В случае принятия законопроекта до ее окончательного внедрения нововведения коснутся только устройств под управлением операционной системы Android.
• Однако, один из авторов проекта написал, что iOS-версия RuStore уже разработана и может появиться у пользователей техники Apple на следующий день после вступления закона в силу.
• Он отметил, что инициатива упростит жизнь российских разработчиков, которые сталкиваются с проблемами при размещении своих приложений в App Store. Принятие проекта также избавит российских пользователей от риска «нарваться на фейковые и мошеннические аппы, которых, в App Store хватает».
Предполагается, что изменения должны вступить в силу с 1 сентября 2025 года.
Android
• iCore — модульные компоненты для быстрого создания Android-приложений
• Как устроены аннотации в Kotlin. Часть 1
• Подробное руководство по Logcat в Android Studio с примерами
• Как избавиться от рекурсии, или Как мой код попал в Google
• Микширование аудиопотоков в Android
• Как мы победили техдолг в проекте Android RuStore
• What Are Dynamic App Shortcuts?
• Seamless Screenshot Testing for Compose with Screenshotbot
• Using Lists in Compose Previews
• The Starter kit for Android Platform Engineering
• Automatic (almost) resource generation from Figma for Compose
#android
Владельцы iPhone платят миллионы за считыватели QR-кодов
Люди часто интересуются, есть ли еще возможность заработать на простых приложениях, и удивляются, когда получают ответ «да».
Например, есть Scan QR Code - приложение доступно только для iPhone. По подсчетам AppFigures, оно принесло $937 тысяч чистого дохода. Чистый доход — это то, что разработчик East End Technologies оставил себе после уплаты “налога Apple”.
Всего, с момента выхода в конце 2022 года приложение было загружено 3.5 млн раз и принесло $9 млн чистой прибыли. За функцию, встроенную в iOS 🙈
Интересно узнать, приносят ли такие доходы другие сканеры QR-кодов? Можно найти все приложения, в названии которых упоминается «QR», а затем отфильтровал их, чтобы включить только те, которые заработали более 1000 долларов за последние 30 дней. Можете ли вы догадаться, сколько таких приложений? 63! 49 в App Store и 14 в Google Play, опубликованные 62 разработчиками. Один из них опубликовал два приложения.
За последние 30 дней эти 63 приложения принесли более $4 миллионов чистого дохода из App Store и Google Play, хотя большая часть дохода - более 90% - была получена в App Store.
И что: абсолютно точно вы можете зарабатывать деньги с помощью простого приложения. Просто нужно найти правильную нишу.
Видео и подкасты за неделю @AppFiles
• (iOS Ru)
iOS-приложения под защитой Apple! Или нет?
• (iOS En)
Explore Swift performance
• (iOS En)
Xcode 16 Navigation Shortcuts in 12 Minutes
• (iOS En)
SwiftUI Scroll To Hide Header View - iOS 18
• (iOS En)
Dark mode icons in iOS 18 and Xcode 16
• (iOS En)
Mesh Gradient & Floating Tab bar (iPadOS)
• (iOS En)
iOS 18 Control Center Widget - SwiftUI
• (iOS En)
Image Carousel in SwiftUI
• (And Ru)
Как избавиться от рекурсии, или Как мой код попал в Google
• (And Ru)
Микширование аудиопотоков в Android
• (And Ru)
Опыт внедрения Kotlin и Compose Multiplatform в продакшн-решение
• (And Ru)
Как мы победили техдолг в проекте Android RuStore
• (And En)
AI development assistance - Android Developers Backstage
• (And En)
Simplifying Kotlin Build Configuration with Amper
• (And En)
Why we can't have nice things in Kotlin
• (And En)
Kotlin Language Features in 2.0 and Beyond
• (And En)
Mastering WebRTC for Large Conference Calls on Android
• (And En)
Записи докладов KotlinConf'24
• (Crs En)
What Is Kotlin Multiplatform And How Does It Work?
• (Crs En)
Building Your First Compose Multiplatform Hello World App
• (Crs En)
10 Takeaways for React Native Devs from the App.js conference
• (Dev Ru)
Как решать задачи на Leetcode
• (Dev Ru)
ИИ в работе: как упростить жизнь мобильного разработчика
• (Dev Ru)
Дали менторить джуна… Все пропало?
• (Dev Ru)
Как устроен сетевой код в играх
Посоветуйте в комментариях интересные каналы по мобильной или не очень разработке?
#ios #android #mobile #video
Android
• Kaml — YAML для kotlinx.serialization
• Как я исследовал приложение Zomato, чтобы создать свою собственную систему уведомлений
• App Architecture: Deeplinks
• mohit2656422/top-10-coroutines-questions-2024-11233141634a">Top 10 Coroutines Questions 2024
• What is faster and in which tasks? Coroutines, RxJava, Executor?
#android
erid:LjN8KXEY5
Баерские посиделки: инсайты, нетворкинг и панорамные виды Москвы🎺
Эй, перформанс-маркетинг спецы, User Acquisition гуру, трафик-менеджеры и медиабаеры!
Приглашаем вас на митап, где секреты закупки трафика будут литься рекой, а море нетворкинга не будет знать берегов.
В программе:
🟢Дмитрий Матюшин, 2LEADS: "VTA всему голова?": все про работу с ин-апп трафиком, VTA-атрибуцию, борьбу с каннибализацией.
🟢 Алексей Федин, Magnetto.Pro: "Mini apps в Telegram: новый источник рекламного инвентаря": кейсы и цифры запусков рекламы в мини-аппах.
🟢Полина Кушнир, 2LEADS: "Антифродовая аналитика: как это работает": кейсы работы с антифродом, нюансы его работы.
Не упустите шанс прокачать свои навыки, расширить связи и зарядиться!
🔪Когда: 27 июня, 19:00
🗾Где: Шмитовский пр., 3, стр. 1
Регистрация
Реклама ООО"ТУЛИДС" ИНН 6317122270
Разработка
• JetBrains интегрирует Gemini в AI Assistant
• How SMS Fraud Works and How to Guard Against It
Маркетинг
• Что значит хорошая сессия в приложении — разбираемся в деталях
• Butterflies — новая социальная сеть для ИИ и людей
Кроссплатформа
• pomis172/mastering-shapes-and-clipping-in-flutter-7c7caee5bcba">Mastering Shapes and Clipping in Flutter
• How to Get the Height and Padding of the AppBar in Flutter
iOS
На WWDC 2024 одним из самых интересных инструментов был Swift Testing, который делает тестирование Swift-кода более мощным, чем когда-либо. С его помощью разработчики могут уверенно создавать высококачественные продукты с минимальным количеством кода 👇
• Введение в Swift Testing
• Apple отложила разработку второй Vision Pro ради более дешевой модели
• Coobjc — корутины для Objective-C и Swift
• rajster.miha/10-cheap-desk-upgrades-every-programmer-needs-f89d92d16de4">Create Node Modules in Swift
• Free, on-device translations with the Swift Translation API
• Creating Stunning Dynamic Text Effects with TextRender
• A preview of our upcoming UIKitNavigation library
#ios
Butterflies — новая социальная сеть для ИИ (и людей)
Butterflies - это социальная сеть, в которой люди и искусственный интеллект взаимодействуют друг с другом через посты, комментарии и сообщения. После пяти месяцев бета-тестирования приложение выходит на iOS и Android.
Любой желающий может за несколько минут создать в приложении ИИ-личность, называемую Бабочкой. После этого бабочка будет автоматически создавать посты в социальной сети, с которыми затем могут взаимодействовать другие ИИ и люди. У каждой бабочки есть история, мнение и эмоции.
Например, вы можете увидеть бабочку, которая занимается деревообработкой, выкладывающую свои последние творения. Или вы можете наткнуться на бабочку-генерального директора Costco в альтернативной вселенной, которая чертовски заинтересована в том, чтобы хот-доги стоили 1.50 доллара.
Компания Butterflies была основана Ву Траном, бывшим руководителем инженерного отдела в Snap.
«Удивительно, для чего люди используют Butterflies», - говорит Ву. «В Snap я много занимался исследованиями пользователей, но поведение в Butterflies - это что-то новое».
Ву говорит, что один человек тратил по пять часов в день на создание 300 персонажей. Он также обнаружил, что некоторые люди общаются с другими людьми на платформе, потому что они резонируют с тем, что те создали.
В одном случае два друга одновременно создали двух бабочек и дали им свои истории, чтобы те взаимодействовали от их имени. Видимо, они хотят понять, к чему они придут в итоге. Другой человек создал версию себя, живущую на вымышленном континенте Вестерос в «Игре престолов», а кто-то переделал себя в персонажа Dungeons&Dragons.
Когда я рос, я проводил много времени в онлайн-сообществах и общался с людьми на игровых форумах, - говорит Ву. - Оглядываясь назад, я понимаю, что эти люди могли быть просто ИИ, но я все равно завел несколько значимых связей. Я думаю, что есть люди, которые боятся этого и говорят: «ИИ не настоящий, иди и встречайся с настоящими друзьями». Но я думаю, что это действительно непростая вещь - «заводить друзей». У людей может быть социальная тревожность или им трудно находиться в социальных ситуациях.
Android
• Осваиваем ViewModel в Android: «можно» и «нельзя» — Часть 4
• Записи докладов KotlinConf'24
• husayn.fakher/choosing-between-sealed-classes-and-enum-classes-in-kotlin-60b71948264c">Choosing Between Sealed Classes and Enum Classes in Kotlin
• michalankiersztajn/data-mapping-in-kotlin-explained-94238b914dac">Data Mapping In Kotlin Explained
#android
Осваиваем ViewModel в Android: «можно» и «нельзя» — Часть 4
Это четвертая статья из серии «Осваиваем ViewModel в Android». Мы обсудили советы по улучшению производительности и качества кода во ViewModel, которые в настоящее время являются основным компонентом приложений для Android.
В предыдущих (1, 2, 3) частях мы уже обсуждали:
1. Избегайте инициализации состояния в блоке init{}.
2. Избегайте раскрытия мутабельных состояний.
3. Используйте update{} при использовании MutableStateFlows.
4. Старайтесь не импортировать зависимости Android во ViewModel
5. Лениво внедряйте зависимости в конструктор.
В этой части мы обсудим 6-8 пункты из списка:
6. Примите более реактивное и менее императивное программирование.
7. Избегайте инициализации ViewModel из внешнего кода.
8. Избегайте передачи параметров из внешнего кода.
Лайк, если хочешь следующие 7 😀
Видео и подкасты за неделю @AppFiles
• (iOS Ru)
А так ли нужны акторы в Swift Concurrency?
• (iOS Ru)
Swift 5.9: разбираем интероп и «женим» с С++
• (iOS Ru)
Реактивный Swift Concurrency
• (iOS En)
SwiftUI Custom Time Picker Like Apple Timer App
• (iOS En)
iOS 18 TextField Selection API - SwiftUI
• (iOS En)
Xcode 16 Navigation Shortcuts in 12 Minutes
• (And Ru)
Как запускать задачи в фоне на Android. РАЗБОР
• (And Ru)
Эволюция Android тестов с Marathon Test Runner
• (And En)
Now in Android: 108 - Android 15 Beta 3, Google AI Studio, Gemini in Android Studio, and more
• (And En)
Compose UI for... a Light Switch
• (And En)
Write your own Kotlin lint checks
• (And En)
Tap it! Shake it! Fling it! Sheep it! - The Compose Gesture Animations Dance
• (And En)
Animations with Jetpack Compose
• (And En)
7 Features in Kotlin's Standard Library that You Might Have Overlooked
• (Crs En)
How to Share Resources in Compose Multiplatform
• (Crs En)
Expect/Actual in Kotlin Multiplatform
• (Crs En)
Kotlin Multiplatform Alchemy: Making Gold out of Your Swift Interop
• (Dev Ru)
Все софт скиллы — про преодоление страха и силу воли
• (Dev Ru)
Что дальше после разработчика в Google
• (Dsg Ru)
Роль дизайнера в проекте
Посоветуйте в комментариях интересные каналы по мобильной или не очень разработке?
#ios #android #mobile #video
iOS
• Использование TextRenderer для создания выделенного текста
• Как я участвовал в iOS Widget Challenge и что из этого вышло
• kalidoss.shanmugam/why-singleton-is-not-safe-in-swift-for-ios-development-c4e231cb49a7">Why Singleton is Not Safe in Swift for iOS Development
• ryan_willis/navigating-accessibility-a-swiftui-vs-uikit-comparison-40dfc94cfffa">Navigating Accessibility: A SwiftUI vs. UIKit Comparison
• How to quickly run your iOS app in a different language
• iOS 18 TextField Selection API - SwiftUI
#ios
Еврокомиссия предварительно выдала заключение, что Apple таки нарушает основополагающие принципы DMA. В данном конкретном случае, по мнению Еврокомиссии, сторонние разработчики должны иметь возможность бесплатно информировать клиентов об альтернативных возможностях покупки и прямо указывать цены за них. Но расследование ведется и в отношении CTF, и в отношении комиссии Apple за оплату в интернете, и за сложную установку сторонних магазинов. Грозит Apple 10% от мирового оборота, так что несложно предположить, что все эти вещи компания скоро отменит/изменит 🈸
Разработка
• Как мог бы выглядеть Windows Phone в 2024
• Our Experience with CodeRabbit: A Game-Changer in Automated Code Review
Маркетинг
• RuStore станет обязательным
• 6 шагов успешного продвижения e-commerce приложения — кейс Технопарк и Rocket10
• Apple нарушает закон ЕС о цифровых рынках
Кроссплатформа
• Flutter: Detecting Cyclic Dependencies in a Monorepo
• shakilbd/kotlin-multiplatform-vs-flutter-08f8f6178011">Kotlin MultiPlatform vs Flutter
iOS
• InjectionIII — Hot Reloading для Swift
• Running a package from Xcode Build phase
• Using multi-step animations in SwiftUI
• Using TextRenderer to create highlighted text
#iOS
Еще одна новинка WWDC - Apple анонсировала открытие нового API, позволяющего разработчикам интегрировать инструмент перевода Apple в свои приложения. Можно переводить строки, тексты, наборы строк и т.п. Работает все на основе собственного приложения Translate, его словарей и моделей - я так понял, что если их нет, то и перевода нет (впрочем, это не точно). Это так же означает, что работает все на устройстве и не требует денег. Так что если вы запарились копировать/вставлять все в онлайн переводчики - Apple все придумала за вас.
Разработка
• Как решать задачи на Leetcode
• ИИ в работе: как упростить жизнь мобильного разработчика
• Дали менторить джуна… Все пропало?
• Как устроен сетевой код в играх
• Как я развиваю свое приложение для хранения прочитанных книг?
• From the 80's to 2024 - how CI tests were invented and optimized
• Programmers Should Never Trust Anyone, Not Even Themselves
Маркетинг
• Владельцы iPhone платят миллионы за считыватели QR-кодов
• WWDC 24: что нового во встроенных покупках
• Google приостанавливает распространение игр на реальные деньги в Play Store
Кроссплатформа
• Архитектура кроссплатформенного многомодульного приложения
• Опыт внедрения Kotlin и Compose Multiplatform в продакшн-решение
• What can I do with “Extension Types” in Dart?
• Measure and optimize your Flutter app size
iOS
• Hero анимация в SwiftUI с помощью NavigationTransition
• Apple открывает Translate API
• Xcode 16 потребует 16 Гб для работы Predictive Code Completion
• Как мы искали применение App Clip… и нашли?
• AccessorySetupKit будет проще подключать сторонние устройства
• TPPDF — создание PDF для iOS и macOS приложений
• iOS-приложения под защитой Apple! Или нет?
• Exploring Translation Framework: Language Availability
• What’s new in SwiftUI for iOS 18
• Extend your Xcode Cloud workflows
• Is it just me or I still find SwiftUI lacking in major areas as my app scales up?
#ios
WWDC 24: что нового во встроенных покупках
Коллеги из Apphud написали для нас обзор WWDC по встроенным покупкам. Вот что вышло:
• Устаревание StoreKit 1
• Улучшения в StoreKit 2
Win Back предложения
StoreKit Views
Улучшения тестирования покупок в приложениях
• Xcode 16
• AdAttributionKit
Интересная статья по “усталость” (Fatigue) Senior-разработчиков. Термин “усталость” тут , конечно, слегка неправильный, но в позиции автора с ростом карьеры разработчики накапливают мудрость и усталость. Усталость в данном случае - от освоения новых технология и переход на осозннанную разработку. Переход к более утонченной стратегической роли в инженерной карьере. Когда вы делаете не меньше, а по-другому, и, что самое важное, вы делаете то, что имеет значение. Так что замедлитесь и устаньте от бесконечного кода. Начните думать
Разработка
• Усталость Senior-разработчиков
• WebView: быстрый релиз, никаких ревью в сторах, а минусы есть?
• Let’s write a video game from scratch like it’s 1987
Маркетинг
• Varioqub: за Mann-Whitney замолвите слово
Кроссплатформа
• 10 Takeaways for React Native Devs from the App.js conference
• The Ultimate Guide to React Native Optimization (2024 edition)
iOS
• У Apple «очень серьезные» проблемы с DMA
• Эти айфоны ещё будут жить: пишем и деплоим свои приложения из XCode на старые iPhone
• Preparing your App Icon for dark and tinted appearance
• Swift Testing: Getting Started
• iOS CI/CD With Azure DevOps: Automate Your Release Process
#ios
Как я исследовал приложение Zomato, чтобы создать свою собственную систему уведомлений
Если вам в приложении не хватает каких-либо функций - можно сделать их самому! Например, в приложении Zomato для Android нет нормального уведомления для отслеживания статуса заказа. Заходить постоянно в приложение лень? Лень. Разработчик взял снифер, отследил конечные точки, взял из них информацию и написал собственное подобие Live Activity с данными о доставке практически в реальном времени.
И что: будь как автор! Не нравится - сделай сам 🥗
Android
• Android Device Streaming на базе Firebase в бета-версии
• Dive into Object-Oriented Programming with Kotlin
• stefanoq21/jetpack-glance-86a2fc30dd5d">Jetpack Glance
• Creating flexible components in Compose
#android
Большинство разработчиков стремится повысить свой грейд, но как и куда расти, если ты амбициозный мидл или уже синьор? Откуда брать насмотренность и опыт, если ты ограничен задачами своей компании, а одними статьями на Хабре проблему не решить?
Чтобы расти в профессии и получать крутые офферы, разработчик может прокачать навык построения архитектуры. Он может собрать библиотеку из каналов, статей и видео или пройти полноценный курс.
Курс «Архитектор ПО» от Практикума поможет развить навык решения архитектурных задач. Техлиды Яндекса и других компаний покажут противоположные архитектурные подходы. Благодаря этому разработчику не придётся учиться на своих ошибках — он научится на опыте коллег. За 6 месяцев курса он разработает и добавит в портфолио 5 архитектур.
Курс подойдёт бэкенд-разработчикам, которые:
— работают 2+ лет;
— хотят развиваться на текущей позиции и повышать свой грейд;
— хотят получить должность лида или архитектора ПО.
Успейте записаться на ближайший поток по ссылке ←
С мест докладывают, что Apple остановила работу над Vision Pro 2. По слухам, продажи первой гарнитуры не то чтобы восхитительны. Впрочем, вряд ли можно было ожидать большего от пока еще нишевого устройства стоимостью $3500. Как пишет The Information, вместо новой Pro версии, компания будет работать над более дешёвой моделью, которая будет выпущена в 2025 году 🥽 Так что пока можно тренироваться делать приложения на дорогой версии, а когда выйдет "народная" версия быстро перейти на нее.
Разработка
• Как в 2024 выложить приложение в Apple Store и Google Play
• Senior Engineer Fatigue
Маркетинг
• Топ быстрорастущих приложений в России в июне
Кроссплатформа
• Connectivity — мониторинг сети для Kotlin Multiplatform
• От ручной работы к автоматизации: наш путь к идеальной доставке сборок Flutter
• Flutter Add-to-App: как добавить Flutter в приложение
• sparkleotech/flutter-best-practices-for-2024-build-better-apps-faster-3330243d119a">Flutter Best Practices for 2024: Build Better Apps Faster
• santimattius/kmp-essential-tools-and-plugins-for-kotlin-multiplatform-application-development-6ffcccdef6a8">KMP: Essential Tools and Plugins for Kotlin Multiplatform Application Development
• 9dan_/introducing-solidart-a-simplified-approach-to-flutter-state-management-inspired-by-solidjs-009d6558e4d4">Introducing Solidart: A Simplified Approach to Flutter State Management Inspired by SolidJS
iOS
• Zoom navigation transition in SwiftUI
• Enhanced replace transition for SF Symbols in iOS 18
• Introduction to Swift Testing Framework
• Bringing native AI to your mobile apps with ExecuTorch
#ios
Вы не Google
Разработчики сходят с ума от самых нелепых вещей. Нам нравится думать, что мы гиперрациональны, но когда нам нужно выбрать технологию, мы в некоторой степени становимся безумными — мы прыгаем от комментария одного человека на Hacker News к посту другого в блоге до тех пор, пока не сдаемся и не дрейфуем в ступоре к самому яркому световому пятну, на самом деле забыв о том, что мы искали в самом начале.
Рациональные люди принимают решения не так, но так разработчики принимают решение использовать MapReduce.
—
#самоповтор из 2020 года. Ничего не изменилось, только вместо MapReduce теперь можно подставить ИИ.