[Android Audit] Tango Android app decompiled and reviewed [ Jun 27, 2104 ]
Some notes on how to improve Tango for Android, experience and performance:
- FloatingChatHeads:
- Use Scroller or OverScroller to handle the ChatHead movement onFling instead ofSlideAnimation.
- FlingMessageView.java, FlingGestureListener : onFling method calls startFlingAnimationwhich is supposed to do the actual movement but it is done via Animation, SlideAnimation.
- Using Animation will result in a very smooth motion effect, In HoverChat we usedOverScroller, and Facebook Messenger also uses it. OverScroller is tricky though because it uses two separate unrelated SplineOverScroller mScrollerX, mScrollerY.
- Having a reference to the FloatingMessageService in FloatingChatHeadsAdapter andFloatingMessageListAdapter does not sound like a very good idea, it would not cause memory leak but still.
- FLoatingMessageService is not closed when user closes all FloatingMessages.
2. AndroidManifest.xml:
- Target latest Android sdk android:targetSdkVersion=”19" in uses-sdk tag to avoid menu button of shame plus using an actual ActionBar.

3. tutorial_view_pager_activity.xml, tutorial_view_pager_activity.png:
- Use FrameLayout instead of RelativeLayout, FrameLayout is lighter and it will do the job.
- Swapping CirclePageIndicator color values app:fillColor=”#ffcf3919"app:pageColor=”#ffff927a” makes more sense because that would give the active page a more highlighted color.
- Update android:paddingBottom=”14.0dip” for tutorial_indicator_skip button to be likepaddingTop because it is now off by two pixels and let the view calculate its correct height instead of fixing it to 50.0dip because so it would work with any font size.

4. Confusing use of tabs in confusing_tabs.png

5. Using Android default preferences with custom preference widgets instead of layouts and normal Activity would insure the correct spacing and feel on different screens, check settings.png

6. profile_settings_x.png could be improved by simply using EditText hint instead of labels (TextView) and dialogs and unify fields size and surrounding space.



7. Obfuscation should be the way to go, check src_tree.pdf. Plus it would help decrease the app size by 1 MB or even slightly more, dex file should be smaller after obfuscation.
Getting in touch
I’d love to help, get in touch with me (mmegazar+audit@gmail.com) for a free Android APK Audit or full Android Audit including your process and sourcecode.