This thread shows how a wallpaper app called Panels makes money using lots of Google Ads, especially on Android, which has many ad-related classes. The app is small compared to others, thanks to size optimizations like removing duplicate files and offloading videos. They also use some cool tech like Kotlin and Firebase. Overall, it’s a sneaky look at app making tricks!
Do you want a paid wallpaper app from @MKBHD?
Maybe not? Well do you want to know how its made 🤓
🧵 Looking inside the new @Panels_art app, starting with ads
🎤 Ads have been a big topic
Panels is using Google Ads in both iOS (GAD) & Android
20 MB of Panels iOS is bloat from binary symbols in the app ⚖️
There's also another couple MB of savings from optimizing images, videos, and removing duplicate files
In the android app, two videos make up ~1/4 of the app size. The largest video is splash_screen.mp4 (2.6 MB)
These type of videos are a great example of where dynamic features can be used. Once a user makes an account, they'll never see it again so the video could be offloaded
Do you want a paid wallpaper app from @MKBHD?
Maybe not? Well do you want to know how its made 🤓
🧵 Looking inside the new @Panels_art app, starting with ads🎤 Ads have been a big topic
Panels is using Google Ads in both iOS (GAD) & Android
On Android, is the largest dependency in the dex☠️ Looking at it another way, we're monitoring over 16k classes in the entire Android app with Reaper
Of that, 4,172 (25%) of classes are related to Google Ads 😬Let's look at Panels vs. other wallpaper apps
iOS (install size)
WallUp: 197.3 MB
Wallcraft: 173 MB
*Panels*: 119.4 MB
@wallaroo_app: 29 MB
Android (download size)
Wave Live Wallpapers: 91.4 MB
*Panels*: 14.5 MB
Wallpapers (by Google): 2.9 MB
... why tf are some of these so big 🤦So on Panel's app size
20 MB of Panels iOS is bloat from binary symbols in the app ⚖️
There's also another couple MB of savings from optimizing images, videos, and removing duplicate filesIn the android app, two videos make up ~1/4 of the app size. The largest video is splash_screen.mp4 (2.6 MB)
These type of videos are a great example of where dynamic features can be used. Once a user makes an account, they'll never see it again so the video could be offloadedWe did see the use of Kotlin in the iOS app 👀
Specifically we see Panels using Skie from @TouchlabHQ for ActionWalls 🤖Finally, some libraries Panels is using
Firebase, @RevenueCat, Lottie, Kingfisher
Pic is all the dynamically linked Firebase frameworksThanks to all who tagged us about this ☺️
We'll continue to monitor the Panels app and can report on any big changes 🫡
Let us know what you think and if you have any questions! Full analysis links 👇iOS analysisAndroid analysis
yes
Do you want a paid wallpaper app from @MKBHD?
Maybe not? Well do you want to know how its made 🤓
🧵 Looking inside the new @Panels_art app, starting with ads ... Ads have been a big topic
Panels is using Google Ads in both iOS (GAD) & Android
On Android, is the largest dependency in the dex ... ️ Looking at it another way, we're monitoring over 16k classes in the entire Android app with Reaper
Of that, 4,172 (25%) of classes are related to Google Ads ... Let's look at Panels vs. other wallpaper apps
iOS (install size)
WallUp: 197.3 MB
Wallcraft: 173 MB
*Panels*: 119.4 MB
@wallaroo_app: 29 MB
Android (download size)
Wave Live Wallpapers: 91.4 MB
*Panels*: 14.5 MB
Wallpapers (by Google): 2.9 MB
... why tf are some of these so big 🤦 ... So on Panel's app size
20 MB of Panels iOS is bloat from binary symbols in the app ️
There's also another couple MB of savings from optimizing images, videos, and removing duplicate files ... In the android app, two videos make up ~1/4 of the app size. The largest video is splash_screen.mp4 (2.6 MB)
These type of videos are a great example of where dynamic features can be used. Once a user makes an account, they'll never see it again so the video could be offloaded ... We did see the use of Kotlin in the iOS app
Specifically we see Panels using Skie from @TouchlabHQ for ActionWalls 🤖 ... Finally, some libraries Panels is using
Firebase, @RevenueCat, Lottie, Kingfisher
Pic is all the dynamically linked Firebase frameworks ... Thanks to all who tagged us about this ️
We'll continue to monitor the Panels app and can report on any big changes 🫡
Let us know what you think and if you have any questions! Full analysis links ... iOS analysis ... Android analysis
Missing some Tweet in this thread? You can try to
Update
More Threads by @emergetools
This thread explains why the iOS app is 699MB, mostly due to large dynamic frameworks (64%) and assets. They suggest qui...