[{"title":"海岬灯塔：用 VectorPaint 的 17 个闭合路径搭一幅几何海景","category":"作品","url":"https://allluckly.cn/works/vectorpaint-cape-lighthouse-duo/","markdown_url":"https://allluckly.cn/works/vectorpaint-cape-lighthouse-duo/index.md","description":"在 iPhone Duo 模拟器里，用 VectorPaint 的钢笔闭合路径、填充和描边完成太阳、远山、海面、海岬与灯塔。记录 17 个对象的叠放关系、小窗闭合失误和三段波光的处理。","date":"2026-10-23T07:25:17+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"月照松湖：用 Aquarell 的多边形选区拼一幅几何夜景","category":"作品","url":"https://allluckly.cn/works/aquarell-moonlit-pines-duo/","markdown_url":"https://allluckly.cn/works/aquarell-moonlit-pines-duo/index.md","description":"在 iPhone Duo 模拟器中，用 Aquarell 的多边形选区、填色和四个图层完成雪峰、三棵松树、月轮、十二颗星与湖面反光。附带章节与中文字幕的创作视频、五色配色表和 1400×1000 原生 PNG。","date":"2026-10-23T06:22:25+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 创作过程：用柔边光斑画一片夜色","category":"作品","url":"https://allluckly.cn/works/aquarell-night-glow/","markdown_url":"https://allluckly.cn/works/aquarell-night-glow/index.md","description":"在深蓝底上叠加薄荷色、浅紫色与暖白色短笔触，练习笔刷大小、不透明度和画面留白。附实际创作视频、配色参数及原生导出成图。","date":"2026-10-23T02:46:01+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"VectorPaint 创作过程：用三块颜色画落日山影","category":"作品","url":"https://allluckly.cn/works/vectorpaint-geometric-sunset/","markdown_url":"https://allluckly.cn/works/vectorpaint-geometric-sunset/index.md","description":"从空白方形画布开始，用钢笔闭合八边形与两个三角形，再调整填充、关闭描边并导出 PNG。","date":"2026-10-23T02:33:05+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"Yearn 虚拟手柄：调整大小、透明度和触觉反馈","category":"教程","url":"https://allluckly.cn/guides/yearn-virtual-controller/","markdown_url":"https://allluckly.cn/guides/yearn-virtual-controller/index.md","description":"用固定游戏场景比较虚拟手柄的大小和透明度，分别检查横屏、竖屏、方向键与功能键，找到适合自己握持的布局。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Yearn","keywords":[],"version_note":""}
,{"title":"Yearn 速度控制：用快进跳过等待，用慢速观察动作","category":"教程","url":"https://allluckly.cn/guides/yearn-speed-control/","markdown_url":"https://allluckly.cn/guides/yearn-speed-control/index.md","description":"在 Yearn 中分步骤比较正常、快进与慢速，检查按钮操作、音画变化和存档状态，区分运行速度与连发功能。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Yearn","keywords":[],"version_note":""}
,{"title":"Yearn 游戏截图：保存一个画面并整理记录","category":"教程","url":"https://allluckly.cn/guides/yearn-screenshots/","markdown_url":"https://allluckly.cn/guides/yearn-screenshots/index.md","description":"在 Yearn 中保存游戏画面，再到相册确认结果，区分游戏截图与系统截屏，并整理可辨认的进度和问题记录。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Yearn","keywords":[],"version_note":""}
,{"title":"Yearn 画面大小：调整缩放并检查比例与留边","category":"教程","url":"https://allluckly.cn/guides/yearn-screen-size/","markdown_url":"https://allluckly.cn/guides/yearn-screen-size/index.md","description":"以圆形、文字和画面边缘为参照，调整 Yearn 的显示缩放，区分有效放大、比例拉伸和操作区遮挡。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Yearn","keywords":[],"version_note":""}
,{"title":"Yearn 电视显示：通过 iPhone 系统屏幕镜像检查画面与延迟","category":"教程","url":"https://allluckly.cn/guides/yearn-screen-mirroring/","markdown_url":"https://allluckly.cn/guides/yearn-screen-mirroring/index.md","description":"通过 Apple 系统屏幕镜像将 Yearn 画面显示在兼容电视上，并分别检查连接、方向、声音和操作延迟。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Yearn","keywords":[],"version_note":""}
,{"title":"Yearn 即时存档：用不同槽位保留关键进度","category":"教程","url":"https://allluckly.cn/guides/yearn-save-slots/","markdown_url":"https://allluckly.cn/guides/yearn-save-slots/index.md","description":"分清 Save 与 Load，用两个槽位记录不同场景，再检查同次运行和重新进入后的读回结果，避免覆盖唯一进度。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Yearn","keywords":[],"version_note":""}
,{"title":"Yearn 文件识别：分清主机格式与光盘配套文件","category":"教程","url":"https://allluckly.cn/guides/yearn-rom-formats/","markdown_url":"https://allluckly.cn/guides/yearn-rom-formats/index.md","description":"通过文件名、扩展名、平台和配套文件检查 ROM，区分单文件游戏、PS1 镜像与压缩包，减少导入时的误判。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Yearn","keywords":[],"version_note":""}
,{"title":"Yearn PS1 镜像导入：检查 CUE、BIN 与多轨道文件","category":"教程","url":"https://allluckly.cn/guides/yearn-ps1-disc-files/","markdown_url":"https://allluckly.cn/guides/yearn-ps1-disc-files/index.md","description":"整理自己合法持有的 PS1 光盘镜像，分清轨道说明与数据文件，检查文件名引用、配套导入和启动失败的来源。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Yearn","keywords":[],"version_note":""}
,{"title":"Yearn 离线准备：出发前检查游戏、BIOS 和存档","category":"教程","url":"https://allluckly.cn/guides/yearn-offline-trip/","markdown_url":"https://allluckly.cn/guides/yearn-offline-trip/index.md","description":"在出行前用飞行模式检查本地游戏、必要 BIOS、控制器和存档，把网络资料、云端占位文件与实际可离线运行分开确认。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Yearn","keywords":[],"version_note":""}
,{"title":"Yearn 游戏库整理：搜索、收藏、封面与最近游玩","category":"教程","url":"https://allluckly.cn/guides/yearn-library-organizing/","markdown_url":"https://allluckly.cn/guides/yearn-library-organizing/index.md","description":"为已导入的游戏建立易查找的列表，用平台筛选、排序、搜索和收藏整理内容，同时分清封面与运行文件之间的关系。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Yearn","keywords":[],"version_note":""}
,{"title":"Yearn 启动排查：从导入成功到画面正常运行","category":"教程","url":"https://allluckly.cn/guides/yearn-launch-troubleshooting/","markdown_url":"https://allluckly.cn/guides/yearn-launch-troubleshooting/index.md","description":"把 Yearn 启动失败拆成文件、平台、BIOS、运行和输入五个环节，用可重复的小测试找到需要处理的位置。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Yearn","keywords":[],"version_note":""}
,{"title":"Yearn 横屏与双屏：让画面和手柄各有位置","category":"教程","url":"https://allluckly.cn/guides/yearn-landscape-layout/","markdown_url":"https://allluckly.cn/guides/yearn-landscape-layout/index.md","description":"以安全场景检查横竖屏、控制器大小和双屏内容，区分系统方向锁定、设备布局与游戏原始画面比例。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Yearn","keywords":[],"version_note":""}
,{"title":"Yearn iCloud 存档同步：检查云端状态与换设备前的准备","category":"教程","url":"https://allluckly.cn/guides/yearn-icloud-saves/","markdown_url":"https://allluckly.cn/guides/yearn-icloud-saves/index.md","description":"检查 Yearn 的 iCloud 可用状态和手动同步，区分云端文件复制与游戏中的实际读档，换设备前保留可核对的本地记录。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Yearn","keywords":[],"version_note":""}
,{"title":"Yearn 入门：导入第一款自备游戏并安全退出","category":"教程","url":"https://allluckly.cn/guides/yearn-getting-started/","markdown_url":"https://allluckly.cn/guides/yearn-getting-started/index.md","description":"从一个自备 ROM 开始，完成文件导入、平台确认、控制器检查、手动存档与退出后的复查，建立清楚的第一次使用流程。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Yearn","keywords":[],"version_note":""}
,{"title":"Yearn 文件夹导入：整理一批游戏并检查遗漏","category":"教程","url":"https://allluckly.cn/guides/yearn-folder-import/","markdown_url":"https://allluckly.cn/guides/yearn-folder-import/index.md","description":"先整理目录和同名文件，再使用 Yearn 文件夹导入；按平台与样本逐项检查结果，理解批量复制和原文件之间的关系。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Yearn","keywords":[],"version_note":""}
,{"title":"Yearn 手柄输入排查：区分按键方位、方向键和摇杆死区","category":"教程","url":"https://allluckly.cn/guides/yearn-controller-input-check/","markdown_url":"https://allluckly.cn/guides/yearn-controller-input-check/index.md","description":"用固定场景检查实体手柄的按钮方位与摇杆响应，避免把字母差异当成故障，并用小步调整确认死区是否合适。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Yearn","keywords":[],"version_note":""}
,{"title":"Yearn 蓝牙手柄：完成配对并检查按键响应","category":"教程","url":"https://allluckly.cn/guides/yearn-bluetooth-controller/","markdown_url":"https://allluckly.cn/guides/yearn-bluetooth-controller/index.md","description":"先在 iOS 完成手柄配对，再回到 Yearn 检查连接识别、方向与功能键，区分系统连接、应用输入和游戏响应三层结果。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Yearn","keywords":[],"version_note":""}
,{"title":"Yearn BIOS 设置：按平台检查缺失文件","category":"教程","url":"https://allluckly.cn/guides/yearn-bios-setup/","markdown_url":"https://allluckly.cn/guides/yearn-bios-setup/index.md","description":"理解 ROM 与 BIOS 的不同作用，在 Yearn 中检查 PS1 所需文件和 NDS 状态，保留文件来源并排查导入后仍提示缺失的情况。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Yearn","keywords":[],"version_note":""}
,{"title":"Yearn 整理空间：备份后再删除游戏与存档","category":"教程","url":"https://allluckly.cn/guides/yearn-backup-delete/","markdown_url":"https://allluckly.cn/guides/yearn-backup-delete/index.md","description":"在清理 Yearn 前区分 ROM、即时存档、游戏内保存和截图，通过独立副本保留材料，确认删除动作涉及哪些数据。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Yearn","keywords":[],"version_note":""}
,{"title":"Yearn 游戏内存档与即时存档：保存后怎样确认能读回","category":"教程","url":"https://allluckly.cn/guides/yearn-autosave-battery/","markdown_url":"https://allluckly.cn/guides/yearn-autosave-battery/index.md","description":"区分游戏自己的保存菜单与模拟器即时状态，建立保存、退出、重进和读回检查，明确自动存档设置不能替代恢复验证。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Yearn","keywords":[],"version_note":""}
,{"title":"VectorPaint 字标间距：调整短名称的视觉节奏","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-wordmark-spacing/","markdown_url":"https://allluckly.cn/guides/vectorpaint-wordmark-spacing/index.md","description":"用一个短名称比较默认字距、整体字距与局部间隔，保留文字原稿，并检查小尺寸和反白版本。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 天气图标组：统一晴天、阴天与雨天的视觉尺寸","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-weather-icon-set/","markdown_url":"https://allluckly.cn/guides/vectorpaint-weather-icon-set/index.md","description":"制作三枚天气图标，通过共同基线、线宽、外缘和小尺寸预览建立一套协调的视觉规则。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 导向标识：为三个空间制作统一指示牌","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-wayfinding-signs/","markdown_url":"https://allluckly.cn/guides/vectorpaint-wayfinding-signs/index.md","description":"用阅读区、展览区和休息区三个虚构空间练习箭头、文字与图形的共同规则，检查远看和小尺寸阅读。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 双色叠色练习：观察透明度与图层顺序","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-transparent-overlap/","markdown_url":"https://allluckly.cn/guides/vectorpaint-transparent-overlap/index.md","description":"用两种色块和固定背景比较对象透明度、重叠区域与前后顺序，完成一张可解释的叠色练习板。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 时间轴：排好五个阶段及长短不同的说明","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-timeline/","markdown_url":"https://allluckly.cn/guides/vectorpaint-timeline/index.md","description":"制作五阶段项目时间轴，区分顺序示意与按时间比例绘制，处理长短说明、节点间距和后续更新。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 贴纸插画：绘制白色外轮廓并检查透明边缘","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-sticker-outline/","markdown_url":"https://allluckly.cn/guides/vectorpaint-sticker-outline/index.md","description":"给简单插画手工制作白色衬底轮廓，处理凹角、细缝和透明边缘，并区分视觉贴纸边框与印刷裁切线。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 路线示意图：用路径、站点和图例讲清方向","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-route-map/","markdown_url":"https://allluckly.cn/guides/vectorpaint-route-map/index.md","description":"用一条简化步行路线练习路径、站点编号、文字和图例，让信息顺序比装饰更容易被读懂。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 重复纹样：手工检查四边衔接的图案单元","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-repeat-tile/","markdown_url":"https://allluckly.cn/guides/vectorpaint-repeat-tile/index.md","description":"从一个方形单元出发，手工复制叶片与圆点，检查左右和上下对应关系，再用九宫格预览发现接缝。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 小幅印刷检查：通过 PDF 样张核对尺寸与细线","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-print-proof/","markdown_url":"https://allluckly.cn/guides/vectorpaint-print-proof/index.md","description":"为小卡准备一份 PDF 样张，检查文档单位、实际尺寸、文字、细线与裁切范围，再与印刷方确认生产条件。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 商品信息卡：从一张基础版式扩展成系列","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-price-card-series/","markdown_url":"https://allluckly.cn/guides/vectorpaint-price-card-series/index.md","description":"用三张虚构商品卡练习可复用版式，处理名称长度、规格、价格和图片区域，并核对复制后遗漏的旧信息。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 手机壁纸：给时间、图标与主图预留空间","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-phone-wallpaper/","markdown_url":"https://allluckly.cn/guides/vectorpaint-phone-wallpaper/index.md","description":"按目标手机比例制作壁纸，预留锁屏时间和主屏图标区域，通过实际设置预览检查裁切、对比与主体位置。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 标志交付检查：核对浅底、深底和小尺寸版本","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-logo-handoff/","markdown_url":"https://allluckly.cn/guides/vectorpaint-logo-handoff/index.md","description":"为一枚已完成标志整理原稿、SVG 与 PNG，核对配色、透明背景、文字和小尺寸表现，并写清每份文件的用途。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 立体纸盒插画：用三个平面建立一致透视","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-isometric-box/","markdown_url":"https://allluckly.cn/guides/vectorpaint-isometric-box/index.md","description":"用钢笔绘制纸盒的顶面、左面和右面，通过共同顶点与明暗关系表达体积，再检查边缘缝隙和变形。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 三格步骤图：用连续动作解释一个简单过程","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-instruction-panels/","markdown_url":"https://allluckly.cn/guides/vectorpaint-instruction-panels/index.md","description":"用三格浇水示意练习连续画面，保持对象位置与比例一致，通过编号、动作变化和短文字说明过程。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 几何人物头像：用少量色块表现五官与发型","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-geometric-portrait/","markdown_url":"https://allluckly.cn/guides/vectorpaint-geometric-portrait/index.md","description":"从头部轮廓、发型和五官三个层次制作几何头像，控制对称、遮挡与小尺寸辨识度。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 等高线风格插画：用开放曲线组织疏密节奏","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-contour-lines/","markdown_url":"https://allluckly.cn/guides/vectorpaint-contour-lines/index.md","description":"手工绘制等高线风格曲线，练习开放路径、节点方向、线间留白与裁切，制作一幅抽象地形插画。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 植物贺卡：把枝叶组织成有留白的边框","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-botanical-card/","markdown_url":"https://allluckly.cn/guides/vectorpaint-botanical-card/index.md","description":"围绕一段短祝福安排枝叶，练习曲线方向、重复变化、边框疏密和文字留白，完成一张植物主题小卡。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 双语标题：协调中文、英文和辅助信息","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-bilingual-title/","markdown_url":"https://allluckly.cn/guides/vectorpaint-bilingual-title/index.md","description":"用中英双语活动标题练习视觉层级、字面大小、行距与对齐，避免只按字号数字机械匹配。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 数据条形图：让长度、数字与单位彼此一致","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-bar-chart/","markdown_url":"https://allluckly.cn/guides/vectorpaint-bar-chart/index.md","description":"手工绘制一张三项目条形图，按统一比例计算长度，核对零基线、文字标签和数据来源，避免图形误导。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 头像适配：同时检查圆形裁切与方形预览","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-avatar-crops/","markdown_url":"https://allluckly.cn/guides/vectorpaint-avatar-crops/index.md","description":"为同一头像制作方形与圆形检查稿，找出头顶、肩部和装饰被裁切的位置，保留统一边距与清楚的小尺寸轮廓。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"书屿 WebDAV 同步：在两台设备间延续阅读记录","category":"教程","url":"https://allluckly.cn/guides/nasbook-webdav-sync/","markdown_url":"https://allluckly.cn/guides/nasbook-webdav-sync/index.md","description":"用两台设备和一条测试笔记验证书屿 WebDAV 双向更新，区分阅读资料同步与原书下载，并有依据地处理冲突。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"书屿","keywords":[],"version_note":""}
,{"title":"书屿连接 WebDAV：从私人书库下载一本书","category":"教程","url":"https://allluckly.cn/guides/nasbook-webdav-library/","markdown_url":"https://allluckly.cn/guides/nasbook-webdav-library/index.md","description":"配置书屿 WebDAV 私人书库，核对地址、路径与权限，下载单本电子书并完成离线检查，区分书库访问和阅读数据同步。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"书屿","keywords":[],"version_note":""}
,{"title":"书屿 TXT 阅读：检查乱码、分章与目录跳转","category":"教程","url":"https://allluckly.cn/guides/nasbook-txt-encoding-chapters/","markdown_url":"https://allluckly.cn/guides/nasbook-txt-encoding-chapters/index.md","description":"区分 TXT 编码乱码与章节识别问题，用副本整理 UTF-8 文本和一致标题，并核对导入、目录与续读位置。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"书屿","keywords":[],"version_note":""}
,{"title":"书屿分类方法：用标签、阅读状态和评分安排书单","category":"教程","url":"https://allluckly.cn/guides/nasbook-tags-status-rating/","markdown_url":"https://allluckly.cn/guides/nasbook-tags-status-rating/index.md","description":"区分主题标签、阅读状态和个人评分的作用，先用六本书建立规则，再通过组合筛选与小范围批量操作整理书架。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"书屿","keywords":[],"version_note":""}
,{"title":"书屿连接 SMB：在家庭局域网浏览 NAS 电子书","category":"教程","url":"https://allluckly.cn/guides/nasbook-smb-library/","markdown_url":"https://allluckly.cn/guides/nasbook-smb-library/index.md","description":"把 SMB 服务器、共享名和内部路径分别填入书屿，验证目录读取、单书下载与家庭网络中的离线使用边界。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"书屿","keywords":[],"version_note":""}
,{"title":"书屿阅读统计：回看一周阅读并设置合适目标","category":"教程","url":"https://allluckly.cn/guides/nasbook-reading-statistics/","markdown_url":"https://allluckly.cn/guides/nasbook-reading-statistics/index.md","description":"从书屿一周阅读统计出发，核对时间范围与分书投入，设置可持续的阅读目标和提醒，再用导出资料进行回顾。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"书屿","keywords":[],"version_note":""}
,{"title":"书屿阅读数据导出：保存笔记、高亮与统计资料","category":"教程","url":"https://allluckly.cn/guides/nasbook-reading-data-export/","markdown_url":"https://allluckly.cn/guides/nasbook-reading-data-export/index.md","description":"把书屿笔记、高亮和阅读统计导出为 Markdown 或 CSV，完成目标保存与内容核对，并区分可读资料留档与完整恢复备份。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"书屿","keywords":[],"version_note":""}
,{"title":"书屿 PDF 阅读：用页码、目录和搜索定位资料","category":"教程","url":"https://allluckly.cn/guides/nasbook-pdf-navigation-search/","markdown_url":"https://allluckly.cn/guides/nasbook-pdf-navigation-search/index.md","description":"在书屿中用 PDF 页码、内置目录和文本搜索查找资料，区分文件页码与印刷页码，以及扫描图片与文字层。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"书屿","keywords":[],"version_note":""}
,{"title":"书屿连接 OPDS：浏览目录、搜索并获取电子书","category":"教程","url":"https://allluckly.cn/guides/nasbook-opds-library/","markdown_url":"https://allluckly.cn/guides/nasbook-opds-library/index.md","description":"找到真正的 OPDS 目录地址，在书屿中浏览、搜索并选择可读格式下载，排查目录正常但获取链接失效的情况。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"书屿","keywords":[],"version_note":""}
,{"title":"书屿读书摘录：保存高亮、笔记并制作书摘卡片","category":"教程","url":"https://allluckly.cn/guides/nasbook-notes-quote-cards/","markdown_url":"https://allluckly.cn/guides/nasbook-notes-quote-cards/index.md","description":"在书屿中选择原文、保存高亮和个人笔记，核对书摘卡片的文字与来源，再通过分享或保存图片留下阅读成果。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"书屿","keywords":[],"version_note":""}
,{"title":"书屿重复导入：处理同一本书的 EPUB 与 PDF 版本","category":"教程","url":"https://allluckly.cn/guides/nasbook-multiple-formats/","markdown_url":"https://allluckly.cn/guides/nasbook-multiple-formats/index.md","description":"在书屿导入预览中区分重复与同书多格式，验证 EPUB、PDF 的主格式和备用格式，并保留不同版次与阅读位置的边界。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"书屿","keywords":[],"version_note":""}
,{"title":"书屿书籍资料：整理书名、作者、系列与封面","category":"教程","url":"https://allluckly.cn/guides/nasbook-metadata-editing/","markdown_url":"https://allluckly.cn/guides/nasbook-metadata-editing/index.md","description":"核对书屿中的书名、作者、系列与封面，使用单册检查和小范围批量整理，避免把同名不同版的资料合成一套。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"书屿","keywords":[],"version_note":""}
,{"title":"书屿入门：导入第一本 EPUB 并接着读","category":"教程","url":"https://allluckly.cn/guides/nasbook-getting-started/","markdown_url":"https://allluckly.cn/guides/nasbook-getting-started/index.md","description":"从一份本地 EPUB 开始，完成书屿导入、章节跳转、阅读位置保存与离线检查，避免把远程封面当作已下载正文。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"书屿","keywords":[],"version_note":""}
,{"title":"书屿全文搜索：从一句话找到书籍与阅读位置","category":"教程","url":"https://allluckly.cn/guides/nasbook-full-text-search/","markdown_url":"https://allluckly.cn/guides/nasbook-full-text-search/index.md","description":"从已知短语验证书屿的书籍、正文和笔记搜索，逐步缩小查询范围，并区分未下载内容、索引准备与扫描图片的限制。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"书屿","keywords":[],"version_note":""}
,{"title":"书屿 EPUB 排版：把长篇小说调到舒服的阅读密度","category":"教程","url":"https://allluckly.cn/guides/nasbook-epub-typesetting/","markdown_url":"https://allluckly.cn/guides/nasbook-epub-typesetting/index.md","description":"用同一章比较字号、字体、背景与屏幕方向，建立适合长篇阅读的 EPUB 排版，并理解重排页码的变化。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"书屿","keywords":[],"version_note":""}
,{"title":"书屿文档阅读：整理 Markdown、HTML 与 Office 文档","category":"教程","url":"https://allluckly.cn/guides/nasbook-document-reading/","markdown_url":"https://allluckly.cn/guides/nasbook-document-reading/index.md","description":"把 Markdown、HTML、RTF 和 DOCX 作为私人阅读资料导入，检查正文、外部图片与版式边界，再整理可查找的文档书架。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"书屿","keywords":[],"version_note":""}
,{"title":"书屿连接 Calibre 内容服务器：把电脑书库带到 iPad","category":"教程","url":"https://allluckly.cn/guides/nasbook-calibre-server/","markdown_url":"https://allluckly.cn/guides/nasbook-calibre-server/index.md","description":"在书屿中配置 Calibre Content Server，区分目录元数据同步与实际下载，并核对电脑休眠、权限和离线阅读边界。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"书屿","keywords":[],"version_note":""}
,{"title":"书屿读取 Calibre 数据库：理解 metadata.db 与书籍路径","category":"教程","url":"https://allluckly.cn/guides/nasbook-calibre-database/","markdown_url":"https://allluckly.cn/guides/nasbook-calibre-database/index.md","description":"通过 NAS 读取 Calibre metadata.db，理解数据库、书库根目录和相对文件路径，避免目录同步成功却无法下载正文。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"书屿","keywords":[],"version_note":""}
,{"title":"书屿有声书：导入音频并核对播放进度","category":"教程","url":"https://allluckly.cn/guides/nasbook-audiobook-reading/","markdown_url":"https://allluckly.cn/guides/nasbook-audiobook-reading/index.md","description":"用短音频核对书屿有声书导入、时间进度、章节顺序与续听，按实际入口试用倍速和定时，并检查离线文件范围。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"书屿","keywords":[],"version_note":""}
,{"title":"书屿应用锁：保护私人书架并检查解锁方式","category":"教程","url":"https://allluckly.cn/guides/nasbook-app-lock/","markdown_url":"https://allluckly.cn/guides/nasbook-app-lock/index.md","description":"开启并验证书屿应用锁，理解系统身份验证、失败重试和关闭流程，同时区分 App 访问保护与导出文件、NAS 权限。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"书屿","keywords":[],"version_note":""}
,{"title":"漫阅+ Wi-Fi 传书：从电脑浏览器导入漫画","category":"教程","url":"https://allluckly.cn/guides/manyue-wifi-import/","markdown_url":"https://allluckly.cn/guides/manyue-wifi-import/index.md","description":"从电脑浏览器向漫阅+ 的 WiFi 导入页面上传一本漫画，核对配对、目标分组、上传与解析结果，并完成本地阅读验收。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 连接 Suwayomi：浏览服务器书库与章节","category":"教程","url":"https://allluckly.cn/guides/manyue-suwayomi-library/","markdown_url":"https://allluckly.cn/guides/manyue-suwayomi-library/index.md","description":"将漫阅+ 连接到已有 Suwayomi / Tachidesk 服务器书库，验证章节与进度，区分服务端下载、本机离线文件和迁址连接身份。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 漫画源维护：检查更新、搜索范围与访问异常","category":"教程","url":"https://allluckly.cn/guides/manyue-source-maintenance/","markdown_url":"https://allluckly.cn/guides/manyue-source-maintenance/index.md","description":"在漫阅+ 中按源版本与失败环节检查更新，调整聚合搜索参与范围，谨慎处理登录、移除与重新添加的记录关联。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 漫画源导入：添加 JS、ManYue 文件与订阅地址","category":"教程","url":"https://allluckly.cn/guides/manyue-source-import/","markdown_url":"https://allluckly.cn/guides/manyue-source-import/index.md","description":"区分 JS、ManYue 源文件、单源 URL 和源列表，在漫阅+ 中小范围添加并验证浏览、搜索与阅读入口，保留维护来源。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 多服务器书库：区分同名作品与个人阅读范围","category":"教程","url":"https://allluckly.cn/guides/manyue-server-library-scope/","markdown_url":"https://allluckly.cn/guides/manyue-server-library-scope/index.md","description":"在漫阅+ 多服务器书库中命名连接、按来源筛选并选择全部藏书或仅我的漫画，核对同名版本身份与离线内容。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 进度追踪：连接 Bangumi 或 MyAnimeList 并核对绑定","category":"教程","url":"https://allluckly.cn/guides/manyue-reading-trackers/","markdown_url":"https://allluckly.cn/guides/manyue-reading-trackers/index.md","description":"连接漫阅+ 的 Bangumi 或 MyAnimeList 追踪器，逐部核对条目绑定、远端进度导入与手动同步，再决定是否开启自动更新。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 阅读统计：查看阅读时长与分作品记录","category":"教程","url":"https://allluckly.cn/guides/manyue-reading-statistics/","markdown_url":"https://allluckly.cn/guides/manyue-reading-statistics/index.md","description":"在漫阅+ 查看总阅读时长、今天、最近七天和分作品记录，理解有效阅读口径，区分历史清理、统计与设备使用时长。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 阅读历史：找回上次看到的作品与位置","category":"教程","url":"https://allluckly.cn/guides/manyue-reading-history/","markdown_url":"https://allluckly.cn/guides/manyue-reading-history/index.md","description":"利用漫阅+ 历史与继续阅读找回章节位置，区分移出续读、删除阅读记录和本地文件，处理来源变化后的定位。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 阅读外观：调整暗色模式、背景与屏幕显示","category":"教程","url":"https://allluckly.cn/guides/manyue-reading-appearance/","markdown_url":"https://allluckly.cn/guides/manyue-reading-appearance/index.md","description":"分别调整漫阅+ 应用主题和阅读页面显示，使用灰阶样本检查夜间调暗、背景与系统亮度叠加，保留清楚的画面细节。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 阅读操作：调整点击翻页与缩放手势","category":"教程","url":"https://allluckly.cn/guides/manyue-reader-shortcuts/","markdown_url":"https://allluckly.cn/guides/manyue-reader-shortcuts/index.md","description":"为 iPhone/iPad 上的漫阅+ 建立点击翻页、反向点击、缩放和菜单手势基线，检查快捷收藏冲突与设置作用范围。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 稍后阅读：把想看的漫画整理成待读清单","category":"教程","url":"https://allluckly.cn/guides/manyue-read-later/","markdown_url":"https://allluckly.cn/guides/manyue-read-later/index.md","description":"用漫阅+ 稍后读建立三部作品的短期计划，核对加入、筛选、继续阅读与移出操作，并区分收藏、追更和离线下载。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ PDF 漫画：检查封面、横页与阅读定位","category":"教程","url":"https://allluckly.cn/guides/manyue-pdf-reading/","markdown_url":"https://allluckly.cn/guides/manyue-pdf-reading/index.md","description":"导入并验收一份 PDF 漫画，核对封面、页序、横向跨页、缩放质量与续读位置，区分固定页面与文字排版功能。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 长条漫画：选择连续阅读并检查拼接体验","category":"教程","url":"https://allluckly.cn/guides/manyue-long-strip-reading/","markdown_url":"https://allluckly.cn/guides/manyue-long-strip-reading/index.md","description":"为长条漫画选择漫阅+ 连续纵向模式，检查接缝、侧边留白、横图与恢复位置，保持作品原有顺序和阅读节奏。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 连接 LANraragi：按归档与标签阅读私人漫画库","category":"教程","url":"https://allluckly.cn/guides/manyue-lanraragi-library/","markdown_url":"https://allluckly.cn/guides/manyue-lanraragi-library/index.md","description":"用漫阅+ 原生入口连接 LANraragi，核对 API Key、归档与章节映射、标签搜索及页面索引，明确本地进度和离线下载范围。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 图片收藏：保存喜欢的页面并按作品回看","category":"教程","url":"https://allluckly.cn/guides/manyue-image-favorites/","markdown_url":"https://allluckly.cn/guides/manyue-image-favorites/index.md","description":"用漫阅+ 阅读器收藏两张页面，再按作品、搜索与时间条件回看，区分图片收藏、页级书签和保存到相册的不同结果。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 隐藏与恢复：整理书库又保留阅读记录","category":"教程","url":"https://allluckly.cn/guides/manyue-hide-restore/","markdown_url":"https://allluckly.cn/guides/manyue-hide-restore/index.md","description":"通过漫阅+ 2.0.2 的隐藏与恢复整理书库，验证文件和阅读记录保留，区分隐藏、移出续读、清历史与删除本地副本。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 追更：建立持续阅读的更新清单","category":"教程","url":"https://allluckly.cn/guides/manyue-follow-updates/","markdown_url":"https://allluckly.cn/guides/manyue-follow-updates/index.md","description":"从一部连载建立漫阅+ 追更清单，核对更新检查、待读状态、分组跟随与停止追更，区分无更新和检查失败。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 聚合搜索：比较多个已添加漫画源的结果","category":"教程","url":"https://allluckly.cn/guides/manyue-cross-source-search/","markdown_url":"https://allluckly.cn/guides/manyue-cross-source-search/index.md","description":"在漫阅+ 聚合搜索中限定两个可用来源，比较作者、版本和章节信息，再进入单源结果核对，避免把同名作品自动当成同一版。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 章节搜索：在长目录里找到卷名与话数","category":"教程","url":"https://allluckly.cn/guides/manyue-chapter-search/","markdown_url":"https://allluckly.cn/guides/manyue-chapter-search/index.md","description":"使用漫阅+ 查找章节按标题、话数和卷名缩小长目录，核对数字歧义、排序和跳转结果，并保留可靠的阅读位置。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 批量导出：把已下载漫画保存为可管理的文件","category":"教程","url":"https://allluckly.cn/guides/manyue-batch-export/","markdown_url":"https://allluckly.cn/guides/manyue-batch-export/index.md","description":"从漫阅+ 本地漫画批量导出 CBZ 或 PDF，核对 ZIP 容器、保存位置与页面完整性，区分漫画文件留档和应用阅读数据备份。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"云映连接 WebDAV：填对地址、目录与账号","category":"教程","url":"https://allluckly.cn/guides/icouldplay-webdav-cloud/","markdown_url":"https://allluckly.cn/guides/icouldplay-webdav-cloud/index.md","description":"区分 WebDAV 服务地址、网页分享链接和基础路径，在云映中验证登录、目录读取与同文件播放。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"云映","keywords":[],"version_note":""}
,{"title":"云映连接绿联云视频：核对服务地址与媒体访问","category":"教程","url":"https://allluckly.cn/guides/icouldplay-ugreen-library/","markdown_url":"https://allluckly.cn/guides/icouldplay-ugreen-library/index.md","description":"从云映 1.1.0 的绿联云视频支持出发，区分 NAS 管理地址与视频服务地址，逐项验证用户登录、媒体库和实际播放。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"云映","keywords":[],"version_note":""}
,{"title":"云映字幕排版：调整字号、描边与屏幕位置","category":"教程","url":"https://allluckly.cn/guides/icouldplay-subtitle-style/","markdown_url":"https://allluckly.cn/guides/icouldplay-subtitle-style/index.md","description":"从已经匹配的普通字幕开始，在云映中比较字号、对比度、描边与位置，检查横竖屏、长句和浅色画面的阅读效果。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"云映","keywords":[],"version_note":""}
,{"title":"云映连接 SMB：从 NAS 共享目录播放家庭视频","category":"教程","url":"https://allluckly.cn/guides/icouldplay-smb-nas/","markdown_url":"https://allluckly.cn/guides/icouldplay-smb-nas/index.md","description":"区分 SMB 主机、共享名称和基础路径，在云映中连接家庭 NAS，用小文件夹验证目录权限、扫描与实际播放。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"云映","keywords":[],"version_note":""}
,{"title":"云映查找与续播：从关键词回到上次观看位置","category":"教程","url":"https://allluckly.cn/guides/icouldplay-search-resume/","markdown_url":"https://allluckly.cn/guides/icouldplay-search-resume/index.md","description":"确认媒体来源与搜索范围，使用短关键词查找自己的视频，再验证播放进度、继续观看和从头播放设置之间的关系。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"云映","keywords":[],"version_note":""}
,{"title":"云映连接 Plex：授权账号、选择服务器与排查空库","category":"教程","url":"https://allluckly.cn/guides/icouldplay-plex-library/","markdown_url":"https://allluckly.cn/guides/icouldplay-plex-library/index.md","description":"在云映中完成 Plex 账号授权后，填写实际服务器地址，分开核对账号、服务器可达性、库权限与视频播放。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"云映","keywords":[],"version_note":""}
,{"title":"云映播放兼容排查：理解双引擎与视频格式","category":"教程","url":"https://allluckly.cn/guides/icouldplay-player-engine/","markdown_url":"https://allluckly.cn/guides/icouldplay-player-engine/index.md","description":"区分容器、视频编码、音轨与字幕，理解云映的双引擎自动选择，并用同一文件的本地和远程结果定位播放问题。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"云映","keywords":[],"version_note":""}
,{"title":"云映相册视频导入：整理旅行片段并核对播放方向","category":"教程","url":"https://allluckly.cn/guides/icouldplay-photo-import/","markdown_url":"https://allluckly.cn/guides/icouldplay-photo-import/index.md","description":"把少量旅行视频从相册入口导入云映，核对完整下载、方向、时长和重复文件，建立可重复的个人视频整理流程。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"云映","keywords":[],"version_note":""}
,{"title":"云映串流卡顿怎么查：分清文件、网络和服务器问题","category":"教程","url":"https://allluckly.cn/guides/icouldplay-network-buffering/","markdown_url":"https://allluckly.cn/guides/icouldplay-network-buffering/index.md","description":"用同一视频的本地与远程对照，定位云映串流中的缓冲、跳转失败和中途断开，检查局域网、外网、服务器转码与文件码率。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"云映","keywords":[],"version_note":""}
,{"title":"云映电影匹配：用片名与年份减少海报识别错误","category":"教程","url":"https://allluckly.cn/guides/icouldplay-movie-naming/","markdown_url":"https://allluckly.cn/guides/icouldplay-movie-naming/index.md","description":"扫描电影文件前整理片名、年份与版本信息，用少量样本检查云映匹配到的海报和简介，并保留原文件与已有观看记录。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"云映","keywords":[],"version_note":""}
,{"title":"云映信息匹配纠错：区分同名电影与不同版本","category":"教程","url":"https://allluckly.cn/guides/icouldplay-metadata-correction/","markdown_url":"https://allluckly.cn/guides/icouldplay-metadata-correction/index.md","description":"发现错误海报或简介后，先确认卡片对应的文件与资料来源，再核对片名、年份、电影剧集类型和服务器元数据，避免误删视频。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"云映","keywords":[],"version_note":""}
,{"title":"云映媒体库浏览：用分类与卡片密度整理观看清单","category":"教程","url":"https://allluckly.cn/guides/icouldplay-library-categories/","markdown_url":"https://allluckly.cn/guides/icouldplay-library-categories/index.md","description":"从来源、电影剧集分类和媒体库列数三个层面整理云映的浏览方式，检查筛选空结果、重复卡片与不同设备上的标题可读性。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"云映","keywords":[],"version_note":""}
,{"title":"云映连接 Jellyfin：从服务器首页找到电影与剧集","category":"教程","url":"https://allluckly.cn/guides/icouldplay-jellyfin-library/","markdown_url":"https://allluckly.cn/guides/icouldplay-jellyfin-library/index.md","description":"在云映中连接已有 Jellyfin 服务，核对实际端口、用户库范围与季度集数，分清空列表、资料缺失和视频播放失败。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"云映","keywords":[],"version_note":""}
,{"title":"云映 iCouldPlay 入门：把一段本地视频整理到媒体库","category":"教程","url":"https://allluckly.cn/guides/icouldplay-getting-started/","markdown_url":"https://allluckly.cn/guides/icouldplay-getting-started/index.md","description":"从文件 App 导入一段自己的视频，在云映中核对本地来源、播放画面、声音和观看进度，理解媒体库与原文件的关系。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"云映","keywords":[],"version_note":""}
,{"title":"云映 FTP 文件源：用小目录验证连接与播放","category":"教程","url":"https://allluckly.cn/guides/icouldplay-ftp-source/","markdown_url":"https://allluckly.cn/guides/icouldplay-ftp-source/index.md","description":"在云映中添加 FTP 文件源，分别检查登录、基础目录、子目录与实际视频读取，明确 FTP、FTPS 和 SFTP 的区别与限制。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"云映","keywords":[],"version_note":""}
,{"title":"云映文件夹扫描：把文件源整理成可浏览的媒体库","category":"教程","url":"https://allluckly.cn/guides/icouldplay-folder-scan/","markdown_url":"https://allluckly.cn/guides/icouldplay-folder-scan/index.md","description":"从一个明确的文件源目录开始，在云映中选择扫描范围、核对条目与分类，处理漏扫、重名和重新扫描的边界。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"云映","keywords":[],"version_note":""}
,{"title":"云映外挂字幕：导入 SRT 并判断是否对应当前片源","category":"教程","url":"https://allluckly.cn/guides/icouldplay-external-subtitles/","markdown_url":"https://allluckly.cn/guides/icouldplay-external-subtitles/index.md","description":"为自己的视频加载一份 SRT 字幕，核对语言、时间轴和片源版本，区分固定延迟、逐渐错位与画面里已有的字幕。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"云映","keywords":[],"version_note":""}
,{"title":"云映剧集整理：检查季度、集数与文件命名","category":"教程","url":"https://allluckly.cn/guides/icouldplay-episode-naming/","markdown_url":"https://allluckly.cn/guides/icouldplay-episode-naming/index.md","description":"用统一剧名和 S01E01 编号整理剧集样本，核对云映中的季度、集数、播放顺序，以及特别篇、合集和多版本文件的边界。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"云映","keywords":[],"version_note":""}
,{"title":"云映连接 Emby：登录服务器并选择自己的媒体库","category":"教程","url":"https://allluckly.cn/guides/icouldplay-emby-library/","markdown_url":"https://allluckly.cn/guides/icouldplay-emby-library/index.md","description":"从 Emby 提供的服务器地址与用户权限出发，在云映中登录、浏览媒体库、检查电影详情和播放结果，区分服务器账号与文件共享账号。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"云映","keywords":[],"version_note":""}
,{"title":"云映音轨选择：找到语言轨道并排查有画面没声音","category":"教程","url":"https://allluckly.cn/guides/icouldplay-audio-tracks/","markdown_url":"https://allluckly.cn/guides/icouldplay-audio-tracks/index.md","description":"区分视频内的音轨与字幕语言，在云映中检查可选声音、系统输出和片源信息，定位只有部分视频没有声音的问题。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"云映","keywords":[],"version_note":""}
,{"title":"用 Aquarell 画林间蘑菇：安排伞盖、菌褶与苔地","category":"教程","url":"https://allluckly.cn/guides/aquarell-woodland-mushrooms/","markdown_url":"https://allluckly.cn/guides/aquarell-woodland-mushrooms/index.md","description":"用一大一小两株蘑菇练习伞盖厚度、菌褶方向和林地层次，在 Aquarell 中完成简洁自然主题插画。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 冷暖静物练习：让橙子和蓝布互相衬托","category":"教程","url":"https://allluckly.cn/guides/aquarell-warm-cool-still-life/","markdown_url":"https://allluckly.cn/guides/aquarell-warm-cool-still-life/index.md","description":"在 Aquarell 中用橙子与蓝布练习冷暖、明度、面积比例和反光，避免把补色静物画成同样鲜艳的色块。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"用 Aquarell 点描一只梨：用点的疏密安排体积","category":"教程","url":"https://allluckly.cn/guides/aquarell-stippling-pear/","markdown_url":"https://allluckly.cn/guides/aquarell-stippling-pear/index.md","description":"在 Aquarell 中以单个短笔触组织梨的轮廓、灰面和投影，练习点的大小、密度与负空间。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 果荚观察练习：用剖面表达种子的排列","category":"教程","url":"https://allluckly.cn/guides/aquarell-seedpod-cutaway/","markdown_url":"https://allluckly.cn/guides/aquarell-seedpod-cutaway/index.md","description":"在 Aquarell 中绘制一枚打开的果荚，用外壳、内壁、种子与连接处四种形状练习观察性插画。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"用 Aquarell 画雨夜倒影：把竖向色带画进湿路面","category":"教程","url":"https://allluckly.cn/guides/aquarell-rainy-reflections/","markdown_url":"https://allluckly.cn/guides/aquarell-rainy-reflections/index.md","description":"从三处灯光出发，在 Aquarell 中组织雨夜路面的纵向倒影、横向断口和远近透视，避免画成整面镜子。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 海浪练习：用深浅层次安排浪头与泡沫","category":"教程","url":"https://allluckly.cn/guides/aquarell-ocean-foam/","markdown_url":"https://allluckly.cn/guides/aquarell-ocean-foam/index.md","description":"用深海面、浅浪腹和少量泡沫在 Aquarell 中组织一条海浪，练习运动方向、破碎边缘与白色面积控制。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 负形绘画：从背景里留出冬日树枝","category":"教程","url":"https://allluckly.cn/guides/aquarell-negative-space-branches/","markdown_url":"https://allluckly.cn/guides/aquarell-negative-space-branches/index.md","description":"通过绘制枝条之间的天空，在 Aquarell 中练习负空间、分叉节奏、边缘修整与留白。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"用 Aquarell 画一只飞蛾：手动组织左右呼应的纹样","category":"教程","url":"https://allluckly.cn/guides/aquarell-moth-pattern/","markdown_url":"https://allluckly.cn/guides/aquarell-moth-pattern/index.md","description":"在 Aquarell 中手动绘制飞蛾轮廓与翅面纹样，用中心轴、对应点和疏密控制左右呼应，不依赖镜像绘画。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 单色头像练习：先看五官位置，再画明暗","category":"教程","url":"https://allluckly.cn/guides/aquarell-monochrome-portrait/","markdown_url":"https://allluckly.cn/guides/aquarell-monochrome-portrait/index.md","description":"用单色头像在 Aquarell 中练习头部大形、五官相对位置、三档明度与边缘，减少过早刻画眼睛的问题。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"用 Aquarell 画一扇夜窗：让小面积暖光成为重点","category":"教程","url":"https://allluckly.cn/guides/aquarell-lit-window/","markdown_url":"https://allluckly.cn/guides/aquarell-lit-window/index.md","description":"以夜晚窗户为主题，在 Aquarell 中练习大面积暗色、小面积暖光、窗框遮挡与墙面反光。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 手部速写：用掌块与指节拆解姿势","category":"教程","url":"https://allluckly.cn/guides/aquarell-hand-construction/","markdown_url":"https://allluckly.cn/guides/aquarell-hand-construction/index.md","description":"在 Aquarell 中把手拆成掌块、拇指块和弯曲指节，练习长度、遮挡与负空间，再用少量明暗完成速写。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"用 Aquarell 画玻璃瓶：靠背景、边缘与高光表现透明","category":"教程","url":"https://allluckly.cn/guides/aquarell-glass-bottle/","markdown_url":"https://allluckly.cn/guides/aquarell-glass-bottle/index.md","description":"在 Aquarell 中用背景透视、深浅边缘和少量高光画一只玻璃瓶，区分瓶口、瓶身、液面与桌面投影。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"用 Aquarell 画四格小故事：让同一个角色连贯行动","category":"教程","url":"https://allluckly.cn/guides/aquarell-four-panel-story/","markdown_url":"https://allluckly.cn/guides/aquarell-four-panel-story/index.md","description":"在 Aquarell 中手动安排四格画面，用稳定角色、动作变化、视线方向与留白讲清一个无对白小故事。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 布褶练习：沿受力方向组织阴影","category":"教程","url":"https://allluckly.cn/guides/aquarell-fabric-folds/","markdown_url":"https://allluckly.cn/guides/aquarell-fabric-folds/index.md","description":"在 Aquarell 中画一块从挂点垂下的布，先判断受力、褶皱方向与折面，再安排阴影、亮带和下摆。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 边缘练习：用软硬变化画三块石头","category":"教程","url":"https://allluckly.cn/guides/aquarell-edge-study-stones/","markdown_url":"https://allluckly.cn/guides/aquarell-edge-study-stones/index.md","description":"用三块石头练习清楚、柔和与消失的边缘，在 Aquarell 中安排遮挡、接触阴影和表面转折。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 排线明暗练习：不用涂满也能画出球体","category":"教程","url":"https://allluckly.cn/guides/aquarell-crosshatching-sphere/","markdown_url":"https://allluckly.cn/guides/aquarell-crosshatching-sphere/index.md","description":"用单色线条的方向、间距和交叉次数在 Aquarell 中画球体，练习亮部留白、明暗交界与接触阴影。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 云朵练习：把一团白云拆成亮面和灰面","category":"教程","url":"https://allluckly.cn/guides/aquarell-cloud-shapes/","markdown_url":"https://allluckly.cn/guides/aquarell-cloud-shapes/index.md","description":"用大块轮廓与少量灰面在 Aquarell 中画积云，练习云顶、云底、软硬边和天空留白。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 屋顶速写：用两组斜线建立街角空间","category":"教程","url":"https://allluckly.cn/guides/aquarell-city-rooftops/","markdown_url":"https://allluckly.cn/guides/aquarell-city-rooftops/index.md","description":"在 Aquarell 中画三栋简化街角房屋，用地平线、两组收拢方向和屋顶厚度建立空间，再添加少量窗户。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 猫咪剪影练习：用少量毛边保留姿态","category":"教程","url":"https://allluckly.cn/guides/aquarell-cat-silhouette/","markdown_url":"https://allluckly.cn/guides/aquarell-cat-silhouette/index.md","description":"先用头胸臀尾四个大形建立猫咪坐姿，再在 Aquarell 中控制耳朵、负空间和局部毛边，不逐根描毛。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"用 Aquarell 画早餐吐司：区分面包、黄油与果酱","category":"教程","url":"https://allluckly.cn/guides/aquarell-breakfast-toast/","markdown_url":"https://allluckly.cn/guides/aquarell-breakfast-toast/index.md","description":"在一片吐司上练习三种材质，用颜色、边缘、孔隙和高光区分面包、黄油及果酱。","date":"2026-10-23T00:00:00+08:00","shortdate":"October 23, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"VectorPaint 透明 PNG 导出：去掉白底并保留干净边缘","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-transparent-png/","markdown_url":"https://allluckly.cn/guides/vectorpaint-transparent-png/index.md","description":"用一个单色图标排查透明背景、实色底板和最终像素，分别在深浅背景上检查导出结果。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 路径文字：沿弧线制作一枚文字徽章","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-text-on-path/","markdown_url":"https://allluckly.cn/guides/vectorpaint-text-on-path/index.md","description":"用短标题和简单弧线练习文字沿路径排列，处理方向、曲率和字数，保留文字原稿以便后续修改。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 文字排版：做一张信息清楚的活动小卡","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-text-layout/","markdown_url":"https://allluckly.cn/guides/vectorpaint-text-layout/index.md","description":"通过标题、说明和日期三个文字层级，练习内容、字体、字号、对齐与留白，避免小卡只有装饰没有信息。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 导入 SVG：先检查结构，再修改路径与颜色","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-svg-import-edit/","markdown_url":"https://allluckly.cn/guides/vectorpaint-svg-import-edit/index.md","description":"用一个简单 SVG 做导入检查，区分路径、文字、位图与蒙版，避免把扩展名误当成完整可编辑性的保证。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 原稿保存与备份：让下一次修改找得到文件","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-save-backup/","markdown_url":"https://allluckly.cn/guides/vectorpaint-save-backup/index.md","description":"用清楚的文件命名、原稿副本和恢复检查建立创作记录，区分撤销、版本、最近删除与独立备份。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 钢笔教程：用少量锚点画一片叶子","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-pen-curves/","markdown_url":"https://allluckly.cn/guides/vectorpaint-pen-curves/index.md","description":"从直线三角形过渡到闭合叶片，用钢笔理解锚点、控制柄和曲线方向，减少节点堆积与轮廓折痕。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 实作：设计一枚缩小后仍清楚的单色山形图标","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-monochrome-icon/","markdown_url":"https://allluckly.cn/guides/vectorpaint-monochrome-icon/index.md","description":"从剪影、负空间和线宽出发，完成一枚山形图标练习，并以 32、64、128 像素的使用场景检查辨识度。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 蒙版练习：把图案限制在圆形窗口里","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-masks/","markdown_url":"https://allluckly.cn/guides/vectorpaint-masks/index.md","description":"用三个色块和一个圆形制作剪切效果，理解蒙版、层叠与位图边界，不把裁剪误认为矢量化。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 图层与分组：让复杂作品容易选择和修改","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-layers-groups/","markdown_url":"https://allluckly.cn/guides/vectorpaint-layers-groups/index.md","description":"用背景、主体、文字三层组织一张小卡，理解图层、分组、遮挡、锁定和隐藏的用途。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 图片矢量化：把清楚的线稿变成可编辑路径","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-image-vectorization/","markdown_url":"https://allluckly.cn/guides/vectorpaint-image-vectorization/index.md","description":"从黑白叶片剪影练习图片矢量化，比较阈值、颜色数量与预览结果，理解照片量化和路径复杂度的取舍。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 网格与辅助线：建立图标和海报的构图参照","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-grid-guides/","markdown_url":"https://allluckly.cn/guides/vectorpaint-grid-guides/index.md","description":"通过网格、吸附和辅助线控制边距与位置，同时保留必要的光学修正，避免把辅助线画进成品。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 渐变教程：为一个圆形建立清楚的明暗方向","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-gradients/","markdown_url":"https://allluckly.cn/guides/vectorpaint-gradients/index.md","description":"从两色线性渐变开始，再比较径向渐变，理解色标、方向、透明度与缩小后的可读性。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 入门：用形状制作图标并导出 SVG","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-getting-started/","markdown_url":"https://allluckly.cn/guides/vectorpaint-getting-started/index.md","description":"从圆形与矩形组成的小图标开始，学习 VectorPaint 的画布、填充与描边、图层组织，以及 SVG / PNG 导出选择。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 实作：用几何色块与文字做一张创作活动海报","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-geometric-poster/","markdown_url":"https://allluckly.cn/guides/vectorpaint-geometric-poster/index.md","description":"用标题区、主图区和信息区组织竖版海报，把形状、渐变、对齐和文字知识串成一次完整练习。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 填充与描边：做出清楚的色块和统一线条","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-fill-stroke/","markdown_url":"https://allluckly.cn/guides/vectorpaint-fill-stroke/index.md","description":"通过三个圆形比较填充、无填充、描边宽度与透明度，理解看不见、线太粗和多选修改失误的原因。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 导出格式怎么选：SVG、PDF、PNG 与原稿的分工","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-export-formats/","markdown_url":"https://allluckly.cn/guides/vectorpaint-export-formats/index.md","description":"按继续编辑、网页展示和文档交付三个目标选择格式，说明位图、文字与透明背景在交付中的边界。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 画布尺寸怎么选：分清 px、pt、mm 与导出像素","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-canvas-units/","markdown_url":"https://allluckly.cn/guides/vectorpaint-canvas-units/index.md","description":"用方形图标和印刷小卡两个例子，区分画布比例、文档单位、屏幕缩放和 PNG 最终像素，避免创建后反复返工。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 贝塞尔节点编辑：修平曲线而不堆积锚点","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-bezier-nodes/","markdown_url":"https://allluckly.cn/guides/vectorpaint-bezier-nodes/index.md","description":"用叶片轮廓练习锚点移动、控制柄方向和尖角检查，把整体变形与局部曲线修正分开处理。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 几何形状练习：用矩形与圆形搭出一间小屋","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-basic-shapes/","markdown_url":"https://allluckly.cn/guides/vectorpaint-basic-shapes/index.md","description":"用一张小屋插画练习矩形、椭圆、选择、尺寸、层叠与比例，先建立形状结构，再进入复杂路径编辑。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"VectorPaint 对齐与分布：排好一组三个按钮图标","category":"教程","url":"https://allluckly.cn/guides/vectorpaint-align-distribute/","markdown_url":"https://allluckly.cn/guides/vectorpaint-align-distribute/index.md","description":"用三个不同宽度的图形理解边缘对齐、居中和等距分布，区分中心距离与边缘空隙。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"VectorPaint","keywords":[],"version_note":""}
,{"title":"漫阅+ WebDAV 数据同步：建专用目录，选择首次上传或下载","category":"教程","url":"https://allluckly.cn/guides/manyue-webdav-sync/","markdown_url":"https://allluckly.cn/guides/manyue-webdav-sync/index.md","description":"用自己的 WebDAV 目录同步阅读历史与收藏，明确初始方向，检查最近成功时间，并与漫画文件书库分开管理。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 连接 WebDAV 漫画书库：从地址核对到下载检查","category":"教程","url":"https://allluckly.cn/guides/manyue-webdav-library/","markdown_url":"https://allluckly.cn/guides/manyue-webdav-library/index.md","description":"用私人 WebDAV 服务访问自己的漫画，区分文件库与数据同步，检查目录权限、书库范围与离线副本。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 存储清理：分清缓存、本地副本、下载任务与书架关系","category":"教程","url":"https://allluckly.cn/guides/manyue-storage-cleanup/","markdown_url":"https://allluckly.cn/guides/manyue-storage-cleanup/index.md","description":"先确认要保留的离线内容和原件，再按对象清理缓存、任务记录或漫画副本，避免用删除文件代替整理书架。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 连接 SMB：在局域网中浏览 NAS 漫画并保存离线副本","category":"教程","url":"https://allluckly.cn/guides/manyue-smb-library/","markdown_url":"https://allluckly.cn/guides/manyue-smb-library/index.md","description":"核对 SMB 主机、共享名和账号权限，选择书库目录并验证访问；明确离开局域网后的可用范围。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 服务器连接排查：把网络、登录、目录和页面分开检查","category":"教程","url":"https://allluckly.cn/guides/manyue-server-connection-troubleshooting/","markdown_url":"https://allluckly.cn/guides/manyue-server-connection-troubleshooting/index.md","description":"用一个已知样本定位 WebDAV、SMB、Komga、Kavita 或 OPDS 的失败阶段，整理可复查的错误信息。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 阅读布局：设置方向、单页双页与跨页检查","category":"教程","url":"https://allluckly.cn/guides/manyue-reading-layout/","markdown_url":"https://allluckly.cn/guides/manyue-reading-layout/index.md","description":"按漫画的页序和设备方向调整阅读模式，区分原稿跨页、双页组合与缩放，建立每本书的阅读基线。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 书签与笔记：保存一页、写下提醒，再准确回到原处","category":"教程","url":"https://allluckly.cn/guides/manyue-page-bookmarks/","markdown_url":"https://allluckly.cn/guides/manyue-page-bookmarks/index.md","description":"为阅读参考页建立书签和简短笔记，区分书签、历史与收藏，并检查章节变化后的定位边界。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 连接 OPDS：为什么能看到目录，却不能直接逐页阅读","category":"教程","url":"https://allluckly.cn/guides/manyue-opds-pse-library/","markdown_url":"https://allluckly.cn/guides/manyue-opds-pse-library/index.md","description":"分清 OPDS 目录、整包获取链接和 OPDS-PSE 页面流，正确填写目录地址，并选择可验证的阅读或本地导入路径。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 离线阅读准备：出发前确认整本漫画真的在设备上","category":"教程","url":"https://allluckly.cn/guides/manyue-offline-preflight/","markdown_url":"https://allluckly.cn/guides/manyue-offline-preflight/index.md","description":"用首中末页、跨章节、重开与断网检查区分本地副本和远程封面，安排可验证的出行阅读清单。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 连接 Komga：从账号权限到系列、章节和离线检查","category":"教程","url":"https://allluckly.cn/guides/manyue-komga-library/","markdown_url":"https://allluckly.cn/guides/manyue-komga-library/index.md","description":"使用 Komga 服务地址与个人账号建立连接，理解系列和书籍的展示关系，分别验证目录、逐页阅读与下载。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 连接 Kavita：使用账号登录并检查书库与阅读权限","category":"教程","url":"https://allluckly.cn/guides/manyue-kavita-library/","markdown_url":"https://allluckly.cn/guides/manyue-kavita-library/index.md","description":"按 Kavita 服务类型填写地址和账号，核对共享书库、章节与下载权限，不把其他客户端的连接方式直接套用。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 导入失败怎么办：从文件可用性、格式和目录层级逐项排查","category":"教程","url":"https://allluckly.cn/guides/manyue-import-troubleshooting/","markdown_url":"https://allluckly.cn/guides/manyue-import-troubleshooting/index.md","description":"区分文件未下载、格式不符、目录混合、空间不足和部分导入失败，建立可以重复验证的小样流程。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 图片文件夹导入：把散页整理成一本书或多个章节","category":"教程","url":"https://allluckly.cn/guides/manyue-image-folder-import/","markdown_url":"https://allluckly.cn/guides/manyue-image-folder-import/index.md","description":"从单本图片目录、章节目录与多个漫画文件出发，选择正确目录层级，避免混合结构导致漏导或错分。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ iCloud 同步：把阅读进度和书架带到另一台设备","category":"教程","url":"https://allluckly.cn/guides/manyue-icloud-sync/","markdown_url":"https://allluckly.cn/guides/manyue-icloud-sync/index.md","description":"先确认来源设备的数据，再设置 iCloud 自动或手动同步，通过一条进度和一个分组检查两台设备是否一致。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 入门：导入本地漫画并离线阅读","category":"教程","url":"https://allluckly.cn/guides/manyue-getting-started/","markdown_url":"https://allluckly.cn/guides/manyue-getting-started/index.md","description":"用一个自己的 CBZ、CBR 或 PDF 文件开始，了解漫阅的本地漫画导入、书架选择、离线阅读与常见问题。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 文件格式指南：选择 CBZ、CBR、CB7 或 PDF，并检查页序","category":"教程","url":"https://allluckly.cn/guides/manyue-formats-and-page-order/","markdown_url":"https://allluckly.cn/guides/manyue-formats-and-page-order/index.md","description":"分清漫画压缩包、PDF 与图片目录，整理文件名和章节结构，导入后核对封面、页数与跨页。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 下载管理：安排队列、处理失败，并确认本地副本","category":"教程","url":"https://allluckly.cn/guides/manyue-download-queue/","markdown_url":"https://allluckly.cn/guides/manyue-download-queue/index.md","description":"区分排队、下载、完成与失败，逐项使用暂停恢复和重试，避免把清除任务记录当作删除或保留文件的保证。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 换设备指南：先恢复阅读状态，再补回漫画文件","category":"教程","url":"https://allluckly.cn/guides/manyue-device-migration/","markdown_url":"https://allluckly.cn/guides/manyue-device-migration/index.md","description":"把迁移拆成应用数据、本地漫画、服务器连接和离线检查四部分，逐项核对后再决定是否清理旧设备。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 书架整理：用分组安排待阅读、正在读和已完成","category":"教程","url":"https://allluckly.cn/guides/manyue-bookshelf-organization/","markdown_url":"https://allluckly.cn/guides/manyue-bookshelf-organization/index.md","description":"建立少量稳定书架分组，分清移动、复制、移出分组与删除漫画，并用样本验证整理结果。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"漫阅+ 手动备份与恢复：保留应用数据，单独保存漫画原件","category":"教程","url":"https://allluckly.cn/guides/manyue-backup-and-restore/","markdown_url":"https://allluckly.cn/guides/manyue-backup-and-restore/index.md","description":"从导出 App 数据到恢复后检查，明确备份包含的状态、可能敏感的信息，以及漫画文件需要另存的范围。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"漫阅+","keywords":[],"version_note":""}
,{"title":"Aquarell 透明 PNG 导出：从画布背景到白边排查","category":"教程","url":"https://allluckly.cn/guides/aquarell-transparent-png/","markdown_url":"https://allluckly.cn/guides/aquarell-transparent-png/index.md","description":"确认背景层与实际像素内容，导出透明 PNG，并在明暗背景上检查白块、边缘与分享后的文件格式。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 图层入门：分开草图、上色与细节","category":"教程","url":"https://allluckly.cn/guides/aquarell-three-layer-workflow/","markdown_url":"https://allluckly.cn/guides/aquarell-three-layer-workflow/index.md","description":"建立三层绘画流程，理解图层顺序、当前图层与可见性，并用一张简单植物插画检查修改是否独立。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 局部上色：先用选区限制范围，再理解蒙版","category":"教程","url":"https://allluckly.cn/guides/aquarell-selection-local-color/","markdown_url":"https://allluckly.cn/guides/aquarell-selection-local-color/index.md","description":"在独立练习图中用选区限制局部笔触，检查选区是否仍然有效，并区分临时范围、图层蒙版与直接擦除。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 导出 PSD 前的检查：像素图层、文字与交付说明","category":"教程","url":"https://allluckly.cn/guides/aquarell-psd-handoff/","markdown_url":"https://allluckly.cn/guides/aquarell-psd-handoff/index.md","description":"整理需要交付的图层，比较 PSD 与预览图，并向接收方说明像素图层、可编辑文字和原生作品的区别。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"用 Aquarell 画一片叶子：从轮廓到柔和叶脉","category":"教程","url":"https://allluckly.cn/guides/aquarell-paint-leaf/","markdown_url":"https://allluckly.cn/guides/aquarell-paint-leaf/index.md","description":"用三层结构画一片简单叶子，练习形状、色块、单侧阴影和有主次的叶脉，再导出自己的练习。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"用 Aquarell 画三层山景：远山、中景与近处剪影","category":"教程","url":"https://allluckly.cn/guides/aquarell-paint-landscape/","markdown_url":"https://allluckly.cn/guides/aquarell-paint-landscape/index.md","description":"用天空、远山和近景的明暗关系练习空间感，安排独立图层，最后检查风景配图在小屏幕上的可读性。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"用 Aquarell 画五瓣花：形状节奏、冷暖与花心层次","category":"教程","url":"https://allluckly.cn/guides/aquarell-paint-flower/","markdown_url":"https://allluckly.cn/guides/aquarell-paint-flower/index.md","description":"从五个花瓣的布局开始，练习主色、根部阴影、花心和留白，避免用过多细线代替整体形状。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"用 Aquarell 画一只杯子：椭圆、体积与投影","category":"教程","url":"https://allluckly.cn/guides/aquarell-paint-cup/","markdown_url":"https://allluckly.cn/guides/aquarell-paint-cup/index.md","description":"用杯口、杯身和杯柄建立形状，再通过单侧阴影、亮边与桌面投影练习简单物体的体积表达。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 原生作品保存：给草稿、完成稿与分享图分开留档","category":"教程","url":"https://allluckly.cn/guides/aquarell-native-artwork-backup/","markdown_url":"https://allluckly.cn/guides/aquarell-native-artwork-backup/index.md","description":"用清楚文件名和三个检查步骤保留可继续编辑的 Aquarell 作品，避免把成品 PNG 或 PSD 当成唯一原稿。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 配色入门：用五种颜色建立一张插画的色板","category":"教程","url":"https://allluckly.cn/guides/aquarell-limited-palette/","markdown_url":"https://allluckly.cn/guides/aquarell-limited-palette/index.md","description":"先给颜色分配背景、主体、阴影与强调色职责，再在 Aquarell 中选择和保存色板，减少绘画中的随意换色。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 图层不透明度：减淡草图、调整叠色与保留修改余地","category":"教程","url":"https://allluckly.cn/guides/aquarell-layer-opacity/","markdown_url":"https://allluckly.cn/guides/aquarell-layer-opacity/index.md","description":"通过草图、阴影和高光三个例子，理解图层不透明度的作用范围，并区分画笔透明度与整层合成。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 博客配图导出：选择 JPEG、比较质量与文件体积","category":"教程","url":"https://allluckly.cn/guides/aquarell-jpeg-for-blog/","markdown_url":"https://allluckly.cn/guides/aquarell-jpeg-for-blog/index.md","description":"围绕真实展示宽度选择输出尺寸，比较 JPEG 与 PNG 的边缘和纹理表现，减少反复压缩造成的损失。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 手绘文字卡片：安排标题、插画与留白","category":"教程","url":"https://allluckly.cn/guides/aquarell-illustrated-card/","markdown_url":"https://allluckly.cn/guides/aquarell-illustrated-card/index.md","description":"从竖版问候卡开始，规划文字区域、手绘插画与边距，使用文字和字体入口完成一张可读的小卡片。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"用 Aquarell 画一组小图标：统一尺寸、线宽与配色","category":"教程","url":"https://allluckly.cn/guides/aquarell-icon-series/","markdown_url":"https://allluckly.cn/guides/aquarell-icon-series/index.md","description":"以叶子、杯子和小花为一组，建立共享的画布、视觉尺寸和颜色规则，让三张独立手绘图看起来属于同一系列。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 入门：创建画布、分层绘画与导出 PNG","category":"教程","url":"https://allluckly.cn/guides/aquarell-getting-started/","markdown_url":"https://allluckly.cn/guides/aquarell-getting-started/index.md","description":"从一张简单手绘练习开始，了解 Aquarell 的画布设置、图层分工、笔刷调整和 PNG / 原生作品导出。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 导出图片模糊怎么查：像素、缩放、笔刷与压缩","category":"教程","url":"https://allluckly.cn/guides/aquarell-export-blur-check/","markdown_url":"https://allluckly.cn/guides/aquarell-export-blur-check/index.md","description":"按原画、导出文件和发布页面三个阶段定位模糊，区分原始像素不足、柔和笔触、JPEG 压缩和网页放大。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 画布尺寸怎么选：为博客配图规划像素与 DPI","category":"教程","url":"https://allluckly.cn/guides/aquarell-canvas-size-dpi/","markdown_url":"https://allluckly.cn/guides/aquarell-canvas-size-dpi/index.md","description":"用横幅、方形插画和小幅打印三个例子，区分画布像素、显示宽度与 DPI，避免画完后才发现尺寸不合适。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 画布取色：让补画、阴影与细节保持同一组颜色","category":"教程","url":"https://allluckly.cn/guides/aquarell-canvas-color-picking/","markdown_url":"https://allluckly.cn/guides/aquarell-canvas-color-picking/index.md","description":"用已有色块作为依据取色，避免凭感觉反复找颜色，并检查透明叠色与边缘采样造成的偏差。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 笔刷间距练习：连续线、点状纹理与装饰边框","category":"教程","url":"https://allluckly.cn/guides/aquarell-brush-spacing/","markdown_url":"https://allluckly.cn/guides/aquarell-brush-spacing/index.md","description":"固定笔刷大小，用低、中、高间距比较笔触连接方式，再把结果用于点状装饰和手绘边框。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"Aquarell 笔刷基础：用大小与不透明度建立笔触练习表","category":"教程","url":"https://allluckly.cn/guides/aquarell-brush-size-opacity/","markdown_url":"https://allluckly.cn/guides/aquarell-brush-size-opacity/index.md","description":"用一张九格练习表比较笔刷大小与不透明度，学会区分单笔覆盖、重复叠色和图层透明度。","date":"2026-10-22T00:00:00+08:00","shortdate":"October 22, 2026","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":[],"version_note":""}
,{"title":"FFmpeg-iOS获取摄像头麦克风","category":"FFmpeg","url":"https://allluckly.cn/ffmpeg/ffmpeg4","markdown_url":"https://allluckly.cn/ffmpeg/ffmpeg4/index.md","description":"先使用 FFmpeg 的设备输入能力列出摄像头和麦克风，再给出 iOS 原生摄像头采集的实现示例，对照展示媒体设备枚举与系统采集会话的基本配置过程。","date":"2017-07-20T00:00:00+08:00","shortdate":"July 20, 2017","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["FFmpeg","AVFoundation","摄像头","麦克风","音视频采集"],"version_note":"原文发表于 2017 年，设备输入与采集代码采用当时的 FFmpeg 和 AVFoundation 接口。"}
,{"title":"FFmpeg-iOS推流器的简单封装","category":"FFmpeg","url":"https://allluckly.cn/ffmpeg/ffmpeg3","markdown_url":"https://allluckly.cn/ffmpeg/ffmpeg3/index.md","description":"在前两篇 FFmpeg 基础上搭建本地 nginx 推流测试环境，给出服务器配置与客户端推流封装，再使用 VLC 打开流地址检查结果，串起编码数据发送与播放验证。","date":"2017-07-12T00:00:00+08:00","shortdate":"July 12, 2017","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["FFmpeg","nginx","RTMP","推流","VLC"],"version_note":"原文发表于 2017 年，代码和本地服务器配置对应当时的 FFmpeg 与 nginx 环境。"}
,{"title":"FFmpeg-iOS的H.264解码","category":"FFmpeg","url":"https://allluckly.cn/ffmpeg/ffmpeg2","markdown_url":"https://allluckly.cn/ffmpeg/ffmpeg2/index.md","description":"从导入 FFmpeg-iOS 与配置头文件搜索路径开始，梳理打开媒体、查找视频流、初始化解码器、读取数据包和释放资源的 H.264 解码流程，并提供封装示例。","date":"2017-07-11T00:00:00+08:00","shortdate":"July 11, 2017","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["FFmpeg","H.264","avcodec","视频解码","Header Search Paths"],"version_note":"原文发表于 2017 年，包含 av_register_all、avcodec_decode_video 等旧版 FFmpeg 接口。"}
,{"title":"Mac编译ffmpeg获取FFmpeg-iOS","category":"FFmpeg","url":"https://allluckly.cn/ffmpeg/ffmpeg1","markdown_url":"https://allluckly.cn/ffmpeg/ffmpeg1/index.md","description":"记录在 Mac 上准备 gas-preprocessor 与 yasm，再运行 FFmpeg-iOS 构建脚本的流程，说明脚本位置、依赖安装和最终生成目录，为后续解码示例准备库文件。","date":"2017-07-11T00:00:00+08:00","shortdate":"July 11, 2017","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["FFmpeg","gas-preprocessor","yasm","iOS编译"],"version_note":"原文发表于 2017 年，构建输出包含 El Capitan 的 Homebrew 安装记录，脚本与权限设置保留为历史示例。"}
,{"title":"iOS开发之DNS劫持","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao75","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao75/index.md","description":"从域名解析异常引出 DNS 劫持问题，介绍通过 NSURLProtocol 调整请求和解析流程，并讨论 IPv6、WebKit 与 NSURLSession 的适配边界，保留相关实现与参考资料。","date":"2017-05-03T00:00:00+08:00","shortdate":"May 03, 2017","lang":"zh-CN","author":"SindriLin","app_name":"Aquarell","keywords":["DNS","NSURLProtocol","IPv6","WebKit","NSURLSession"],"version_note":"原文发表于 2017 年，网络拦截与解析适配方式需结合当时框架限制理解。"}
,{"title":"iOS开发之自动化测试的那些干货","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao74","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao74/index.md","description":"比较单元测试和 UI 自动化的用途，介绍 XCTest、Quick、Nimble、KIF 与 Appium，讨论等待、Stub/Mock、命令行运行和可测试代码结构，帮助组织可维护的测试。","date":"2017-04-05T00:00:00+08:00","shortdate":"April 05, 2017","lang":"zh-CN","author":"黄文臣","app_name":"Aquarell","keywords":["XCTest","Quick","Nimble","KIF","Appium","Mock"],"version_note":"原文明确基于 Xcode 8.2.1，框架能力与示例按照当时环境说明。"}
,{"title":"iOS开发优化篇之卡顿检测","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao73","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao73/index.md","description":"通过监控主线程 RunLoop 状态和等待超时检测卡顿，并介绍获取线程栈帧、遍历调用栈与符号化的过程，说明如何在应用运行期间留下可排查的上下文。","date":"2017-03-27T00:00:00+08:00","shortdate":"March 27, 2017","lang":"zh-CN","author":"SindriLin","app_name":"Aquarell","keywords":["RunLoop","卡顿检测","调用栈","符号化","主线程"],"version_note":"原文发表于 2017 年，堆栈读取与符号化代码基于当时的系统和处理器结构。"}
,{"title":"iOS即时通讯进阶之CocoaAsyncSocket源码解析(Connect终)","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao72","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao72/index.md","description":"继续追踪 CocoaAsyncSocket 的连接过程，从本机地址绑定走向连接建立与后续回调，结合底层 Socket 操作解释异步连接的执行顺序及相关配置的作用。","date":"2017-03-09T00:00:00+08:00","shortdate":"March 09, 2017","lang":"zh-CN","author":"涂耀辉","app_name":"Aquarell","keywords":["CocoaAsyncSocket","GCDAsyncSocket","bind","异步连接","TCP"],"version_note":"原文发表于 2017 年，承接前篇源码版本；两篇在原文中列出的来源链接相同。"}
,{"title":"iOS即时通讯进阶 - CocoaAsyncSocket源码解析(Connect篇)","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao71","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao71/index.md","description":"沿 GCDAsyncSocket 初始化与连接入口阅读 CocoaAsyncSocket 源码，依次梳理参数检查、本机与服务端地址创建、Socket 配置等连接前准备工作，配合注释说明调用关系。","date":"2017-02-17T00:00:00+08:00","shortdate":"February 17, 2017","lang":"zh-CN","author":"涂耀辉","app_name":"Aquarell","keywords":["CocoaAsyncSocket","GCDAsyncSocket","Socket","TCP","连接流程"],"version_note":"原文发表于 2017 年，源码解析对应文中所使用的 CocoaAsyncSocket 实现。"}
,{"title":"iOS 两行代码实现自定义转场动画","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao70","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao70/index.md","description":"介绍 WTKTransitionAnimate 的调用方式，通过导航代理和工厂方法选择转场，再结合拖动手势与百分比进度控制实现交互式返回动画，说明封装内部的组织思路。","date":"2016-11-14T00:00:00+08:00","shortdate":"November 14, 2016","lang":"zh-CN","author":"逆流丶而上","app_name":"Aquarell","keywords":["WTKTransitionAnimate","导航转场","交互式动画","Runtime"],"version_note":"原文发表于 2016 年，基于 iOS 7 之后的自定义转场接口。"}
,{"title":"iOS开发之位运算","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao69","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao69/index.md","description":"从按位与、或、异或和取反讲起，以 RGBA 颜色打包及状态标志为例展示位运算用途，再说明如何用枚举与掩码保存和查询多个状态。","date":"2016-11-07T00:00:00+08:00","shortdate":"November 07, 2016","lang":"zh-CN","author":"Sindri","app_name":"Aquarell","keywords":["位运算","位掩码","RGBA","枚举","状态标志"],"version_note":""}
,{"title":"iOS开发之均衡代码职责浅谈","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao68","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao68/index.md","description":"围绕 MVC 中控制器过于庞大的问题，用项目示例讨论视图、模型和控制器的职责分配，提取重复逻辑并调整功能归属，强调在更换架构名称之前先理清代码责任。","date":"2016-10-27T00:00:00+08:00","shortdate":"October 27, 2016","lang":"zh-CN","author":"Sindri","app_name":"Aquarell","keywords":["MVC","职责划分","重构","控制器","代码复用"],"version_note":""}
,{"title":"微信小程序开发教程-从零开始（3）","category":"微信小程序","url":"https://allluckly.cn/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/weixinxiaochengxu02","markdown_url":"https://allluckly.cn/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/weixinxiaochengxu02/index.md","description":"为小程序文章列表接入网络请求，读取返回数据并通过 setData 更新页面，再调整 WXML 的字段绑定；同时记录图片地址和 H5 详情展示在当时遇到的限制。","date":"2016-10-19T00:00:00+08:00","shortdate":"October 19, 2016","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["微信小程序","wx.request","setData","数据绑定","网络请求"],"version_note":"原文为 2016 年内测期间的实现记录，图片和 H5 展示问题仅代表当时的尝试。"}
,{"title":"微信小程序开发教程-从零开始（2）","category":"微信小程序","url":"https://allluckly.cn/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/weixinxiaochengxu01","markdown_url":"https://allluckly.cn/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/weixinxiaochengxu01/index.md","description":"在文章列表基础上新增详情页，使用 navigator 配置跳转与参数，再调整 WXSS 中的留白、图片位置和文字布局，逐步把列表样式整理为预期的页面效果。","date":"2016-10-18T00:00:00+08:00","shortdate":"October 18, 2016","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["微信小程序","navigator","WXSS","页面跳转","列表布局"],"version_note":"原文为 2016 年微信小程序内测期间的系列教程。"}
,{"title":"微信小程序开发教程-从零开始（1）","category":"微信小程序","url":"https://allluckly.cn/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/weixinxiaochengxu","markdown_url":"https://allluckly.cn/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/weixinxiaochengxu/index.md","description":"以 iOS 开发者的视角搭建 IT Blog 小程序，说明 app.json、app.js、WXML 和 WXSS 的分工，配置 TabBar 并使用模板和列表渲染展示文章数据。","date":"2016-10-17T00:00:00+08:00","shortdate":"October 17, 2016","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["微信小程序","WXML","WXSS","TabBar","列表渲染"],"version_note":"原文发表于 2016 年 10 月，明确处于微信小程序内测期间。"}
,{"title":"Swift3.0学习系列之Swift实战-单例模式","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao67","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao67/index.md","description":"介绍 Swift 单例的用途与代价，通过类内静态常量和全局常量两种形式创建共享实例，说明私有构造器、跨模块访问，以及共享可变状态仍需考虑线程安全。","date":"2016-10-13T00:00:00+08:00","shortdate":"October 13, 2016","lang":"zh-CN","author":"Sindri","app_name":"Aquarell","keywords":["Swift 3.0","单例模式","static let","线程安全"],"version_note":"原文明确讨论 Swift 3.0 之后的单例写法与 dispatch_once 接口变化。"}
,{"title":"Swift3.0学习系列之Swift实战-享元模式","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao66","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao66/index.md","description":"以共享本地数据管理对象为例介绍享元模式，使用字典复用已加载的数据并记录使用次数，在无人使用时保存和释放，讨论它与始终保留单例对象的差别。","date":"2016-10-13T00:00:00+08:00","shortdate":"October 13, 2016","lang":"zh-CN","author":"Sindri","app_name":"Aquarell","keywords":["Swift 3.0","享元模式","对象复用","数据管理","引用计数"],"version_note":"标题明确面向 Swift 3.0 的设计模式学习。"}
,{"title":"iOS开发之iOS10推送必看(高阶2)","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao65","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao65/index.md","description":"介绍 Notification Service Extension 在通知展示前处理内容的流程，说明创建扩展目标、修改文字和加载附件的方式，以及处理超时后回退原始通知的行为。","date":"2016-10-12T00:00:00+08:00","shortdate":"October 12, 2016","lang":"zh-CN","author":"徐不同","app_name":"Aquarell","keywords":["UNNotificationServiceExtension","通知附件","远程通知","内容扩展"],"version_note":"原文面向 iOS 10 引入的 Notification Service Extension。"}
,{"title":"iOS开发之UITextField的那点事","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao64","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao64/index.md","description":"针对文本输入长度、数字和金额限制、中文联想及键盘遮挡等问题，利用分类与运行时组织可扩展的输入规则，再通过键盘通知调整界面位置。","date":"2016-10-09T00:00:00+08:00","shortdate":"October 09, 2016","lang":"zh-CN","author":"Sindri","app_name":"Aquarell","keywords":["UITextField","输入限制","中文输入","键盘通知","Runtime"],"version_note":"原文发表于 2016 年，键盘适配示例使用当时的 keyWindow 与窗口移动方式。"}
,{"title":"iOS开发之iOS10推送必看(高阶1)","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao63","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao63/index.md","description":"通过创建本地通知说明 UNNotificationRequest、触发器和通知中心的关系，利用 identifier 管理添加、更新和删除，并介绍附件所需的有效文件路径与配置。","date":"2016-09-28T00:00:00+08:00","shortdate":"September 28, 2016","lang":"zh-CN","author":"徐不同","app_name":"Aquarell","keywords":["UNNotificationRequest","UNUserNotificationCenter","本地通知","通知附件"],"version_note":"原文面向 iOS 10 的 UserNotifications 接口。"}
,{"title":"iOS开发之iOS10推送必看(基础篇)","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao62","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao62/index.md","description":"从现有工程开启推送能力与检查环境配置入手，介绍 iOS 10 通知注册、中心代理和回调处理，再结合第三方推送解释旧代码迁移时需要关注的接口变化。","date":"2016-09-27T00:00:00+08:00","shortdate":"September 27, 2016","lang":"zh-CN","author":"徐不同","app_name":"Aquarell","keywords":["iOS 10","UserNotifications","推送注册","通知代理","APNs"],"version_note":"原文针对 iOS 10 的首次适配，工程签名和推送环境结论按当时测试条件理解。"}
,{"title":"iOS开发之Xcode8兼容适配iOS 10资料整理笔记","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao61","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao61/index.md","description":"汇总 Xcode 8 与 iOS 10 迁移中的通知、ATS、隐私权限和界面变化，记录日志、字体、列表性能、插件及 xib 警告等问题，并附相应官方资料入口。","date":"2016-09-22T00:00:00+08:00","shortdate":"September 22, 2016","lang":"zh-CN","author":"判若两人丶","app_name":"Aquarell","keywords":["iOS 10","Xcode 8","ATS","隐私权限","迁移适配"],"version_note":"原文明确为 Xcode 8 与 iOS 10 的兼容适配笔记，保留当时的问题和处理方式。"}
,{"title":"Xcode8开发iOS10推送通知过程","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao60","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao60/index.md","description":"记录在 Xcode 8 为现有应用接入 iOS 10 通知扩展的过程，集中讨论推送能力、签名、Swift 版本和架构设置，以及 Service、Content 扩展的调试与提交问题。","date":"2016-09-21T00:00:00+08:00","shortdate":"September 21, 2016","lang":"zh-CN","author":"zhao0","app_name":"Aquarell","keywords":["iOS 10","Xcode 8","通知扩展","代码签名","TestFlight"],"version_note":"原文明确基于 Xcode 8、iOS 10，并讨论 Swift 2.3 与 Swift 3.0 的选择。"}
,{"title":"iOS开发之按钮动画","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao59","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao59/index.md","description":"承接 Core Animation 基础，用 CALayer、CABasicAnimation 与动画组实现按钮的渐变和形变，说明图层属性、时间设置以及多个动画配合时的组织方式。","date":"2016-09-20T00:00:00+08:00","shortdate":"September 20, 2016","lang":"zh-CN","author":"Sindri","app_name":"Aquarell","keywords":["Core Animation","CABasicAnimation","CAAnimationGroup","按钮动画"],"version_note":""}
,{"title":"iOS开发之百度外卖APP个人中心头像<浪>起来的动画效果","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao58","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao58/index.md","description":"拆解个人中心头像周围的波浪效果，利用 CADisplayLink 驱动刷新、三角函数生成曲线，再交给 CAShapeLayer 绘制，说明连续波形动画所需的组成部分。","date":"2016-09-09T00:00:00+08:00","shortdate":"September 09, 2016","lang":"zh-CN","author":"乔同X","app_name":"Aquarell","keywords":["CADisplayLink","CAShapeLayer","波浪动画","三角函数"],"version_note":""}
,{"title":"iOS开发之协议代理","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao57","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao57/index.md","description":"以 UITableView 和自定义控件为例区分协议与委托，比较 delegate 和 block 回调的使用场景，再讨论数据源与协议抽象如何帮助对象之间减少耦合。","date":"2016-09-01T00:00:00+08:00","shortdate":"September 01, 2016","lang":"zh-CN","author":"Sindri","app_name":"Aquarell","keywords":["protocol","delegate","block","数据源","抽象解耦"],"version_note":""}
,{"title":"菜鸟进化史之RunTime实战字典转模型","category":"runtime","url":"https://allluckly.cn/runtime/runtime","markdown_url":"https://allluckly.cn/runtime/runtime/index.md","description":"从逐项赋值、KVC 和第三方模型库的使用经历出发，编写 NSObject 分类遍历运行时信息，把字典映射为模型，并说明示例对两层嵌套数据的处理范围。","date":"2016-08-16T00:00:00+08:00","shortdate":"August 16, 2016","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["Objective-C Runtime","字典转模型","KVC","NSObject分类"],"version_note":""}
,{"title":"iOS开发之去model化开发","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao56","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao56/index.md","description":"面对字段不同但展示相近的多种票券数据，使用字典承载数据并通过协议暴露统一展示属性，让 Cell 与控制器减少对具体模型类型的依赖，讨论数据转换职责的放置。","date":"2016-07-28T00:00:00+08:00","shortdate":"July 28, 2016","lang":"zh-CN","author":"Sindri","app_name":"Aquarell","keywords":["协议","去model化","MVC","字典","界面解耦"],"version_note":""}
,{"title":"React Native在Mac上部署iOS开发环境","category":"React Native","url":"https://allluckly.cn/react%20native/React-Native01","markdown_url":"https://allluckly.cn/react%20native/React-Native01/index.md","description":"记录 Mac 上的 React Native 环境搭建，安装 Homebrew、Node.js、watchman 与 flow 后创建项目，再打开 iOS 工程并在模拟器中刷新代码。","date":"2016-07-27T00:00:00+08:00","shortdate":"July 27, 2016","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["React Native","Node.js","watchman","flow","iOS"],"version_note":"原文发表于 2016 年，项目使用 index.ios.js 与当时的 React Native 初始化方式。"}
,{"title":"iOS开发深入研究Runloop与线程保活","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao55","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao55/index.md","description":"结合 AFNetworking 2.x 的网络线程分析 RunLoop 保活方式，说明照搬循环运行代码可能造成的对象持有与线程退出问题，再用示例验证更可控的生命周期处理。","date":"2016-07-26T00:00:00+08:00","shortdate":"July 26, 2016","lang":"zh-CN","author":"bestswifter","app_name":"Aquarell","keywords":["RunLoop","NSThread","AFNetworking","线程保活","内存泄漏"],"version_note":"原文明确分析 AFNetworking 2.x 的 NSURLConnection 网络线程实现。"}
,{"title":"iOS游戏开发没有你想的那么难--Hardest","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao54","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao54/index.md","description":"介绍用 Objective-C 与 UIKit 实现 Hardest 小游戏的整体结构，覆盖关卡选择、游戏状态、分数结算、音效和存档，并说明专用游戏引擎与此示例的适用差别。","date":"2016-07-12T00:00:00+08:00","shortdate":"July 12, 2016","lang":"zh-CN","author":"维尼的小熊","app_name":"Aquarell","keywords":["UIKit","小游戏","关卡管理","音效","数据存档"],"version_note":"原文注明 Xcode 7.1 开发、编译环境高于 Xcode 7.0，项目用于 UIKit 游戏练习。"}
,{"title":"iOS开发之javaScript交互(JS调用原生的方法)","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao53","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao53/index.md","description":"比较早期 UIWebView 拦截链接的交互方式与 JavaScriptCore，围绕 JSContext 说明原生执行 JavaScript、注册方法和互相传递数据的基本过程。","date":"2016-07-05T00:00:00+08:00","shortdate":"July 05, 2016","lang":"zh-CN","author":"Sindri","app_name":"Aquarell","keywords":["JavaScriptCore","JSContext","UIWebView","原生交互","混合开发"],"version_note":"原文以 iOS 7 引入 JavaScriptCore 的背景组织内容，并使用当时的 WebView 交互方式。"}
,{"title":"iOS开发之复杂动画之抽丝剥茧(Objective-C & Swift)","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao52","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao52/index.md","description":"将一个欢迎页复杂动画拆成圆形缩放、椭圆挤压、边缘凸起、旋转和波浪填充等阶段，逐步安排图层与路径变化，展示如何把视觉效果转换为可实现的动画步骤。","date":"2016-07-04T00:00:00+08:00","shortdate":"July 04, 2016","lang":"zh-CN","author":"HenryCheng","app_name":"Aquarell","keywords":["CAShapeLayer","路径动画","关键帧动画","欢迎页","Swift"],"version_note":"原文发表于 2016 年，正文以 Swift 讲解，示例另提供 Objective-C 实现。"}
,{"title":"iOS开发Swift实战之模板模式","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao51","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao51/index.md","description":"以商品数据和计算逻辑为例，分析代码对元组结构的依赖，再用类型与协议组织可复用的处理方式，讨论如何通过抽象减少参数形式和业务方法之间的耦合。","date":"2016-06-29T00:00:00+08:00","shortdate":"June 29, 2016","lang":"zh-CN","author":"Sindri","app_name":"Aquarell","keywords":["Swift","模板模式","协议","元组","代码复用"],"version_note":""}
,{"title":"iOS10新特性之SiriKit","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao50","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao50/index.md","description":"介绍 WWDC 2016 后的 SiriKit 接入，从创建 Intents Extension 到实现意图处理和事件界面，说明语音请求如何被解析并交给应用扩展提供相应内容。","date":"2016-06-19T00:00:00+08:00","shortdate":"June 19, 2016","lang":"zh-CN","author":"Sindri","app_name":"Aquarell","keywords":["SiriKit","Intents Extension","INExtension","语音交互"],"version_note":"原文明确面向 iOS 10 与 Xcode 8，保留当时 SiriKit 的服务类型和扩展配置。"}
,{"title":"iOS动画CoreAnimation浅谈","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao49","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao49/index.md","description":"围绕 CALayer、CAAnimation 与 CAAction 介绍 Core Animation，解释图层和动画对象的关系、时间控制与动作查找，再通过示例理解隐式和显式动画的组织方式。","date":"2016-06-19T00:00:00+08:00","shortdate":"June 19, 2016","lang":"zh-CN","author":"Sindri","app_name":"Aquarell","keywords":["Core Animation","CALayer","CAAnimation","CAAction","隐式动画"],"version_note":""}
,{"title":"分分钟解决iOS开发中App启动广告的功能","category":"LBLaunchImageAd","url":"https://allluckly.cn/lblaunchimagead/LBLaunchImageAd","markdown_url":"https://allluckly.cn/lblaunchimagead/LBLaunchImageAd/index.md","description":"封装启动广告视图，支持全屏或底部保留标志的两种布局，通过 SDWebImage 获取广告图片，再用透明度动画与 block 回调处理显示、点击和关闭等事件。","date":"2016-06-12T00:00:00+08:00","shortdate":"June 12, 2016","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["LBLaunchImageAd","开屏广告","SDWebImage","block","CABasicAnimation"],"version_note":""}
,{"title":"iOS开发之封装一个自动归、解档的类","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao48","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao48/index.md","description":"从 NSCoding 的归档与解档入手，利用运行时遍历对象成员变量并组织编码，逐步封装 WZXArchiver，讨论包含子对象时的处理方式及自动化存储的限制。","date":"2016-06-02T00:00:00+08:00","shortdate":"June 02, 2016","lang":"zh-CN","author":"WzxJiang","app_name":"Aquarell","keywords":["NSCoding","WZXArchiver","对象归档","Runtime","成员变量"],"version_note":"原文发表于 2016 年，采用当时的归档接口，并注明嵌套对象解档尚不完善。"}
,{"title":"iOS开发之从源代码看OC的消息机制runtime","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao47","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao47/index.md","description":"从 unrecognized selector 错误切入 Objective-C 消息机制，结合源码讨论方法查找、缓存与消息转发，再通过运行时相关示例理解方法调用如何在执行阶段完成。","date":"2016-05-20T00:00:00+08:00","shortdate":"May 20, 2016","lang":"zh-CN","author":"Sindri","app_name":"Aquarell","keywords":["Objective-C Runtime","消息发送","方法缓存","消息转发","unrecognized selector"],"version_note":"原文发表于 2016 年，源码结构与实现细节对应当时的 Objective-C Runtime。"}
,{"title":"iOS开发之集成ijkplayer视频直播","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao46","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao46/index.md","description":"按照下载源码、初始化依赖、编译 FFmpeg、打包 IJKMediaFramework 与工程集成的顺序，记录 iOS 接入 ijkplayer 的过程，重点解释各目录和构建步骤的作用。","date":"2016-05-13T00:00:00+08:00","shortdate":"May 13, 2016","lang":"zh-CN","author":"jianshu_wl","app_name":"Aquarell","keywords":["ijkplayer","FFmpeg","IJKMediaFramework","视频播放","框架编译"],"version_note":"原文发表于 2016 年，脚本和工程配置对应当时的 ijkplayer 源码。"}
,{"title":"iOS开发之动画篇-碎片动画","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao45","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao45/index.md","description":"通过 UIView 的 maskView 解释遮罩如何影响内容显示，再把遮罩拆分成多个区域并分别安排动画，逐步构建碎片化展示与图片轮播过渡效果。","date":"2016-05-12T00:00:00+08:00","shortdate":"May 12, 2016","lang":"zh-CN","author":"Sindri","app_name":"Aquarell","keywords":["maskView","碎片动画","UIView","遮罩","图片轮播"],"version_note":"原文以 iOS 8 开始提供的 UIView maskView 属性为实现基础。"}
,{"title":"iOS开发之Swift初体验PhotoKit","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao44","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao44/index.md","description":"以照片多选组件介绍 PhotoKit 的基本使用，说明最大选择数量、PHAsset 数组回传和闭包调用方式，并提供相册项目及学习资料，记录从 AssetsLibrary 迁移的尝试。","date":"2016-05-09T00:00:00+08:00","shortdate":"May 09, 2016","lang":"zh-CN","author":"大石头布","app_name":"Aquarell","keywords":["PhotoKit","PHAsset","照片多选","闭包","相册"],"version_note":"原文发表于 2016 年，介绍 iOS 8 引入的 PhotoKit 与当时的 Swift 示例。"}
,{"title":"runtime实战之一键改变字体","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao43","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao43/index.md","description":"从注册自定义字体和查找字体名称开始，利用 Objective-C 运行时方法处理界面字体替换，并讨论代码创建控件与 storyboard 控件在统一设置时的差别。","date":"2016-05-04T00:00:00+08:00","shortdate":"May 04, 2016","lang":"zh-CN","author":"HenryCheng","app_name":"Aquarell","keywords":["Objective-C Runtime","自定义字体","UIFont","方法交换","storyboard"],"version_note":""}
,{"title":"iOS开发之诱导用户为自己的App评论","category":"ASO","url":"https://allluckly.cn/aso/GoToAppStore","markdown_url":"https://allluckly.cn/aso/GoToAppStore/index.md","description":"介绍 LBToAppStore 评价提醒封装，使用应用版本、间隔天数与用户上次选择控制弹窗时机，再根据选择跳转到商店或推迟提醒，展示早期评价入口的实现思路。","date":"2016-05-03T00:00:00+08:00","shortdate":"May 03, 2016","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["LBToAppStore","App Store","UIAlertController","评价提醒"],"version_note":"原文发表于 2016 年，采用 UIAlertView、UIAlertController 和跳转商店的旧式提醒流程。"}
,{"title":"iOS开发之超链接富文本","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao42","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao42/index.md","description":"利用 Core Text 绘制属性字符串，在预留的文字位置插入图片并实现超链接交互，再比较 TextKit 的处理方式，串起聊天表情与富文本排版所需的基本流程。","date":"2016-04-29T00:00:00+08:00","shortdate":"April 29, 2016","lang":"zh-CN","author":"Sindri","app_name":"Aquarell","keywords":["Core Text","NSAttributedString","图文混排","超链接","TextKit"],"version_note":"原文发表于 2016 年，并以 iOS 6、iOS 7 引入的相关能力说明框架背景。"}
,{"title":"谈谈MVVM和链式网络请求架构","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao41","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao41/index.md","description":"从控制器业务代码膨胀出发，用登录判断展示 Model、ViewModel 与 ViewController 的职责拆分，再介绍 ReactiveCocoa 和链式网络请求封装如何组织业务调用。","date":"2016-04-26T00:00:00+08:00","shortdate":"April 26, 2016","lang":"zh-CN","author":"WzxJiang","app_name":"Aquarell","keywords":["MVVM","ReactiveCocoa","ViewModel","链式请求","WZXNetworking"],"version_note":""}
,{"title":"Swift之优化UITableViewCell高度计算","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao40","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao40/index.md","description":"围绕 UITableView 重复计算单元格高度的问题，结合 FDTemplateLayoutCell 的思路介绍模板测量与高度缓存，并用 Swift 封装接口来减少滚动过程中的重复工作。","date":"2016-04-25T00:00:00+08:00","shortdate":"April 25, 2016","lang":"zh-CN","author":"大石头布","app_name":"Aquarell","keywords":["UITableViewCell","行高缓存","FDTemplateLayoutCell","Swift","滚动性能"],"version_note":"原文发表于 2016 年，Swift 实现基于当时的列表布局与缓存接口。"}
,{"title":"iOS开发之Xcode测试苹果官方文档翻译（下）","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao39","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao39/index.md","description":"接续 Apple 测试文档译文，介绍代码覆盖率、命令行测试、Xcode Server 持续集成和 UI 测试录制，并讨论可测试代码的组织及从 OCUnit 迁移到 XCTest。","date":"2016-04-15T00:00:00+08:00","shortdate":"April 15, 2016","lang":"zh-CN","author":"许漠颜","app_name":"Aquarell","keywords":["代码覆盖率","Xcode Server","持续集成","UI测试","OCUnit"],"version_note":"译文发表于 2016 年，主要处于 Xcode 7、iOS 9 与 OS X 10.11 的测试工具语境。"}
,{"title":"iOS开发之Xcode测试苹果官方文档翻译（上）","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao38","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao38/index.md","description":"翻译早期 Apple 测试文档，介绍 XCTest 的工程配置、测试类与方法、生命周期以及性能和界面测试，结合测试导航器说明如何运行用例和查看结果。","date":"2016-04-15T00:00:00+08:00","shortdate":"April 15, 2016","lang":"zh-CN","author":"许漠颜","app_name":"Aquarell","keywords":["XCTest","XCTestCase","单元测试","性能测试","UI测试"],"version_note":"译文发表于 2016 年，文档涉及 Xcode 5、6、7 的测试能力与界面。"}
,{"title":"iOS开发之如何制作番茄钟App","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao37","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao37/index.md","description":"围绕番茄钟应用串起定时、通知提醒、音乐播放和 Today Widget，并整理卡片布局、转场、xib 与 URL Scheme 等实现入口，适合结合工程了解功能如何组合。","date":"2016-04-15T00:00:00+08:00","shortdate":"April 15, 2016","lang":"zh-CN","author":"威權在B612等着那阵温柔的风","app_name":"Aquarell","keywords":["番茄钟","NSTimer","Today Widget","本地通知","自定义布局"],"version_note":"原文发表于 2016 年，采用当时的 Today Widget、通知和 Swift 接口。"}
,{"title":"iOS开发之学习block深入浅出","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao36","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao36/index.md","description":"从 block 的声明和调用方式讲起，讨论捕获外部变量与回调封装，再通过模仿 Swift 高阶函数的例子展示 block 在 Objective-C 数据处理中的用法。","date":"2016-04-06T00:00:00+08:00","shortdate":"April 06, 2016","lang":"zh-CN","author":"Sindri","app_name":"Aquarell","keywords":["block","变量捕获","Objective-C","回调","高阶函数"],"version_note":""}
,{"title":"提交代码到CocoaPods看我就够了","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao35","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao35/index.md","description":"记录将开源库发布到 CocoaPods 的步骤，包括准备 GitHub 工程、注册 trunk、编写 podspec、核对版本与标签、执行校验和提交，并解释常用配置字段。","date":"2016-04-04T00:00:00+08:00","shortdate":"April 04, 2016","lang":"zh-CN","author":"WzxJiang","app_name":"Aquarell","keywords":["CocoaPods","podspec","trunk","Git标签","开源发布"],"version_note":"原文发表于 2016 年，命令与仓库提交过程按当时的 CocoaPods 服务整理。"}
,{"title":"iOS开发之AES+Base64数据混合加密与解密","category":"AES","url":"https://allluckly.cn/aes/AES","markdown_url":"https://allluckly.cn/aes/AES/index.md","description":"分别为 NSData 和 NSString 编写分类，展示 AES 加解密与 Base64 编码组合的调用流程，并强调客户端和后台需要约定一致的密钥，附完整演示项目。","date":"2016-03-30T00:00:00+08:00","shortdate":"March 30, 2016","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["AES","Base64","CommonCrypto","NSData","NSString"],"version_note":"原文发表于 2016 年，示例为当时的 CommonCrypto 分类实现；Base64 在流程中承担编码作用。"}
,{"title":"iOS开发动画篇之layout动画深入","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao34","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao34/index.md","description":"通过登录页的账号列表展开与按钮收缩，演示调整顶部、高度和左右边距约束后触发布局动画，进一步说明视图层级与约束变化如何配合形成连续过渡。","date":"2016-03-23T00:00:00+08:00","shortdate":"March 23, 2016","lang":"zh-CN","author":"Sindri","app_name":"Aquarell","keywords":["Auto Layout","layoutIfNeeded","登录动画","约束更新"],"version_note":""}
,{"title":"Swift之实现类似于格瓦拉启动页中的放大转场动画","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao33","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao33/index.md","description":"从普通导航 push 过渡到圆形放大转场，利用 CALayer 遮罩控制页面显露范围，再加入手势驱动动画；正文以 Swift 展开，并提供 Objective-C 示例参照。","date":"2016-03-17T00:00:00+08:00","shortdate":"March 17, 2016","lang":"zh-CN","author":"HenryCheng","app_name":"Aquarell","keywords":["自定义转场","CALayer mask","Swift","交互式动画","UINavigationController"],"version_note":"原文发表于 2016 年，使用当时的 Swift 与导航转场代理接口。"}
,{"title":"一步一步带你封装一个Swift本地缓存库","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao32","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao32/index.md","description":"先区分 Documents、Caches、Preferences 与临时目录，再封装按类型保存对象、图片和语音的本地文件缓存，结合离线浏览场景说明目录管理和缓存读写思路。","date":"2016-03-16T00:00:00+08:00","shortdate":"March 16, 2016","lang":"zh-CN","author":"大石头布","app_name":"Aquarell","keywords":["Swift","文件缓存","应用沙盒","Caches","NSUserDefaults"],"version_note":"原文发表于 2016 年，使用当时的 Swift、文件管理和归档接口。"}
,{"title":"iOS开发仿微信(WeChat)系列(七)","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao31","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao31/index.md","description":"拆解聊天输入栏与消息单元格，用 block 将发送和显隐事件交给控制器，再根据消息归属配置头像、拉伸气泡背景，并在模型中计算尺寸以适配不同长度的消息。","date":"2016-03-15T00:00:00+08:00","shortdate":"March 15, 2016","lang":"zh-CN","author":"WzxJiang","app_name":"Aquarell","keywords":["聊天界面","UITableViewCell","气泡布局","block","动态行高"],"version_note":""}
,{"title":"iOS开发仿微信(WeChat)系列(六)","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao30","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao30/index.md","description":"记录仿微信聊天功能接入后的三个问题：同步键盘动画参数、处理应用进出后台时的观察者，以及保存登录状态。文章展示当时的处理代码并注明自动登录示例的简化范围。","date":"2016-03-14T00:00:00+08:00","shortdate":"March 14, 2016","lang":"zh-CN","author":"WzxJiang","app_name":"Aquarell","keywords":["键盘通知","即时通信","应用生命周期","自动登录"],"version_note":"原文明确将自动登录称为不考虑 Keychain 的简化实现，保留为历史开发记录。"}
,{"title":"学习Swift你应该懂点Core Graphics (长篇高能)","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao29","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao29/index.md","description":"从获取绘图上下文和建立路径开始，以 Swift 演示矩形、圆、曲线、文字和图片绘制，再扩展线性与径向渐变、混合模式、坐标变换以及位图和 PDF 输出。","date":"2016-03-04T00:00:00+08:00","shortdate":"March 04, 2016","lang":"zh-CN","author":"大石头布","app_name":"Aquarell","keywords":["Core Graphics","Quartz 2D","贝塞尔曲线","渐变","PDF"],"version_note":"原文发表于 2016 年，采用当时的 Swift 与 Core Graphics 接口写法。"}
,{"title":"史上最全远程推送详解之极光推送","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao28","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao28/index.md","description":"按 App ID、推送能力与证书申请顺序准备远程通知，再接入极光推送 SDK，说明开发和生产配置、证书导出及客户端回调代码，记录早期推送接入流程。","date":"2016-03-03T00:00:00+08:00","shortdate":"March 03, 2016","lang":"zh-CN","author":"WzxJiang","app_name":"Aquarell","keywords":["APNs","极光推送","推送证书","App ID","远程通知"],"version_note":"原文发表于 2016 年，使用当时的开发者中心界面、证书流程与极光 SDK。"}
,{"title":"iOS开发之UIKit性能调优实战讲解","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao27","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao27/index.md","description":"以列表界面为实验对象，结合 Instruments 的 Core Animation 工具观察图层混合、图片尺寸、颜色格式和离屏渲染，解释常见滚动性能问题与针对性的调整思路。","date":"2016-03-02T00:00:00+08:00","shortdate":"March 02, 2016","lang":"zh-CN","author":"bestswifter","app_name":"Aquarell","keywords":["Instruments","Core Animation","离屏渲染","图层混合","滚动性能"],"version_note":"原文发表于 2016 年，调试界面、设备刷新率示例与渲染结论需按当时环境理解。"}
,{"title":"iOS开发之重构笔记-Extra Method","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao26","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao26/index.md","description":"结合《重构》的提炼函数方法，把冗长代码按意图拆成独立函数，逐步处理参数、局部变量和返回值，并用实际示例讨论如何降低重复逻辑和提升可读性。","date":"2016-03-01T00:00:00+08:00","shortdate":"March 01, 2016","lang":"zh-CN","author":"SindriLin","app_name":"Aquarell","keywords":["重构","Extract Method","函数提炼","局部变量","代码组织"],"version_note":""}
,{"title":"Bison眼中的iOS开发多线程是这样的（三）","category":"多线程","url":"https://allluckly.cn/%E5%A4%9A%E7%BA%BF%E7%A8%8B/duoxiancheng03","markdown_url":"https://allluckly.cn/%E5%A4%9A%E7%BA%BF%E7%A8%8B/duoxiancheng03/index.md","description":"围绕 GCD 的任务与队列展开，比较主队列、全局队列、自建串行和并发队列，并用图片下载、重复执行和一次性初始化示例说明常见任务提交方式。","date":"2016-02-29T00:00:00+08:00","shortdate":"February 29, 2016","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["GCD","dispatch_async","dispatch_sync","dispatch_apply","dispatch_once"],"version_note":"原文发表于 2016 年，使用 Objective-C GCD 接口；正文部分概念表述需结合代码核对。"}
,{"title":"iOS开发之Layout动画初体验","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao25","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao25/index.md","description":"从横竖屏下的文本布局说明约束的作用，再拆解随列表滚动变化的界面动画，通过调整约束值控制元素位置和尺寸，演示 Auto Layout 与动画结合的基本过程。","date":"2016-02-28T00:00:00+08:00","shortdate":"February 28, 2016","lang":"zh-CN","author":"SindriLin","app_name":"Aquarell","keywords":["Auto Layout","NSLayoutConstraint","约束动画","滚动交互"],"version_note":""}
,{"title":"SwiftGG交流分享Xcode开发使用技巧","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao24","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao24/index.md","description":"整理一次 SwiftGG 交流中的 Xcode 使用技巧，介绍异常、符号和测试失败断点，演示调试时查看或修改变量、使用 Quick Look，以及创建可复用代码片段。","date":"2016-02-26T00:00:00+08:00","shortdate":"February 26, 2016","lang":"zh-CN","author":"bestswifter","app_name":"Aquarell","keywords":["Xcode","断点","Quick Look","代码片段","SwiftGG"],"version_note":"原文为 2016 年交流记录，调试器与语言支持范围按当时版本描述。"}
,{"title":"Github源码推荐:(02.22):高仿小日子Swift2.0,高仿爱鲜蜂Swift2.0","category":"源码推荐","url":"https://allluckly.cn/%E6%BA%90%E7%A0%81%E6%8E%A8%E8%8D%90/yuanma03","markdown_url":"https://allluckly.cn/%E6%BA%90%E7%A0%81%E6%8E%A8%E8%8D%90/yuanma03/index.md","description":"选编 Swift 2.0 实现的小日子和爱鲜蜂两个仿制项目，提供 SmallDay、LoveFreshBeen 仓库及作者介绍入口，便于结合完整工程观察页面组织与界面实现。","date":"2016-02-22T00:00:00+08:00","shortdate":"February 22, 2016","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["Swift 2.0","SmallDay","LoveFreshBeen","开源项目"],"version_note":"原文标题注明 Swift 2.0，正文项目介绍提及 Xcode 7.0.1。"}
,{"title":"Xcode版本更新插件失灵批量解决法","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao23","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao23/index.md","description":"针对旧版 Xcode 更新后插件无法加载，以及误选 Skip Bundles 的情况，介绍检查兼容 UUID、修改插件 Info.plist 和重置加载选择的历史处理步骤。","date":"2016-02-19T00:00:00+08:00","shortdate":"February 19, 2016","lang":"zh-CN","author":"许漠颜","app_name":"Aquarell","keywords":["Xcode插件","DVTPlugInCompatibilityUUIDs","Info.plist","defaults"],"version_note":"正文比较 Xcode 7.1、7.2 与 7.2.1，针对当时的插件加载机制。"}
,{"title":"Apple Pay强势来袭，开发者应做的事情","category":"iOS支付","url":"https://allluckly.cn/ios%E6%94%AF%E4%BB%98/Applepay","markdown_url":"https://allluckly.cn/ios%E6%94%AF%E4%BB%98/Applepay/index.md","description":"记录 Apple Pay 的早期工程配置，包括开启能力、创建 Merchant ID 和设置支付请求属性，并列出国家与货币代码等疑问；演示效果来自原文注明的模拟器。","date":"2016-02-18T00:00:00+08:00","shortdate":"February 18, 2016","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["Apple Pay","Merchant ID","支付请求","Capabilities"],"version_note":"原文提及 iOS 8.1，并讨论当时中国地区、iOS 9.2 和 iPhone 6 的使用背景。"}
,{"title":"iOS开发Swift自定义下拉刷新如此简单","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao22","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao22/index.md","description":"使用 xib 创建文字视图覆盖 UIRefreshControl 的默认样式，分阶段旋转、变色和缩放文字，再模拟数据加载与插入，串起自定义下拉刷新从开始到结束的流程。","date":"2016-02-17T00:00:00+08:00","shortdate":"February 17, 2016","lang":"zh-CN","author":"威權在B612等着那阵温柔的风","app_name":"Aquarell","keywords":["Swift","UIRefreshControl","xib","下拉刷新","UITableView"],"version_note":"原文发表于 2016 年，使用当时的 Swift 与 NSTimer 示例语法。"}
,{"title":"详解Swift中的七个陷阱以及避免方法","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao21","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao21/index.md","description":"通过具体代码讨论 Swift 协议扩展、可选链赋值和函数式处理中的易错行为，比较值类型与引用类型的分派差异，并总结如何避免编译通过却不符合预期的结果。","date":"2016-02-16T00:00:00+08:00","shortdate":"February 16, 2016","lang":"zh-CN","author":"bestswifter","app_name":"Aquarell","keywords":["Swift","协议扩展","可选链","值类型","函数式编程"],"version_note":"原文发表于 2016 年，语言行为与示例需结合当时的 Swift 版本理解。"}
,{"title":"iOS开发自定义转场动画实战讲解","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao20","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao20/index.md","description":"从转场中 from、to 与 presenting 的角色区别出发，逐步实现自定义模态和导航转场，再扩展交互式动画与转场协调器，解释复用动画逻辑的组织方式。","date":"2016-02-15T00:00:00+08:00","shortdate":"February 15, 2016","lang":"zh-CN","author":"bestswifter","app_name":"Aquarell","keywords":["UIViewController转场","交互式动画","UINavigationController","转场协调器"],"version_note":"原文发表于 2016 年，以当时的 Swift 纯代码实现，并提供 Objective-C 示例参照。"}
,{"title":"iOS开发动画篇之Transform和KeyFrame动画","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao19","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao19/index.md","description":"通过季节文字变化和落叶动画说明仿射变换与关键帧动画，逐步组合缩放、平移和旋转，讨论形变参数及动画阶段安排对最终运动轨迹的影响。","date":"2016-02-15T00:00:00+08:00","shortdate":"February 15, 2016","lang":"zh-CN","author":"SindriLin","app_name":"Aquarell","keywords":["CGAffineTransform","关键帧动画","UIView","旋转","缩放"],"version_note":""}
,{"title":"iOS开发仿微信(WeChat)系列(五)","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao18","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao18/index.md","description":"继续仿微信的个人资料与朋友圈界面，使用 AVUser 简化注册登录、AVFile 上传头像，并通过压缩图片减少传输量，同时记录下拉头图与刷新组件的实现问题。","date":"2016-02-14T00:00:00+08:00","shortdate":"February 14, 2016","lang":"zh-CN","author":"WzxJiang","app_name":"Aquarell","keywords":["AVUser","AVFile","头像上传","图片压缩","仿微信"],"version_note":"原文使用 2016 年的 LeanCloud 相关接口与组件。"}
,{"title":"Swift2.0之CoreText排版神器(续)","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao17","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao17/index.md","description":"在 Core Text 基础排版之上，分析基线、上升部和下降部等字体度量，逐行绘制统一中文与 emoji 的行高，再扩展链接与提及识别等富文本交互。","date":"2016-02-05T00:00:00+08:00","shortdate":"February 05, 2016","lang":"zh-CN","author":"大石头布","app_name":"Aquarell","keywords":["Core Text","CTLineDraw","字体度量","emoji","链接识别"],"version_note":"标题明确面向 Swift 2.0，保留当时的 Core Text 示例语法。"}
,{"title":"iOS开发仿微信(WeChat)系列(四)","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao16","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao16/index.md","description":"仿微信项目开始接入云端存储与即时通信依赖，封装登录和注册方法，并记录查询用户数据时的排错过程。正文包含早期密码字段试验，适合作为历史开发记录。","date":"2016-02-03T00:00:00+08:00","shortdate":"February 03, 2016","lang":"zh-CN","author":"WzxJiang","app_name":"Aquarell","keywords":["仿微信","云端存储","用户登录","用户注册"],"version_note":"原文采用当时的 LeanCloud 相关接口，并记录自行增加 passWord 字段的试验；不作为账号安全方案。"}
,{"title":"菜鸟程序员2015年年终总结","category":"年终总结","url":"https://allluckly.cn/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/zongjie2015","markdown_url":"https://allluckly.cn/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/zongjie2015/index.md","description":"回顾作者在 2015 年的求职、项目开发与自学经历，记录建立技术博客、学习 Swift、发布开源界面组件和结识同行的过程，呈现早期开发成长的个人背景。","date":"2016-02-01T00:00:00+08:00","shortdate":"February 01, 2016","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["开发者成长","技术博客","Swift","开源项目","年度总结"],"version_note":""}
,{"title":"iOS开发仿微信(WeChat)系列(三)","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao15","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao15/index.md","description":"继续完成仿微信主界面，记录从 xib 暴露约束并按屏幕调整 constant、微调导航栏按钮位置，以及使用 SDWebImage 占位图加载图片的具体做法。","date":"2016-02-01T00:00:00+08:00","shortdate":"February 01, 2016","lang":"zh-CN","author":"WzxJiang","app_name":"Aquarell","keywords":["Auto Layout","xib","UIBarButtonItem","SDWebImage"],"version_note":""}
,{"title":"Swift2.0之CoreText排版神器(长篇高能)","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao14","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao14/index.md","description":"从富文本属性设置进入 Core Text，介绍字体、颜色与文本范围，再结合底层排版和绘制步骤实现图文混排，帮助理解复杂文本界面所需的基本对象。","date":"2016-01-31T00:00:00+08:00","shortdate":"January 31, 2016","lang":"zh-CN","author":"大石头布","app_name":"Aquarell","keywords":["Swift 2.0","Core Text","NSAttributedString","图文混排"],"version_note":"标题明确面向 Swift 2.0，正文使用当时的富文本常量和 Core Text 写法。"}
,{"title":"iOS开发仿微信(WeChat)系列(二)","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao13","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao13/index.md","description":"搭建仿微信的通讯录、发现和个人页面，复用分组 UITableView 与自定义个人信息 Cell，并用排序和分组数据组织联系人列表，展示多个页面的初始界面结构。","date":"2016-01-30T00:00:00+08:00","shortdate":"January 30, 2016","lang":"zh-CN","author":"WzxJiang","app_name":"Aquarell","keywords":["UITableView","通讯录","分组列表","联系人排序"],"version_note":""}
,{"title":"iOS开发仿微信(WeChat)系列(-)","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao12","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao12/index.md","description":"仿微信系列的开篇先整理工程与 MVC 文件夹，建立公共控制器，再创建各功能页和 UITabBarController，重点说明后续页面共享的导航骨架如何搭建。","date":"2016-01-29T00:00:00+08:00","shortdate":"January 29, 2016","lang":"zh-CN","author":"WzxJiang","app_name":"Aquarell","keywords":["仿微信","MVC","UITabBarController","工程结构"],"version_note":""}
,{"title":"Cell特效之图片随着TableView的滑动上下移动","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao11","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao11/index.md","description":"根据单元格中心与父视图中心的偏移调整图片位置，使图片随 UITableView 滚动形成视差，并记录自定义 Cell 与可见项更新方式，附改编代码和原项目链接。","date":"2016-01-28T00:00:00+08:00","shortdate":"January 28, 2016","lang":"zh-CN","author":"WzxJiang","app_name":"Aquarell","keywords":["UITableView","视差效果","单元格复用","图片位移"],"version_note":""}
,{"title":"也许你根本不需要Alamofire,何不尝试下NSURLSession?","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao10","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao10/index.md","description":"从最简单的数据请求开始介绍 NSURLSession，区分数据、下载和上传任务，并比较默认、临时与后台配置，说明缓存、Cookie 和网络任务组织之间的关系。","date":"2016-01-25T00:00:00+08:00","shortdate":"January 25, 2016","lang":"zh-CN","author":"大石头布","app_name":"Aquarell","keywords":["NSURLSession","NSURLSessionConfiguration","下载任务","上传任务","缓存"],"version_note":"原文发表于 2016 年，保留当时的 Swift 与 NSURLSession 命名。"}
,{"title":"iOS开发动画篇之从UIView动画说起","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao09","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao09/index.md","description":"以输入框进入和按钮出现的登录动画为例，介绍 UIView 可动画属性、时间与选项参数，再加入弹簧动画，帮助理解位置、透明度与形变如何组合成连续效果。","date":"2016-01-22T00:00:00+08:00","shortdate":"January 22, 2016","lang":"zh-CN","author":"SindriLin","app_name":"Aquarell","keywords":["UIView动画","可动画属性","弹簧动画","alpha","登录界面"],"version_note":""}
,{"title":"iOS开发之视觉差动画效果详解","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao08","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao08/index.md","description":"把视差效果拆成多层视图的位置关系，通过拖动中间层、补偿文字层偏移和裁剪越界内容，让文字相对底层保持不动，解释遮挡与位移如何共同形成视觉差。","date":"2016-01-22T00:00:00+08:00","shortdate":"January 22, 2016","lang":"zh-CN","author":"WzxJiang","app_name":"Aquarell","keywords":["视差动画","clipsToBounds","视图层级","拖动手势"],"version_note":""}
,{"title":"iOS开发之详解连连支付集成","category":"iOS支付","url":"https://allluckly.cn/ios%E6%94%AF%E4%BB%98/lianlianzhifu","markdown_url":"https://allluckly.cn/ios%E6%94%AF%E4%BB%98/lianlianzhifu/index.md","description":"整理连连支付 SDK 接入时的链接参数、资源样式和业务字段，说明用户编号、绑卡协议与服务端回调的含义，并记录签名、界面定制等容易混淆的配置点。","date":"2016-01-20T00:00:00+08:00","shortdate":"January 20, 2016","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["连连支付","支付SDK","服务端签名","notify_url","资源定制"],"version_note":"原文发表于 2016 年，按当时的连连支付 SDK 文档和资源结构整理。"}
,{"title":"iOS开发之CollectionViewFlowLayout实现LOL皮肤选择动画","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao07","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao07/index.md","description":"通过自定义 UICollectionViewFlowLayout 实现英雄皮肤卡片选择效果，说明如何调整布局属性和滚动停止位置，再将布局子类接入列表以完成居中切换动画。","date":"2016-01-19T00:00:00+08:00","shortdate":"January 19, 2016","lang":"zh-CN","author":"WzxJiang","app_name":"Aquarell","keywords":["UICollectionViewFlowLayout","卡片布局","滚动定位","布局属性"],"version_note":""}
,{"title":"Bison眼中的iOS开发多线程是这样的（二）","category":"多线程","url":"https://allluckly.cn/%E5%A4%9A%E7%BA%BF%E7%A8%8B/duoxiancheng02","markdown_url":"https://allluckly.cn/%E5%A4%9A%E7%BA%BF%E7%A8%8B/duoxiancheng02/index.md","description":"围绕共享数据被多个线程访问的情形，介绍 synchronized 同步代码块和 NSLock 的加解锁方式，再用 NSCondition 的等待、唤醒与广播解释线程之间的协调。","date":"2016-01-18T00:00:00+08:00","shortdate":"January 18, 2016","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["线程安全","synchronized","NSLock","NSCondition"],"version_note":""}
,{"title":"iOS开发仿简书、淘宝等等App的View弹出效果","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao06","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao06/index.md","description":"将仿简书和淘宝的弹出效果拆成内容、遮罩与弹出层，结合两阶段图层形变和收起动画实现背景后退的视觉感受，并说明视图添加到 window 的层级关系。","date":"2016-01-17T00:00:00+08:00","shortdate":"January 17, 2016","lang":"zh-CN","author":"WzxJiang","app_name":"Aquarell","keywords":["弹出视图","CATransform3D","遮罩","UIWindow"],"version_note":""}
,{"title":"iOS开发黑魔法KVO的奥秘","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao05","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao05/index.md","description":"以监听列表滚动偏移为入口介绍 KVO，分析观察者注册后动态子类与 isa 指针的变化，并借助运行时函数尝试实现相似机制，串起使用方式和底层原理。","date":"2016-01-16T00:00:00+08:00","shortdate":"January 16, 2016","lang":"zh-CN","author":"SindriLin","app_name":"Aquarell","keywords":["KVO","isa","动态子类","Objective-C Runtime","属性观察"],"version_note":""}
,{"title":"iOS开发仿美国国家地理App的一个炫酷的动画","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao04","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tougao04/index.md","description":"拆解仿国家地理应用的弹出页面动画，逐项处理状态栏隐藏、视图拖动与回弹、导航栏衔接和返回按钮变色，展示多层界面联动效果的实现过程。","date":"2016-01-14T00:00:00+08:00","shortdate":"January 14, 2016","lang":"zh-CN","author":"WzxJiang","app_name":"Aquarell","keywords":["UIView动画","拖动手势","导航栏","状态栏"],"version_note":""}
,{"title":"iOS实现自定义炫酷的弹出视图（popView）","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao03","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao03/index.md","description":"介绍 HWPopTool 自定义弹出视图的接入，通过配置内容视图、背景遮罩和关闭按钮控制展示效果，并说明关闭回调由代理改为 block 后的使用方式。","date":"2016-01-13T00:00:00+08:00","shortdate":"January 13, 2016","lang":"zh-CN","author":"HenryCheng","app_name":"Aquarell","keywords":["HWPopTool","弹出视图","遮罩","block回调"],"version_note":""}
,{"title":"iOS开发之事件传递响应链","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao02","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao02/index.md","description":"从 UIResponder、UIEvent 与 UITouch 说明触摸事件如何交给视图处理，结合多个自定义视图观察响应链和手势的关系，并讨论事件传递机制在界面中的应用。","date":"2016-01-13T00:00:00+08:00","shortdate":"January 13, 2016","lang":"zh-CN","author":"SindriLin","app_name":"Aquarell","keywords":["UIResponder","响应链","UITouch","UIEvent","手势识别"],"version_note":""}
,{"title":"Bison眼中的iOS开发多线程是这样的（一）","category":"多线程","url":"https://allluckly.cn/%E5%A4%9A%E7%BA%BF%E7%A8%8B/duoxiancheng01","markdown_url":"https://allluckly.cn/%E5%A4%9A%E7%BA%BF%E7%A8%8B/duoxiancheng01/index.md","description":"从进程与线程的区别引入 iOS 多线程，比较 NSThread、NSOperationQueue 与 GCD，再具体演示线程创建、执行、终止和优先级，结合日志观察调度现象。","date":"2016-01-13T00:00:00+08:00","shortdate":"January 13, 2016","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["NSThread","多线程","线程调度","线程优先级"],"version_note":""}
,{"title":"黑魔法runtime基础之属性与变量","category":"投稿","url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao01","markdown_url":"https://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao01/index.md","description":"区分 Objective-C 属性与成员变量，结合运行时结构、地址偏移和 synthesize 分析属性的生成方式，再通过示例说明动态检查与操作对象结构的用途。","date":"2016-01-10T00:00:00+08:00","shortdate":"January 10, 2016","lang":"zh-CN","author":"SindriLin","app_name":"Aquarell","keywords":["Objective-C Runtime","property","ivar","synthesize","内存布局"],"version_note":""}
,{"title":"详解持久化Core Data框架的原理以及使用","category":"持久化","url":"https://allluckly.cn/%E6%8C%81%E4%B9%85%E5%8C%96/chijiuhua01","markdown_url":"https://allluckly.cn/%E6%8C%81%E4%B9%85%E5%8C%96/chijiuhua01/index.md","description":"从托管对象、上下文和持久化协调器的关系讲起，手动搭建 Core Data 环境与实体模型，再通过新增、查询、修改和删除示例说明数据保存的主要流程。","date":"2016-01-10T00:00:00+08:00","shortdate":"January 10, 2016","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["Core Data","NSManagedObjectContext","实体模型","数据持久化"],"version_note":""}
,{"title":"Github源码推荐:(01.04):iOS开发蓝牙,启动动画,自定义Tabbar","category":"源码推荐","url":"https://allluckly.cn/%E6%BA%90%E7%A0%81%E6%8E%A8%E8%8D%90/yuanma02","markdown_url":"https://allluckly.cn/%E6%BA%90%E7%A0%81%E6%8E%A8%E8%8D%90/yuanma02/index.md","description":"选编 BabyBluetooth 蓝牙框架、CLClipImageView 启动动画和 CYLTabBarController 标签栏，提供项目入口及部分用法，并区分蓝牙中心与外设两种工作模式。","date":"2016-01-04T00:00:00+08:00","shortdate":"January 04, 2016","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["BabyBluetooth","CoreBluetooth","CLClipImageView","CYLTabBarController"],"version_note":""}
,{"title":"仿window阿里旺旺登陆界面,打印机吐纸动画效果","category":"sdk","url":"https://allluckly.cn/sdk/aliww","markdown_url":"https://allluckly.cn/sdk/aliww/index.md","description":"模仿 Windows 阿里旺旺的打印机吐纸登录动画，通过保持视图横向位置与宽度不变、逐步调整高度实现展开效果，并提供 LBPrinterPaper 示例工程。","date":"2016-01-04T00:00:00+08:00","shortdate":"January 04, 2016","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["UIView动画","frame","登录界面","LBPrinterPaper"],"version_note":""}
,{"title":"Biosn收集的Git常见的错误解决方式","category":"SDK","url":"https://allluckly.cn/sdk/git01","markdown_url":"https://allluckly.cn/sdk/git01/index.md","description":"汇总使用 Git 时遇到的索引锁和 push 默认行为警告，列出报错画面及当时采用的配置命令。适合按错误类型回顾排查过程，执行前需确认现场状态。","date":"2015-12-28T00:00:00+08:00","shortdate":"December 28, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["Git","index.lock","push.default","提交排错"],"version_note":"原文记录 Windows 7 环境下的 Git 问题与当时的默认推送设置。"}
,{"title":"Bison教你怎么让百度收录你的Github空间博客","category":"Mac","url":"https://allluckly.cn/mac/blog02","markdown_url":"https://allluckly.cn/mac/blog02/index.md","description":"记录将 GitHub Pages 博客同步到 GitCafe Pages 的历史做法，涵盖 SourceTree 克隆、分支提交、域名绑定与分地区解析，旨在改善当时的国内访问和收录情况。","date":"2015-12-27T00:00:00+08:00","shortdate":"December 27, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["GitHub Pages","GitCafe","SourceTree","域名解析"],"version_note":"原文发表于 2015 年，依赖当时的 GitCafe Pages 服务及搜索收录环境。"}
,{"title":"Bison教你1分钟集成百度移动SSP启动广告","category":"SDK","url":"https://allluckly.cn/sdk/baidu01","markdown_url":"https://allluckly.cn/sdk/baidu01/index.md","description":"记录百度移动 SSP 开屏广告的历史接入过程，从平台注册和 SDK 导入，到系统依赖、编译参数与启动代理回调，展示在应用启动阶段加载广告的主要步骤。","date":"2015-12-26T00:00:00+08:00","shortdate":"December 26, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["百度SSP","开屏广告","BaiduMobAdSplash","SDK集成"],"version_note":"原文发表于 2015 年，包含 iOS 9 适配配置与当时的百度 SSP SDK。"}
,{"title":"Github源码推荐:(12.25):手势解锁,个人SDK集成,无限循环图片轮播","category":"源码推荐","url":"https://allluckly.cn/%E6%BA%90%E7%A0%81%E6%8E%A8%E8%8D%90/yuanma01","markdown_url":"https://allluckly.cn/%E6%BA%90%E7%A0%81%E6%8E%A8%E8%8D%90/yuanma01/index.md","description":"选编手势解锁、个人中心与无限图片轮播三个开源项目，列出下载入口和部分集成代码，便于按界面需求了解对应组件及其使用方式。","date":"2015-12-07T00:00:00+08:00","shortdate":"December 07, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["PCGestureUnlock","LBPersonalPage","SDCycleScrollView","开源组件"],"version_note":"原文为 2015 年源码选编，项目接口与维护状态需要另行核对。"}
,{"title":"iOS开发之OCR光学识别储蓄卡以及信用卡","category":"OCR","url":"https://allluckly.cn/ocr/back","markdown_url":"https://allluckly.cn/ocr/back/index.md","description":"围绕扫描卡号的需求介绍 card.io SDK 的导入、链接参数、代理设置和识别回调，并给出 Objective-C 与 Swift 示例；正文说明此次选用的是信用卡识别方案。","date":"2015-12-07T00:00:00+08:00","shortdate":"December 07, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["card.io","OCR","信用卡识别","SDK集成"],"version_note":"原文注明 Xcode 7.1，并明确所选方案用于扫描信用卡。"}
,{"title":"技术博客不仅仅只是一个网站，还可以这样玩........","category":"Mac","url":"https://allluckly.cn/mac/blog01","markdown_url":"https://allluckly.cn/mac/blog01/index.md","description":"记录把个人技术博客包装成 iOS 应用的尝试，通过 UIWebView 展示首页和分类页并处理加载回调，同时保留搜索和交互卡顿等当时尚未解决的问题。","date":"2015-11-28T00:00:00+08:00","shortdate":"November 28, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["个人博客","UIWebView","混合应用","页面加载"],"version_note":"原文发表于 2015 年，采用 UIWebView 封装网站。"}
,{"title":"Mac OS开发系列之NSImageView","category":"Mac","url":"https://allluckly.cn/mac/Mac-OS01","markdown_url":"https://allluckly.cn/mac/Mac-OS01/index.md","description":"以 macOS 图片视图为例，展示 NSImageView 的创建、图片赋值及添加到界面的过程，再通过启用图层、设置圆角与边框完成圆形头像样式。","date":"2015-11-23T00:00:00+08:00","shortdate":"November 23, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["macOS","NSImageView","NSImage","CALayer","圆角"],"version_note":""}
,{"title":"Swift2.0后Alamofire的使用方法","category":"Swift","url":"https://allluckly.cn/swift/Alamofire","markdown_url":"https://allluckly.cn/swift/Alamofire/index.md","description":"展示 Swift 2.0 环境下手动导入 Alamofire、配置项目依赖并发起网络请求的步骤，配合截图说明工程链接位置，适合回顾早期框架接入和调用方式。","date":"2015-11-09T00:00:00+08:00","shortdate":"November 09, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["Swift 2.0","Alamofire","网络请求","框架集成"],"version_note":"原文面向 Swift 2.0 与当时的 Alamofire 接口。"}
,{"title":"Bison教你1分钟集成3D无限翻转的Banner","category":"广告轮播","url":"https://allluckly.cn/%E5%B9%BF%E5%91%8A%E8%BD%AE%E6%92%AD/Private","markdown_url":"https://allluckly.cn/%E5%B9%BF%E5%91%8A%E8%BD%AE%E6%92%AD/Private/index.md","description":"通过左右滑动手势切换广告图片，并结合转场动画实现三维翻转轮播，介绍组件导入与点击代理。原文同时指出该效果使用私有动画接口，保留为技术实验。","date":"2015-10-24T00:00:00+08:00","shortdate":"October 24, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["Banner","CATransition","手势交互","私有API"],"version_note":"原文明确使用系统私有转场 API，并说明不适用于需要上架的应用。"}
,{"title":"Bison教你3分钟集成支付宝好友分享","category":"支付宝","url":"https://allluckly.cn/%E6%94%AF%E4%BB%98%E5%AE%9D/ZFB","markdown_url":"https://allluckly.cn/%E6%94%AF%E4%BB%98%E5%AE%9D/ZFB/index.md","description":"按应用注册、SDK 导入、URL Scheme 配置与回调处理介绍支付宝好友分享，区分文本、图片和网页消息的数据对象，并记录安装检测及鉴权失败的排查点。","date":"2015-10-21T00:00:00+08:00","shortdate":"October 21, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["支付宝分享","SocialSDK","URL Scheme","APMediaMessage"],"version_note":"原文采用 2015 年支付宝 SocialSDK，包含 iOS 9 Scheme 配置与支付宝钱包 9.0 的说明。"}
,{"title":"iOS9新特性之实现3D Touch就是So easy（更新Swift版）","category":"3D Touch","url":"https://allluckly.cn/3d%20touch/3D-Touch","markdown_url":"https://allluckly.cn/3d%20touch/3D-Touch/index.md","description":"围绕 iOS 9 的主屏快捷操作，说明在 Info.plist 中配置图标、标题与类型，再由 AppDelegate 分发点击事件，并给出 Objective-C 与 Swift 两种写法。","date":"2015-10-19T00:00:00+08:00","shortdate":"October 19, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["3D Touch","UIApplicationShortcutItem","AppDelegate","快捷操作"],"version_note":"原文面向 iOS 9 与 iPhone 6s 时代的 3D Touch 主屏快捷操作。"}
,{"title":"iOS开发之多国语言国际化经验浅谈","category":"iOS之国际化","url":"https://allluckly.cn/ios%E4%B9%8B%E5%9B%BD%E9%99%85%E5%8C%96/On-the-experience-of-the-international-experience-of-iOS","markdown_url":"https://allluckly.cn/ios%E4%B9%8B%E5%9B%BD%E9%99%85%E5%8C%96/On-the-experience-of-the-international-experience-of-iOS/index.md","description":"总结多语言项目中翻译文件整理、按钮文字长度、语言地区代码和本地化图片命名的实际问题，重点记录 iOS 9 语言标识变化对中文判断逻辑的影响。","date":"2015-09-29T00:00:00+08:00","shortdate":"September 29, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["国际化","本地化","语言地区代码","图片资源"],"version_note":"原文明确记录 iOS 9 为语言标识增加地区代码时的适配经历。"}
,{"title":"一点一滴慢慢的揭开XMPP的神秘面纱","category":"iOS之XMPP","url":"https://allluckly.cn/ios%E4%B9%8Bxmpp/%E4%B8%80%E7%82%B9%E4%B8%80%E6%BB%B4%E6%85%A2%E6%85%A2%E7%9A%84%E6%8F%AD%E5%BC%80XMPP%E7%9A%84%E7%A5%9E%E7%A7%98%E9%9D%A2%E7%BA%B1","markdown_url":"https://allluckly.cn/ios%E4%B9%8Bxmpp/%E4%B8%80%E7%82%B9%E4%B8%80%E6%BB%B4%E6%85%A2%E6%85%A2%E7%9A%84%E6%8F%AD%E5%BC%80XMPP%E7%9A%84%E7%A5%9E%E7%A7%98%E9%9D%A2%E7%BA%B1/index.md","description":"记录 XMPP 聊天接入的初步流程，包括导入依赖、使用用户信息连接 Openfire、处理注册与登录验证，以及消息收发相关回调，提供客户端集成代码。","date":"2015-09-23T00:00:00+08:00","shortdate":"September 23, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["XMPP","Openfire","即时通信","用户认证","消息收发"],"version_note":""}
,{"title":"Swift纯代码走进UICollectionView","category":"iOS之Swift初探","url":"https://allluckly.cn/ios%E4%B9%8Bswift%E5%88%9D%E6%8E%A2/Swift%E7%BA%AF%E4%BB%A3%E7%A0%81%E8%B5%B0%E8%BF%9BUICollectionView","markdown_url":"https://allluckly.cn/ios%E4%B9%8Bswift%E5%88%9D%E6%8E%A2/Swift%E7%BA%AF%E4%BB%A3%E7%A0%81%E8%B5%B0%E8%BF%9BUICollectionView/index.md","description":"从数据源和代理配置开始，用 Swift 创建 UICollectionView，逐步实现单元格、网络数据加载与可复用头视图，串起一个纯代码列表界面的完整结构。","date":"2015-09-19T00:00:00+08:00","shortdate":"September 19, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["UICollectionView","Swift","Alamofire","UICollectionReusableView"],"version_note":"原文发表于 2015 年，采用当时的 Swift 与 Alamofire 写法。"}
,{"title":"Swift超炫的个人界面依旧如此简单","category":"Swift","url":"https://allluckly.cn/swift/Swift%E7%89%88%E8%B6%85%E7%82%AB%E7%9A%84%E4%B8%AA%E4%BA%BA%E7%95%8C%E9%9D%A2%E4%BE%9D%E6%97%A7%E5%A6%82%E6%AD%A4%E7%AE%80%E5%8D%95","markdown_url":"https://allluckly.cn/swift/Swift%E7%89%88%E8%B6%85%E7%82%AB%E7%9A%84%E4%B8%AA%E4%BA%BA%E7%95%8C%E9%9D%A2%E4%BE%9D%E6%97%A7%E5%A6%82%E6%AD%A4%E7%AE%80%E5%8D%95/index.md","description":"展示 Swift 版本个人中心组件的接入方式，说明如何导入 LBSwift_PersonalPage 并通过继承复用界面，配合示例代码理解页面封装与调用关系。","date":"2015-09-07T00:00:00+08:00","shortdate":"September 07, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["Swift","LBSwift_PersonalPage","个人中心","界面封装"],"version_note":"原文发表于 2015 年，示例使用早期 Swift 语法。"}
,{"title":"iOS开发之1分钟做出超炫的个人界面","category":"UITabView","url":"https://allluckly.cn/uitabview/1%E5%88%86%E9%92%9F%E5%81%9A%E5%87%BA%E8%B6%85%E7%82%AB%E7%9A%84%E4%B8%AA%E4%BA%BA%E7%95%8C%E9%9D%A2%E4%B8%8D%E5%86%8D%E6%98%AF%E6%A2%A6","markdown_url":"https://allluckly.cn/uitabview/1%E5%88%86%E9%92%9F%E5%81%9A%E5%87%BA%E8%B6%85%E7%82%AB%E7%9A%84%E4%B8%AA%E4%BA%BA%E7%95%8C%E9%9D%A2%E4%B8%8D%E5%86%8D%E6%98%AF%E6%A2%A6/index.md","description":"介绍 LBPersonalPage_VC 个人中心界面的集成方法，通过导入文件、继承基础控制器并补充配置来复用页面效果，同时提供对应示例供查看具体实现。","date":"2015-08-31T00:00:00+08:00","shortdate":"August 31, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["LBPersonalPage","个人中心","UITableView","控制器继承"],"version_note":""}
,{"title":"Swift初探之纯代码写tabBar","category":"Swift","url":"https://allluckly.cn/swift/Swift%E5%88%9D%E6%8E%A2%E4%B9%8B%E7%BA%AF%E4%BB%A3%E7%A0%81%E5%86%99tabBar","markdown_url":"https://allluckly.cn/swift/Swift%E5%88%9D%E6%8E%A2%E4%B9%8B%E7%BA%AF%E4%BB%A3%E7%A0%81%E5%86%99tabBar/index.md","description":"用早期 Swift 代码构建仿折800的标签栏，演示创建多个子控制器、配置标题与图标并加入系统 TabBar 的过程，适合对照理解纯代码组织导航结构。","date":"2015-08-25T00:00:00+08:00","shortdate":"August 25, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["Swift","UITabBarController","子控制器","纯代码布局"],"version_note":"原文发表于 2015 年，使用早期 Swift 语法。"}
,{"title":"iOS开发禁止使用系统自带手势滑动返回功能","category":null,"url":"https://allluckly.cn/%E7%A6%81%E6%AD%A2%E4%BD%BF%E7%94%A8%E7%B3%BB%E7%BB%9F%E8%87%AA%E5%B8%A6%E6%89%8B%E5%8A%BF%E6%BB%91%E5%8A%A8%E8%BF%94%E5%9B%9E%E5%8A%9F%E8%83%BD","markdown_url":"https://allluckly.cn/%E7%A6%81%E6%AD%A2%E4%BD%BF%E7%94%A8%E7%B3%BB%E7%BB%9F%E8%87%AA%E5%B8%A6%E6%89%8B%E5%8A%BF%E6%BB%91%E5%8A%A8%E8%BF%94%E5%9B%9E%E5%8A%9F%E8%83%BD/index.md","description":"针对嵌入游戏左滑时意外露出导航栏和标签栏的问题，展示如何控制导航控制器自带的滑动返回手势，记录局部界面禁用系统交互的代码位置。","date":"2015-08-17T00:00:00+08:00","shortdate":"August 17, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["UINavigationController","返回手势","interactivePopGestureRecognizer","游戏嵌入"],"version_note":""}
,{"title":"iOS开发之检测设备锁屏","category":null,"url":"https://allluckly.cn/iOS%E5%BC%80%E5%8F%91%E4%B9%8B%E6%A3%80%E6%B5%8B%E8%AE%BE%E5%A4%87%E9%94%81%E5%B1%8F","markdown_url":"https://allluckly.cn/iOS%E5%BC%80%E5%8F%91%E4%B9%8B%E6%A3%80%E6%B5%8B%E8%AE%BE%E5%A4%87%E9%94%81%E5%B1%8F/index.md","description":"针对嵌入游戏在锁屏时出现异常的场景，记录监听 SpringBoard 锁屏通知的代码与回调处理。文章保留当时的排障思路，接口使用条件需要单独核实。","date":"2015-07-31T00:00:00+08:00","shortdate":"July 31, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["锁屏通知","SpringBoard","CFNotificationCenter","异常排查"],"version_note":"原文发表于 2015 年，示例监听 com.apple.springboard 锁屏通知。"}
,{"title":"iOS开发动画之绕View旋转的View","category":"iOS动画","url":"https://allluckly.cn/ios%E5%8A%A8%E7%94%BB/iOS%E5%BC%80%E5%8F%91%E5%8A%A8%E7%94%BB%E4%B9%8B%E7%BB%95View%E6%97%8B%E8%BD%AC%E7%9A%84View","markdown_url":"https://allluckly.cn/ios%E5%8A%A8%E7%94%BB/iOS%E5%BC%80%E5%8F%91%E5%8A%A8%E7%94%BB%E4%B9%8B%E7%BB%95View%E6%97%8B%E8%BD%AC%E7%9A%84View/index.md","description":"为视图围绕图片中心运动的需求给出实现思路，利用三角函数计算圆周上的位置并更新视图坐标，展示不依赖复杂动画框架的环绕运动代码。","date":"2015-07-29T00:00:00+08:00","shortdate":"July 29, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["UIView","圆周运动","三角函数","动画"],"version_note":""}
,{"title":"UIWebView的使用与总结","category":null,"url":"https://allluckly.cn/webView%E7%9A%84%E4%BD%BF%E7%94%A8%E4%B8%8E%E6%80%BB%E7%BB%93","markdown_url":"https://allluckly.cn/webView%E7%9A%84%E4%BD%BF%E7%94%A8%E4%B8%8E%E6%80%BB%E7%BB%93/index.md","description":"整理 UIWebView 加载网页与原生应用混合布局的常用设置，包括透明背景、缩放适配、电话识别和 JavaScript 交互，并讨论跨平台布局与通信成本。","date":"2015-07-17T00:00:00+08:00","shortdate":"July 17, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["UIWebView","JavaScript","混合开发","网页加载"],"version_note":"原文采用 UIWebView 接口，保留为历史实现记录。"}
,{"title":"iOS开发如何实现长微博的功能","category":null,"url":"https://allluckly.cn/iOS%E5%BC%80%E5%8F%91%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E9%95%BF%E5%BE%AE%E5%8D%9A","markdown_url":"https://allluckly.cn/iOS%E5%BC%80%E5%8F%91%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E9%95%BF%E5%BE%AE%E5%8D%9A/index.md","description":"把长文字转为图片来实现长微博展示，代码围绕文本宽度、字号、所需高度与图像绘制展开，适合了解固定宽度下生成长图的早期 UIKit 做法。","date":"2015-07-15T00:00:00+08:00","shortdate":"July 15, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["长图","文本绘制","UIKit","图片生成"],"version_note":""}
,{"title":"iOS使用Google地图Api创建的地图显示标注及轨迹回放","category":"地图","url":"https://allluckly.cn/%E5%9C%B0%E5%9B%BE/iOS%E8%B0%83%E7%94%A8Google-%E5%9C%B0%E5%9B%BE","markdown_url":"https://allluckly.cn/%E5%9C%B0%E5%9B%BE/iOS%E8%B0%83%E7%94%A8Google-%E5%9C%B0%E5%9B%BE/index.md","description":"记录为 iOS 与 Android 统一地图效果而接入 Google Maps 的过程，给出地图初始化、标注与轨迹线的主要代码，并说明申请地图 API Key 的配置入口。","date":"2015-06-21T00:00:00+08:00","shortdate":"June 21, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["Google Maps","GMSMapView","地图标注","轨迹回放"],"version_note":""}
,{"title":"iOS开发获取通讯录并发短信给联系人","category":null,"url":"https://allluckly.cn/%E9%80%9A%E8%AE%AF%E5%BD%95/%E8%8E%B7%E5%8F%96%E9%80%9A%E8%AE%AF%E5%BD%95%E5%B9%B6%E5%8F%91%E7%9F%AD%E4%BF%A1%E7%BB%99%E8%81%94%E7%B3%BB%E4%BA%BA","markdown_url":"https://allluckly.cn/%E9%80%9A%E8%AE%AF%E5%BD%95/%E8%8E%B7%E5%8F%96%E9%80%9A%E8%AE%AF%E5%BD%95%E5%B9%B6%E5%8F%91%E7%9F%AD%E4%BF%A1%E7%BB%99%E8%81%94%E7%B3%BB%E4%BA%BA/index.md","description":"围绕邀请好友的需求，介绍读取手机联系人并调起短信发送的简单封装，列出 AddressBook、AddressBookUI 与 MessageUI 依赖，并提供 LBContacts 示例工程。","date":"2015-06-16T00:00:00+08:00","shortdate":"June 16, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["通讯录","AddressBook","MessageUI","短信邀请"],"version_note":"原文发表于 2015 年，示例依赖 AddressBook 与 AddressBookUI。"}
,{"title":"iOS开发类似折800功能中的一个小Demo","category":null,"url":"https://allluckly.cn/uiscrollview/%E7%B1%BB%E4%BC%BC%E6%8A%98800%E5%8A%9F%E8%83%BD%E4%B8%AD%E7%9A%84%E4%B8%80%E4%B8%AA%E5%B0%8FDemo","markdown_url":"https://allluckly.cn/uiscrollview/%E7%B1%BB%E4%BC%BC%E6%8A%98800%E5%8A%9F%E8%83%BD%E4%B8%AD%E7%9A%84%E4%B8%80%E4%B8%AA%E5%B0%8FDemo/index.md","description":"以仿折800的滚动交互为例，记录拖动开始时的 contentOffset，并在滚动回调中比较偏移量来判断方向，附示例工程供对照查看界面的联动效果。","date":"2015-06-15T00:00:00+08:00","shortdate":"June 15, 2015","lang":"zh-CN","author":null,"app_name":"Aquarell","keywords":["UIScrollView","contentOffset","滚动方向","代理回调"],"version_note":""}
,{"title":"【iOS开发】打包静态库.a文件","category":null,"url":"https://allluckly.cn/%E9%9D%99%E6%80%81%E5%BA%93/iOS%E5%BC%80%E5%8F%91%E6%89%93%E5%8C%85%E9%9D%99%E6%80%81%E5%BA%93.a%E6%96%87%E4%BB%B6","markdown_url":"https://allluckly.cn/%E9%9D%99%E6%80%81%E5%BA%93/iOS%E5%BC%80%E5%8F%91%E6%89%93%E5%8C%85%E9%9D%99%E6%80%81%E5%BA%93.a%E6%96%87%E4%BB%B6/index.md","description":"记录在 Xcode 中分别构建设备和模拟器静态库，再用 lipo 查看架构并合并 .a 文件的流程，解释为何测试时需要匹配目标平台及如何检查生成结果。","date":"2015-06-10T00:00:00+08:00","shortdate":"June 10, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["静态库","lipo","Xcode","设备架构"],"version_note":"原文发表于 2015 年，采用分别构建设备和模拟器 .a 库的打包方式。"}
,{"title":"iOS开发内购全套图文教程","category":null,"url":"https://allluckly.cn/ios%E6%94%AF%E4%BB%98/iOS%E5%BC%80%E5%8F%912015%E5%B9%B4%E6%9C%80%E6%96%B0%E5%86%85%E8%B4%AD%E6%95%99%E7%A8%8B","markdown_url":"https://allluckly.cn/ios%E6%94%AF%E4%BB%98/iOS%E5%BC%80%E5%8F%912015%E5%B9%B4%E6%9C%80%E6%96%B0%E5%86%85%E8%B4%AD%E6%95%99%E7%A8%8B/index.md","description":"按协议填写、内购商品创建、沙盒账号配置与客户端代码展开，展示 StoreKit 商品请求、支付队列、交易状态处理及收据验证的早期完整接入过程。","date":"2015-06-04T00:00:00+08:00","shortdate":"June 04, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["StoreKit","IAP","沙盒测试","交易队列","收据验证"],"version_note":"原文发表于 2015 年，采用 SKProductsRequest、SKPaymentQueue 与 verifyReceipt 的旧式实现。"}
,{"title":"【iOS开发】iOS被拒解决方案--持续更新","category":null,"url":"https://allluckly.cn/%E4%B8%8A%E6%9E%B6/iOS%E8%A2%AB%E6%8B%92%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%E6%8C%81%E7%BB%AD%E6%9B%B4%E6%96%B0","markdown_url":"https://allluckly.cn/%E4%B8%8A%E6%9E%B6/iOS%E8%A2%AB%E6%8B%92%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%E6%8C%81%E7%BB%AD%E6%9B%B4%E6%96%B0/index.md","description":"汇集应用审核中遇到的崩溃、后台模式、第三方登录、内购和用户内容等问题，并附当时的处理记录。内容反映旧审核条款与具体案例，可用于回顾问题类型。","date":"2015-05-22T00:00:00+08:00","shortdate":"May 22, 2015","lang":"zh-CN","author":null,"app_name":"Aquarell","keywords":["App Store","应用审核","后台模式","内购"],"version_note":"原文为 2015 年审核记录，条款编号和处理方式需按当前官方要求重新核对。"}
,{"title":"iOS开发CocoaPods安装及使用","category":null,"url":"https://allluckly.cn/cocoapods/CocoaPods%E5%AE%89%E8%A3%85%E5%8F%8A%E4%BD%BF%E7%94%A8","markdown_url":"https://allluckly.cn/cocoapods/CocoaPods%E5%AE%89%E8%A3%85%E5%8F%8A%E4%BD%BF%E7%94%A8/index.md","description":"从安装 Ruby 与 CocoaPods 开始，说明如何搜索依赖、编写 Podfile、执行安装并使用生成的工作区，还记录头文件补全的处理方法，适合理解早期 iOS 依赖管理流程。","date":"2015-05-20T00:00:00+08:00","shortdate":"May 20, 2015","lang":"zh-CN","author":"Bison","app_name":"Aquarell","keywords":["CocoaPods","Podfile","Ruby","xcworkspace"],"version_note":"原文发表于 2015 年，示例使用 iOS 7.0、SDWebImage 2.0 与当时的 Ruby 镜像地址。"}
,{"title":"iOS开发第三方登录没安装对应的APP时，图标禁止点击且颜色变灰","category":"第三方登陆","url":"https://allluckly.cn/%E7%AC%AC%E4%B8%89%E6%96%B9%E7%99%BB%E9%99%86/%E7%AC%AC%E4%B8%89%E6%96%B9%E7%99%BB%E5%BD%95","markdown_url":"https://allluckly.cn/%E7%AC%AC%E4%B8%89%E6%96%B9%E7%99%BB%E9%99%86/%E7%AC%AC%E4%B8%89%E6%96%B9%E7%99%BB%E5%BD%95/index.md","description":"以 QQ 和微信登录按钮为例，检测设备是否安装对应应用，再决定隐藏按钮或禁用点击并置灰，记录当时第三方登录入口随安装状态调整的界面处理方式。","date":"2015-05-18T00:00:00+08:00","shortdate":"May 18, 2015","lang":"zh-CN","author":null,"app_name":"Aquarell","keywords":["第三方登录","QQ","微信","安装检测","按钮状态"],"version_note":"原文发表于 2015 年，审核背景与第三方 SDK 调用方式保留为历史记录。"}
,{"title":"iOS开发自动计算tabview中label的高度","category":"UITabView","url":"https://allluckly.cn/uitabview/%E8%87%AA%E5%8A%A8%E8%AE%A1%E7%AE%97tabview%E4%B8%ADlabel%E7%9A%84%E9%AB%98%E5%BA%A6","markdown_url":"https://allluckly.cn/uitabview/%E8%87%AA%E5%8A%A8%E8%AE%A1%E7%AE%97tabview%E4%B8%ADlabel%E7%9A%84%E9%AB%98%E5%BA%A6/index.md","description":"通过字体、限制宽度与文本测量计算标签所需高度，再在 UITableView 行高回调中增加留白，展示手动处理多行文字与列表单元格高度的代码思路。","date":"2015-05-17T00:00:00+08:00","shortdate":"May 17, 2015","lang":"zh-CN","author":null,"app_name":"Aquarell","keywords":["UITableView","UILabel","文本测量","动态行高"],"version_note":"原文发表于 2015 年，示例使用 sizeWithFont 手动测量文本。"}
]
