🚀 Подключайся к Usetech Mobile MeetUp (UMM) #1
Не попал на весенние конференции по мобильной разработке или не удалось задать вопросы экспертам? 6 мая в 15:00 по Мск присоединяйся к первому онлайн-митапу по мобильной разработке от ГК Юзтех.
В программе:
🔊«SwiftUI сейчас. Стек, советы, рекомендации» Анна Жаркова, лид мобильной разработки в ГК Юзтех
🔊 «НЕмультиплатформенные привычки Android разработки» Алексей Панов, техлид инфраструктуры мобильных приложений в Контур
🔊 «Пять лет с Flutter: эволюция кроссплатформенности» Евгений Сатуров, руководитель команды Flutter-разработки в SURF
Регистрируйся на митап по ссылке.
🤩 Авторы самых интересных вопросов получат фирменных юзтех-уточек в подарок!Реклама. ООО "ЮЗТЕХ ПРОФЕШНЛ". ИНН 7717745183.
Android
• Firebase Kotlin SDK — Kotlin-first SDK для Firebase
• Безопасность Android-приложений. Реверсим OWASP MASTG Crackme 1
• Обзор архитектуры Compose с использованием паттерна «координатор»
• How to detect Process Death issues
• Android Navigation: Up vs Back
• fvilarino/shared-element-transitions-in-jetpack-compose-8f553078101e">Shared Element Transitions in Jetpack Compose
• riztech.dev/enhancing-retrofit-api-calls-in-android-using-interceptors-4c39433f1985">Enhancing Retrofit API Calls in Android Using Interceptors
#android
Как рефакторинг чуть не разрушил мой брак
Я не говорю, что код должен жить вечно. Требования меняются, появляются новые технологии.
Я хочу сказать, что разработчики должны быть гораздо осторожнее в определении понятия «устаревший» и в том, насколько активно они прибегают к рефакторингу.
Ваша роль как менеджера заключается в том, чтобы помочь команде найти баланс — представлять разработчиков, бороться за время для рефакторинга, когда вы считаете, что это необходимо, но также представлять бизнес-сторону и давать отпор, если вы считаете, что рефакторинг не является критичным в данный момент.
Из аналитики AppFigures узнал о новом тренде - приложениях для стриминга «короткометражных драм» (Short Drama). Четкого описания не дается, но очевидно, что это сериалы, снятые в формате коротких мобильных видео. Что в них интересного? Во-первых, некоторые из этих приложений имеют огромные подборки видео, и хотя контент не совсем соответствует качеству Netflix, он и не является кустарным. Во-вторых, монетизация - большинство приложений для просмотра короткометражных фильмов требуют не подписки, а покупки монет, а затем их использования для просмотра контента. Наконец, за последний год доход, полученный приложениями с короткими драмами, вырос более чем на 13,000% — с сотен тысяч до десятков миллионов долларов. В марте они получили более $65 млн. потребительских расходов по всему миру. В январе 2023 года было менее $500 тыс — рост на 13,000% всего за год.
Разработка
• Сделайте что-то реальное в свободное время
• Как устроена мобильная разработка в Кинопоиске
• Пробить стеклянный потолок и стать сеньором
• Инженерная культура BigTech: работа мечты или испытание на прочность?
• Дай знать, где ты находишься: как мы разработали навигатор по Эрмитажу
• From Hired!… to Fired! Avoid these 2 Developer Career Death Traps
• Top 10 Cognitive Biases in Product Design
• UI/UX Case Study: Designing a gamified app to help users manage screen time
Маркетинг
• Разработчики игр для Playdate заработали $544,290.12
• Новый тренд в стриминге зарабатывает миллионы
• Линеаризация: зачем и как укрощать ratio-метрики в A/B-тестах
Кроссплатформа
• Create a multiplatform app using Ktor and SQLDelight
• React Native Masters: Tips for Building React Native Apps that Run Smoothly
iOS
• Создаем гистограмму с помощью Swift Charts
• Zephyr — синхронизация UserDefaults через iCloud
• А так ли нужна Swift Modern Concurrency?
• Мгновенный фидбэк: как оперативно получать отзывы о приложении в App Store
• My favorite Xcode keyboard shortcuts to be more productive
• Trigger value pattern in SwiftUI
• Deep Dive Into Macros
• Initializing @MainActor type from a non-isolated context in Swift
• Getting started with Apollo iOS for GraphQL in Swift
#ios
Разработчики игр для Playdate заработали $544,290.12
Исполнилось два года с того момента, как команда Panic выпустила Playdate, свою уникальную портативную игровую систему с ручкой, и год с открытия магазина игр Catalog .
1. С момента запуска магазина было продано более 150,000 игр. Это дало разработчикам $544,290.12 валового дохода - после уплаты налогов, комиссии за обработку и 25% доли дохода Panic за распространение.
2. Покупателям было продано более 70,000 Playdate. 38 000 пользователей Playdate, около 53%, совершили покупку в Каталоге. Около 32,000 пользователей, которые не купили ни одной игры, все еще играют в игры, включенными в Playdate Season One.
3. Средняя цена игры Playdate составляет $5.36. Цены на игры Playdate зависят от разработчика и могут быть как низкими — $1, так и высокими — $15. Самые популярные регионы для покупки игр — США, Великобритания, Германия, Канада и Япония.
4. Panic предоставляет SDK для создания игр Playdate на языках C и Lua с соответствующим симулятором. Есть и пример создания игр на Swift.
И что: вроде не очень большой рынок, но активный и увлеченный - будет только расти. Для хобби-проектов - самое оно.
Видео и подкасты за неделю:
• (iOS Ru)
А так ли нужна Swift Modern Concurrency?
• (iOS Ru)
Мгновенный фидбэк: как оперативно получать отзывы о приложении в App Store
• (iOS En)
Your guide to Metal ray tracing
• (iOS En)
Integrate Screen-Sharing Into a SwiftUI App
• (iOS En)
SwiftUI Custom Transitions
• (iOS En)
Building Netflix UI Animations
• (And Ru)
Устройство Android Music SDK или как мы встроили музыку в суперапп-приложение
• (And Ru)
Интеграция MediaPipe в Android-приложение видеоконференцсвязи
• (And En)
Now in Android: 103 - Android 15 Beta, Gemini in Android Studio, Google Drive improvements, & more
• (And En)
MVVM vs. MVI - Understand the Difference Once and for All
• (And En)
The ONLY Thing to MASTER as an Android Developer (And Why 99% FAIL!)
• (And En)
Boosting Bazel adoption on Android with automation
• (And En)
Inline Functions: inline, crossinline, and noinline
• (Dev Ru)
Инженерная культура BigTech: работа мечты или испытание на прочность?
• (Dev Ru)
Как устроена мобильная разработка в Кинопоиске
• (Dev Ru)
Пробить стеклянный потолок и стать сеньором
Посоветуйте в комментариях интересные каналы по мобильной разработке? 🌐 @AppFiles
Нашел на Reddit забавный пост с 5 уроками по результатам 5 лет разработки. За 5 (пять) лет чувак сделал 1 (одно) приложение (ну да, да, front-end, back-end, dev-ops и т.д., но все же) и делится опытом. Собственно, все советы применимы практически к любой области/ Смотрите сами - в скобках моя альтернативы:
1. Flutter (iOS/Android/..) достаточно.
2. Сообщество сделало это до вас
3. Просите помощи. ИЛИ НЕ ПРОСИТЕ
4. Игнорируйте ненавистников
5. Лучшие знания бесплатны
А какие уроки вы вынесли из своей карьеры? ☺️
Разработка
• Using server-side Swift for machine learning processing
• Basic Things
Маркетинг
• Как повысить рейтинг приложения: практическое руководство по запросу отзывов
Кроссплатформа
• 5 уроков после 5 лет разработки на Flutter
• Advanced Theming Techniques in Flutter: Leveraging Extensions for Dynamic UIs
• Accessibility in Flutter on the Web
iOS
• AltStore PAL заработал на iOS в Европе
• Gradiente — простые градиенты
• 4 блога для IOS-разработчиков
• О, вы из Англии? Локализация Ozon Seller на iOS
• Is Dynamic Isolation Bad?
• How to use experimental Swift versions and features in Xcode?
• CountryKit: the framework Apple forgot to build
#ios
AltStore PAL заработал на iOS в Европе
Первый альтернативный магазин приложений для iOS запустился в Европейском союзе.
1. На удивление, это даже не магазин Epic, а AltStore PAL от Райли Тестута.
2. Магазин стоит €1.50 в год для компенсации Core Technology Fee.
3. Пока в нем всего 2 (два) приложения от самого Тестута - Delta, эмулятор, способный воспроизводить игры NES, SNES, Nintendo 64, Game Boy, Game Boy Advance и Nintendo DS, и Clip, менеджер буфера обмена, запрещенный Apple. Сейчас Delta бесплатна, чтобы помочь компенсировать оплату самого магазина, но загрузка Clip требует минимального ежемесячного взноса на Patreon в размере €1 (плюс налог).
4. В целом AltStore PAL интегрируется с Patreon для монетизации и в будущем будет работать для разработчиков, которые хотят распространять версии приложений за счет краудсорсингового финансирования, что не разрешено в App Store. В AltStore PAL приложения будут размещаться разработчиками на собственных серверах, а пользователям придется добавлять дополнительные «источники» в магазин приложений, чтобы загрузить другие программы.
И что: начало так себе - долго, дорого и херово - но это начало. Ждем RuStore других магазинов.
Android
• Android 15 может получить возможность помещать приложения в карантин
• Kotlin Faker — генератор фейковых данных
• Kodein DI для Android. Целостность графа и тесты на DI
• Extending Coil
• andrejkingsley/plotting-financial-data-in-kotlin-with-kandy-66757aef05ef">Plotting Financial Data in Kotlin with Kandy
• Nested LazyColumn in Jetpack Compose
#android
Сложно ли создать мобильное приложение? Какие инструменты и навыки нужны для работы в сфере Android-разработки? На эти и другие вопросы ответим на мини-курсе Skillbox!
Регистрация: https://epic.st/Tj1CGf?erid=2VtzqvFoytB
Мини-курс подходит новичкам. Вам не нужно знать код, чтобы вникнуть в основы и понять принципы разработки мобильных приложений.
Будет 4 интенсивных занятия, на которых вы:
— изучите основы разработки приложений на Android ОС;
— познакомитесь с инструментами для разработки;
— узнаете, как создавать UI — внешний вид приложений на Android;
— напишете собственное приложение музыкального плеера.
Спикер — Анна Жаркова, руководитель группы разработки в компании Usetech. Спикер на конференциях AppsConf, Mobius, TechTrain, DroidCon (2022, 2023), YaTalks. В мобильной разработке с 2013 года.
Всех участников ждут бонусы: чек-листы, гайды, персональная карьерная консультация, сертификат на скидку 10 000 рублей и год бесплатного изучения английского языка.
Определитесь на практике, подходит ли вам сфера мобильной разработки! Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
Закончили публикацию про Trio от Airbnb. Это такой фирменный фреймворк для управления экранами/навигацией в Jetpack Compose. Традиционно очень интересно, ни хера непонятно. Он в свою очередь построен на базе Mavericks, библиотеки управления состояниями для Jetpack. Из преимущества - Trio хранит данные в ViewModel, делает навигацию типобезопасной, код чистым и декларативным. Традиционное “НО” - вероятно за пределами Airbnb фреймворк крайне избыточен. Однако если вы хотите посмотреть как работают большие компании - обратите внимание.
Разработка
• Clean Architecture: Complexity over Simplicity?
Маркетинг
• Boost Your App's Rating: A Practical Guide to App Review Prompts
Кроссплатформа
• Опыт внедрения компонентной разработки
• Efficiency Unleashed: The Power of Automation in Our Flutter Adventure
• How to Find Memory Leaks in Flutter Apps?
iOS
• FontBlaster — программная загрузка шрифтов
• Apple объяснила удаление первого эмулятора Game Boy из App Store
• Reflection в iOS: как посмотреть содержимое любой сущности
• Splitting Up a Monolith: From 1 to 25 Swift Packages
• Swift 6 upgrade Preparation
• Fetching OSLog Messages in Swift
• Bar Chart creation using Swift Charts
• Getting started with Benchmark package
• How to quickly get a PrivacyInfo.xcprivacy file for your iOS app
• Defining Custom Errors With Advanced Descriptions In Swift
#ios
Apple объяснила удаление первого эмулятора Game Boy из App Store
Ранее в этом месяце Apple пересмотрела свои правила App Store, впервые разрешив в нем приложения-эмуляторы игр. В субботу было одобрено одно из первых таких приложений: iGBA. Это приложение позволяло пользователям импортировать и воспроизводить ROM, загруженные из Интернета. Однако в воскресенье приложение уже было удалено из App Store без объяснения причин. Сейчас они последовали.
1. Apple заявила, что удалила iGBA из App Store за нарушение двух правил App Store: раздела 5.2 об авторских правах и раздела 4.3 о спаме.
2. iGBA для iPhone и iPad была, по сути, лишь клоном открытого проекта Райли Тестута GBA4iOS с рекламным наполнением.
3. То есть iGBA удалили не из-за того, что оно поддерживало импорт ROM, загруженных из Интернета, а из-за копирования открытого проекта (кого это когда волновало, но ооокееей).
И что: в целом это отличная новость для будущего приложений для эмуляции игр на iPhone и iPad. Это означает, что Apple разрешает эмуляторы игр всех видов, включая те, которые позволяют пользователям импортировать сторонние ROM. В целом такая практика вызывает опасения в связи с пиратством и авторскими правами, но Apple, видимо, не собирается вмешиваться.
Horizon OS, на которой работают все гарнитуры Quest, открывают для сторонних производителей. Уже объявлено, что Asus будет использовать Horizon OS для создания новой «производительной игровой» VR-гарнитуры, а Lenovo для «устройств смешанной реальности для продуктивности, обучения и развлечений». Как пишет Андрей Себрант, “когда появилась VisionOS от Apple и их модная дорогая гарнитура Vision Pro, Цукерберг в разных местах отмечал, что не важно, кто будет «айфоном в виртуальной реальности» — важно, кто займет там место Android со всей его огромной экосистемой и тучей устройств всех ценовых категорий”. Можно конечно поспорить и сказать, что «айфоны» получают львиную долю прибыли на рынке смартфонов, что ой как важно, но в целом кто станет Android кажется уже понятно.
Разработка
• Horizon OS открывается для сторонних компаний
• Как рефакторинг чуть не разрушил мой брак
• Preventing Fraud at Robinhood using Graph Intelligence
• I accidentally built a meme search engine
Маркетинг
• Маркетологи в мобайле: Галина Голубева («Национальная Лотерея»)
• Mood.camera делает из iPhone старую фотокамеру
• Улучшили результаты рекламы iOS-приложения, увеличив число покупок в 8 раз
Кроссплатформа
• Создавайте виджеты главного экрана iOS с помощью Flutter
• Beyond Code Generation: Crafting Custom Hive Adapters
• flutterbaba/how-to-block-screenshots-in-your-flutter-app-b9438e915aaf">How to block Screenshots in your Flutter app
iOS
• Improve Test Clarity (TDD with SwiftUI)
• Streamlined Location Updates with CLLocationUpdate in Swift
• Dynamic gradient using the average image color in SwiftUI
• How to use SwiftData outside SwiftUI
• Using @Environment in SwiftUI to link Swift Package dependencies
#ios
К вопросам о кликбейтных заголовках 😀 Пришла статья "Как рефакторинг чуть не разрушил мой брак".
👍 если хотите прочитать, 😱 если ну его
Android
• Google объединяет команды Android и аппаратного обеспечения ради скорости и искусственного интеллекта
• Droid-ify — клиент F-Droid с материальным дизайном
• Устройство Android Music SDK или как мы встроили музыку в суперапп-приложение
• Интеграция MediaPipe в Android-приложение видеоконференцсвязи
• Using XML Views in Compose
• I Removed JetPack Compose from My App
• A Pattern for Composing Flow Operations
• Beware of Build Time Bloat
• Migrating from the ClickableText composable to LinkAnnotation
• Dot. Dash. Design
• Ready, Aim, Release: Android app rollout tips
#android
❓Хотите повысить качество и читаемость своего кода в мобильной разработке? Присмотритесь к Flutter и его возможностям
Как взаимодействовать с JS-библиотеками и запускать нативный Kotlin/Swift-код без использования платформенных каналов и FFI?
Все это и даже больше обсудим на открытом практическом уроке от OTUS. Спикер Дмитрий Золотов — Flutter+Kotlin Developer в Yandex.
На вебинаре разберем:
- Native assets как альтернативу Platform Channels / FFI для мобильной разработки;
- взаимодействие с Java-кодом через библиотеки jni / jnigen;
- проблему взаимодействия с существующими JS-модулями в Flutter Web и новые библиотеки для доступа к JS-объектам;
- примеры использования нативных библиотек для задач высокопроизводительных вычислений во Flutter-приложениях.
Встречаемся 24 апреля в 20:00 мск в преддверии старта курса «Flutter Mobile Developer». Все участники вебинара получат специальную цену на обучение и персональную консультацию от менеджеров OTUS!
👉 Посетите бесплатный урок: https://otus.pw/6WiI/Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Как быстро пробить стеклянный потолок
Традиционная подборка всех материалов за прошлую неделю - чистая архитектура и MVVM в iOS, закан RxJava и критических оповещений на Android, опыт внедрения компонентной разработки, смартфон для джаваскриптера-олдфага, практическое руководство по запросу отзывов и многое другое. Заходите!
Google объединяет команды Android и аппаратного обеспечения
Все ради ускорения внедрения ИИ.
1. Сундар Пичаи объявил о существенной внутренней реорганизации, в том числе о создании новой команды под названием «Платформы и устройства» (Platforms and Devices), которая будет курировать все продукты Google Pixel, весь Android, Chrome, ChromeOS, Photos и многое другое.
2. Руководить командой будет Рик Остерлох, который ранее занимал должность вице-президента по устройствам и сервисам, курируя все аппаратное обеспечение Google. Хироши Локхаймер, долгое время возглавлявший подразделения Android, Chrome и ChromeOS, займется другими проектами внутри Google и Alphabet.
3. Причина радикальных изменений, как утверждается, заключается в том, чтобы обеспечить «более высокое качество продуктов и опыта», «ускорить экосистемы Android и Chrome» и «быстрее доносить лучшие инновации до партнеров». Проще говоря, компания хочет еще больше ускорить процесс внедрения искусственного интеллекта.
И что: на протяжении многих лет Google заявлял, что старательно отделяет свои собственные разработки в области аппаратного обеспечения от работы с более широкой экосистемой Android, чтобы не создавать привилегий для собственных устройств и не осложнять отношения с такими компаниями, как Samsung. Означают ли новые изменения окончание разделения Pixel и Android? Внутри Google говорят, что совсем нет, снаружи кажется, что немножко да.
Android
• Introduction to Foundational Tools in Android
• Some Best-Practices for State Management in Jetpack Compose
• samirdubey/demystifying-jni-boost-performance-and-access-native-features-f5308c227ff0">Demystifying JNI: Boost Performance and Access Native Features
#android
С сегодняшнего дня в ЕС на iOS работает загрузка приложений с сайтов. Правда, есть ряд важных условия, вроде дикой Core Technology Fee, которая сейчас находится под рассмотрением ЕС, подтверждение возможности решать споры об интеллектуальной собственности и правительственные запросы на удаление информации, прохождение ревью Apple, обязательства по предоставлению пользователям iOS услуг по обслуживанию и прочее. “Запомните этот пост” (С) - думаю, что количество компаний, которые воспользуются этим в 2024 году, будет оцениваться максимум в несколько десятков.
Разработка
• ВКонтакте запустил бесплатный курс по разработке мини-приложений
• VK открывает набор на оплачиваемую летнюю стажировку
• Смартфон для джаваскриптера-олдфага: стоит ли гику брать дешманские девайсы на KaiOS? Смотрим на Nobby 240 LTE
• There is always something: Fighting distractions as a software developer
• Healthy Documentation
• Building Something Real in your spare time
Маркетинг
• Новое приложение Indaband позволяет создавать музыку вместе с людьми по всему миру
Кроссплатформа
• Разбираем генеративный SDK от Google — google_generative_ai. Часть 1
• Где заканчивается Flutter и начинается платформа?
• Опыт внедрения компонентной разработки
• SaezChristopher/stop-using-flutter-it-will-die-sooner-than-you-think-and-improve-your-product-instead-3750219dd695">Stop using Flutter, it will die, sooner than you think
• I've spent 5+ years working on Uthupia using Flutter. Here are 5 Lessons I've learned
iOS
• Как быстро сделать файл PrivacyInfo.xcprivacy для вашего iOS-приложения
• Apple в ЕС запускает загрузку приложений через веб-сайты
• How to do pagination in SwiftUI
• Common Mistakes to Avoid When Using Enums in Swift
#ios
Как быстро сделать файл PrivacyInfo.xcprivacy для вашего iOS-приложения
Манифест конфиденциальности — это XML-файл, соответствующий формату Apple .plist, который находится в корне пакета вашего приложения для iOS и называется PrivacyInfo.xcprivacy. С 1 мая его наличие ОБЯЗАТЕЛЬНО для всех приложений - без него приложения будут отклоняться.
Существует 3 основных типа данных, которые необходимо указать в декларации конфиденциальности:
• Использует ли ваше приложение данные для «отслеживания», и если да, то на какие домены они отправляются
• Список всех типов собираемых данных с указанием того, почему эти данные собираются и используются ли они для отслеживания.
• Список API, "требующих объяснение", и для чего вы их используете
В Xcode есть интерфейс редактирования, который может сгенерировать необходимый файл PrivacyInfo.xcprivacy. Однако он традиционно неудобен. Разработчик сделал онлайн-генератор PrivacyInfo.xcprivacy, в котором вы просто указываете все необходимые параметры в удобной форме: https://wemakeapps.net/manifest-maker
Подробнее в статье: https://apptractor.ru/info/articles/kak-bystro-sdelat-fayl-privacyinfo-xcprivacy-dlya-vashego-ios-prilozheniya.html
Android
• Введение в Trio: часть 3
• Вопросы с собеседований: жизненный цикл View в Android
• В Android 15 может появиться NFC-зарядка
• RxJava — всё?
• Custom Navigation Drawer component with Jetpack Compose
• Speed Up Your Gradle Builds with the New Gradle Critical Path Analyzer
• a.shariat.b/ktor-for-android-networking-moving-beyond-retrofit-5c91fd627f6a">Ktor for Android Networking: Moving Beyond Retrofit
• Learning about Android runtime
#android
Хотите узнать, как работать с GraphQL и улучшить навыки разработки iOS-приложений?
Приходите на бесплатный практический урок от OTUS. Спикер Анна Жаркова — руководитель группы разработки, опытный преподаватель и ментор.
На вебинаре вы освоите работу с GraphQL, поймете различия между GraphQL и REST API и научитесь создавать сетевой слой для ваших приложений. Занятие подойдет разработчикам на iOS уровня Middle и Senior.
Урок пройдет 6 мая в 20:00 мск и будет приурочен к старту курса «iOS Developer. Professional». После вебинара вы получите специальную цену на обучение и персональную консультацию от наших менеджеров!
Ссылка для регистрации: https://vk.cc/cwcTJKРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Традиционно обозрел топ быстрорастущих по загрузками и деньгам в России приложений. В топе скачиваний 4 приложения Яндекса, а в двадцатке 6 - то ли кампанию запустили, то ли обновления накатили. А топ быстрорастущих в заработке практически весь занят музыкой и аудиокнигами. На первом месте Радио Record. В топе еще три приложения с аудиокнигами (четыре, если считать лекции, подкасты, сказки и колыбельные для детей «Гусьгусь») и музыка МТС. Шесть приложений из десяти!
Разработка
• Проблемы маленьких приложений при увеличении нагрузки по данным
• Как выжать все соки из Jenkins
• Убиваем Lottie? Тащим Rive?
• Вся правда про удаленку
• Зачем нужен Zig, и чем он отличается от других языков
• PumpkinOS — открытая реализация PalmOS
• How to write a code formatter
• Power of Blameless Culture in Software Engineering
Маркетинг
• Топ быстрорастущих приложений в России в апреле
• Airchat — социальная сеть, построенная вокруг голоса
• Базовый анализ продуктовых фичей
Кроссплатформа
• Как мы сделали ставку на KMP
• Proactively Securing React Native Applications: Best Practices and Strategies
• Flutter Consent Messages with Google Admob