热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

flutter和webapp_你们都用Flutter开发了什么App?

写了一个签到类应用,不只是Flutter哦,拥有一个自己的App是一件很酷的事~能解决用户需求的技术,都是好技术。作为一个程

写了一个签到类应用,不只是Flutter哦,拥有一个自己的 App 是一件很酷的事~

能解决用户需求的技术,都是好技术。作为一个程序猿,尤其是移动端程序猿,大家有没有独立开发一个产品的想法?我自己一直都有这样一个想法,因为:一个产品梦,完全按照自己的想法,独立设计开发一个应用,应该是一件有成就感的事。

技术的相通性,如果你是 Android 开发者,那你肯定对 Java 非常熟悉,如果使用 Java 的 Spring 技术栈写服务端那肯定也不是什么难事,尤其是很多的技术都是相通的,比如

各种框架的设计模式的使用

Android Jetpack Room 与 SpringBoot JPA

Dagger 与 Spring 中的 IoC

AOP 的实现,对字节码的修改,ASM、AspectJ

HTTP 请求的拦截与过滤

跨进程间的通信方式

等等

对技术的好奇心,我想我们应该不仅局限于自己的一亩三分地,当然前提是要守好自己的专业阵地,然后拓宽自己的视野,前段时间和同事讨论技术的深度和广度的问题,基于第二点,有时候广度可以拓展深度。

疫情期间更多的时间,在家办工省去了上下班的时间,有更多的时间做感兴趣的事情。

于是,作为一个 Android 开发者,我自己设计开发了个 App,本篇文章谈一谈我对于 Java 服务端开发的理解和实践。这是一个简单的签到类应用,主要的页面如下,顺便提一下,下面的 App 使用 Flutter 开发的。

给大家介绍下开发过程中我使用到的服务端技术。

架构图

通过这张图可以简单看下我所理解的 Java 服务端开发流程,首先业务代码由我们开发完成后,推送到代码仓库 gitlab(github),然后由持续集成工具 Jenkins 拉取代码进行编译打包,把打成的 Jar 或者 War 包存到服务器某个目录,最后将 Jar 或者 War 部署在 Tomcat 中运行。最后由 Nginx 进行反向代理,将请求转发的不同的服务器,如果有多个服务器的话,还可以做一个负载均衡,减轻单个服务器压力。这样前端浏览器或者移动端 App 就可以正常访问请求了。

在每一台服务器上,我们可能不同的业务跑在不同的 Tomcat 上,这样还会有不同服务之间的通信问题,可以采用 HTTP 或者消息订阅进行通信。另外也不是每次请求都会访问数据库,比如在我开发验证码验证功能的时候,就将验证码存在了 redis 中。当然在线上服务运行的过程中,我们还需要对运行情况做监控。比如 Zabbix 等工具。

开发工具开发工具:IntelliJ IDEA、Android Studio

MySQL客户端:MySQL Workbench

Redis客户端:Another Redis DeskTop Manager

终端工具:iTerm2

Git工具:SourceTree

HTTP 请求工具:Postman

业务框架

.

├── README.md

├── pom.xml

├── roc-css-business

├── roc-css-data

├── roc-css-webapp-app

├── roc-css-webapp-browser

└── roc-css.iml

项目的结构如下:roc-css-data 模块中是模型类,模型对应数据库中的表

roc-css-business 模块是业务逻辑类,大部分的逻辑都在这个模块中

roc-css-webapp-app 模块是移动端的 HTTP 请求入口也就是 Controller,主要做一些参数校验等逻辑

因为最熟悉的是 Java,在开发业务代码时,我选择了 Java Web 开发中最流行的 Spring Boot 框架。用到的技术包括:spring-boot-starter-web:使用这个模块可以把我们的项目变成一个 web 项目

spring-boot-starter-security:用户验证和鉴权模块,我认为这是比较难的部分,包括对一些过滤器、拦截器的理解,以及如何统一处理业务逻辑错误和用户授权的错误

JWT:JSON Web Token,用于生成和验证用户 Token 和 security 配合使用

spring-boot-starter-data-jpa:用于数据库操作,这一部分用起来非常简单,甚至我们可以不必写 SQL 语句,但是用好不容易,尤其是如果不熟悉有问题不好查

spring-boot-starter-data-redis:用于操作 Redis

lombok:免于写各种 getter 和 setter

springfox-swagger2、springfox-swagger-ui:用于生成在线接口文档

等等

以上以来使用 maven 进行管理,当然也可以使用 Android 中常用的 Gradle。

服务部署服务器:腾讯云Ubuntu

总结

以上就是我在开发这个小项目的过程中用到的一些技术,可能有一些认识上的不足,如果你有更好的框架或工具选择,欢迎留言。当然还有很多的坑实在实际的开发中遇到的,后续会逐渐把代码完善并进行开发,欢迎大家持续关注 九点下班 公众号,持续分享 Android、Flutter、Java Web 等技术。

相关资源

更多推荐

了解更多,请关注公众号:九点下班



推荐阅读
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • 本文介绍了两种方法,用于检测 Android 设备是否开启了开发者模式。第一种方法通过检查 USB 调试模式的状态,第二种方法则直接判断开发者选项是否启用。这两种方法均提供了代码示例和详细解释。 ... [详细]
  • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • Python入门:第一天准备与安装
    本文详细介绍了Python编程语言的基础知识和安装步骤,帮助初学者快速上手。涵盖Python的特点、应用场景以及Windows环境下Python和PyCharm的安装方法。 ... [详细]
  • 在Java中,this是一个引用当前对象的关键字。如何通过this获取并显示其所指向的对象的属性和方法?本文详细解释了this的用法及其背后的原理。 ... [详细]
  • 本文深入探讨了二叉搜索树(Binary Search Tree, BST)及其操作,包括查找、插入和删除节点。同时,文章还介绍了平衡二叉树(AVL树)的概念及调整方法,并详细讨论了如何判断两个序列是否构成相同的二叉搜索树。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文详细解释了如何使用@IfProfileValue注解来检测Spring框架中的配置文件是否处于活动状态,并探讨其与@Profile和@activeProfiles的区别。 ... [详细]
author-avatar
大布丁
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有