Pull to refresh

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

Level of difficultyEasy
Reading time4 min
Views8.1K
Original author: Vitali B

Привет, 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, за что ей отдельная благодарность.

Распаковать APK можно более просто. Достаточно переименовать файл .apk в .zip, и найти libflutter.so и другие ресурсы. Спасибо, @flexbyteза подсказку в комментариях.

Заключение

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

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

Tags:
Hubs:
Total votes 11: ↑7 and ↓4+3
Comments14

Articles