ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

DevToysMac 开发工具集 Mac 版:安装部署、工具清单与源码架构全解析

DevToysMac 开发工具集 Mac 版:安装部署、工具清单与源码架构全解析 开发工具【免费下载链接】DevToysMacDevToys For mac项目地址https://gitcode.com/gh_mirrors/de/DevToysMac点击查看免费下载DevToysMac 是开源开发者工具箱 DevToys 的 macOS 原生移植版用 Swift 与 AppKit 构建把格式化、编码、生成、转换等高频开发工具聚合到一个应用内避免频繁切换浏览器网页工具。本文以仓库 README 为主线完整讲解其安装方式、内置工具能力并结合仓库源码深入剖析工具注册、界面路由与典型工具的实现原理帮助你快速上手使用并理解其工程结构。项目定位macOS 上的开发者瑞士军刀DevToysMac 是 DevToys for Windows 明确将其定位为「An Open-Source Swiss Army knife for developers」开源开发者瑞士军刀。它把日常开发中频繁使用的数据格式化、编码解码、哈希计算、文本处理、图片处理等能力打包进单一原生应用让开发者无需在多个网页工具间来回切换。与网页工具相比这类桌面工具箱的核心价值在于数据不出本机、支持大批量本地处理、可通过文件拖放直接操作并可以常驻 Dock 随取随用。安装方式手动安装与 Homebrew 两种途径README 给出了两种官方安装方式均针对 macOS 平台方式一手动安装下载 Release前往项目 Releases 页面下载最新版本从DevToys.app.zip中解压出DevToys.app将DevToys.app拖入「应用程序」文件夹或直接双击运行。方式二Homebrew Cask 安装若本机已安装 Homebrew只需一条命令brew install --cask devtoysHomebrew 方式会自动处理下载、解压与安装路径后续升级也只需brew upgrade devtoys适合习惯用包管理器维护应用的开发者。运行前提DevToysMac 是纯原生 macOS 应用入口为 AppDelegate.swift 中的main class AppDelegate且定义了applicationShouldTerminateAfterLastWindowClosed返回true即关闭最后一个窗口即退出应用行为与大多数 macOS 轻量工具一致。它通过 DevToys.entitlements 声明沙盒权限属于标准的 App Store 风格分发形态。内置工具全景八大分类、近 30 款工具README 以截图形式展示了 Home、JSON Yaml Converter、Number Base Converter、HTML Encoder/Decoder、URL Encoder/Decoder、Base64 Encoder/Decoder、JSON Formatter 等代表工具并注明「and more...」。结合源码可以列出完整清单全部工具在 ToolDefault.swift 中集中注册分类定义在 ToolCategoryDefault.swift 中共 8 个分类、约 28 款工具。分类内置工具Converters转换器JSON Yaml Converter、Number Base Converter、Date ConverterEncoder / Decoder编解码HTML Encoder / Decoder、URL Encoder / Decoder、Base64 Encoder / Decoder、JWT Encoder / DecoderFormatter格式化JSON Formatter、XML Formatter、SQL FormatterGenerator生成器Hash Generator、UUID Generator、Lorem Ipsum Generator、Checksum Generator、QR Code GeneratorText文本Text Inspector Case Converter、Regex Tester、Text Diff、Hyphenation Remover、JSON SearchGraphic图形图像PNG / JPEG Compressor、PDF Generator、Image Converter、Icon Generator、QR Code ReaderMedia媒体Color Picker、Audio Converter、Gif Converter另有 Home、Search、Settings 三个系统级页面Home 与 Settings 通过showAlways: true常驻展示。各工具的中英文名称与功能描述可在 en.lproj/Localizable.strings 与 zh-Hans.lproj/Localizable.strings 等本地化文件中查到例如Hash GeneratorCalculate MD5, SHA1, SHA256 and SHA 512 hash from text data计算文本的 MD5 / SHA1 / SHA256 / SHA512 哈希Base64 Encoder / DecoderEncode and decode Base64 dataBase64 编解码Hyphenation RemoverRemove hyphenations copied from PDF text清除从 PDF 复制的文本中的连字符断行。仓库在DevToys/DevToys/Resource/下提供了en、zh-Hans、ja、de、es、pt-BR等语言包工具标题均通过.localized()按系统语言呈现README 截图中出现的日文界面即是本地化生效的直接证据。源码架构工具如何注册、路由与渲染理解了工具清单后再看工程是如何把这些工具组织起来的对阅读和二次开发很有帮助。核心链路如下1. 工具注册Tool与ToolManager每种工具都是一个Tool对象承载标题、标识符、分类、图标、描述和视图控制器工厂static let jsonYamlConverter Tool( title: tool.jsonyaml.title.localized(), identifier: jsonyaml, category: .converter, icon: R.Image.Tool.jsonConvert, sidebarTitle: tool.jsonyaml.mintitle.localized(), toolDescription: tool.jsonyaml.description.localized(), viewController: JSONYamlConverterViewController() )关键字段含义字段作用identifier工具唯一标识用于持久化与路由category归属分类决定在侧边栏/首页的分组位置icon/sidebarTitle侧边栏展示的图标与短标题缺省时回退为titletoolDescription首页卡片上的功能描述showAlways/showOnHome/showOnSidebar控制工具在首页网格、侧边栏的显隐策略viewController懒加载的视图控制器工厂lazy var viewControllerToolManager.swift 维护三张映射表分类→工具列表、标识符→工具、标识符→分类registerTool会断言标识符唯一性避免重复注册。flattenRootItems()则负责把「隐藏分类标题」的类别如 Home、Settings直接摊平到侧边栏顶层。2. 全局状态AppModel驱动界面切换AppModel.swift 是全局单例状态容器Observable var tool记录当前工具RestorableState(app.toolIdentifier)把当前工具标识符持久化到 UserDefaults下次启动自动恢复上次使用的工具searchQuery承载侧边栏搜索框的关键词。BodyViewController.swift 监听appModel.$tool与appModel.$searchQuery关键词为空时渲染当前工具视图非空时切换到搜索页SearchViewController实现「边输入边过滤工具」的体验。3. 首页与侧边栏两种入口首页 HomeView.swift 用NSCollectionView渲染工具卡片网格每项 125×230图标 标题 描述点击卡片即appModel.tool tool完成跳转侧边栏 SidebarView.swift 用NSOutlineView以分类为分组节点展示全部工具并支持autosaveExpandedItems记忆展开状态。4. 设置项Settings.swift 目前提供外观设置跟随系统 / 浅色 / 深色通过RestorableState(appearance)持久化。典型工具实现剖析为验证「工具即视图控制器」这一设计下面挑两个 README 截图重点展示的工具看其底层实现。Base64 Encoder / Decoder文本与文件双源输入Base64DecoderView.swift 支持两种输入源SourceType.text/SourceType.file文本源输入框内容变化时立即执行string.data(using: .utf8)!.base64EncodedString()编码或Data(base64Encoded:)解码实现双向实时联动文件源通过FileDrop拖放文件读取文件数据后base64EncodedString()生成编码串对编码后的字符串可点击 Export 按钮用NSSavePanel保存为解码后的原始文件——适合做「把 Base64 还原成图片/文档」这类离线操作。JSON Yaml Converter双向转换链路JSONYamlConverterView.swift 依赖两个开源库YamsYAML 解析/序列化与SwiftJSONFormatterJSON 美化YAML → JSONYams.load(yaml:)解析为对象后经JSONSerialization序列化配合FormatStylePretty / Minified选择是否prettyPrinted最后用SwiftJSONFormatter.beautify统一美化JSON → YAMLJSONSerialization.jsonObject解析后通过convertNSObject递归把NSDictionary/NSArray/NSString/NSNumber转为 Swift 原生类型其中NSNumber依据CFNumberGetType区分浮点、整型与布尔再交给Yams.dump输出。界面采用左右双编辑区布局任一侧输入都会实时转换另一侧并支持 Pretty / Minified 两种格式风格切换两个编辑区内容分别通过RestorableState(jy.json)与RestorableState(jy.yaml)持久化重启应用后仍保留上次数据。工程结构速览从何处继续深入仓库由两个 target 组成可据此规划阅读路径CoreUtil/自研基础库包含响应式状态Observable.swift、RestorableState.swift、UI 组件Section、Area、CodeViewSection等、HotKey 快捷键与各种扩展所有工具页面的Page/Section布局都建立在其上DevToys/DevToys/主应用Model/放工具注册与全局状态Body/按Coder、Convert、Format、Generator、Text、Graphic、Media等目录存放各工具页面Sidebar/放导航侧栏Resource/放图标资源与多语言文件。若想新增一款工具可参考现有实现的最小路径在Body/对应分类目录下新建XXXView.swift继承Page的视图 继承NSViewController的控制器在 ToolDefault.swift 的ToolManager.shared注册块中调用registerTool注册并补充Localizable.strings多语言条目即可。小结DevToysMac 通过「工具注册表 全局状态路由 响应式视图」的简洁架构把近 30 款开发常用工具统一收纳进一个原生 macOS 应用安装上支持 Release 手动安装与brew install --cask devtoys一键安装功能上覆盖转换、编解码、格式化、生成、文本、图形、媒体七大业务域源码上每个工具都是独立视图控制器扩展成本低。无论是作为日常开发效率工具还是作为 Swift/AppKit 桌面应用架构的参考实现都值得下载体验与研读。赞分享开发工具【免费下载链接】DevToysMacDevToys For mac项目地址https://gitcode.com/gh_mirrors/de/DevToysMac点击查看免费下载相关推荐如何快速部署UNIT3D从零开始的完整安装指南如何快速部署UNIT3D从零开始的完整安装指南 UNIT3D是一款基于Laravel、Livewire和AlpineJS构建的私有种子追踪器本指南将帮助你从突破语言障碍游戏文本提取工具的完全实战指南突破语言障碍游戏文本提取工具的完全实战指南 Textractor是一款基于ITHVNR开发的开源x86/x64视频游戏文本钩子工具专为Windows 7及开发工具逆向工程桌面应用XGo开发工具链从安装到部署全流程XGo开发工具链从安装到部署全流程 本文全面介绍了XGo语言的多平台安装指南、模块管理、编译运行机制以及Playground在线体验。详细讲解了在Window编程语言编译器开发工具上一篇ConsoleControl错误处理与调试常见问题排查与解决方案清单下一篇PrivilegedhostPID组合有多危险BadPods项目实战教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表