Как стать автором
Поиск
Написать публикацию
Обновить
136.33

Разработка мобильных приложений *

Android, iOS, Windows Phone и прочие

Сначала показывать
Порог рейтинга

Стриминговый сервис Netflix представил игру Minesweeper («Сапёра») на iOS и Android для своих подписчиков.

В версии Minesweeper от Netflix пользователям доступен режим «Путешествие», в котором игровое поле меняется в зависимости от локации. В головоломке также можно выполнять ежедневные задания и делиться результатами с другими игроками.

Теги:
Всего голосов 1: ↑1 и ↓0+2
Комментарии0

Дизейнеры заметили, что ранее анонсированный сервис Figma AI обучен на существующих приложениях. Например, «погодное приложение», созданное в с помощью новой функции «Создать дизайн» о Figma AI в результате в основном аналогична приложению «Погода» от Apple (слева). Дизайнеры пробовали три раза выполнить этот запрос, результат тот же.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

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. Либы, использующие эти библиотеки, должны мигрировать.

>> Телеграм-канал Саша расскажет // о мобильной разработке и ИТ

Теги:
Всего голосов 7: ↑7 и ↓0+9
Комментарии1

Плюсы и минусы GetX и BLoC

Сравнение архитектурных подходов GetX и BloC
Сравнение архитектурных подходов GetX и BloC
  1. Простота в использовании.

    У GetX более низкий порог входа, он проще в освоении, чем BLoC. Он предоставляет простой и понятный API для управления состоянием, маршрутизации и управления зависимостями.

  2. Масштабируемость.

    BLoC дает более гибкий и модульный подход к управлению состоянием, и его можно масштабировать на больших и сложных приложениях. BLoC разделяет логику управления состоянием на отдельные блоки, которые легко тестировать. Это облегчает поддержку и обновление кода. Кроме того, в BLoC есть четкое разделение ответственности между слоями приложения, что облегчает масштабирование и улучшает производительность.

  3. Тестирование.

    В BLoC есть мощные средства для тестирования потоков событий и состояний, например bloc_test.

  4. Возможности.

    GetX предоставляет широкий спектр возможностей для маршрутизации и управления состоянием и зависимостями.

Что же выбрать?

Зависит от конкретных требований проекта и ваших предпочтений. Если приложение небольшое и простое, то GetX может быть более подходящим решением. Он предоставляет понятный API для работы, с ним можно писать меньше кода, что существенно экономит время.

Однако если у вас большое приложение, то лучше выбрать BLoC. С ним вы получите более гибкий и модульный подход к управлению состоянием, а это помогает при масштабировании сложных приложений. Плюс BLoC обеспечит четкую декларативность и читаемость кода.

Это часть статьи Flutter-разработчика Айдара Мавлетбаева — полную версию с кодом ищите тут.

Теги:
Всего голосов 8: ↑7 и ↓1+8
Комментарии0

Эксперты «Кода Воробья» представили туториал «Как оплатить Apple Developer Program из России». Если Apple ID в регионе РФ, то не получится создать покупки и подписки. Что делать, если нужны ин‑апы, тоже разобрано в туториале.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

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

Но возможно дело тут не только в заслугах модерации.

В общем я снимаю с публикации добровольно пару приложений. Дело в том, что трудозатраты на поднятие таргет сдк до 34 никогда не окупяться.

За пять лет было 650 покупок (134 возврата) и у другого 588 ( -79). Потраченное время будет окупаться несколько лет. А под меняющиеся требования гугла скорее всего придется еще дополнительно править еще несколько раз.

Теги:
Всего голосов 3: ↑3 и ↓0+6
Комментарии1

Google Firebase сдался и добавил в свои сервисы SQL базу данных (облачную PostgreSQL) в форме Firebase Data Connect.

Пока в виде preview сервис можно попробовать бесплатно. Потом собираются брать плату и за саму базу, и за API доступа к ней.

Вряд ли Google с такими политиками сможет конкурировать с Supabase.На данный момент это две основные площадки, с которыми фронтендер или мобильный разработчик может без излишних усилий сделать удобный облачный бэкенд, как без логики (просто CRUD доступ), так и с ней (Functions), и оставаясь в рамках стандартов (не сильно привязываясь к проприетарным решениям сервисов).

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

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.

