Android
• Осваиваем ViewModel в Android: «можно» и «нельзя» — Часть 3
• Jetpack Compose для ленивых
• Code Sketching with Kotlin Notebooks: Developer Guide
• Kotlin: An Illustrated Guide - Generic Variance
• Kotlin Coroutines 101: Async Programming in Practice
• Update Your Compass — New Android Orientation API
#android
🚀 Подключайся к 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
iOS
• Оптимизируем обновление местоположения с помощью CLLocationUpdate в Swift
• EeveeSpotify — получение бесплатного Spotify Premium
• kodekarim/90-of-ios-dev-are-unhirable-15f175993b7e">90% of .iOS Dev are unhirable?
• Foundational Tools in iOS
• What are lazy vars in Swift?
• How one line of code led to +50% faster Swift compilation for tens of thousands of teams
• Audio Input Device Switch Management in AVAudioSession
#ios
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