Mask Surf Pro for mobile devices

Mask Surf Pro mobile application is cross-platform Xamarin application which includes MVVM structure and Xamarin.Forms graphical interface.

Google Play link:
https://play.google.com/store/apps/details?id=com.thanksoft.masksurfpro

Development process featured:

  1. Model–view–viewmodel structure with MVVM Light Toolkit.
    Communication between parts is handled with Dependency services from PCL to platform specific parts and messages from platform specific parts to PCL.
  2. Cross-platform and platform specific model parts.
    Platform specific functions are:

    • file operations
    • sockets and network connections
    • saving and restoring application’s settings

    All the rest model parts are cross-platform and located in PCL.

  3. Multilanguage support. Strings are stored in resource files.
  4. Remote database is using for cities detection. This database in binary form located on website showtheip.net. Each time user downloads cities information application sends request to PHP script on website which queries cities geoip database and returns result dataset to application for sorting and displaying.
  5. Cross-platform graphical user interface (GUI) with Xamarin.Forms.
  6. 4 different view sets for different GUI profiles: SW300 and SW400 for smartphones, SW500 and SW700 for tablets. SWN according to Google’s guides for Android means that at least N device independent pixels (dp) required for smaller display side to use layout.
    To emulate specified profiles in Android emulator these device characteristics were used:

    • Nexus S for SW300 (550x320dp)
    • Nexus 6 for SW400 (683x411dp)
    • Nexus 7 (tablet) for SW500 (961x552dp)
    • 10” tablet real device with FullHD resolution for SW700 (1280x752dp)

    4 GUI profiles scaled to the same display density.

    SW700, SW500, SW400, SW300

    SW700 targets 8”-10” tablets, SW500 targets 7” tablets, SW400 targets modern medium end and high end phones, SW300 targets old and cheap new phones.

    All Android screenshots (click to view).

    SW700

    Main page Countries Cities Tor messages Settings About page
    sw700-4 sw700-5 sw700-6

    SW500

    Main page Countries Cities Tor messages Settings About page

    SW400

    Main page Countries Cities Tor messages Settings About page

    SW300

    Main page Countries Cities Tor messages Settings About page

    Universal Windows Platform screenshots.
    Unfortunately Android is the only mobile OS that allows to launch external applications. Because Mask Surf relies on Tor client for anonymity purposes Mask Surf’s logic doesn’t work on iOS and Windows Phone/Windows 10 mobile. But graphical user interface created with Xamarin.Forms is cross-platform and has similar structure on all 3 platforms. Take a look at Windows 10 mobile screenshots.

  7. Well designed landscape GUI looks not so accurate but still fine in portrait mode.SW500
    Main page Countries Cities Tor messages Settings About page
    sw500p-6

    If you need to make both modes look even better it is possible by tuning them or load completely different layout in Page’s SizeChanged event handler. It raises when page changes it’s width or height.

  8. Questions? Please ask them.