All Projects → gabrielhuff → Login Sample

gabrielhuff / Login Sample

A simple Android app that allows users to sign up / login / logout.

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Login Sample

Spring Boot Angular4 Boilerplate
Quickstart for spring boot + angular 4 projects
Stars: ✭ 151 (+439.29%)
Mutual labels:  gradle, spring-boot
21 Points
❤️ 21-Points Health is an app you can use to monitor your health.
Stars: ✭ 244 (+771.43%)
Mutual labels:  gradle, spring-boot
Springboot Rabbitmq
RabbitMQ为异步消息处理提出了一个很好的解决方案,它是一个非常好用的消息中间件,主要用于中间件的解耦,同时,Spring Boot为RabbitMQ提供了支持, Spring Boot为Rabbit准备了spring-boot-starter-amqp,spring-rabbit 支持 AMQP(即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准),并且为RabbitTemplate和RabbitMQ提供了自动配置选项
Stars: ✭ 159 (+467.86%)
Mutual labels:  gradle, spring-boot
Spring Backend Boilerplate
The modularized backend boilerplate based on Spring Boot Framework, easy to get started and add your business part.
Stars: ✭ 134 (+378.57%)
Mutual labels:  gradle, spring-boot
Trampoline
Admin Spring Boot Locally
Stars: ✭ 325 (+1060.71%)
Mutual labels:  gradle, spring-boot
Nice Knowledge System
📚不积跬步无以至千里,每天进步一点点,Passion,Self-regulation,Love and Share
Stars: ✭ 137 (+389.29%)
Mutual labels:  gradle, spring-boot
Spring Petclinic Kotlin
Kotlin version of Spring Petclinic
Stars: ✭ 227 (+710.71%)
Mutual labels:  gradle, spring-boot
Ng Boot Oauth
oauth2 demo with angularjs and springboot
Stars: ✭ 99 (+253.57%)
Mutual labels:  gradle, spring-boot
App Engine
分布式App服务端快速开发框架
Stars: ✭ 313 (+1017.86%)
Mutual labels:  gradle, spring-boot
Mmorpg
springboot编写的轻量级高性能mmorpg手游服务端框架,基本功能逐渐完善中。
Stars: ✭ 309 (+1003.57%)
Mutual labels:  gradle, spring-boot
Downlords Faf Client
Official client for Forged Alliance Forever
Stars: ✭ 121 (+332.14%)
Mutual labels:  gradle, spring-boot
Spring Boot Angular2
spring boot backend, angular2 frontend with webpack, typescript, sass, bootstrap4, karma, jasmine
Stars: ✭ 396 (+1314.29%)
Mutual labels:  gradle, spring-boot
Webfluxtemplate
Spring Webflux template application with working Spring Security, Web-sockets, Rest, Web MVC, and Authentication with JWT.
Stars: ✭ 107 (+282.14%)
Mutual labels:  gradle, spring-boot
Xupdateservice
Use Spring Boot easy build, Gradle build, and provide update service for XUpdate.(使用Spring Boot简易搭建,Gradle构建,为XUpdate提供更新服务)
Stars: ✭ 149 (+432.14%)
Mutual labels:  gradle, spring-boot
Spring Cloud Microservices Development
Spring Cloud Microservices Development.《Spring Cloud 微服务架构开发实战》
Stars: ✭ 106 (+278.57%)
Mutual labels:  gradle, spring-boot
Ddd Java
Spring Boot + Java [ DDD Sample ]
Stars: ✭ 191 (+582.14%)
Mutual labels:  gradle, spring-boot
Hex Arch Kotlin Spring Boot
Reference JVM multi module project for a reactive micro service and lambda using a hexagonal architecture, DDD, Kotlin, Spring Boot, Quarkus, Lambda, Gradle.
Stars: ✭ 83 (+196.43%)
Mutual labels:  gradle, spring-boot
Sample Boot Hibernate
Spring Boot + JPA ( Hibernate ) + Java8 [ DDD Sample ]
Stars: ✭ 97 (+246.43%)
Mutual labels:  gradle, spring-boot
Atom
Java course materials
Stars: ✭ 293 (+946.43%)
Mutual labels:  gradle, spring-boot
Ms Backend Boilerplates
Boilerplate for Your Server Side(Backend) Application, Java | Spring(Boot, Cloud) | Node.js(Express, Koa, Egg) | Go | Python | DevOps 💫 服务端项目模板
Stars: ✭ 394 (+1307.14%)
Mutual labels:  gradle, spring-boot

Login Sample

Build Status

A simple Android app that allows users to sign up / login / logout.

app

What can you learn from this sample

Android

  • Combining Gradle and Docker to have better control over client-service communication. Take a look at the Gradle setup. For more details about how this is working on this sample, check this post on Medium.
  • Using RxJava reactive streams to implement objects with complex life cycles in a clean way. As an example, check out the login screen implementation.
  • Writing readable functional tests with Espresso. See how we are testing scenarios in which the user is not registered.
  • Writing better code with Kotlin. See the app source code.

Backend

  • Creating reactive server applications with Spring WebFlux and Reactor. See the app class.
  • Using Gradle to automate Docker related tasks, such as wrapping the server application in images and pushing these images to remote registries. Take a look at the Gradle setup.
  • Writing readable functional tests using Spring's WebTestClient. Check out how we are testing user registration.
  • More Kotlin. See the server source code.

Understanding the code

The project consists of a Gradle multi-project with 2 projects:

  • app: The Android client application
  • server: The server application

Both communicate through a common API.

app project

Pretty much everything you need to know is in the activity package. All activities have a dependency to a Client object provided by the application instance. The client interacts with abstract data access objects, whose implementation can be either mocked in memory (useful for testing) or real. The utility package contains utility to be used by all classes.

The app defines a set of adjustable parameters to be set a build time, available as flavor dimensions (check out the Gradle setup). They are the following:

  • Luminance - The overall theme of the app (light or dark)

  • Color - The primary color of the app (blueGrey, cyan, green, indigo, purple or teal)

  • Data access - Where the data displayed by the app comes from (mocked, real or realLocalServer)

    • mocked variants get all their data from emulated data sources available in memory
    • real variants communicate with a server instance running on the cloud at http://default-environment.hwdbtmcsww.us-east-2.elasticbeanstalk.com/. They also use the device preferences to store some data locally.
    • realLocalServer variants behave like real variants, but expect the server instances to be running at the machine that executed the build. In order to start / stop local server instances, run the :app:startLocalServer and :app:stopLocalServer tasks (make sure that Docker is up and running first). This is the coolest thing is this project, as these tasks trigger automated pipelines that automatically pull docker images and create / destroy / start / stop docker containers.

For instance, this is how darkIndigoMocked variant looks like:

login_dark_indigo

server project

The app file defines all the logic, the rest is just utility. The authentication file defines extensions to handle request authentication. The data file defines both data and data access functionality. The error handling file defines utility for handling errors.

The server can run on the host machine by executing the :server:bootRun task.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].