写了一个Hexo主题与插件

最近写了一个Hexo的主题,同时为了配合主题Hexober,写了一个插件hexo-auto-photos。 HexoberHexober是一个基于soberJS的Material Design风格的Hexo主题。本博客即将切换到该主题下。 hexo-auto-photoshexo-auto-photos是一个自动...

Jetpack之Lifecycle源码分析

这是一篇解析jetpack库中的Lifecycle库的分析文章。 12345def lifecycle_version = "2.2.0"// Lifecycles only (without ViewModel or LiveData)implementation "android...

Jetpack之LiveData源码分析

在阅读这篇文章前,需要先对Lifecycle有所了解。 Lifecycle是LiveData的根基,先有了生命周期的管理,才能进行安全不泄漏的数据观察。 先要引入LiveData: 12345implementation "androidx.lifecycle:lifecycle-viewmodel-k...

面试笔记

边独立,边面试,两手都要抓,两手都要硬。 1. 给定数组array与一个数字num,要求从array中找出两个数,其和为num,并返回这两个数的下标123456789101112131415161718192021fun findTwoSum(array: IntArray, num: Int): Pair<...

Tray - macOS菜单栏app开发库

最近开发了JustTodo和DeskNote两个macOS应用,都是启动入口在菜单栏的,通过菜单栏上图标点击,快速执行相关操作,这让我想起我开发第一款菜单栏app Translator时的痛苦。因为想使用最新的SwiftUI作为UI框架,但是此框架构建菜单栏app的资料很少,大多数都是生成一个简单菜单,而不是可以...

发布Swift Package库

最近开发JustTodo时,发觉把处理托盘应用的代码封装起来是很有必要的,这样的话,在以后开发其他应用时,便不需要一而再的写重复代码。以前发布过很多Android平台的类库,但是对于macOS平台的swift库,我还是第一次。 再次吐槽一下苹果生态下的包管理,挺混乱的,最终我选择使用最新的Swift Packa...

JustTodo开发(五) SwiftUI + web

初版完成以后,发现了一个问题,就是web中的输入框不接受复制/粘贴的快捷键(cmd+c, cmd+v),触发快捷键时,会弹“咚”一声系统音,暂时在AppKit下没能解决这个问题,搜了很多资料,比如这里-Cut/copy/paste keyboard shortcuts not wor...

JustTodo开发(四) 初版完成

初版已经完成,从切换到SoberJS,基本上只用了一周,便写出来了,如果是使用macOS的原生开发方案,可能现在还困在各种不兼容中。 基本功能 创建/删除 Tab; 创建/标记/删除 Todo笔记; 右键菜单,关于/退出; 源码地址: JustTodo下载地址: Just...

JustTodo开发(三) 更换技术路线,跑步前进

在尝试使用AppKit原生开发界面几天后,我还是放弃了这种尝试了,其羸弱UI表现力,真的是让搭建界面的我心力交瘁。转而,我尝试使用web的形式来开发,即NSPopover中嵌套WKWebView的方式,配合原生层提供一些数据库接口。 经过一番查找,终于找到了一个Material Design风格的Web UI框架...

JustTodo开发(二) 界面初始化

一、界面布局一个简单的界面布局描述如下: 12345678910---------------------| | || | || | || 1 | 2 || | ...