因为喜欢写日记,我做了一个跨平台的本地日记APP

项目由来

年少时,对未来总是充满幻想,不时陷入沉思(上课经常溜号)。我时常会想:假如未来的我,回望过去,渴望了解我年少时的心路历程,想要知道我曾经想过什么、做过什么,有什么办法?

时光机?不现实。

写日记?尚可。

于是乎,日记一本又一本,不仅记录了初、高中时期的点点滴滴,还承载了我的青春年华和无数的奇思妙想。

在大学阶段,逐渐减少了写日记的习惯。那段时光仿佛匆匆如流水,转瞬即逝。尽管我的脑海中仍然留存着许多当时的小事,但那些具体的想法和感受,早已随风而逝,如今想准确的回忆起来,确实有些吃力。这未尝不是一种遗憾。

某一天,突然萌发了一个念头。既然会写点代码,为什么不开发一个日记APP,也能把从前写日记的习惯再捡回来。

说干就干。于是,它诞生了:

侠客日记:一个开源跨平台的本地日记APP

特点

  • 极简风格的UI设计
  • Markdown即时渲染
  • 跨平台(Android,Windows,macOS,Web)
  • 多尺寸响应式的界面布局
  • 所有数据存储本地,无需联网
  • 支持图片、音频、视频
  • 支持数学公式、脑图、图表、流程图、甘特图、时序图、五线谱
  • 支持多种语言
  • 支持深色模式
  • 标签分类展示
  • 天气、心情、位置
  • 导出多种格式文件
  • 支持文字、图片分享
  • 支持webdav备份
  • 同一局域网下同步传输
  • 完美的沉浸式状态栏导航栏体验

截图

|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
| | |
| | |

|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
| | | | |

在线演示地址

yu-core.github.io/Swashbuckle...

开发前的准备

开发语言

作为一名C#开发者,当然要用世界上最优雅的语言C#。

但实际上,还是写了一点js,有一说一,js是真灵活,虽然灵活的有些过头了

框架选择

感谢微软带来的bug,不对,是 MAUI 和 Blazor。

.NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架,用于使用 C# 和 XAML 创建本机移动和桌面应用。

使用 .NET MAUI,可从单个共享代码库开发可在 Android、iOS、macOS 和 Windows 上运行的应用。
Blazor 是一种 .NET 前端 Web 框架,在单个编程模型中同时支持服务器端呈现和客户端交互性:

使用 C# 创建丰富的交互式 UI。

共享使用 .NET 编写的服务器端和客户端应用逻辑。

将 UI 呈现为 HTML 和 CSS,以支持众多浏览器,其中包括移动浏览器。

使用 .NET 和 Blazor 生成混合桌面和移动应用。

  • 使用Blazor Hybrid,依托于MAUI,实现Windows,Android,iOS,macOS的客户端。

  • 使用Blazor WebAssembly,实现网页端

至于为什么不用MAUI原生、Avalonia和Uno Platform呢?

  1. 学习成本太高
  2. Razor语法太香了,比XAML灵活。
  3. 可以使用广阔的web生态

组件库选择

Blazor的组件库太多了,见过的,听过的,不下10个。至于为什么当初选择了Masa Blazor,我也记不清了。(看吧,这就是没写日记的坏处)

但根据我的推算,应该有两个原因

  1. 符合个人审美,UI看着比较舒服。
  2. 对 MAUI 的支持比较不错。不仅宣传中有这方面的体现,实际使用也不需要什么额外处理。

起名

为什么叫侠客日记,因为当时在看《侠客行》

最初的时候想叫不正经日记,因为《邪不压正》里有句嘲讽老蒋的台词,"正经人谁写日记",但是后来觉得对于没看过那部电影的人来说,这个名字可能会有误解。正好那时在看2001版的《侠客行》,不如就叫侠客日记吧。

谁不曾有过一个大侠梦呢?

设计

个人比较喜欢极简风格,界面尽可能的简洁,便于操作,也便于理解

参考了很多日记APP和常用APP:麻雀记,记时光,榴莲日记,光阴日记,无忧日记,天悦日记,小黑盒,微博轻享版。

经过不断的寻找灵感,反复的修改和调整,差强人意吧。不算非常出色,但基本上达到了预期的效果。

缺点

比如:

  • 卡顿延迟
  • 代码不规范
  • 注释过少
  • 标题栏优化不到位
  • 不支持拖拽粘贴添加媒体文件
  • 日志机制不太完善
  • 备份或导出没有进度条
  • WebDAV只有备份而不是同步
  • 等等

由于水平有限,代码中存在很多不严谨的地方,希望以后能完善吧

源码

Github

github.com/Yu-Core/Swa...

Gitee

gitee.com/Yu-core/Swa...

相关推荐
追逐时光者3 小时前
.NET 在 Visual Studio 中的高效编程技巧集
后端·.net·visual studio
geovindu4 小时前
CSharp: Oracle Stored Procedure query table
数据库·oracle·c#·.net
三天不学习5 小时前
【Select 语法全解密】.NET开源ORM框架 SqlSugar 系列
数据库·.net·orm·微软技术·sqlsugar
数据的世界015 小时前
.NET Framework 逐渐过时,.NET 8和 .NET 9引领未来
.net
撸码到无法自拔5 小时前
深入理解.NET内存回收机制
jvm·.net
快乐非自愿8 小时前
.NET 9 中的 多级缓存 HybridCache
缓存·.net
卷积殉铁子15 小时前
.NET 9 中的 多级缓存 HybridCache
.net
界面开发小八哥15 小时前
界面控件DevExpress v24.2新版亮点 - 支持.NET9、增强跨平台性
.net·界面控件·devexpress·ui开发·.net 9
VinciYan1 天前
基于Jenkins+Docker的自动化部署实践——整合Git与Python脚本实现远程部署
python·ubuntu·docker·自动化·jenkins·.net·运维开发