Access to freedom in the internet world only with one switch! Tap and wait until you find a proper server of hundreds of servers provided by VPN Gate, without worrying about government censorship.
It is enough to sign in with a Gmail account that is subscribed to the VPN Gate Daily mirror site service, the app will do the rest and wait for its boss for a brief hint!
This VPN uses the implementation of SSTP protocol in the Open SSTP Client with slight changes.
You can read about it here.
- Easy to use only two steps, sign in then tap, and finally only one tap!
- There's no server for collecting and processing data, all stuff remains locally for better privacy.
- Turn on VPN, without launching the app by defining a Quick Tile Settings in the notification drawer.
- Allows you to split the tunnel for apps you don't want to use with the VPN traffic.
- Supports two languages English and Persian.
- Optimized for all types of screen sizes.
The app's design system is based on Material 3, and inspired by designs for VPN apps by Emmanuel Edokpa and Mohammad Reza Farahzad, and by adding my own creativity, it is optimized for both dark and light modes.
- How to write a Gradle task to sync the Detekt configs between CLI and GUI interfaces.
- How to pipeline a basic CI/CD for releasing a version to the app's repository page by creating a Git tag.
- How to write a VpnService and use Bound Service in practice and real-world use cases.
- How to ping a VPN server by the correct way.
- How to use Protocol Buffer as a serializer mechanism for DataStore.
- How to use the Google Sign-In mechanism for authentication and authorization.
- How to benchmark Jetpack Compose element for better performance.
- How to write Visual Test for Jetpack Compose element animation.
- How to web scraping with CSS selectors.
- How to define a route as Conditional Navigation in Compose.
Undoubtedly, based on the recommended architecture of the official Android site
- Jetpack Compose
- AndroidX Work Manager
- Dagger Hilt
- AndroidX DataStore
- Protocol Buffer
- Google API Client
- Play Service Auth
- Skrape{it}
- Cache4k
- OkHttp
- Testing
- AndroidX Macrobenchmark
- Mock Web Server
- Truth Assertion
- Robolectric
Just follow the steps of this link to get the client id
and if you have created it for the debug key, replace it in this line:
https://github.com/ErfanSn/NsmaVPN/blob/78382f8896de6d4950dc95314a5834b5113f9491/app/build.gradle.kts#L68
otherwise:
https://github.com/ErfanSn/NsmaVPN/blob/78382f8896de6d4950dc95314a5834b5113f9491/app/build.gradle.kts#L77
And finally sync then build the project, that's it.
- Migrate the project to KMP technology, especially for Windows Desktop platform support.
We welcome your contribution with open arms. Please refer to CONTRIBUTING.md for instructions on how to contribute.
Nsma VPN is distributed under the terms of the Apache License (Version 2.0). See the license for more information.