Теги:
Всего голосов 3: ↑3 и ↓0+6
Комментарии0

У Apple оказалось так много всего интересного в экосистеме, что компания представила роадмапы (Pathways) по своим сервисам. Внутри каждого из шести направлений есть ссылки, где структурно представлена через документацию и видео-туториалы подробная база данных по необходимым библиотекам для разработчиков.

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии0

Sonos отреагировала на негативные отзывы об обновлённом мобильном приложении, выпущенном 7 мая. Клиенты жаловались на отсутствие таймеров сна, неработающее управление локальной музыкальной библиотекой и отсутствие возможности редактировать плейлисты. Приложение иногда не работало, но Sonos намерена решить эту проблему к следующему месяцу.

Компания также работает над восстановлением функциональности. На этой неделе выйдет первый патч. В целом, восстановить работу всех функций планируется в ближайшие месяцы.

Директор по продукту Максим Бува-Мерлен говорит, что новое приложение закладывает основу для «захватывающих инноваций, которые появятся у Sonos в ближайшие годы». Следующие продукты компании могут выйти уже в июне.

Пока же владельцы Android-смартфонов могут установить более раннюю версию приложения, а вот на iPhone такой возможности нет.

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии0

Суд в деле Epic обвинил Apple в недобросовестном отношении к кнопкам и ссылкам. На будущих слушаниях будут обсуждаться правила App Store, в том числе касающиеся ограничения стилей кнопок для перехода по внешним ссылкам.

Судья полагает, что такими действиями Apple пытается ограничить конкуренцию.

В 2021 году судья Федерального окружного суда Северного округа Калифорнии Ивонн Гонсалес Роджерс обязала Apple разрешить разработчикам использовать внешние способы оплаты, и компания неоднократно пыталась обжаловать это решение.

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии0

5 главных трендов среди мобильных приложений в 2024 году


Приложения здоровья (mHealth)

В России растет популярность умных устройств для удаленного контроля за здоровьем. А глобально mHealth активно развивается в секторе телемедицины, дистанционного мониторинга здоровья и популяризации здорового образа жизни.

E-commerce

Пользователи всё чаще предпочитают делать покупки через мобильные устройства. Ожидается, что развитие ИИ, улучшение персонализации, поисковых систем и применение в этом секторе дополненной реальности также положительно повлияют на развитие мобильного шопинга.

Видео- и фоторедакторы

Здесь основной потребитель — поколение Z с его увлечением медиаконтентом. Смартфоны и мобильные приложения уже сейчас предлагают супервозможности для создания контента от идеи до публикации. А применение ИИ здесь создает невероятные перспективы — только взгляните на современную обработку видео и фото, генерацию голоса и субтитров, создание фильтров и анимаций. 

Финтех

Во второй половине 2024 года аналитики ожидают снижения процентных ставок. Это может привести к резкому притоку средств и создать спрос на новые улучшенные решения во всем финтехе, особенно в области цифровых платежей, инвестирования и технологии блокчейн. 

Искусственный интеллект

ИИ так или иначе влияет на все вышеперечисленные отрасли. Но самым востребованным направлением здесь по-прежнему остается машинное обучение.

P. S. В полной версии этой статьи найдете еще больше деталей и аналитики по рынку мобильных приложений.

Теги:
Всего голосов 5: ↑5 и ↓0+6
Комментарии0

Ближайшие события

Состоялся релиз библиотеки SystemNotification, которая позволяет создавать уведомления SwiftUI в стиле системных оповещений. При этом доступна полная кастомизация. К примеру, можно добавить иконку, текст, изменить цвета или полностью модернизировать внешний вид.

Код библиотеки открыт и опубликован на GitHub. Вместе с этим есть демо-приложение и подробная документация.

Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии0

2 мая 2024 года Mozilla сообщила о преодолении рубежа в 1000 дополнений, доступных для Android-версии Firefox в каталоге AMO (addons.mozilla.org).

В декабре 2023 года, после введения в строй инфраструктуры дополнений для Android-версии Firefox, в каталоге насчитывалось 489 дополнений. Менее чем за пять месяцев число дополнений, портированных для Android-версии Firefox, удвоилось.

