I would like to know whether a given mobile app is native or written using flutter. Is there any way to know that from the build files (apk, ipa.. etc). How can I detect if an app is native or flutter?
You can find whether an app is using flutter or not by using the following method,
- Extract the apk file. You can simply rename the file extension to .zip and extract it.
- Navigate to the lib folder.
- You will find a list of subfolders for different architectures.
- The subfolder will contain a libflutter.so file. This libflutter.so will be present in all flutter apps.
Here is a screenshot of the file from the Flutter Gallery app.
One can check from the phone by enabling layout bounds. If the app show bounds around all component then it might be developed with native android or react native. Still, in the case of flutter, it directly accesses canvas from the native side and paints on it, so it will not show any bounds around the components due to the direct use of canvas.
Here is SS of the app made with Flutter and native or other frame work which uses the native component.
Flutter |
---|
Native Component |
. |
Of course, you can find out by extracting the APK. But there is another simple way:
Install the app on your device, then open it and check list or grid in the UI.
If you feel that when you scroll with two fingers, the speed doubles, and when you scroll with one finger, then the application is developed in Flutter.
Upload the apk file on http://www.javadecompilers.com/apk
If you find a folder flutter in sources so this app is a flutter app
Simple solution:
- Activation of the tile:
- Developer Options ON
- Quick settings developer tiles
- Show layout bounds
Open app, swipe down from the top of the screen and touch icon layout to enable show layout bound.
Flutter app won't show small pieces layout of UI but Native app does.
We can do the Finger-scroll test.
Start by scrolling the app with one finger, then use two fingers. Make sure you are scrolling at the same pace. If the speed of the scroll increases with every finger you add, then it's built using Flutter.
FlutterShark app (developed by myself) can help you determine if an app is built with Flutter. Take Google Ads app as an example.
- Install Google Ads app on your device first.
- Install FlutterShark app on your device. https://play.google.com/store/apps/details?id=com.fluttershark.fluttersharkapp
- Open FlutterShark app. FlutterShark app will be able to list all the apps built with Flutter on your device. More than that, FlutterShark app will help you identify Flutter version and all the Flutter packages used inside the app.It is helpful for Flutter developers to gain technology insight to Flutter apps on the market.
Have fun with Flutter!
- download and decode apk with apktool
java -jar apktool.*.jar d file.apk -o output
open up AndroidManifest.xml in a text editor
search for occurrences of flutter within the file
if using vim, at the terminal prompt,
vim +/flutter +"set hlsearch" AndroidManifest.xml
such occurrences could be flutter plugins and 'flutterEmbedding' which is responsible for integrating flutter within an Android app.
you can easily install flutter shark https://play.google.com/store/apps/details?id=com.fluttershark.fluttersharkapp
© 2022 - 2024 — McMap. All rights reserved.