Тесты не упадут, если их нет ¯_(ツ)_/

Разработка мобильных приложений *
Android, iOS, Windows Phone и прочие
Stable-версия Flutter стала поддерживать WASM
WebAssembly (WASM) — это новый способ запуска приложений в браузере. Это не замена JS, а возможность запускать код, написанный на других языках (C++, Rust или C#) вместе с JS. WASM оптимизирует размер и время загрузки и позволяет выполнять его на аппаратном уровне.
Компании, которые имеют дело с графикой (Unity, Figma), используют WASM для повышения скорости работы. Это обеспечивает более плавную работу с интерфейсом за счет снижения зависимости от JS.
Скомпилированное в WASM приложение может улучшить производительность в 2 раза по скорости рендеринга кадров. На видео выше сайт Wonderous, который мигрировал с чистого JS на WASM.
Что это значит для Flutter?
А то, что движок Dart компилируется в WASM и обеспечивает более высокую производительность. Это открывает новые перспективы для веб-приложений на Flutter. Можно контролировать каждый пиксель интерфейса на уровне Flutter и наслаждаться производительностью WASM.
Ограничения
- Safari пока не поддерживает WasmGC. Браузеры на iOS, например Chrome, используют WebKit, который пока тоже не поддерживает WasmGC.
- Ни flutter run, ни DevTools не поддерживают WASM в Flutter 3.22. Однако эта функция уже реализована и должна быть доступна в следующем стабильном релизе.
- Пока во Flutter работали над поддержкой WASM, пришлось заменить библиотеки dart:html и package:js. Либы, использующие эти библиотеки, должны мигрировать.
>> Телеграм-канал Саша расскажет // о мобильной разработке и ИТ
Плюсы и минусы GetX и BLoC

Простота в использовании.
У GetX более низкий порог входа, он проще в освоении, чем BLoC. Он предоставляет простой и понятный API для управления состоянием, маршрутизации и управления зависимостями.Масштабируемость.
BLoC дает более гибкий и модульный подход к управлению состоянием, и его можно масштабировать на больших и сложных приложениях. BLoC разделяет логику управления состоянием на отдельные блоки, которые легко тестировать. Это облегчает поддержку и обновление кода. Кроме того, в BLoC есть четкое разделение ответственности между слоями приложения, что облегчает масштабирование и улучшает производительность.Тестирование.
В BLoC есть мощные средства для тестирования потоков событий и состояний, например bloc_test.Возможности.
GetX предоставляет широкий спектр возможностей для маршрутизации и управления состоянием и зависимостями.
Что же выбрать?
Зависит от конкретных требований проекта и ваших предпочтений. Если приложение небольшое и простое, то GetX может быть более подходящим решением. Он предоставляет понятный API для работы, с ним можно писать меньше кода, что существенно экономит время.
Однако если у вас большое приложение, то лучше выбрать BLoC. С ним вы получите более гибкий и модульный подход к управлению состоянием, а это помогает при масштабировании сложных приложений. Плюс BLoC обеспечит четкую декларативность и читаемость кода.
Это часть статьи Flutter-разработчика Айдара Мавлетбаева — полную версию с кодом ищите тут.
Эксперты «Кода Воробья» представили туториал «Как оплатить Apple Developer Program из России». Если Apple ID в регионе РФ, то не получится создать покупки и подписки. Что делать, если нужны ин‑апы, тоже разобрано в туториале.

Недавно Гугл плей в своем отчете поделился тем, что почистил много низкокачественных приложений.

Но возможно дело тут не только в заслугах модерации.
В общем я снимаю с публикации добровольно пару приложений. Дело в том, что трудозатраты на поднятие таргет сдк до 34 никогда не окупяться.
За пять лет было 650 покупок (134 возврата) и у другого 588 ( -79). Потраченное время будет окупаться несколько лет. А под меняющиеся требования гугла скорее всего придется еще дополнительно править еще несколько раз.
Google Firebase сдался и добавил в свои сервисы SQL базу данных (облачную PostgreSQL) в форме Firebase Data Connect.
Пока в виде preview сервис можно попробовать бесплатно. Потом собираются брать плату и за саму базу, и за API доступа к ней.
Вряд ли Google с такими политиками сможет конкурировать с Supabase.На данный момент это две основные площадки, с которыми фронтендер или мобильный разработчик может без излишних усилий сделать удобный облачный бэкенд, как без логики (просто CRUD доступ), так и с ней (Functions), и оставаясь в рамках стандартов (не сильно привязываясь к проприетарным решениям сервисов).
Google обновила требования к ОС для поддержки Wallet. С 10 июня кошелёк потребует Android 9 или выше на смартфоне и Wear OS 2.x или выше на умных часах.
Это необходимо, чтобы обеспечить большую безопасность функций, в том числе оплату касанием.
Ранее для работы Wallet было достаточно Android 7.0. Когда Google выпустила приложение кошелька в 2022 году, оно поддерживалось в версиях начиная с Android 5.0.
Обновление затронет пользователей Android Nougat (2016: 7.0, 7.1) и Oreo (2017: 8.0, 8.1). Wear OS 2 была основана на Android 8.0 Oreo, но позже была обновлена до Android 9.0 Pie.
У Apple оказалось так много всего интересного в экосистеме, что компания представила роадмапы (Pathways) по своим сервисам. Внутри каждого из шести направлений есть ссылки, где структурно представлена через документацию и видео-туториалы подробная база данных по необходимым библиотекам для разработчиков.

Sonos отреагировала на негативные отзывы об обновлённом мобильном приложении, выпущенном 7 мая. Клиенты жаловались на отсутствие таймеров сна, неработающее управление локальной музыкальной библиотекой и отсутствие возможности редактировать плейлисты. Приложение иногда не работало, но Sonos намерена решить эту проблему к следующему месяцу.
Компания также работает над восстановлением функциональности. На этой неделе выйдет первый патч. В целом, восстановить работу всех функций планируется в ближайшие месяцы.
Директор по продукту Максим Бува-Мерлен говорит, что новое приложение закладывает основу для «захватывающих инноваций, которые появятся у Sonos в ближайшие годы». Следующие продукты компании могут выйти уже в июне.
Пока же владельцы Android-смартфонов могут установить более раннюю версию приложения, а вот на iPhone такой возможности нет.
Суд в деле Epic обвинил Apple в недобросовестном отношении к кнопкам и ссылкам. На будущих слушаниях будут обсуждаться правила App Store, в том числе касающиеся ограничения стилей кнопок для перехода по внешним ссылкам.
Судья полагает, что такими действиями Apple пытается ограничить конкуренцию.
В 2021 году судья Федерального окружного суда Северного округа Калифорнии Ивонн Гонсалес Роджерс обязала Apple разрешить разработчикам использовать внешние способы оплаты, и компания неоднократно пыталась обжаловать это решение.
5 главных трендов среди мобильных приложений в 2024 году
Приложения здоровья (mHealth)
В России растет популярность умных устройств для удаленного контроля за здоровьем. А глобально mHealth активно развивается в секторе телемедицины, дистанционного мониторинга здоровья и популяризации здорового образа жизни.
E-commerce
Пользователи всё чаще предпочитают делать покупки через мобильные устройства. Ожидается, что развитие ИИ, улучшение персонализации, поисковых систем и применение в этом секторе дополненной реальности также положительно повлияют на развитие мобильного шопинга.
Видео- и фоторедакторы
Здесь основной потребитель — поколение Z с его увлечением медиаконтентом. Смартфоны и мобильные приложения уже сейчас предлагают супервозможности для создания контента от идеи до публикации. А применение ИИ здесь создает невероятные перспективы — только взгляните на современную обработку видео и фото, генерацию голоса и субтитров, создание фильтров и анимаций.
Финтех
Во второй половине 2024 года аналитики ожидают снижения процентных ставок. Это может привести к резкому притоку средств и создать спрос на новые улучшенные решения во всем финтехе, особенно в области цифровых платежей, инвестирования и технологии блокчейн.
Искусственный интеллект
ИИ так или иначе влияет на все вышеперечисленные отрасли. Но самым востребованным направлением здесь по-прежнему остается машинное обучение.
P. S. В полной версии этой статьи найдете еще больше деталей и аналитики по рынку мобильных приложений.

Состоялся релиз библиотеки SystemNotification, которая позволяет создавать уведомления SwiftUI в стиле системных оповещений. При этом доступна полная кастомизация. К примеру, можно добавить иконку, текст, изменить цвета или полностью модернизировать внешний вид.
Код библиотеки открыт и опубликован на GitHub. Вместе с этим есть демо-приложение и подробная документация.
2 мая 2024 года Mozilla сообщила о преодолении рубежа в 1000 дополнений, доступных для Android-версии Firefox в каталоге AMO (addons.mozilla.org).

В декабре 2023 года, после введения в строй инфраструктуры дополнений для Android-версии Firefox, в каталоге насчитывалось 489 дополнений. Менее чем за пять месяцев число дополнений, портированных для Android-версии Firefox, удвоилось.
Разработчики дополнений, уже поставляемых для настольной версии Firefox, могут адаптировать свои продукты для работы в мобильной версии, переведя дополнение с модели постоянного фонового выполнения (extension.getBackgroundPage) на режим обработки событий (browser.runtime.onMessage.addListener), а также задействовав методы адаптивной компоновки элементов интерфейса.
Источник: OpenNET.
Ближайшие события

В ходе работы над своим драйвером печати мне пришлось написать эмулятор IPP принтера. Оформил его как бесплатное приложение в гугл плее. Анонс сервиса в mDNS IppVirtual._ipp._tcp.local. Добился автоматического его распознования стандартной службы печати андроида. Поднял http сервер на порту 10631. отдаю иконку принтера и 404 страницы. При обращении по rp = p/virеual реализовал команды IPP протокола: получить свойства принтера, печать документа и другие. Проще всего было реализовать поддержу PDL для PCLm (по сути тотже aplication/pdf), полученный файл просто передается встроенному просмотровщику. Для urf,pwg и SPL(QPDL) написал декодеры в битмап с последующей конвертацией в pdf.
Не получилось полностью реализовать драйверлес для macOS и windows :(
На маках находит, но ставиться только при ручном указание ppd, который можно сформировать запуском
/System/Library/Printers/Libraries/ipp2ppd урл_принтера
На виндовс устанавливается через мастер установки Bonjour. Драйвер приходится выбирать в ручную. Подходят стандартные от майкрософт (н-р универсальный IPP).
Эмулятор может быть полезен программистам, которые решили внедрить в свою программу прямую печать на IPP принтеры.
Приложение в данный момент опубликовано для открытого тестирования
В новую версию мобильного приложение «Госуслуги» (для RuSrore. Google Play и App Store) разработчики добавили сторис.

В версии 18 приложения добавлен информационный блок в формате сторис. Как и в других приложениях, карточки находятся на главном экране сверху и перелистываются автоматически. Если нужно внимательнее прочитать текст, достаточно задержать палец на экране.
Из сторис на «Госуслугах» можно в краткой форме узнать о возможностях приложения. Например, как подключить уведомления о судебных решениях, быстро оформить онлайн-выписку или подключить вход по QR-коду.
Наш опыт внедрения компонентной разработки
Компонентная разработка подразумевает деление мобильного приложения на отдельные компоненты (фичи). За каждый из них отвечает конкретный разработчик — Feature-оунер. Часть времени он посвящает задачам компонента, а часть — технической документации (Roadmap). Feature-оунер также контролирует работу остальных разработчиков, прикрепленных к фиче.
Мы решили перейти на новую методологию на текущем проекте по двум причинам:
У тимлида на проекте было мало времени, его нужно было разгрузить.
Проект смело можно назвать супераппом, он большой. И чтобы новый разработчик полноценно въехал в работу, обычно уходило 3–4 недели. Нам нужно было этот процесс ускорить.
Вот как мы распределили роли:

И вот что нам это дало:
Тимлид действительно стал тратить меньше времени на проекте и выполнял только ключевые задачи, что позволило уделить больше времени другим проектам.
Документация проекта оказалась полезной уже в этом проекте. В среднем новый разработчик тратил на 20% времени меньше на ресерч и общение с другими участниками команды, чтобы понять, как работает фича.
На выходе у нас получился полностью задокументированный проект. Даже если мы вернемся к нему через пару лет, мы быстро вспомним, как он реализован, и не будем тратить много времени на ознакомление. А если другая команда начнет с ним работать, для них это не будет темным лесом.
Это короткая версия статьи о компонентной разработке от нашего тимлида Саши Омельяненко — весь текст читайте тут.
VK запустила бесплатный курс по созданию мини-приложений для разработчиков, IT-предпринимателей и бизнесменов. С обучающим курсом от VK Mini Apps пользователи смогут научиться создавать, монетизировать и продвигать свои мини-приложения.
Курс «Разработка мини-приложений ВКонтакте» состоит из 260 минут обучающего контента, 70 уроков и восьми модулей. Каждый посвящён одному из этапов создания сервиса: «Знакомство с мини-приложениями», «Выбор идеи», «Дизайн», «Разработка», «Тестирование», «Модерация», «Монетизация» и «Продвижение». Весь процесс показан на примере мини-приложения «Блюдо дня». Механика заключается в заказе и доставке еды — на курсе можно создать похожий сервис или реализовать свою идею. Курс можно смотреть последовательно или выбирать модули; обучающие ролики доступны в любое время.


Hola, Amigos! На связи Владимир Зевеке, соавтор Flutter. Много. Сегодня поделюсь пакетом screen_brightness, который помогает управлять яркостью экрана. В моём случае, этот виджет понадобился для более эффективной работы barcode.
❗️Screen_brightness работает только на реальных устройствах, на эмуляторе пакет функционировать не будет.
Перейдем к практике: в нашем приложении есть страница, которая должна быть всегда яркой на 70%. Если при переходе на неё экран тусклый, то мы должны поднять яркость до тех самых 70%.
Сделаем это в отдельном методе, который будем вызывать в initState().
double brightness = 1.0;
@override
void initState() {
initBrightness();
super.initState();
}
Future<void> initBrightness() async {
brightness = await FlutterScreenWake.brightness;
if (brightness < 0.7) {
await FlutterScreenWake.setBrightness(0.7);
}
}Перед изменением уровня яркости экрана, старый показатель мы записали в переменную brightness, чтобы вернуть пользовательские настройки яркости, когда покинем эту страницу.
return Material(
child: PopScope(
onPopInvoked: (value) async {
await FlutterScreenWake.setBrightness(brightness);
},
child: Scaffold(
appBar: AppBar(
backgroundColor: const Color(0xFF1A1A18),
leading: InkWell(
onTap: () async {
await FlutterScreenWake.setBrightness(brightness);
if (mounted) {
Navigator.of(context).pop();
}
},
<…>
),
),
body: <…>,
),
),
);Готово!
«Российские железные дороги» запустили PWA‑приложение для покупки через смартфоны билетов на поезда, сообщили ТАСС в пресс‑службе холдинга. Это PWA‑версия сайта компании (ticket.rzd.ru), адаптированная под использование на мобильных устройствах на всех операционных системах.
Замгендиректора РЖД Евгений Чаркин отметил, что в веб‑приложении портала ОАО «РЖД» сохранены все основные функции портала ticket.rzd.ru: продажа билетов на поезда дальнего следования, в том числе на места для пассажиров с инвалидностью, а также использование баллов программы лояльности «РЖД бонус» и т. д.
«Также можно будет посмотреть расписание пригородных поездов, а онлайн‑покупку пригородных билетов планируется запустить в одной из следующих версий. В веб‑приложении постепенно будут появляться и другие функции», — добавил Чаркин.
«В ситуации риска удаления мобильного приложения „РЖД пассажирам“ из ряда иностранных магазинов приложений она может стать хорошей альтернативой. В перспективе планируем обеспечить максимальную идентичность нового веб‑приложения с мобильным приложением „РЖД пассажирам“», — отметил замгенерального директора ОАО «РЖД» Иван Колесников.
Компания-разработчик Avroid («Авроид») выпустила обновление для мобильного приложения Tavro («Тавро») — мобильного клиента мессенджера Telegram для ОС «Аврора».

В новой версии Tavro улучшена навигация, стали доступны дополнительные возможности администрирования групп и каналов. В приложении появились элементы навигации — табы в нижней части экрана, стала доступна возможность редактировать сообщения, закреплять чаты, управлять группами и каналами: удалять участников, менять названия и аватары.
Разработчики пояснили, что Tavro выполняет основные функции мессенджера: отображает списки чатов, может отправлять текстовые сообщения, изображения и видео, эмодзи, файлы, совершать звонки между пользователями Telegram, поддерживает различные системные уведомления в чатах, позволяет работать без подключения к интернету и многое другое.
В начале марта 2024 года «Авроид» открыла доступ (с ограничениями) для всех к мобильному приложению Tavro для ОС «Аврора». Так как этот клиент разработан не самим Telegram, он считается сторонним. Ранее «Авроид» официально зарегистрировала ID разработчика в Telegram.