{"id":13536219,"url":"https://github.com/nixzhu/dev-blog","last_synced_at":"2025-04-12T20:38:21.190Z","repository":{"id":16093262,"uuid":"18838039","full_name":"nixzhu/dev-blog","owner":"nixzhu","description":"翻译、开发心得或学习笔记","archived":false,"fork":false,"pushed_at":"2024-05-08T10:07:06.000Z","size":1663,"stargazers_count":3932,"open_issues_count":12,"forks_count":707,"subscribers_count":285,"default_branch":"main","last_synced_at":"2025-04-05T19:06:40.973Z","etag":null,"topics":["algorithms","gcd","ios","parser","parser-combinators","state-machine","swift"],"latest_commit_sha":null,"homepage":"https://apps.apple.com/cn/app/ducky-model-editor/id1525505933","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nixzhu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-04-16T12:04:45.000Z","updated_at":"2025-04-01T01:32:46.000Z","dependencies_parsed_at":"2024-07-06T03:41:27.609Z","dependency_job_id":null,"html_url":"https://github.com/nixzhu/dev-blog","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nixzhu%2Fdev-blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nixzhu%2Fdev-blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nixzhu%2Fdev-blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nixzhu%2Fdev-blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nixzhu","download_url":"https://codeload.github.com/nixzhu/dev-blog/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248631668,"owners_count":21136554,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithms","gcd","ios","parser","parser-combinators","state-machine","swift"],"created_at":"2024-08-01T09:00:36.041Z","updated_at":"2025-04-12T20:38:21.165Z","avatar_url":"https://github.com/nixzhu.png","language":null,"funding_links":[],"categories":["内容","编程语言","awesome-ios ##","Others","分类"],"sub_categories":["iOS开发相关","IOS"],"readme":"dev-blog\n========\n\n翻译、开发心得或学习笔记\n\n- [AutoLayout Tips](https://github.com/nixzhu/dev-blog/blob/main/posts/autolayout-tips.md)\n- 翻译：[GCD 深入理解：第一部分](https://github.com/nixzhu/dev-blog/blob/main/posts/2014-04-19-grand-central-dispatch-in-depth-part-1.md)\n- 翻译：[为一个 iOS 应用编写一个简单的 Node.js/MongoDB Web 服务](https://github.com/nixzhu/dev-blog/blob/main/posts/2014-04-21-write-a-simple-nodejs-mongodb-web-service-for-an-ios-app.md)\n- 翻译：[研究 UIActivityViewController](https://github.com/nixzhu/dev-blog/blob/main/posts/2014-04-22-uiactivityviewcontroller.md)\n- 翻译：[开发使用 iBeacon 的 iOS 7 应用](https://github.com/nixzhu/dev-blog/blob/main/posts/2014-04-23-ios7-ibeacons-tutorial.md)\n- 翻译：[iOS 应用的国际化（2014）](https://github.com/nixzhu/dev-blog/blob/main/posts/2014-04-24-internationalization-tutorial-for-ios-2014.md)\n- 翻译：[制作一个可以滑动操作的 Table View Cell](https://github.com/nixzhu/dev-blog/blob/main/posts/2014-04-26-make-swipeable-table-view-cell-actions-without-going-nuts-scroll-views.md)\n- 翻译：[编写一个使用 Node.js/MongoDB Web 服务的 iOS 应用](https://github.com/nixzhu/dev-blog/blob/main/posts/2014-04-29-write-ios-app-uses-node-jsmongodb-web-service.md)\n- 翻译：[创建自定义 AngularJS 指令，第一部分，基础知识](https://github.com/nixzhu/dev-blog/blob/main/posts/2014-05-03-creating-custom-angularjs-directives-part-1-the-fundamentals.md)\n- 翻译：[自定义 Layer 属性的动画](https://github.com/nixzhu/dev-blog/blob/main/posts/2014-05-10-animating-custom-layer-properties.md)\n- 翻译：[GCD 深入理解：第二部分](https://github.com/nixzhu/dev-blog/blob/main/posts/2014-05-14-grand-central-dispatch-in-depth-part-2.md)\n- 翻译：[在 iOS 上捕捉签名](https://github.com/nixzhu/dev-blog/blob/main/posts/2014-05-27-capture-a-signature-on-ios.md)\n- 翻译：[Flipboard 在 iOS 上怎样播放 GIF 动画](https://github.com/nixzhu/dev-blog/blob/main/posts/2014-06-01-animated-gif.md)\n- 翻译：[介绍 MVVM](https://github.com/nixzhu/dev-blog/blob/main/posts/2014-06-10-mvvm.md)\n- 翻译：[使用 Swift 和 Xcode 6 制作超棒的 UI 组件](https://github.com/nixzhu/dev-blog/blob/main/posts/2014-06-10-make-awesome-ui-components-ios-8-using-swift-xcode-6.md)\n- [分析一个有趣的 Swift 项目：LTBouncyPlaceholder](https://github.com/nixzhu/dev-blog/blob/main/posts/2014-06-12-ltbouncyplaceholder.md)\n- 翻译：[用 Quartz Composer 和 Origami 制作一个简单的按钮动画](https://github.com/nixzhu/dev-blog/blob/main/posts/2014-06-22-quartz-composer-and-origami-tutorial-button-animation.md)\n- [检测是否通过点击通知来启动App](https://github.com/nixzhu/dev-blog/blob/main/posts/2014-09-30-detect-launch-from-notification.md)\n- 翻译：[使用 Swift 构建自定义（且“可设计”的）控件](https://github.com/nixzhu/dev-blog/blob/main/posts/2014-11-20-build-custom-control-in-swift.md)\n- 翻译：[AsyncDisplayKit 教程：达到 60 FPS 的滚动帧率](https://github.com/nixzhu/dev-blog/blob/main/posts/2014-11-22-asyncdisplaykit-tutorial-achieving-60-fps-scrolling.md)\n- [生成自适应图表图片的秘密](https://github.com/nixzhu/dev-blog/blob/main/posts/2015-04-08-adaptive-chart.md)\n- [使用状态机的好处](https://github.com/nixzhu/dev-blog/blob/main/posts/2015-04-23-state-machine.md)\n- [用 Swift 实现轻量的属性监听系统](https://github.com/nixzhu/dev-blog/blob/main/posts/2015-04-30-property-listener.md)\n- [区别 iPhone 做布局](https://github.com/nixzhu/dev-blog/blob/main/posts/2015-05-18-screen-model.md)\n- [再造虫洞：一次 Objective-C 到 Swift 的改写之旅](https://github.com/nixzhu/dev-blog/blob/main/posts/2015-05-27-wormhole.md)\n- [处理键盘通知](https://github.com/nixzhu/dev-blog/blob/main/posts/2015-07-27-keyboard-man.md)\n- [对函数式编程的一点理解](https://github.com/nixzhu/dev-blog/blob/main/posts/2015-07-30-functional-programming.md)\n- [国产 SDK](https://github.com/nixzhu/dev-blog/blob/main/posts/2015-09-18-monkey-king.md)\n- [一种头像缓存策略](https://github.com/nixzhu/dev-blog/blob/main/posts/2015-10-08-navi.md)\n- 翻译：[Swift 包管理器](https://github.com/nixzhu/dev-blog/blob/main/posts/2015-12-04-swift-package-manager.md)\n- [NSCache 源码分析](https://github.com/nixzhu/dev-blog/blob/main/posts/2015-12-09-nscache.md)\n- [防止点击 Cell 时 ViewController 被重复 Push]( https://github.com/nixzhu/dev-blog/blob/main/posts/2016-01-04-duplicate-push.md)\n- [自定义 UITextView 关键字高亮与点击检测](https://github.com/nixzhu/dev-blog/blob/main/posts/2016-01-14-mention-in-textview.md)\n- [在 GitHub 上贡献开源项目的一般步骤](https://github.com/nixzhu/dev-blog/blob/main/posts/2016-02-17-contribute-on-github.md)\n- [制作一个苦力](https://github.com/nixzhu/dev-blog/blob/main/posts/2016-06-29-coolie.md)\n- [能偶尔用上的 awk](https://github.com/nixzhu/dev-blog/blob/main/posts/2016-08-11-awk.md)\n- [解析器组合子](https://github.com/nixzhu/dev-blog/blob/main/posts/2017-04-12-json-parser.md)\n- [基于栈的 HTML 解析器](https://github.com/nixzhu/dev-blog/blob/main/posts/2017-05-22-stack-based-html-parser.md)\n- 翻译：[入门 GraphQL \u0026 Apollo](https://github.com/nixzhu/dev-blog/blob/main/posts/2017-06-01-GraphQL-Apollo.md)\n- [App 的环境](https://github.com/nixzhu/dev-blog/blob/main/posts/2017-07-05-app-environment.md)\n- 翻译：[测试五要素](https://github.com/nixzhu/dev-blog/blob/main/posts/2017-08-31-five-factor-testing.md)\n- [让 preferredStatusBarStyle 真的工作（iOS 10以后）](https://github.com/nixzhu/dev-blog/blob/main/posts/2017-10-20-preferredstatusbarstyle.md)\n- [自定义 Share Extension](https://github.com/nixzhu/dev-blog/blob/main/posts/2018-04-18-custom-share-extension.md)\n- [ARC：我捕捉它了吗？](https://github.com/nixzhu/dev-blog/blob/main/posts/2018-06-04-arc.md)\n- [使用 xcodeproj](https://github.com/nixzhu/dev-blog/blob/main/posts/2019-01-09-xcodeproj.md)\n- 翻译：[使用 Swift 实现 Promise](https://github.com/nixzhu/dev-blog/blob/main/posts/2019-01-21-implementing-promises-in-swift.md)\n- 翻译：[使用 Swift 的 async/await 构建一个图片加载器](https://github.com/nixzhu/dev-blog/blob/main/posts/2021-09-28-using-swifts-async-await-to-build-an-image-loader.md)\n- 翻译：[Swift 中 Actor 的重入问题](https://github.com/nixzhu/dev-blog/blob/main/posts/2021-09-28-actor-reentrancy-problem.md)\n\n---\n\n有任何想法，欢迎[用邮件和我交流](mailto:zhuhongxu@gmail.com)。\n\n同时欢迎购买我开发的几个 [app](https://nixzhu.dev/apps/)，其中帮助开发者从 JSON 生成模型以节省时间的 [Ducky Model Editor](https://apps.apple.com/cn/app/ducky-model-editor/id1525505933) 你很可能用得着。\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnixzhu%2Fdev-blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnixzhu%2Fdev-blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnixzhu%2Fdev-blog/lists"}