首页 > 其他分享 >因为喜欢写日记,我做了一个跨平台的本地日记APP

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

时间:2024-05-25 19:00:14浏览次数:25  
标签:APP 跨平台 MAUI 写日记 Blazor NET 日记

项目由来

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

时光机?不现实。

写日记?尚可。

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

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

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

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

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

特点

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

截图

在线演示地址

https://yu-core.github.io/SwashbucklerDiary/

开发前的准备

开发语言

作为一名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

https://github.com/Yu-Core/SwashbucklerDiary

Gitee

https://gitee.com/Yu-core/SwashbucklerDiary

标签:APP,跨平台,MAUI,写日记,Blazor,NET,日记
From: https://www.cnblogs.com/Yu-Core/p/18171885

相关文章

  • 安卓APP活动Activity的生命周期及其各方法,注意onPause()和onStop()的区别
    安卓APP活动Activity的生命周期及其各方法,注意onPause()和onStop()的区别前言:1.我并没有深入了解,难免出错一、Activity完整生命周期(如下图)onCreate()->onStart()->onResume()->onPause()->onStop()->onDestroy()二、解释1. onCreate():Activity第一次被创建的时候调用,该方......
  • Content-Type 'application/json;charset=UTF-8' is not supported异常解决
    Content-Type'application/json;charset=UTF-8'isnotsupported异常解决前提:确定不是因为Content-Type导致的异常,controller层有注解@RequestBody。报错详情:确定不是因为缺少Jackson依赖或者版本过低:注意到报错信息上边有一条警告日志:.c.j.MappingJackson2HttpMessageCo......
  • 【全开源】多场馆场地预定小程序源码(ThinkPHP+FastAdmin+UniApp)
    场馆场地预定小程序源码一款基于ThinkPHP+FastAdmin+UniApp开发的多场馆场地预定小程序,提供运动场馆运营解决方案,适用于体育馆、羽毛球馆、兵乒球馆、篮球馆、网球馆等场馆(高级版)......
  • 【全开源】教育系统源码(支持微信小程序+移动端H5+安卓APP+IOS-APP)
    构建智慧教育的基石在当今信息化快速发展的时代,教育系统正面临着前所未有的变革。西陆教育系统源码,作为这一变革的先锋力量,以其卓越的性能和灵活性,为教育机构提供了全新的解决方案。一、源码的力量:定制化与可扩展性西陆教育系统源码的核心优势在于其高度的定制化和可扩展......
  • ThinkEditor跨平台BS电子病历编辑器控件具备哪些能力
            笔者从事医疗信息化行业工作10多年,对当前热门的BS架构的电子病历编辑器有一些自己的思考发出来供大家讨论,笔者信译,演示网址:www.thinkeditor.com。1.病历结构是否需要结构化        首先是陈旧的自定义字符串格式,虽格式灵活,但需自己编写病历格式解析......
  • uniapp App去除iOS底部安全区域白边
    未设置的情况下,iOS底部安全区域白边如图:去除方法: 在 mainfest.json 中加入一下代码:"safearea":{"bottom":{"offset":"none"}},去除效果展示:......
  • uni.app使用教程
    一、介绍1、跨平台开发Uniapp可以实现一次编码,同时生成多个应用程序,包括iOS、Android、H5、小程序等。开发者只需要使用Vue.js框架进行开发,而不需要考虑不同平台的差异,大大降低了应用程序的开发难度和复杂度。2、统一的开发语言和工具Uniapp的开发语言是Vue.js,它是一种基于......
  • uni-app 微信 支付宝 小程序 使用 longpress 实现长按删除功能,非常简单 只需两步
    1、先看效果2、直接上代码ui结构<viewclass="bind"@longpress="deleteImage":data-index="index"><viewclass="bind_left">绑定设备</view><viewclass="bind_right"><viewc......
  • uniapp快速分享知识点,请求简单封装 登陆 ,支付 , 分享 , 短信,
    第一部份requrety请求封装 备注:关于环境配置ui选择插件安装在我的另一个帐号中前几天也经写了,这个博客就不用在写一遍了另一博客地址:https://www.cnblogs.com/ZzwWan/p/18202502module.exports=(vm)=>{//初始化请求配置uni.$u.http.setConfig((config)=>{......
  • 看广告收益小游戏app对接聚合SDK广告开发
    将专业的广告变现交给专业的第三方来打理,轻松获得广告变现收益,本文就带你读懂什么是聚合SDK广告。01聚合SDK是什么?通过技术能力将多个预算进行集成,让开发者可以一键接入多个预算资源,从而减轻开发者的对接成本,实现广告变现的目的。开发者接入一家聚合SDK广告等同于接入多......