Kotlin version of android boilerplate app that showcases architecture and libraries used at ribot http://ribot.co.uk
Ribot Sample Android app rewritten using Kotlin. It demonstrates the architecture, tools and guidelines that they use when developing for the Android platform (https://github.com/ribot/android-guidelines)
DISCLAIMER: This is not an official Ribot repository.
Libraries and tools included:
This project follows ribot's Android architecture guidelines that are based on MVP (Model View Presenter). Read more about them here.
Imagine you have to implement a sign in screen.
ui
called signin
ActivitySignIn
. You could also use a Fragment.SignInMvpView
that extends MvpView
. Add the methods that you think will be necessary, e.g. showSignInSuccessful()
SignInPresenter
class that extends BasePresenter<SignInMvpView>
SignInPresenter
that your Activity requires to perform the necessary actions, e.g. signIn(String email)
. Once the sign in action finishes you should call getMvpView().showSignInSuccessful()
.SignInPresenterTest
and write unit tests for signIn(email)
. Remember to mock the SignInMvpView
and also the DataManager
.ActivitySignIn
implement SignInMvpView
and implement the required methods like showSignInSuccessful()
SignInPresenter
and call presenter.attachView(this)
from onCreate
and presenter.detachView()
from onDestroy()
. Also, set up a click listener in your button that calls presenter.signIn(email)
.This project integrates a combination of unit tests, functional test and code analysis tools.
To run unit tests on your machine:
./gradlew test
To run functional tests on connected devices:
./gradlew connectedAndroidTest
Note: For Android Studio to use syntax highlighting for Automated tests and Unit tests you must switch the Build Variant to the desired mode.
To quickly start a new project from this boilerplate follow the next steps:
app/build.gradle
file, packageName
and testInstrumentationRunner
.src/main/AndroidManifest.xml
and src/debug/AndroidManifest.xml
.app/build.gradle
add the signing config to enable release versions.app/build.gradle
proguard-rules.pro
to keep models (see TODO in file) and add extra rules to file if needed. Copyright 2015 Ribot Ltd.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.