[Перевод] Как определить, что мобильное приложение написано на Flutter

Привет, Flutter-энтузиасты! Сегодня мы поговорим о том, как можно определить, что мобильное приложение написано на Flutter. Это знание может быть полезным для разработчиков и менеджеров в иссоедовании конкурентов, а также для любителей технологий, которые просто хотят узнать больше о том, что находится под капотом их любимых приложений. Итак, без лишних предисловий, давайте приступим.

Плавный интерфейс и сложные анимации

  • Сложность: 1

  • Точность: 2

Flutter славится своими возможностями создания плавных и красивых интерфейсов. Если видите что-то необычайно красивое и плавное, возможно, перед вами Flutter-приложение. Однако важно помнить, что хороший дизайн и плавность анимаций могут быть достигнуты и в других фреймворках, так что это лишь один из многих признаков.

С другой стороны, если в приложении дёрганные анимации и большое время отклика, это тоже может быть Flutter-приложение. Скорее всего разработчики не очень старались над этим приложением либо заказчик решил сэкономить.

Скроллинг двумя пальцами происходит в два раза быстрее

  • Сложность: 1

  • Точность: 3

В приложениях на Flutter скроллинг двумя пальцами происходит в два раза быстрее по сравнению с нативными приложениями. Более того, скроллинг тремя пальцами происходит в 3 раза быстрее. Однако, стоит отметить, что разработчики Flutter не дремлют и недавно исправили этот «баг», поэтому этот метод может быть не так надёжен, как раньше.

Приложения, представленные на официальной странице Flutter

  • Сложность: 1

  • Точность: 5

Наверное, самый надёжный способ — проверить официальную страницу Flutter. На своей доске почему Flutter представляет собой коллекцию приложений, разработанных на Flutter.

Доска почёта Flutter

Доска почёта Flutter

Онлайн-сервис FlutterHunt

  • Сложность: 1

  • Точность: 4

FlutterHunt — это онлайн-база данных, собирающая информацию о приложениях, разработанных на Flutter. Кстати, пообщаться с создателем этого сервиса можно здесь.

FlutterHunt

FlutterHunt

Приложение Flutter Shark

  • Сложность: 1

  • Точность: 4

Да, существует целое приложение для определения, использует ли другое приложение Flutter! Оно анализирует установленные на вашем устройстве приложения и определяет, разработаны ли они на Flutter. Интересно, а Flutter Shark написано на Flutter?

Приложение Flutter Shark

Приложение Flutter Shark

Скорость разработки и единая кодовая база

  • Сложность: 3

  • Точность: 2

Flutter позволяет разработчикам использовать один и тот же код для создания приложений как для Android, так и для iOS, что значительно ускоряет процесс разработки. Если вы замечаете, что компания выпускает новые функции одновременно на обе платформы и делает это довольно быстро, возможно, они используют Flutter.

Включение «Show layout bounds» в меню разработчика

  • Сложность: 4

  • Точность: 4

Этот метод для крепких мидлов. В настройках разработчика Android вы можете включить опцию «Show layout bounds», чтобы увидеть границы элементов интерфейса. Flutter-приложения имеют собственный механизм рендеринга, соответственно элементы интерфейса не имеют границ в отличие от нативных приложений.

Как включить «Show layout bounds» в меню разработчика на Android

Шаг 1: Включите режим разработчика

  • Откройте настройки вашего устройства Android.

  • Прокрутите вниз до пункта «О телефоне».

  • Найдите номер сборки (он может находиться в разделе «Информация о программном обеспечении» или «Информация о телефоне»).

  • Нажмите на номер сборки 7 раз. Вы увидите сообщение о том, что вы становитесь разработчиком.

Шаг 2: Включите «Show layout bounds»

  • Вернитесь в основное меню настроек.

  • Прокрутите вниз до нового пункта «Для разработчиков» или «Опции разработчика», который появился после активации режима разработчика.

  • Войдите в «Опции разработчика».

  • Пролистайте вниз до раздела «Отладка» или «Визуализация».

  • Найдите и включите опцию «Show layout bounds» или «Показать границы макета».

Отладка

  • Сложность: 5

  • Точность: 5

Вот мы и подошли к методу для настоящих сеньёров. Flutter-приложения можно идентифицировать по определённым характеристикам их работы и взаимодействия с системой, доступных при отладке. Android Studio и Visual Studio Code позволяют наблюдать за жизненным циклом приложения, его взаимодействием с системой и другими техническими аспектами.

Вот как вы можете это сделать:

  • Подключите устройство к компьютеру. Убедитесь, что на вашем устройстве включен режим разработчика и разрешена отладка по USB.

  • Откройте вашу среду разработки. Запустите Android Studio или Visual Studio Code с установленным плагином Flutter и Dart.

  • Запустите ADB (Android Debug Bridge). Откройте терминал или командную строку и введите команду adb devices, чтобы убедиться, что ваше устройство подключено.

  • Запустите приложение на устройстве. Откройте нужное Flutter-приложение на вашем устройстве.

  • Откройте Logcat в Android Studio. В Android Studio перейдите во вкладку «Logcat» (внизу экрана). В Visual Studio Code используйте встроенный терминал для просмотра логов, выполнив соответствующую команду для запуска логов.

  • Фильтруйте вывод лога по идентификатору приложения.

  • Ищите упоминания Flutter и Dart VM. При запуске и работе Flutter-приложения в логах могут появляться сообщения, связанные с Dart VM или Flutter Engine.

Этот метод является одним из самых надёжных способов определить, разработано ли приложение с использованием Flutter.

Разбор APK-файла

  • Сложность: 666

  • Точность: 5

Если предыдущие методы вас не удовлетворили, вы можете изучить приложение на более низком уровне, распаковав APK.

Вот как вы можете это сделать:

  • Скачайте APK приложения. Вы можете сделать это через различные онлайн-сервисы или инструменты, позволяющие скачивать APK напрямую с Google Play Store.

  • Используйте инструмент для «распаковки» APK. Один из популярных инструментов — это APKTool или любой другой аналогичный инструмент, который позволяет декомпилировать APK и просматривать его содержимое.

  • Ищите файлы libflutter.so и kernel_blob.bin. Откройте декомпилированный APK и просмотрите каталоги ./lib/ и ./assets/flutter_assets/.

Почему это работает:

  • libflutter.so — это библиотека для Flutter, используемая для загрузки и выполнения кода Dart на Android.

  • kernel_blob.bin содержит скомпилированный код Dart приложения.

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

Заключение

Вот и все! Надеюсь, эти методы помогут вам узнать больше о мире Flutter и возможно, даже вдохновят на создание собственного проекта.

Если было интересно и полезно, приглашаю в свой Linkedin.

© Habrahabr.ru