Sample code from:
Generate maven wrapper:
./mvn -N wrapper:wrapper -Dmaven=3.5.2
Demo
Run (./run.sh):
Java 11
export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64 ./mvnw clean spring-boot:run
Open: http://localhost:8081
View from computer:

Log:
see 'Hello desktop user!'
INFO 785161 --- [nio-8081-exec-6] c.m.mobile.GreetingController : Hello desktop user! INFO 785161 --- [nio-8081-exec-1] c.m.mobile.GreetingController : device: [LiteDevice type=NORMAL] INFO 785161 --- [nio-8081-exec-1] c.m.mobile.GreetingController : device form request: [LiteDevice type=NORMAL] INFO 785161 --- [nio-8081-exec-1] c.m.mobile.GreetingController : device platform: UNKNOWN
View from mobile (ANDROID phone):

see 'Hello mobile user!' message (NOT Hello desktop user!).
INFO 785161 --- [nio-8081-exec-6] c.m.mobile.GreetingController : Hello mobile user! INFO 785161 --- [nio-8081-exec-6] c.m.mobile.GreetingController : device: [LiteDevice type=MOBILE] INFO 785161 --- [nio-8081-exec-6] c.m.mobile.GreetingController : device form request: [LiteDevice type=MOBILE] INFO 785161 --- [nio-8081-exec-6] c.m.mobile.GreetingController : device platform: ANDROID
The directories src/main/resources/templates/mobile, src/main/resources/templates/tablet in /resources is hardcoded, and the framework automatically determines which folder to retrieve the template from.
- src/main/resources/templates/greeting.html - for DESKTOP devices
- src/main/resources/templates/tablet/greeting.html - for TABLET devices
- src/main/resources/templates/mobile/greeting.html - for MOBILE devices
Used thymeleaf template framework.