GSoC 2018 Proposal

Last modified by Ecaterina Moraru (Valica) on 2019/01/18 12:04



In this proposal I will try to make a plan for this GSoC for work on a project Android-Authenticator.

Step by step

A little bit about AndroidAuthenticator

Here you can read abut creating androidauthenticator. In two words:

  1. Extend AbstractAndroidAuthenticator by some class
  2. Some methods must return Bundle. In this case you can return bundle with Intent object to edit/create account an other actions
  3. getAuthToken await that you will return bundle with auth token

As you see, any method which need Bundle as a result - must return some set of parameters (intent, authToken or something else)

Changing of authenticator architecture


  • Add auth methods abstraction. It will help to include different ways to auth
  • Replace boilerplate with work with HTTP requests by some library usage and API interfaces/realisations (it will remove redundant handiwork with requests). It can increase size of APK, but this can be fixed by lint/proguard setting up). Besides, in future realises it can help to avoid redundant work with new protocols or something else which will be resolved on library level. Now I know Retrofit, Volley

Tests and documentation


I'd like to write all documentation in Java Docs (/**...*/ blocks), but also I think that better documentation will be tests - they are always actual and true tests must cover all usage cases.



Next instruments will be used for standard unit-tests which can need or need not in android-environment:

  • Robolectric (emulate android-environment and can be useful in cases when instrumentation of class/object/method is java-clear but have some dependencies from android-environment)
  • JUnit
  • Mockito (mocking objects in tests)
  • Power-Mockito (extended mocking of objects, can be useful in different tests where, for example, need to mock instantiating objects)

Next instruments will be used for UI tests:

  • Espresso


Created by Aleksei Ovsiannikov on 2018/05/12 09:48

Get Connected