iOS
• Control Room: управление симуляторами в Xcode
• Как использовать CoreMotion для получения сенсорных данных
• Многомодульное iOS-приложение: подходы к организации межмодульного взаимодействия
• Безопасная локализация строк в iOS: Localinter
• “That little island changes everything”
• nerohoop">iOS Interview Prep 1-8
• A complete failure of MVVM+C in SwiftUI
• Mock Generator Development With Using Mockolo Library
• Step-by-Step Jenkins Setup for iOS in 2023
#ios
🤖 Ты Android разработчик? - Проверь себя, пройди тест!🦾Хочешь расти дальше и создавать быстрые, оптимизированные приложения для Android - тогда наш курс для тебя
!
Пройди тест из 20 вопросов и проверь свои знания. Сможешь сдать — пройдёшь на продвинутый курс "Android Developer. Professional " от OTUS по специальной цене.
🎫Возможна оплата курса в рассрочку
👉 ПРОЙТИ ТЕСТ: https://otus.pw/a9Ma/
И получи в подарок демо ролик о занятиях на курсе
Хочешь протестировать учебный процесс заранее? Тогда приходи на открытый урок курса!
▶️ 02 июня в 20:00 открытый урок «Профайлинг ui». Нативная интеграция. Информация о продукте www.otus.ru
Android
• Telephoto: работа с изображениями в Compose
• Реализация прогресс бара при отправке или загрузке файлов
• Making Graph Plotting Function in Jetpack Compose
• Simple implementation of Material 3 switches in Preferences
• Using PreviewParameters and providing Composables to Jetpack Compose Previews
• 30 ideas to reduce your Gradle Build times
• muizhassan83/how-i-added-gamepad-support-to-android-virtual-device-9d36ac33caa6">How I added Gamepad Support to Android Virtual Device
#Android
Apple, вслед за Google, отчиталась о борьбе с мошенничеством в App Store в 2022. Заблочили 428,000 учетных записей разработчиков (в 2021 было уничтожено 802,000 аккаунтов), 105,000 заявок на участие в программе разработчиков Apple были отклонены по подозрению в мошенничестве, было отключено более 282 млн учетных записей клиентов, связанных с мошеннической и неправомерной деятельностью, почти 1.7 миллиона приложений были отклонены, 153,000 приложений были признаны спамом, подражателями или вводящими в заблуждение, 29,000 приложений были отклонены из-за наличия скрытых или недокументированных функций, 400,000 приложений были отклонены из-за нарушения конфиденциальности, Apple заблокировала почти 3.9 млн украденных кредитных карт и запретила 714,000 аккаунтов совершать повторные транзакции, в общей сложности в 2022 году Apple заблокировала в App Store мошеннических операций на сумму 2.09 млрд долларов.
Разработка
• Как Apple боролась с мошенничеством в App Store в 2022
• 30 советов для эффективного проектирования пользовательского интерфейса
• Маск призвал отказаться от работы на дому
• Building Obsidian, Tinder’s Design System
• anfonn/5-types-of-bad-product-managers-that-no-one-talks-about-6a4c549bb930">5 types of bad product managers that no one talks about
• Fundamental Differences of Compose and SwiftUI
Маркетинг и аналитика
• Доходы приложений 2023: отчет Data.ai
• Один сервис, чтобы коннектиться со всеми, или как я интегрировал игру с VK и немного увлекся
Кроссплатформа
• kvenn/dart-3-0-best-new-features-why-you-should-care-429e739f2690">Dart 3.0: Best New Features & Why You Should Care
• React Native: Ultimate Guide to Create a Home Screen Widget for iOS and Android
Доходы приложений 2023
Data.ai выпустила отчет State of App Revenue 2023, в котором рассматривает вопросы рекламы и покупок в приложениях.
1. В 2022 году на неигровые приложения пришлось около $220 млрд (65%) из 336 млрд долларов, потраченных на мобильную рекламу. Но если отойти от больших соцсетей и стримингов, то 70% расходов на мобильную рекламу пришлось на игры.
2. Большая часть доходов мобильной рекламы приходится на Северную Америку - 46%.
2. Половина из $167 млрд, потраченных потребителями на мобильные приложения в 2022 году, пришлась на iOS. На Google Play пришлось 27% расходов на магазины приложений, а на сторонние магазины в Китае (где Google Play недоступен) - оставшиеся 23%.
3. Неигровые приложения получили 71% дохода от подписок.
4. Почти половина всех доходов от IAP в играх в США приходится на IAP стоимостью менее $10. Однако значительная часть доходов все еще поступает от IAP с самой высокой ценой - более $100.
И что: давно уже монетизация и маркетинг стали самой сложной частью мобильного бизнеса. Нужно все больше времени уделять тонким настройкам и вовлечению пользователей именно в покупки.
iOS
• Exploring the Composable Architecture Framework
• SwiftUI Picker, Toggle, Slider and Stepper Fully Explained
• katramesh91/how-to-build-uikit-like-mvvm-c-coordinator-hierarchy-with-swiftui-d758b035f91a">How to build UIKit like MVVM-C Coordinator hierarchy with SwiftUI
• GetInRhythm/closures-vs-combine-vs-async-await-993eb1da4d44">Closures Vs. Combine Vs. Async Await
#ios
Грант до 500 000 ₽ на облачные сервисы #CloudMTS
Можно применить на:
– Готовые мощности в публичном облаке и простое управление виртуальными машинами
– Сервисы для управления кластерами K8s и брокером сообщений Apache Kafka в облаке
– Хранение данных нужного объема и формата с доступом через интернет
– Сервисы управления сетью в облаке
Воплощайте крутые цифровые проекты в облаке #CloudMTS 💥
Подробнее об условиях Акции и о сервисах, доступных в рамках Акции, — на сайте: https://bit.ly/3NbdTdR
Оставляйте заявку, получите подтверждение, и команда #CloudMTS рассчитает Грант под ваш проект.
Реклама. Рекламодатель ПАО «МТС», ИНН 7740000076
iOS
• Поток данных SwiftUI с примерами
• SwiftUI в Авиасейлс
• Z Combinator for Hacker News: клиент на SwiftUI
• uladzislau.komar/%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D1%8B-%D0%B2-swift-actors-in-swift-35d6618b6d02">Акторы в Swift
• Flexible Continuous Integration for iOS
• Attempting to connect a tvOS app to an iOS app with DeviceDiscoveryUI
• Parallax header effect in SwiftUI using CoordinateSpace
• Spotlight on: Passkeys
• Statically-typed JSON payload in Swift
• Learning SwiftUI, when you already know UIKit
#ios
Приложение frfr взлетело в топ App Store в США
На этой неделе на вершину чартов, пусть и на короткий миг, поднялось новое приложение.
1. frfr (строчными буквами, одно «fr» вероятно означает «for real», а второе — «friends») — это приложение для анонимного обмена голосовыми сообщениями.
2. Его простая иконка, основная суть, скриншоты и общий тон очень напоминают Gas. Помните Gas? Приложение, которое в прошлом году штурмом взяло топ-чарты, платформа для анонимного общения, предназначенная для тинейджеров. Gas набрал миллионы загрузок, а затем был продан Discord и исчез почти так же быстро, как и появился.
3. Приложение frfr официально запустилось в апреле, и до начала мая, когда количество загрузок начало расти, оно не добилось никакого реального успеха. Но в мае сначала немного, а затем все быстрее frfr достиг в субботу 6 мая пика в 170 тысяч установок,
4. По состоянию на среду, frfr уже имел 729 тысяч загрузок в App Store и Google Play.
И что: как я писал еще, кажется, про Gas - анонимность + подростки = ядреный рецепт
. Сообщения были, аудио есть, не хватает анонимных картинок 😀
📲 Тинькофф проведет Android-митап в Петербурге
Встреча пройдет 18 мая в особняке «Пальма». Ребята расскажут, как адаптировать ваше Android-приложение для поддержки устройств с большими экранами, и разберут возможности SDK. В конце митапа выступит Кирилл Розов с докладом про запуск задач в фоне.
Не забудьте зарегистрироваться и позвать с собой коллег.
🗓 До встречи 18 мая в Петербурге на IT’s Tinkoff Mobile Meetup!
Android
• Compose Rich Editor: редактор текста для Jetpack Compose и Compose Multiplatform
• I/O
Итоги конференци: искусственный интеллект и новые гаджеты
• I/O
Машинное обучение на Android-устройстве
• I/O
Google выпускает Compose for TV
• I/O
Android Studio на I/O 23: разговорный чат-бот
• I/O
Google I/O 2023. Что нового в Kotlin для Android?
• I/O
Что нового в Jetpack Compose
• I/O
Вышла альфа Compose for TV
• I/O
Что нового в Jetpack
• I/O
Вторая бета Android 14
• I/O
Что нового в Google Play
• I/O
Что нового в Android Health
• I/O
Новый логотип Android Studio
• I/O
Watch Face Format для Wear OS
• I/O
Что нового в Android for Cars
• JavaCard как второй фактор аутентификации в Android-приложении
• Как Kinect только Pinect
• I want to run any number of Android UI tests on each PR. Your actions?
• mmbialas/10-open-source-projects-thatll-make-you-excited-about-using-jetpack-compose-80c40550c32b">10 Open-Source Projects That’ll Make You Excited About Using Jetpack Compose
• Modularizing Our Driver App For Android
• Goodbye to Activity Lifecycle and Hello to Compose Lifecycle
• agarwalayushi568/from-data-to-ui-jetpack-compose-phases-a1281a1913e5">From Data to UI : Jetpack Compose Phases
#Android
Ладно, вроде основные темы I/O более менее понятны (конечно, AI, кто бы сомневался), самое время для традиционного голосования - понравилась вам конференция или нет?
Разработка
• System Design Blueprint: The Ultimate Guide
Маркетинг и аналитика
• Мобильная аналитика в hh.ru и не только
• How are video games tricking you?
Кроссплатформа
• Анонс Dart 3
• Mobile multiplatform development at McDonald’s
• First Impressions Integrating KMM Into a Brownfield Project
• 8 Useful Tips for Better UX in Flutter
• sajjadmakman/flutter-4-0-new-features-33bdd9b8c004">Flutter 4.0 New Features
Недавно Telegram анонсировал шаринг папок и мы с пацанами собрались и поделились ресурсами, которые ведем и читаем:
🧑💻 Топовые ресуры по iOS-разработке
Каждый из этих каналов и чатов вносит свой вклад в продвижение и популяризацию iOS, и здесь вы можете найти ответы на свои вопросы или узнать что-то новое.
Здесь собраны авторские источники, лучшие сообщества и можно встретить даже авторов книг!
Вы можете оставить самое важное для себя или отфильтровать список позже.
Посмотреть список и выбрать себе:
🔗 Всё, что нужно для разработки в одном списке.
В Android Studio будет ИИ-бот
Начинаем изучать новинки I/O 23 и сразу нововведения в Android Studio:
• Android Studio Bot - разговорный чат-бот встроят прямо в IDE. Поможет генерировать код, можно будет задавать вопросы о разработке или исправлять ошибки.
• Live Edit - показывает изменения при внесении обновлений в пользовательский интерфейс Compose.
• Kotlin DSL и Version Catalogs, помогающие вам использовать преимущества более современного синтаксиса и соглашений при настройке сборки.
• Языковые предпочтения для каждого приложения.
• Обновление Build Analyzer, который предоставляет сводку времени, потраченного на загрузку зависимостей, и подробный обзор загрузок по репозиториям
• Новый Android SDK Upgrade Assistant.
• Виртуальные устройства Google Pixel Fold и Google Pixel Tablet.
• Эмулятор Wear OS 4 Developer Preview.
• Самое ценное напоследок - у Android Studio новый логотип!
И многое другое . Вы можете загрузить Android Studio Hedgehog Canary или Android Studio Giraffe Beta уже сегодня, чтобы включить новые функции в свой рабочий процесс.
iOS
• Atoms: управление состояниями в Swift
• Как стать iOS-разработчиком?
• Using TabularData to Dump Model Data
• Implicit self for weak self captures
• Instagram like Animated Searchbar in SwiftUI
• Exploring Circular Paths: How to Create a Circular Text View in SwiftUI
• Universal Links implementation on iOS
Ко вчерашнему голосованию - App Store победи Google Play по всем пунктам. Стал лучше для 19% против 17, остался таким же 25% против 20, хуже 12 против 19. Так что Apple в относительно правильном направлении движется. И это не говоря о распределении доходов. Надо через год еще одно голосование провести и еще раз сравнить результаты 😊
Разработка
• Разработчики все чаще получают советы от ИИ, а не от Stack Overflow
• Stability AI выпустила открытый ИИ-генератор изображений StableStudio
• Удобный онбординг в мобильном приложении
• dbottiau/the-rise-of-the-serverless-monoliths-63d3d2d98164">The Rise of the Serverless Monoliths
Кроссплатформа
• How I won Telegram's $50,000 Sticker App Contest using Flutter
#dev
От копипасты к prompt engineering
Как и прогнозировали умные люди, Stack Overflow начал стагнировать. По данным SimilarWeb, cайт теряет свои позиции в качестве источника, к которому разработчики обращаются за ответами на вопросы по программированию.
1. В марте трафик SO упал сразу 14% по сравнению с прошлым годом.
2. В тоже время ChatGPT растет по экспоненте.
3. Ок, вряд ли можно сравнивать нишевой SO и разговорный ИИ общего назначения, но даже если взять GitHub, то трафик нему растет, а SO все равно падает.
4. Так, количество посещений страницы регистрации CoPilot утроилось всего за два месяца.
И что: обсуждение вопросов генерации кода большими языковыми моделями продолжается, но поворот от поиска и размещения вопросов на Stack Overflow к работе с ИИ, похоже, уже произошел. Новый трюк для ленивых эффективных программистов — просить ChatGPT, CoPilot или Bing Chat писать код, а не копипастить его со SO.
iOS
• Apple: Send us your feedback and report bugs
• Swift: How to use CoreMotion to obtain sensorial data
• onlyapps/measuring-ping-in-ios-apps-a-simple-solution-13be82a15bf3">Measuring Ping in iOS Apps: A Simple Solution
• afsanafarheen28/integrating-swiftui-in-uikit-seamless-data-communication-87903890a78d">Integrating SwiftUI in UIKit: Seamless Data Communication
• How to identify parts of speech and names in a text with Swift
• Downloading fonts on iOS
• Ranges in Swift explained with code examples
#ios
❗️ Как использовать Deep Links и Universal Link iOS-разработчику?
🔥 Приглашаем 26 мая в 20:00 мск на бесплатный вебинар в OTUS на котором мы покажем, как правильно организовать навигацию с помощью Deep Links и Universal Links в SwiftUI.
📚 На вебинаре:
— Расскажем о технологии Deep links на iOS.
— Произведем настройку сервера и клиентского приложения для работы с этой технологией.
— На примере приложения на SwiftUI мы покажем, как можно открыть определенный экран с помощью Deep links.
👉🏻 Регистрация на вебинар: https://otus.pw/Z7Kn/
❗️ Не упустите шанс узнать больше о технологии, которая может значительно улучшить пользовательский опыт в вашем приложении.
Вебинар пройдет в рамках онлайн-курса «iOS Developer. Professional» в OTUS.
Нативная интеграция. Информация о продукте www.otus.ru
Android
• 10 открытых проектов, которые заставят вас полюбить Jetpack Compose
• В каких случаях использовать функцию derivedStateOf из Jetpack Compose
• Перформанс 2ГИС для Android.
• daniel.atitienei/get-current-user-location-in-jetpack-compose-using-clean-architecture-android-6683abca66c9">Get Current User Location in Jetpack Compose Using Clean Architecture
• Android Dependency Inversion — Avoid rewriting your app
• Understand Drawing Arc of A Path In Jetpack Compose Canvas
• Exercises in futility: Jetpack Compose Recomposition
В топе очередная медитативно-философская история о том, что рано или поздно (скорее рано) все, что вы делаете, превратится в технический долг и устареет. Что с этим делать автор в общем не говорит (с одной стороны - ну а что можно сделать? все так и есть, а с другой ладно, говорит - смириться с несовершенством и пилить как не в себя), но если у вас есть ностальгия по “старым добрым временам” Visual Basic 6 или Windows CE, то почитать в самый раз.
Разработка
• Вся моя 20-летняя карьера — это технический долг или устаревший код
• $ 20 млн в посевном раунде: Together — открытые генеративные модели ИИ
• Intrinsic Flowstate — платформа программирования промышленных роботов
• Как мы придумали и запустили совместные поездки в Яндекс Go
• tsecretdeveloper/steve-jobs-you-were-wrong-about-the-best-developers-60767c7286e3">Steve Jobs: You Were Wrong About The Best Developers
• Maybe That Code Isn’t “Clever”, Maybe You Aren’t!
Маркетинг и аналитика
• «Мою собаку может украсть голубь»: мы узнали страшное о собачниках, пока делали для них мобильное приложение
Кроссплатформа
• Six-Sided Puzzle: паззлы на Flutter
• Comparing M2 mini vs. M1 mini vs. Mac Pro
• Dart 3: A Comprehensive Guide to Records and Futures
#dev
Android
• Shady: галерея AGSL-шейдеров
• Разбор Android 13 для разработчиков
• KSP CODE GENERATOR: пишем код, который пишет код (по юнит тестам)
• Все видео Google I/O 2023
• Jetpack Compose: Expandable Text
• Picture in Picture Mode в android. Показываем видео в мини-окне
• Create Custom Jetpack Compose Animations
• Migrating to Jetpack Compose: a step by step journey
• Why you need ViewModels and why you don't
• Introducing the Android UI design hub
• Using Kover for Effective Code Coverage in Kotlin Projects
• maydin/technology-radar-2023-april-for-android-developers-60c73ad010eb">Technology Radar 2023 For Android Developers
• Network Connectivity Service using callbackFlow and Jetpack Compose
• Using PreviewParameters and providing Composables to Jetpack Compose Previews
#android
Apple опубликовала независимое исследование “небольших” разработчиков. Небольшие - это до 1 миллиона долларов или до 1 миллиона установок. Так вот, по данным Analysis Group 90% разработчиков в App Store являются такими, но примечательно другое - для тех, кто работал еще в 2020, доходы в 2022 в среднем выросли на 71%. То есть почти в два раза. Мелочь, а приятно ☺️
Разработка
• Доходы небольших разработчиков в App Store выросли на 71% за последние 2 года
• Stability AI выпускает Stable Animation SDK
• Как в Тинькофф эволюционировали процессы работы с аналитикой
• QA, автотесты и образование
• Как найти работу в IT?
• Что разработчики думают об ИИ — исследование Directus
• Как я адаптировал игру к экранам мобильных устройств
• Tips and tricks for exploring a new codebase
• Designing a Step Goal Live Activity
• Why an Engineering Manager Should Not Review Code
• Why We Over-Engineer Software (and How to Break the Habit)
Маркетинг и аналитика
• Приложение frfr взлетело в топ App Store в США
Кроссплатформа
• Четыре платформы — один код. Что такое Compose Multiplatform?
• Using Compose for a UI component in a SwiftUI screen
• Dart 3.0: An exciting step toward greatness!
• Flutter достиг 1 миллиона опубликованных приложений и усиливает поддержку веба
#dev
Тёмная сторона Android 13
Новый еженедельный дайджест - 79 материалов за прошедшие несколько рабочих дней. Прочитайте, поговорите, поставьте 👍 или 🤯, поделитесь, подпишитесь, поддержите. И присоединяйтесь к IT Insights, где новости и статьи про код, технологии и все самое интересное за пределом мобайла. Вот, например, у меня там был пост "Смерть метавселенных" - публицист Эд Зитрон называет три главных причины того, почему метавселенные не взлетели.
Видео и подкасты за неделю:
• (iOS Ru)
SwiftUI в Авиасейлс
• (iOS En)
7 Tips to Display Text Like a Pro in SwiftUI
• (iOS En)
SwiftUI Custom Tab Bar With Orientation Support
• (And Ru)
KSP CODE GENERATOR: пишем код, который пишет код (по юнит тестам)
• (And En)
Все видео Google I/O 2023
• (And En)
How to Build a Swipeable Image Slider in Jetpack Compose
• (And En)
How to Use the Google Play In-App Update API
• (Dev Ru)
Как в Тинькофф эволюционировали процессы работы с аналитикой
• (Dev Ru)
QA, автотесты и образование
• (Dev Ru)
Как найти работу в IT?
• (Mrk En)
No-Budget DIY Marketing for Indie Games
Посмотрели какое-то другое интересное видео? Отправьте боту -> 🧑🏻💻
iOS
• Готовим наши приложения к Swift 6
• Swift async/await на примерах
• Реализуем Универсальные ссылки на iOS
• 5 essential tools and tips for every iOS developer
• mobile_44538/swiftgen-how-to-neatly-get-rid-of-magic-strings-in-ios-projects-952334f56f95">SwiftGen — How to neatly get rid of magic strings in iOS projects
• Flexible Continuous Integration for iOS
• Building Better iOS Apps with Swift Composable Architecture
• How to Build a Sokoban Puzzle Game in Swift
• Building a Room Scanning App with the RoomPlan API in iOS
#ios
Еще в тему каналов - официальный российский магазин приложений для Android, RuStore, запустил телеграм канал
Менее чем за год аудитория стора превысила 10 млн человек, а разработчики загрузили туда уже более 6 тысяч приложений. На канале команда стора:
• познакомит с платформой;
• расскажет новости стора и индустрии;
• анонсирует новые фичи;
• поможет с освоением консоли разработчика и т.д.
Подписывайтесь, чтобы точно ничего не пропустить
Новинки Google I/O 2023
• Что нового в Jetpack Compose
• Вышла альфа Compose for TV
• Что нового в Jetpack
• Вторая бета Android 14
• Машинное обучение на Android-устройстве
• Что нового в Google Play
• Что нового в Android Health
• Чат-бот в Android Studio
• Новый логотип Android Studio
• Watch Face Format для Wear OS
• Что нового в Android for Cars
Платформа: Android
Android
• ChatGPT vs TDD: я пишу юнит тесты, а он выдает код
• SpinDot: анимированные лоадеры для Android
• Собеседование в Android-команду Тинькофф
• «Внешняя» навигация в многомодульном проекте на Kotlin
• Как я получил сертификат Associate Android Developer
• Functional Error Handling in Kotlin
• 10kanake/screenshot-testing-composable-with-paparazzi-library-e766006d0705">ScreenShot Testing Composable with Paparazzi Library
• Media transcoding and editing, transform and roll out!
• How to implement Biometric Authentication in Android using Kotlin
• Statistically Rigorous Android Macrobenchmarks
• Blazing fast Composables
На Google I/O традиционно ничего не происходит. Из более или менее интересного - MusicLM для генерации музыки по текстовому описанию, Dart 3 для Flutter и не только, шутка про мессенджер, который работает на всех платформах. Впрочем, кейноут идет прямо сейчас, так что, может быть, не все еще потеряно. Завтра посмотрим.
Разработка
• Как Prime Video масштабировал службу мониторинга и снизил затраты на 90%
• Лучшие сайты с бесплатными иконками, которые я использую ежедневно
• $100 млн в Серии D: UVeye — автоматизированный осмотр автомобилей
• Meta открыла мультисенсорную модель ИИ, объединяющую шесть типов данных
• Бэкенд, мобилки, ремесло и гвозди
• Accessibility митап
• Правильно оцениваем задачи. Топовые ошибки программистов
• Podlodka #318: Backend Driven UI
• Slack ставит ИИ в центр пользовательского опыта
• Как правильно подходить к UI/UX дизайну
• Про тестирование мобильных приложений. Часть 3. Cквозное (UI, e2e) тестирование
• Как мы вывезли "Весёлого водовоза" в доставку за час: про код и не только
• How to do a UX accessibility evaluation?
• The UX Design Case Study That Got Me Hired
• 30 Practical Tips for Effective User Interface Design
Маркетинг
• Amazon Anywhere предлагает продажу товаров мобильным играм и приложениям
• Сколько зарабатывают ИИ-чатботы?
• Самые скачиваемые приложения в апреле 2023
• Апдейт по рекламе мобильных приложений: на каких площадках искать пользователей в 2023 году
• How Tinder drives over $1.6 billion in revenue
Кроссплатформа
• Проектируем Flutter-приложение «чистым» способом используя bloc
• One Codebase, Two Platforms: How I Migrated My Android App to KMP for iOS
• Announcing Dart 3