广东的网站建设案例设计师浏览网站
广东的网站建设案例,设计师浏览网站,如何同步目录wordpress,网站验证2015年#xff0c;我是一个普通的全栈Web开发。我有一台Mac#xff0c;玩了一段时间以后#xff0c;我就被它充满活力的应用生态系统所吸引了。有一天#xff0c;我看到了一个叫做IA Writer的Markdown编辑器#xff0c;又简单又优雅。我也决定自己做一个。怀着满腔热情&am…2015年我是一个普通的全栈Web开发。我有一台Mac玩了一段时间以后我就被它充满活力的应用生态系统所吸引了。有一天我看到了一个叫做IA Writer的Markdown编辑器又简单又优雅。我也决定自己做一个。怀着满腔热情我开始学习如何制作Mac原生文本编辑器。XCodeAppKitObjective-C所有这一切对我来说都是全新的。我打算把我的文本编辑器叫做Paper它就像一张纸非常简洁。重要的决定我的第一个决定就是这个应用一定要是原生的我是Web开发完全可以复用Electron这样的框架但是我不想用它。我宁愿学习全新的技能为用户提供最好的体验。这个体验就是软件很小下载速度超快使用起来是原生的UI。这样才能与其他非常精美的编辑器竞争。我不想缩短开发时间因为我拥有世界上所有的时间。第二我选择了Objective-C。2015年Swift刚刚出现我做了一个实验用Objective-C和Swift分别在XCode中写了一个空的项目然后检查各自生成的.app包。我惊讶地发现Swift中嵌入了完整的运行时.app包是5M而Objective-C只有几十K。如果你现在进行这个实验差异不会那么大我想要最好的宁愿付出更难学习和语言过时的代价以便得到更精简的软件包。第三我不想依赖第三方。从自己不熟悉的生态系统中选择依赖项这实在是不容易。恐怕大家都有这样痛苦的经验在编写一行代码之前添加一大堆不知道的第三方包和库......我要构建一切内容这样我可以按需定制获得一点竞争优势。比如Markdown的解析引擎因为Paper不像那些传统的编辑器并不支持全部的Markdown语言所以在解析引擎中我只需要写我需要的代码并且我可以做大量优化。Paper 仅使用 AppKit 和 UIKit 中的本机 UI 元素因为它们的维护开销最低由Apple自动更新向后兼容保证在每个设备上工作。我的愿景非常简单超越IA Writer更加精简更加优雅让用户专注于写作这件事。为了实现目标我尽最大可能减少干扰。应用程序窗口内没有一个按钮。没有标准的“首选项”窗口将所有内容分散到菜单项和菜单小部件中。将滚动条缩小为2个像素的线。上下滚动时可以隐藏标题栏使得编辑器周围的空白可以拖动不知道是否有人注意到了我这些努力很可能是有的因为有人写了一个非常简洁的评论我至今依然将其作为宣传语这是一个超级干净的写作空间有大量可配置的东西当你不需要时它们可以隐藏在实现之外。根据我的观察奉行极简主义的写作软件通常会走向两条路1变得流行为了满足大量用户的新需求偏离极简主义初心变得复杂起来。2继续保持极简和小众最终被创造者所抛弃。Paper不会走1但是可能在(2)的路上。我的计划是让Paper永远保持它发布时的样子拒绝增加多余的视觉混乱正如用户所说请不要让 Paper 变得更复杂市面上有很多“全功能”编辑器但它们不适合专注写作。同时通过缓慢的、可预测的更新节奏我会向应用程序的边缘地带添加功能同时保持默认路径超级干净。与浏览器中可预测的JavaScript运行时相比闭源原生UI是一个脆弱的地方。如果你不努力的投入精力去重构应用fix bug很快你的软件就会因为崩溃而被大家弃用。架构设计我发现将Paper的代码看做两个作用域非常方便1.应用程序作用域包括菜单状态栏图标暗黑模式全局配置单实例视图2.文档作用域视图和逻辑的集合存在于表示单个文档的视图控制器中。一个新的文档作用域在文档打开的那一刻产生在文档关闭的那一刻死亡。与单一应用程序作用域不同多个文档作用域可以同时存在对每个作用域我都会定义一个storyboard完成以下功能描述作用域内使用的各种视图和小部件充当依赖注入容器将作用域内所有的模块粘合在一起。付费功能从2015到2017年订阅制在App Store中还不普遍。大家还都是付费下载但是我觉得如果不使用的话大家不会为一个不知名的App付费。我其实并不想设置什么“付费墙”或者试用期啥的我想给用户提供更好的体验我的办法就是给专业版Pro的某些视觉效果收费对于基本功能如文件同步、PDF导出等保证免费。然后我让大家无限期的试用感受外观和效果如果大家觉得不错的话就可以购买Pro版。当然必须得有办法防止无限期地使用高级功能而不掏钱最早的时候我设置了一个60秒的定时器如果有一个Pro版的功能处于激活状态就提醒人们购买。说实话60秒提醒一次挺烦人的后来我想了一招把这些提醒和文字联系起来一旦你用Paper开始写作每输入几百个字符提示一次这样大家就可以尽可能不受干扰的情况下尝试所有功能。事实证明从用户反馈看这种和文字结合的付费提醒方式很不错“......Paper可以让你随意摆弄和测试专业功能而不是锁在付费墙后面这也是我不喜欢很多应用的原因....你不必相信我说的自己跳进去看看Paper让你试用每一个特性...”粗糙的部分文本编辑器有太多的功能了复制粘贴、拖放、撤销、插入符号交互、从右到左的语言、非字母语言、听写、语音文本、扫描文本、文本中的非文本对象、点击并按住链接预览、文本搜索替换、拼写检查、自动更正、自动完成、人工智能建议......你还得被新版的操作系统摆布它可能增加了新的方式来插入、更新文本和文本交互。在iOS上弄清楚“文本编辑器矩形”背后的数学原理尤其难因为有各种因素例如灵动岛主页栏、动态显示的软件键盘这些都会造成阻碍。输入语言和字体也是一个令人头疼的问题。字母语言相对容易处理因为大多数主要字体甚至支持古怪的字形例如元音变音和西里尔字母。然而非字母语言需要特定的字体来显示其字形。幸运的是苹果系统为每种非字母输入语言至少预装了一种字体。唯一的问题是没有 API 将输入语言映射到支持的字体 - 所以我不得不用大量的switch语句暴力破解它。还有就是批量更新对简单的情况很容易但是对于那些边边角角的情况处理起来太痛苦了比如加粗一段文本就耗费了很多步骤用户反馈Paper最早用的是一个叫做HockeyApp的平台Mac版自带聊天功能这可比电子邮件反馈好多了用户可以直接启用聊天进行反馈。微软收购了 HockeyApp后 将其变成了 AppCenter聊天功能没有了。没办法我只好自己做后来我还发现了一些小“秘密”我写了一些代码能够从用户未发送消息中查找一些关键字然后自动回复。自动回复回答了很多常见的问题大大减少了我的“客服”工作量。软件发布我会收集聊天中的反馈每月做一次新版本发布。我会使用单个递增的数字做版本号这是个简单的事情为啥要用2个以上的用点分隔的数字呢这是我的release note 模板我觉得release note 一定得简单这样用户才能真正阅读。错误修复微调较小的功能通常不会提及我不喜欢类似“我们已经修复了一些错误并进行了一些性能改进”这样的废话。不断地更新让用户觉得他们的订阅是值得的也会告诉App Store算法这个应用没有被放弃。最后正是这种缓慢而稳定的节奏让我能在未来几年继续做这件事情。后记这篇文章翻译来自https://papereditor.app/dev作者是Mihhail Lapushkin一个爱沙尼亚的程序员。原文中有更多章节我做了删减翻译也不是直译而是在保留原意的情况下转换成了更轻松的风格。这篇文章让我最为感慨的是这么几点1.跨界开发一个Web开发毅然进入桌面领域学习全新的知识并且获得成功。所以喜欢什么东西就动手搞起来吧别把现有的技术栈自己给圈住了。现在AIGC很厉害完全可以利用起来。2. 目标明确追求极致。他追求的就是最佳的用户体验为了缩小软件大小直接用最“原始”的Objective-C。为了完全掌控竟然不依赖第三方类库完全从头打造。在我的记忆中可能只有SQLite的作者也是这么干了。3. 不但会编程还得有艺术品位。这个Paper编辑器界面做得赏心悦目就连这篇文章的网站也做得让人看起来非常舒心。可见Mihhail Lapushkin不但是个程序员还是个优秀的用户体验设计师很有艺术品位。这一点我很羡慕我一直在弄后端就是因为搞不好界面相关的东西。程序员众多把不同领域的知识结合起来才能脱颖而出啊。4.长时间打磨真有时间2015年开始做2017年作出第一个版本在Mac上发布2019年发布iOS版本。然后就是持续的打磨到今年已经11年了。除了真正喜欢之外很难找到别的原因了。Mihhail Lapushkin说“我拥有世界上所有的时间”嗯这些国外程序员确实太幸福了。全文完觉得不错的话点个赞或者在看吧