❓Хотите повысить качество и читаемость своего кода в мобильной разработке? Присмотритесь к 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
iOS
• Поваренная книга SwiftUI: изображения и иконки — Часть 1
• Зачем мне Kotlin в iOS-разработке? Я только Swift выучил!
• Как дизайнить доступность для скринридера
• Apple готовится выпустить Mac на M4
• Creating Shapes from SVG in a SwiftUI app
• alessandromanilii/custom-toggle-styling-in-swiftui-703f68684fa3">Custom Toggle Styling in SwiftUI
#ios
Можно ли распознать CTO на микрокомпьютере
Подборка всех материалов за прошлую неделю - нестрашный Accelerate и MVVM без M, жизнь после отвала eMMC и инъекции зависимостей в Compose, история успеха Flutter, проблемы маленьких приложений, 900 самых популярных инструментов ИИ на базе open source и многое другое. Подключайтесь!
Вышла первая бета-версия Android 15
Первая публичная бета-версия Android 15 доступна для загрузки уже сейчас, если у вас есть телефон Pixel. Это первый релиз для потребителей после двух предварительных версий для разработчиков.
Google акцентирует внимание на следующем:
• Приложения по умолчанию будут масштабироваться от края до края (Edge-to-edge) и рисоваться за полупрозрачными системными полосами в верхней и нижней частях экрана, а не вокруг них.
• Улучшена работа с NFC - приложения теперь могут регистрировать отпечаток пальца на поддерживаемых устройствах, чтобы получать уведомления об активности цикла опроса, что обеспечивает бесперебойную работу с несколькими приложениями, поддерживающими NFC.
• На уровне ОС реализована поддержка архивации и разархивации приложений, так что сторонние магазины приложений смогут воспользоваться этой функцией.
• В Android 15 появился новый класс ProfilingManager, который позволяет собирать информацию о профилировании внутри вашего приложения.
• В Android 15 также будет улучшена поддержка дисплеев Брайля.
• E2eeContactKeysManager в Android 15 облегчает сквозное шифрование (E2EE) в ваших Android-приложениях, предоставляя API на уровне ОС для хранения криптографических открытых ключей.
• Безопасный запуск фоновой Активити - в Android 15 появились дополнительные изменения, направленные на то, чтобы вредоносные фоновые приложения не могли выводить другие приложения на передний план, повышать их привилегии и злоупотреблять взаимодействием с пользователями, чтобы защитить пользователей от вредоносных приложений и дать им больше контроля над своими устройствами.
Стабильный релиз ожидается в июне, а выпуск новой ОС ближе к сентябрю.
Android
• Инъекция зависимостей в Compose
• EinkBro — маленький быстрый браузер для Eink
• Жизнь после отвала eMMC. Часть 2: даём новую жизнь устройствам с полностью мёртвой памятью. Загружаем Android с MicroSD
• Modern Android App Template with Jetpack Compose
• Foundational Tools in Android
• surendar1006/implementing-critical-alerts-on-android-aa49b4d75705">Implementing Critical Alerts on Android
• riztech.dev/mastering-solid-principles-in-android-app-development-for-maintainable-code-f2632e6423b9">Mastering SOLID Principles in Android App Development for Maintainable Code
• phamvietbinh2013/implement-pinch-to-zoom-for-your-image-grids-by-jetpack-compose-part-1-8700685a3e9d">Implement Pinch-to-Zoom for your Image Grids by Jetpack Compose
#android
Разработчики игр для 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, видимо, не собирается вмешиваться.
Android
• Реализация Критических оповещений на Android
• Pokedex Compose — современная Android-разработка
• Разработка новостного приложения. Часть 5. Подготовка к публикации в Google Play
• Экзоскелет для ExoPlayer
• Вышла первая бета-версия Android 15
• Enhancing Jetpack Compose with Koin
• Focus as a state - new effective Android TV focus management system with Jetpack Compose
• Jetpack Compose Navigation, Ktor, and Koin DI Unlocking MAD Skills
#android
🚀 Участвуй в True Tech Hack от МТС и поборись за общий призовой фонд в 1 500 000 рублей. Регистрируйся.
Приглашаем разработчиков, специалистов по Data Science, менеджеров по продукту, дизайнеров. Соревноваться предстоит в одном из двух треков, чтобы улучшить жизнь людей с особыми потребностями.
🏠 Трек 1. Улучшение клиентского опыта витрины МТС Live для пользователей с особыми потребностями
⭐️ Трек 2. Разработка голосового управления для МТС Финтех на основе искусственного интеллекта для людей с ограниченными возможностями
Как пройдет True Tech Hack:
🔸 26 апреля – открытие хакатона и Q&A-сессия
🔸 27 апреля-12 мая – чек-поинты с экспертами
🔸 12 мая – окончание приема проектов
🔸 14 мая – полуфинал, защита лучших решений и объявление финалистов
🔸 17 мая – финал в Москве
True Tech Hack – твой шанс получить новый опыт, выиграть приз и сделать наш мир доступней и удобней для всех. Регистрируйся на хакатон до 25 апреля по ссылке.
Видео и подкасты за неделю:
• (iOS Ru)
Зачем мне Kotlin в iOS-разработке? Я только Swift выучил!
• (iOS Ru)
Как дизайнить доступность для скринридера
• (iOS En)
CocoaHeadsNL Meetup
• (iOS En)
Creating The DVD Screensaver In SwiftUI
• (iOS En)
Flip Book Effect - SwiftUI
• (iOS En)
Animating Swift Charts
• (And Ru)
Разработка новостного приложения. Часть 5. Подготовка к публикации в Google Play
• (And Ru)
Экзоскелет для ExoPlayer
• (And En)
Does Native Android Development Have a Future?
• (And En)
Sealed Classes for UI State are an ANTI-PATTERN
• (And En)
Building Quality Android Apps for the Future with Continuous Integration
• (Crs Ru)
Как мы сделали ставку на KMP
• (Dev Ru)
Проблемы маленьких приложений при увеличении нагрузки по данным
• (Dev Ru)
Как выжать все соки из Jenkins
• (Dev Ru)
Убиваем Lottie? Тащим Rive?
• (Dev Ru)
Вся правда про удаленку
• (Dev Ru)
Зачем нужен Zig, и чем он отличается от других языков
Посоветуйте в комментах интересные каналы по мобильной разработке? 🌐 @AppFiles
Разработка
• Может ли мобильный разработчик стать CTO?
• Don't require people to change 'source code' to configure your programs
Маркетинг
• Vids — новый инструмент для продуктивной работы от Google
Кроссплатформа
• Clean Architecture and state management in Flutter: a simple and effective approach
iOS
• Анимация чисел в SwiftUI с помощью contentTransition
• Почему Accelerate — это не страшно
• Подходы к созданию линейных графиков для iOS-приложений на базе фреймворка SwiftUI
• Jager-yoo/the-best-example-of-leveraging-ios-widget-potential-duolingo-f677115ad3f6">The Best Example of Leveraging iOS Widget Potential: Duolingo
• Deep linking for local notifications in SwiftUI
#ios