微服务-Android客户端: 实现注册和登录

简介

微服务项目系列文章 中跟大家一起学习了如何搭建、部署(本机和远程部署、热部署、Nginx等)、运行一个 SpringBoot 服务以及 MySQL 数据库的操作、文档(Swagger)的生成等操作,客户端采用浏览器的方式实现了用户注册、登录的流程。根据 微服务-立志做个伟大的项目 立下的【誓言】可以循序渐进的实现我们伟大的理想了,今天我们正式进入 Android 客户端的学习,希望对微服务、Android 开发感兴趣的同学有点帮助。

如果你对 Android 不了解,建议先学习 Google 官网关于 Android 开发的入门知识,最起码你能用 Android Studio 跑起一个工程。如果你对 Java 也不了解或者压根都没有学习过 Java,那么你可能要加油了争取用一周的时间搞懂 Java 语法了,然后在 Android 学习的过程中再去深入 Java 语言的学习。当然了你会 Kotlin 编程语言也可以。这里想告诉大家,任何一门编程语言想精通需要比较长的时间,但是初级入门能写简单的代码只要用心不应该超过一周。你只需要克服内心的恐惧笃定自己一定行,那么很快你就入门了。

阅读下面的内容需要你

  • 看过 微服务项目系列文章 中的文章,不要求都看过至少关于如何使用 SpringBoot 的部分看过;
  • 会 Java 编程或者 Kotlin 编程,入门的知识即可;
  • 了解 Android 开发,知道如何使用 Android Studio 这个 IDE;

本篇主要内容:

  • 搭建 Android 工程的基本框架;
  • 实现 Android 端的用户注册和登录功能;

工程源码在 Github 上面,大家可以去下载一起学习,工程相关目标如下:

项目目前只实现了注册、登录的功能,后续会丰富其内容。

搭建 Android 工程

该工程名称为 MSBlog,我的本机环境安装了:

  • JDK 1.8;
  • Android Studio 4.0;
  • Android SDK ;

首先,打开 Android Studio,选择 File/New/New Project...,打开下面视图

紧接着,点击 Next,填写相关的项目名称和包名等信息即可。

工程大致结构如下:

com.veryitman.msblog.httpcom.veryitman.msblog.model 这两个包中是网络请求、数据模型等的 Java 实现,MZOkHTTPWrapper 是对 okhttp 的封装。

该工程中,使用了两个第三方库分别是 gson(json解析等)、okhttp(HTTP请求),详细配置在 app/build.gradle 文件中。

1
2
implementation("com.squareup.okhttp3:okhttp:4.7.2")
implementation 'com.google.code.gson:gson:2.8.6'

实现 Android 注册

用户注册效果图

启动 SpringBoot 服务,注意在 MZHttpUrlModel 中修改一下连接该服务的 IP 地址(用你自己本机的IP)。

点击 Signup,根据用户输入的信息请求服务端的API去注册,点击 Had Account 去登录页面,点击 Guest 直接进入应用。

具体的代码是在 MZSigninActivity 中实现的,有兴趣的朋友可以看看源码,这里不再赘述。

在进行网络请求之前,注意需要在 AndroidManifest.xml 文件中添加访问网络的权限。

1
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

实现 Android 登录

用户登录效果图

具体的代码是在 MZSignupActivity 中实现的,有兴趣的朋友可以看看源码,这里不再赘述。

点击 Signup,根据用户输入的信息请求服务端的API去登录。

进入主界面后,就可以看到四个Tab页面,分别是主页、分类、好友、个人中心。

目前这几个页面尚未实现,后续会陆续完成。

总结

新建一个 Android 工程还算是蛮简单的一个过程,希望大家能把工程跑起来,如果有任何问题可以留言给我。

今天的分享就这么多,简单的做个小结:

  • 从搭建完成 SpringBoot 再到使用 Android 实现一个简单的客户端,需要初学者付出较多的努力,最关键的是我们一起迈出了第一步;
  • 在代码中尽量不要使用魔术数字,把通用的常量放到对应的类中进行管理,减少后续的维护成本;
  • 尽量多的输出 Log,并且使用 Tag 对 Log 进行分类,方便后续排查问题,提高解决问题的效率;

不要抱怨自己没有天赋,如果你能坚持做好一件事情,本身就是天赋。

坚持原创技术分享!