Bu gün kiçik, amma özüm üçün uzun müddətdir istədiyim bir tətbiqi Google Play-də canlıya buraxdım: Mobile DevTools - Android developer-lər üçün on-device network trafiki inspektoru.
Problem nə idi?
Android tətbiqi üzərində işləyərkən "bu request niyə uğursuz oldu?", "server hansı header-i qaytarır?", "arxa planda hansı tətbiq gizli sorğu göndərir?" kimi sualların cavabını tapmaq üçün adətən kompüterə qoşulmaq, proxy qurmaq (Charles, Fiddler və s.) və ya emulator-da debug etmək lazım gəlir. Real cihazda, kompüter olmadan, sadəcə telefonun özündə bu məlumatı görmək istəyirdim.
Həll: lokal VPN, uzaq server yox
Mobile DevTools Android-in öz VpnService API-sindən istifadə edir - amma bu, adi VPN tətbiqlərindən fərqli olaraq, trafiki heç bir uzaq serverə yönləndirmir. Sadəcə cihaz daxilində lokal "loopback" bağlantı yaradaraq, digər tətbiqlərin göndərdiyi network sorğularını tuta bilir.
Bunun mənası:
Server yoxdur, hesab yoxdur, analytics yoxdur, reklam yoxdur
Bütün tutulan data (host, header, body) yalnız cihazın öz lokal bazasında saxlanılır
Heç nə developerə və ya üçüncü tərəfə ötürülmür
Əsas funksionallıqlar
Real-time network monitor - cihazdan çıxan hər HTTP/HTTPS sorğusunu canlı izləmək
Request/Response detalları - header, status, body; daxili JSON viewer ilə formatlanmış görüntü
App Inspector - hər sorğunun hansı tətbiqdən gəldiyini görmək (per-app attribution)
Statistics - trafik həcmi və nümunələri üzrə ümumi baxış
Opsional HTTPS decryption - istəyən istifadəçi lokal sertifikat (CA) yaradaraq şifrəli trafiki də oxuya bilir; açar cihazdan kənara çıxmır və funksiya default olaraq deaktivdir
Texniki tərəf
Tətbiq Kotlin-də yazılıb, release build-də R8 minify və resource-shrink aktivdir (kotlinx.serialization və BouncyCastle üçün xüsusi keep-rule-larla). Google Play App Signing istifadə olunur ki, upload keystore yalnız yükləmə açarı rolunu oynasın.
Play Store-un tələb etdiyi həssas icazələr (VpnService, QUERY_ALL_PACKAGES, foreground service) üçün ətraflı əsaslandırma və nümayiş videosu təqdim etməli oldum - bu icazələr adətən ən çox rədd səbəbi olan sahələrdir, ona görə hər addımı şəffaf sənədləşdirdim: tətbiq niyə bu icazələrə ehtiyac duyur, data haraya gedir (heç yerə), və istifadəçi bu datanı necə silə bilər (Settings → Clear capture history və ya uninstall).
Kimin üçündür?
Öz tətbiqini debug edən Android developer-ləri, API inteqrasiyalarını yoxlayanlar, və "bu request-ə nə oldu?" sualına telefonun özündə cavab tapmaq istəyənlər üçün.
Sınamaq istəyirsinizsə
Mobile DevTools Google Play-də mövcuddur: 👉 play.google.com/store/apps/details?id=dev.aliyev.mobiledevtools
Fikir və rəyləriniz üçün əlaqə: nijat.contact@gmail.com
