flutter+go构建的即时通讯app,ChatCraft

前言

Hi👋all.好久不见,已经两个多月没有发文章了,这段时间一直在反思过去的一年,有好有坏。对博客文章这块我对自己是不满意的,文章的质量参差不齐,有时候在没有好的题材时,我会选择写一些泛泛之谈的文章,只是为了增加一些活跃度。这导致我产出了很多质量不高的文章,而且在一些水文的评论区,我看到了很多"水文"、“毫无营养”、"看完发现自己浪费了5分钟"等评论。对这些评论,我将他们作为对我的批评,反思自己的行为和成果是非常重要的。于是我在2024年年初发了一个沸点:

决定花更多的时间和精力在每篇文章上,确保它们能够提供有深度和有意义的信息。在反思的过程中,我查看了我所有的文章,然后看到了我“三年前”写的两篇文章:

三年前的我,做了个即时通讯的demo,但当时想做的其实一款完整即时通讯App,结果一直到现在都没有开始!那么我想,是时候去实现这个三年前的想法了!

Chat Craft

演示视频

非常感谢我的设计朋友帮我制作的演示视频:@kellygenius

jvideo

客户端地址:https://github.com/taxze6/flutter-chat-craft

服务端地址:https://github.com/taxze6/Go-Chat-Craft

Android Apk体验地址(使用蒲公英内测,如果无法下载则表明达到了500次/天的限额):https://www.pgyer.com/XxRr8v

测试账号1:taxze,密码:123456789

测试账号2:taxze2,密码:123456789

也可通过邮箱验证码注册账号,建议使用qq邮箱或gmail邮箱。

Chat-Craft目前已经实现了即时通讯的基本功能,支持Android和IOS。快来下载并体验吧!

📖 概述

社交应用程序在世界各地都很流行,例如 Facebook、Line、Whatsapp。如果您渴望打造一款独具个性的社交平台,Chat-Craft项目将是您不可或缺的理想之选。Chat-Craft是一款跨平台移动应用,采用了Golang作为后端服务端技术,以及Flutter作为前端客户端技术。该应用旨在提供高效、稳定且跨平台的用户体验,将现代的移动应用开发技术和高性能的后端服务端技术相结合。

在Chat-Craft项目中,作者精心雕琢了客户端UI,灵感汲取于各大即时通讯应用及最新的应用设计规范。这独特的设计巧妙地融合了各方优点,呈现出一种令人愉悦的视觉体验。这样的UI不仅为项目赋予了独特的美感,同时也为学习者创造了更为有趣的学习环境。

🎨使用技术

🔨部分页面截图

🖥️运行项目

首先,请按照下列步骤操作:

1.克隆 GitHub 存储库: 首先使用以下命令克隆存储库。

//拉取客户端项目
git clone https://github.com/taxze6/flutter-chat-craft.git

//拉取服务端项目
gie clone https://github.com/taxze6/Go-Chat-Craft

2.检查本地开发环境: 确保您拥有 3.16.9 或更高版本的 Flutter 环境和1.19.3或更高版本的 golang。

flutter doctor
[!] Flutter (Channel stable, 3.16.9, on Microsoft Windows [版本 10.0.19045.3930], locale zh-CN)
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[√] Chrome - develop for the web
[√] Visual Studio - develop Windows apps (Visual Studio Professional 2022 17.6.4)
[√] Android Studio (version 4.0)
[√] Android Studio (version 2021.2)
[√] IntelliJ IDEA Ultimate Edition (version 2020.2)
[√] Connected device (3 available)

go version
go version go1.19.3 windows/386

3.加载项目依赖: 分别加载flutter客户端的依赖和golang服务端的依赖。

//加载flutter项目的依赖
flutter pub get
//查看flutter项目的依赖关系
flutter pub deps

//加载golang项目的依赖
go mod download
//查看golang当前项目的所有依赖
go list -m all

4.进行项目配置: 配置数据库、中间件、ip、运行端口。

//先配置golang项目中的config-debug.yaml
//配置项目运行端口、数据库和中间件对应的ip、端口和账号密码
port: '8889'
host: '127.0.0.1'
mysql:
  host: '127.0.0.1'
  port: '3306'
  name: 'chatcraft'
  user: 'root'
  password: 'root@123321'
redis:
  host: '127.0.0.1'
  port: '6379'
rabbitmq:
  host: "127.0.0.1"
  port: "5672"
  user: "guest"
  password: "guest"

//再配置flutter项目flutter_chat_craft\lib\common下的ip_config.dart
class IpConfig {
  //Replace with server address
  static const ip = "127.0.0.1:8889";
}

5.对本地的数据库执行SQL: 对mysql执行Go-Chat-Craft下的chatcraft.sql

6.运行客户端与服务端项目

🎉未来

一个好的开源项目,一定是长时间的迭代出来的,Chat Craft作为一个”婴儿“还有着很长的成长道路。然而,正是这种挑战使得它有机会成为一个优秀的开源项目。在接下来的旅程中,Chat Craft将不断迭代和改进,让我们一起见证它的成长吧!非常欢迎大家参与这款开源项目,有任何改进项目的想法都可以通过github的issuse告诉我~

🎈最后

这几个月来做开源项目,我发现,开源项目就好像自己的孩子,凝结着你的付出,陪伴着你每个日日夜夜,一次一次的推翻重写,一次一次的否定之前的构思,只想让它更好一些,这些都是工作所不能比拟的~

关于我

Hello,我是Taxze,如果您觉得文章对您有价值,希望您能给我的文章点个❤️,有问题需要联系我的话:我在这里 。如果您觉得文章还差了那么点东西,也请通过关注督促我写出更好的文章~万一哪天我进步了呢?😝

  • 22
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
实验目的: 1. 掌握Flutter应用程序开发的基本流程和技巧。 2. 熟悉Flutter和Dart语言的基本语法和应用。 3. 了解Flutter的UI组件和布局,以及它们在应用程序中的实际应用。 4. 学习如何使用Flutter和Dart来调用摄像头和文件系统API,实现拍照功能。 5. 学习如何使用Flutter和Dart来处理图像数据,以及如何在应用程序中显示和保存图像。 实验内容: 本次实验的主要内容是使用Flutter和Dart语言开发一个拍照应用程序,程序的主要功能包括: 1. 调用摄像头API,实现拍照功能。 2. 显示拍摄的照片,并支持手势缩放和旋转。 3. 保存拍摄的照片到本地文件系统中。 以下是实验的具体步骤: 1. 创建一个新的Flutter项目,使用Flutter提供的UI组件和布局来实现应用程序的UI设计。 2. 在应用程序中添加一个按钮,用于触发拍照功能。 3. 在应用程序中调用摄像头API,实现拍照功能,并将拍摄的照片数据保存到内存中。 4. 在应用程序中显示拍摄的照片,并支持手势缩放和旋转。您可以使用Flutter提供的GestureDetector和Transform组件来实现这些功能。 5. 在应用程序中将拍摄的照片保存到本地文件系统中。您可以使用Flutter提供的dart:io库来实现这个功能。 在完成上述步骤后,您可以在模拟器或实际设备上运行应用程序,并测试它的功能。如果需要,您还可以对应用程序进行进一步的优化和改进。 总之,本次实验将帮助您掌握Flutter和Dart语言的基本知识和技巧,以及如何使用它们来开发实际应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程的平行世界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值