Build Real World Full Stack Mobile Apps in Java - Free Course

Build Real World Full Stack Mobile Apps in Java - Free Course

The Complete guide to building native mobile applications for Java developers.


17 min read

Table of contents

This is the final course released as part of my 2017-2019 courses for Codename One mobile development. I hope you find it useful. Even though some of the material is out of date, the vast majority is still very relevant and applicable.

I've worked with many mobile developers over the years and one common thread is the process of solving the same problems all over again. Everyone is building an Uber clone, a social media app, a restaurant ordering app or some other common template.

Even if you aren't it's very likely you are building a variation of the same idea e.g. one of my friends has a startups that bills itself as "air b&b for eating at peoples homes"... This is common even in corporate applications where we redo the same ideas again & again.

This course tries to build the common templates and it's constantly evolving to add more applications!

It offers a set of full featured app building tutorials from start to finish without skimming on details...

I cover the full stack which is rare in the Java world. We go into the server side, the client side, deployment to the stores, server provisioning in the cloud, database creation, UI design, adapting the design, working with photoshop, coding, security and every other aspect you can think of in this course.

Restaurant Server


The App Maker

Scope and Basic UI Design

Fleshing Out the UI Design

Initial UI Mockup

The source code for the mockup built in this section is available here.

Architecture of Mockup

Base Navigation Form and Shape Effects

Dish List and Edit

App Maker Server

The source for the server built in this section is available here.

Introduction, Architecture and Authorization


Communicating from the Client

SQLite and ORM Binding

The updated application is available in this repository.

SQLite Abstraction with Object Relational Mapping

Integrating SQLite into the Code

Miscellaneous Features

Here is the repository with the changes discussed in this section.

Details, Categories and Validation

Billing and Global Server

Sidemenu and Preview

About Forms

Style Form

The source code corresponding to this section is available here.

Style Customization 1 - Introduction and Basics

Style Customization 2 - The Customization Popup

Style Customization 3 - Font and Color Pickers

Style Customization 4 - Saving Style Settings

Push and In-App Purchase

This section updated both the server code and the client code.

Push 1 - Initial Registration Process

Push 2 - Client Side Code

Push 3 - The Server Side and Build Logic

Push Http Fallback

Push WebSockets Fallback

In-App Purchase

Setting Up a Cloud Server

Today I would just wrap the whole thing in a container and deploy it more easily. Still, understanding this process and the logistics is always nice. In 2017 Docker was still pretty new and not as universal, Kubernetes was just announced too.

Setting up the VPS Server

Yum, MariaDB, Security and iptables

Starting the Server on Boot

Let's Encrypt, HTTPS Certificate Support

Automating Lets Encrypt Renewal Process

Adapting to Tablets and Desktops

Abstraction and Architecture

The UIAbstraction Class

The TabletUI Class

Putting it all Together



Layout Animations

Animation Manager, Style Animations and Low Level Animations

Creating an Uber Clone

This chapter was the basis for my book on creating an Uber clone available here.

The server source code is available here. The mobile client source code is here.

1. Introduction

2. Basic Setup

3. Login and Country Code

4. Login Shadow and Rotation

5. Social Login and Country Picker

6. SMS Activation Flow

7. Map Form

8. Where To UI

9. Where To UI - Part II

10. Side Menu

11. The Spring Boot Server

12. Server WebSocket Handler

13. Client Side UserService

14. SMS Activation and Interception

15. Location Service - Client Side

16. Connecting the Location Service to the Map Form

17. Reverse Gecoding Google Webservice

18. Directions and Places Google Web Services

19. Auto Complete Location Search UI

20. Search Completion Container

21. Plotting the Route On the Map - Setup

22. Plotting the Route On the Map - to/from Tags

23. Plotting the Route On the Map - Completion

24. Hailing in the Client - Showing a Beacon

25. Hailing in the Client - Networking and Sending Push Messages

26. Driver App Server

27. Driver App Server - WebSocket Portion

28. The Driver App - 2 Apps in One Project

29. Separating the Driver App and Push Notification

30. Driver and User Hailing Process

31. Billing with Braintree - Flow explained and Server Side

32. Braintree - Client Side Integration

33. Social Login - Basics and Facebook App

34. Facebook and Google Login Code

35. Google Login Process

36. Morph Transition - Animating Elements Between Forms

37. Cover Transition - Conditionally Showing a Form Transition

38. Circular Floating Action Button Animation

39. Settings Form and Fetching the Avatar Image

40. Edit User - UI Binding and Multipart Image Upload

Creating a Facebook Clone

The complete app created in this section is available here. The corresponding server side is available here.

1. Introduction

2. Creating the Project and CSS

3. Splash Screen

4. Login Form

5. Rich Text View and Signup Form

6. Signup Form - Terms and Conditions

7. Signup Form - Name, Birthday and Gender

8. Signup Form - Phone, Email, Password and Confirmation

9. The Main Form

10. Client Data Model - User, Post and Comment

11. ServerAPI Abstraction Mockup

12. The Newsfeed Container

13. Friends Container

14. Notifications Container

15. The More Container

16. The "New Post" Form

17. Spring Boot Server Architecture and the User Entity

18. Media Entity

19. Post and Comment Entities

20. Notification, Newsfeed and ShadowUser Entities

21. Service Layer and UserService

22. UserService Part II

23. NotificationService and MediaService

24. PostService

25. WebService Layer and UserWebService

26. PostWebService and MediaWebService

27. Client Side ServerAPI

28. Client/Server Signup Process

29. Newsfeed and Posts From Server

30. Friends - Calendar Synchronization, Accept/Reject Requests

31. Search: Server Side with Spring Boot and Hibernate

32. Search: WebService and Client Code

33. Search: Client Side UI - SearchForm

34. Search Results UI: UserForm and PostForm

35. Threaded Comments UI - CommentsForm

36. SettingsForm - Cover and Avatar

37. Generic Settings using InstantUI - Automatic Dynamic UI Generation

38. Server Side Post Media Attachment

39. ImagePicker - Video and Custom Support

40. Post Media Attachments - Client Side Business Logic

41. Post Image and Video from NewPostForm

42. Images, Videos and Styled Posts in the Newsfeed

43. Low Level Camera Integration

44. Push Notification - Theory, Entity and Service Layers

45. Push Notification - Server Implementation

46. Push - Client Side Integration

Creating a WhatsApp Clone

The code for the WhatsApp clone client is available in this repository. The server code is available here.

1. Getting Started

2. Client to Server Abstraction

3. The Model Package

4. The Main Class

5. Main Form

6. Theme CSS

7. Bubble Border

8. Chat Form

9. The New Message Form

10. Server Entities

11. Server DAO and Entities

12. User Service

13. User Web Service

14. Web Socket

Create a Netflix Clone

The Netflix clone app is hosted on GitHub here. The server portion is available here.


Server Part I

Server Part II

Server Part III

Client Model

Client UI