Challenge Overview
Welcome to Android - Sample Login Application for Saxo Developer API.
1. Build a sample application that shows the usage of the login flow of the Saxo developer API - https://www.developer.saxo/openapi/learn/authorization-code-grant-pkce
2. The authentication must be done with the OAuth flow "Authorization Code Grant with Proof Key for Code Exchange" (PKCE) designed for native apps.
3. The code verifier must be S256.
4. The login page must be presented to the user in a browser element that is not controlled or accessible by the app. This can either be the standard system browser or chrome if available.
5. The devices password manager (biometrics should be used where accepted - fingerprint, iris, etc) must be able to remember and fill in passwords for the user in the browser element used.
6. Configuring the app with OAuth credentials must be simple. This means a single configuration file where it can be specified or similar, as the sample code will be shared without any credentials and users are expected to provide their own.
7. The source code should be optimized for readability, not performance, while still following best practices.
8. The user must be able to:
9. Gradle must be used for dependencies.
10. Wireframe screens provided in the forum.
11. AppKey and AppSecret will be provided in the forum for development.
You will need to create a deployment guide (README.md) and validation document (Validation.md).
Contest Details
- A sample application must be developed that shows the usage of Saxo API.
- We are aiming just login functionality of the API.
Project Background
- The purpose of the application is to demonstrate the best way to authenticate with Saxo from a native mobile application and use the devices password manager to assist the user with the login.
- The source code will be shared on a Github repository where people can download the samples, input their own OAuth application credentials and run it on their local machines.
Technology Stack
- Android Studio
- Java 8
- Android API Level 21+
Individual Requirements
1. Build a sample application that shows the usage of the login flow of the Saxo developer API - https://www.developer.saxo/openapi/learn/authorization-code-grant-pkce
2. The authentication must be done with the OAuth flow "Authorization Code Grant with Proof Key for Code Exchange" (PKCE) designed for native apps.
3. The code verifier must be S256.
4. The login page must be presented to the user in a browser element that is not controlled or accessible by the app. This can either be the standard system browser or chrome if available.
5. The devices password manager (biometrics should be used where accepted - fingerprint, iris, etc) must be able to remember and fill in passwords for the user in the browser element used.
6. Configuring the app with OAuth credentials must be simple. This means a single configuration file where it can be specified or similar, as the sample code will be shared without any credentials and users are expected to provide their own.
7. The source code should be optimized for readability, not performance, while still following best practices.
8. The user must be able to:
- Initiate the authentication flow with Saxo authentication API.
- Log in with a Simulation user, in a login dialog where the phones native password manager can be used.
- Verify that they are logged in by fetching some API data and presenting it to the user.
- Let the user "log out" to restart the flow. (this just means deleting the access/refresh token and return to the first step)
9. Gradle must be used for dependencies.
10. Wireframe screens provided in the forum.
11. AppKey and AppSecret will be provided in the forum for development.
Deployment Guide and Validation Documentation
You will need to create a deployment guide (README.md) and validation document (Validation.md).
- The README.md created must show how to: Configure the application Build application
- The Validation.md created must show all the steps necessary to verify the application: How to run and validate the code using the test example provided
Final Submission Guidelines
- Zip file with Android Studio project
- Deployment Guide and Validation documentation.