Code Monkey home page Code Monkey logo

maniacs-oss / android-app-1 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from protonvpn/android-app

0.0 1.0 0.0 32.39 MB

Official ProtonVPN Android app

License: GNU General Public License v3.0

Java 3.94% Kotlin 0.52% JavaScript 0.18% HTML 0.20% Shell 2.75% Python 0.55% CMake 0.20% Makefile 0.80% Perl 10.67% M4 0.31% C++ 19.02% C 45.73% Roff 0.57% Batchfile 0.08% AGS Script 0.05% Assembly 13.72% Objective-C 0.41% xBase 0.29% Tcl 0.01% SmPL 0.01%

android-app-1's Introduction

ProtonVPN for Android

Copyright (c) 2019 Proton Technologies AG

Build instructions

  • Install sdk, ndk, cmake, swig
  • Clone this repository
  • ./gradlew assembleProdDebug or open and build in Android Studio

Build release

To complete a release build signing keys need to be provided: ./gradlew assembleProdRelease -PkeyStoreFilePath= -PkeyStoreKeyAlias= -PkeyStorePassword= -PkeyStoreKeyPassword=`

Rebuild strongswan

This project is using native libraries from open-source project Strongswan. To simplify the build process we include prebuilt copies of those libraries here. To rebuild them follow these steps:

  • git submodule init followed by git submodule update in the main directory (we include original Strongswan repository as a git submodule)
  • cd strongswan and follow build instructions from Strongswan to rebuild native libraries
  • after a successful build, run cp -r strongswan/src/frontends/android/app/src/main/libs/* app/src/main/jniLibs in our main directory to copy the prebuilt libraries and rebuild the ProtonVPN client

Code style

Project uses agreed code style ProtonStyle.xml for java. Import it in Android studio via File>>Settings>>Editor>>Code style>>Import Scheme For kotlin's code style we use ktlint with default rules

Contributing

If you would like to contribute, please keep in mind the following rules:

  • Try to stick to the project's existing code style and naming conventions
  • The code base is mostly written in Java, but we are transitioning to Kotlin, so new code should be written in Kotlin where possible
  • Our preferred tech stack is Kotlin, MVVM, data-binding and coroutines, so any new features or large refactors should conform to this preferred tech stack
  • After adding/updating open source dependencies run gradlew updateLicensesJson to update attributions.

Internally our CI automatically checks all pull requests for code style issues, and runs our tests. However you can run those locally as well.

gradlew checkstyle
gradlew detekt
gradlew test
gradlew androidTest

By making a contribution to this project you agree to the following:

  1. I assign any and all copyright related to the contribution to Proton Technologies AG;
  2. I certify that the contribution was created in whole by me;
  3. I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it) is maintained indefinitely and may be redistributed with this project or the open source license(s) involved.

Versioning

  • Version matches format: [major][minor][patch]

License

The code and datafiles in this distribution are licensed under the terms of the GPLv3 as published by the Free Software Foundation. See https://www.gnu.org/licenses/ for a copy of this license.

Copyright (c) 2019 Proton Technologies AG

android-app-1's People

Contributors

algirdaspundzius avatar mateusz-markowicz avatar jsoref avatar pandermusubi avatar thgoebel avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.