因为喜欢写日记,我做了一个跨平台的本地日记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...

相关推荐
CodeCraft Studio2 小时前
【实用技能】使用 TX Text Control 创建带有嵌入式附件的 PDF 文档
pdf·asp.net·.net
djk88885 小时前
.net6.0(.net Core)读取 appsettings.json 配置文件
json·.net·.netcore
喵叔哟7 小时前
16. 【.NET 8 实战--孢子记账--从单体到微服务】--汇率获取定时器
微服务·oracle·.net
zhy81030213 小时前
.net6 使用 FreeSpire.XLS 实现 excel 转 pdf - docker 部署
pdf·.net·excel
初九之潜龙勿用13 小时前
C#校验画布签名图片是否为空白
开发语言·ui·c#·.net
慧都小妮子14 小时前
Spire.PDF for .NET【页面设置】演示:打开 PDF 时自动显示书签或缩略图
java·pdf·.net
霍先生的虚拟宇宙网络16 小时前
.net 支持跨平台(桌面)系列技术汇总
.net
djk888817 小时前
.net的winfrom程序 窗体透明&打开窗体时出现在屏幕右上角
.net
九鼎科技-Leo1 天前
什么是 WPF 中的依赖属性?有什么作用?
windows·c#·.net·wpf
dot.Net安全矩阵1 天前
.NET 通过模块和驱动收集本地EDR的工具
windows·安全·web安全·.net·交互