Разработчики дополнений, уже поставляемых для настольной версии Firefox, могут адаптировать свои продукты для работы в мобильной версии, переведя дополнение с модели постоянного фонового выполнения (extension.getBackgroundPage) на режим обработки событий (browser.runtime.onMessage.addListener), а также задействовав методы адаптивной компоновки элементов интерфейса.

Источник: OpenNET.

Теги:
Всего голосов 5: ↑5 и ↓0+6
Комментарии0

В ходе работы над своим драйвером печати мне пришлось написать эмулятор 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 принтеры.

Приложение в данный момент опубликовано для открытого тестирования

https://play.google.com/apps/testing/ru.a402d.ippprinter

Теги:
Всего голосов 4: ↑4 и ↓0+5
Комментарии0

В новую версию мобильного приложение «Госуслуги» (для RuSrore. Google Play и App Store) разработчики добавили сторис.

В версии 18 приложения добавлен информационный блок в формате сторис. Как и в других приложениях, карточки находятся на главном экране сверху и перелистываются автоматически. Если нужно внимательнее прочитать текст, достаточно задержать палец на экране.

Из сторис на «Госуслугах» можно в краткой форме узнать о возможностях приложения. Например, как подключить уведомления о судебных решениях, быстро оформить онлайн-выписку или подключить вход по QR-коду.

Теги:
Всего голосов 3: ↑3 и ↓0+4
Комментарии3

Наш опыт внедрения компонентной разработки

Компонентная разработка подразумевает деление мобильного приложения на отдельные компоненты (фичи). За каждый из них отвечает конкретный разработчик — Feature-оунер. Часть времени он посвящает задачам компонента, а часть — технической документации (Roadmap). Feature-оунер также контролирует работу остальных разработчиков, прикрепленных к фиче.

Мы решили перейти на новую методологию на текущем проекте по двум причинам:

  1. У тимлида на проекте было мало времени, его нужно было разгрузить.

  2. Проект смело можно назвать супераппом, он большой. И чтобы новый разработчик полноценно въехал в работу, обычно уходило 3–4 недели. Нам нужно было этот процесс ускорить.

Вот как мы распределили роли:

Методология подходит для больших команд — от 6 разработчиков. Идеально, если часть команды — это стажеры или джуниор-разработчики. В этом случае на позиции Feature-оунеров подходят миддлы, а в их команды можно добавлять стажеров или джунов.
Методология подходит для больших команд — от 6 разработчиков. Идеально, если часть команды — это стажеры или джуниор-разработчики. В этом случае на позиции Feature-оунеров подходят миддлы, а в их команды можно добавлять стажеров или джунов.

И вот что нам это дало:

  • Тимлид действительно стал тратить меньше времени на проекте и выполнял только ключевые задачи, что позволило уделить больше времени другим проектам.

  • Документация проекта оказалась полезной уже в этом проекте. В среднем новый разработчик тратил на 20% времени меньше на ресерч и общение с другими участниками команды, чтобы понять, как работает фича.

  • На выходе у нас получился полностью задокументированный проект. Даже если мы вернемся к нему через пару лет, мы быстро вспомним, как он реализован, и не будем тратить много времени на ознакомление. А если другая команда начнет с ним работать, для них это не будет темным лесом.

Это короткая версия статьи о компонентной разработке от нашего тимлида Саши Омельяненко — весь текст читайте тут.

Теги:
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

VK запустила бесплатный курс по созданию мини-приложений для разработчиков, IT-предпринимателей и бизнесменов. С обучающим курсом от VK Mini Apps пользователи смогут научиться создавать, монетизировать и продвигать свои мини-приложения.

Курс «Разработка мини-приложений ВКонтакте» состоит из 260 минут обучающего контента, 70 уроков и восьми модулей. Каждый посвящён одному из этапов создания сервиса: «Знакомство с мини-приложениями», «Выбор идеи», «Дизайн», «Разработка», «Тестирование», «Модерация», «Монетизация» и «Продвижение». Весь процесс показан на примере мини-приложения «Блюдо дня». Механика заключается в заказе и доставке еды — на курсе можно создать похожий сервис или реализовать свою идею. Курс можно смотреть последовательно или выбирать модули; обучающие ролики доступны в любое время.

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии0

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: <…>,
    ),
  ),
   );

Готово!

Теги:
Всего голосов 4: ↑4 и ↓0+5
Комментарии1

Вклад авторов