├── 2019 ├── OpenSourceforSwift-ApplicationArchitecture-MindNode.md ├── OpenSourceforSwift-ApplicationArchitecture.md ├── OpenSourceforSwift-ApplicationArchitecture.pdf ├── OpenSourceforSwift-ApplicationArchitecture.png ├── OpenSourceforSwift-Classification-MindNode.md ├── OpenSourceforSwift-Classification.md ├── OpenSourceforSwift-Classification.pdf ├── OpenSourceforSwift-Classification.png ├── RecentlyIncludedSwiftProjects.md ├── RecentlyIncludedSwiftProjects.png ├── SwiftDevelopers.md ├── SwiftDevelopers.png ├── SwiftDevelopmentTeam.md ├── SwiftDevelopmentTeam.png └── recentlyarchive │ ├── RecentlyIncludedSwiftProjects-0201.md │ ├── RecentlyIncludedSwiftProjects-0201.png │ ├── RecentlyIncludedSwiftProjects-0201.zip │ ├── RecentlyIncludedSwiftProjects-0325.md │ ├── RecentlyIncludedSwiftProjects-0325.png │ └── RecentlyIncludedSwiftProjects-0325.zip ├── 2021 └── MarkdownProgramminginSwift.png ├── .gitignore ├── 2014 letter.md ├── Apple Watch └── README.md ├── Featured-Articles.md ├── Featured.md ├── HelloWorld.swift ├── README.md ├── README20181213.md ├── archive ├── README_2016-3.md ├── getting-started.md ├── iT-bg-854X400.png ├── news.md ├── platforms.md ├── projects.md ├── tutorial.md ├── twitter.png ├── v2ray-linux-64.zip ├── weibo.png └── weixin-swiftlanguage.jpg ├── mirror ├── App Extension Programming Guide │ └── README.md ├── Swift Blog - Apple Developer │ └── README.md ├── best-blogs-for-ios-developers └── iOS Human Interface Guidelines │ └── README.md ├── open_deep_researcher.ipynb ├── other └── VirtualGS │ ├── GSwift-2 │ ├── Demo │ │ ├── AppDelegate.swift │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── GSPicsView.swift │ │ ├── GSView.swift │ │ ├── HiresView.swift │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── Icon120.png │ │ │ │ ├── Icon152.png │ │ │ │ └── Icon76.png │ │ │ ├── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ │ ├── first.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── first.png │ │ │ │ └── first@2x.png │ │ │ └── second.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── second.png │ │ │ │ └── second@2x.png │ │ ├── Info.plist │ │ ├── LoresView.swift │ │ ├── PaintView.swift │ │ ├── SpaceView.swift │ │ ├── ViewController.swift │ │ ├── apple.png │ │ ├── gspics │ │ │ ├── background.jpg │ │ │ ├── flower.jpg │ │ │ ├── fruits.jpg │ │ │ ├── girl.jpg │ │ │ ├── pam.jpg │ │ │ ├── redhood.jpg │ │ │ └── taj.jpg │ │ ├── ship.png │ │ └── space.png │ ├── DemoTests │ │ ├── Info.plist │ │ └── TabbedDemoTests.swift │ ├── GSwift.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── limtc.xcuserdatad │ │ │ │ ├── UserInterfaceState.xcuserstate │ │ │ │ └── WorkspaceSettings.xcsettings │ │ └── xcuserdata │ │ │ └── limtc.xcuserdatad │ │ │ ├── xcdebugger │ │ │ └── Breakpoints_v2.xcbkptlist │ │ │ └── xcschemes │ │ │ ├── Demo.xcscheme │ │ │ └── xcschememanagement.plist │ └── screenshot.png │ ├── GSwift │ ├── GSwift.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── limtc.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── limtc.xcuserdatad │ │ │ ├── xcdebugger │ │ │ └── Breakpoints_v2.xcbkptlist │ │ │ └── xcschemes │ │ │ ├── GSwift.xcscheme │ │ │ └── xcschememanagement.plist │ ├── GSwift │ │ ├── AppDelegate.swift │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── GSView.swift │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── Main.swift │ │ ├── ViewController.swift │ │ ├── gspics │ │ │ ├── background.jpg │ │ │ ├── flower.jpg │ │ │ ├── fruits.jpg │ │ │ ├── girl.jpg │ │ │ ├── pam.jpg │ │ │ ├── redhood.jpg │ │ │ └── taj.jpg │ │ ├── ship.png │ │ └── space.png │ └── GSwiftTests │ │ ├── GSwiftTests.swift │ │ └── Info.plist │ ├── Lores │ ├── Lores.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ ├── limtc.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ │ │ └── yongguo.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ ├── limtc.xcuserdatad │ │ │ └── xcschemes │ │ │ │ ├── Lores.xcscheme │ │ │ │ └── xcschememanagement.plist │ │ │ └── yongguo.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── Lores.xcscheme │ │ │ └── xcschememanagement.plist │ ├── Lores │ │ ├── AppDelegate.swift │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.launchimage │ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── Lores.swift │ │ ├── LoresView.swift │ │ └── ViewController.swift │ └── LoresTests │ │ ├── Info.plist │ │ └── LoresTests.swift │ └── README.md ├── sl-logo_1.0.png └── weekly ├── 2014-10-27.md ├── 2014-11-03.md ├── 2014-11-10.md ├── 2014-11-17.md ├── 2014-11-24.md ├── 2014-11-30.md ├── 2014-12-07.md ├── 2014-12-14.md ├── 2014-12-21.md ├── 2014-12-28.md ├── 2015-01-04.md ├── 2015-01-11.md ├── 2015-01-18.md ├── 2015-01-25.md ├── 2015-02-01.md ├── 2015-02-08.md ├── 2015-03-08.md ├── 2015-03-15.md ├── 2015-03-22.md ├── 2015-03-29.md ├── 2015-04-05.md ├── 2015-04-12.md ├── 2015-04-19.md ├── 2015-04-26.md ├── 2015-05-03.md ├── 2015-05-10.md ├── 2015-05-17.md ├── 2015-05-24.md ├── 2015-05-31.md ├── 2015-06-07.md ├── Issue-31.md ├── Issue-32.md ├── Issue-33.md ├── Issue-34.md ├── Issue-35.md ├── Issue-36.md ├── Issue-37.md ├── Issue-38.md ├── Issue-39.md ├── Issue-40.md ├── Issue-41.md ├── Issue-42.md ├── Issue-43.md ├── Issue-44.md ├── Issue-45.md ├── Issue-46.md ├── Issue-47.md ├── Issue-48.md ├── Issue-49.md ├── Issue-50.md ├── Issue-51.md ├── Issue-52.md ├── Issue-53.md ├── Issue-54.md ├── Issue-55.md ├── README.md ├── Volunteers.md └── template.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /2014 letter.md: -------------------------------------------------------------------------------- 1 | ## 致 Swift 开发者 2 | >  自 2014 年 6 月苹果发布 Swift 以来,本微博通过跟踪、归纳、汇总持续更新《[Swift 语言指南](https://github.com/ipader/SwiftGuide)》已经半年有余。由于个人力量绵薄,充其量它能让初学者快速索引到有用学习资源,而对于 Swift 进阶开发者,显然是远远不够的。我之所以坚持,当然,动力主要来源于个人兴趣以及 Swift 美好的未来。 3 | 4 | ### 回顾 5 |   做为一门集百家之长的新语言,短短半年时间,如雪花般的[优秀开源项目](https://github.com/ipader/SwiftGuide/blob/master/Featured.md)蜂拥而至,这让人惊喜又兴奋。惊喜的是,它是一门好的编程语言无疑;兴奋的是,将会有更多的开发者走在同一起跑线。近年来,交替涌现过很多优秀编程语言,比如:Java, Python, Javascript, Ruby, Scala, Go... 然而,做为一门新语言,能在极短时间即进入一个庞大商业生态系统,Swift 还是第一个。虽然,借有苹果先天的生态优势,但侧面也说明了,生态环境是全新门类编程语言成功的关键要素之一。 6 | 7 |   当然,Objective-C 的辉煌自不必复述,也是无数开发者看家之本,[何时退出](http://www.cocoachina.com/swift/20150107/10858.html)历史舞台更无法预言。很多带经验开发者的犹豫及观望,理由自然充分、合理。对于新开发者,除了倾听他们的意见、点拨之外,更可以抓住 Swift 这次机会,无负重快速学习。 8 | 9 | ### 展望 10 | 11 |   毫无疑问,2015 年将是 Swift 及其生态环境 iOS/OS X大踏步前进的一年,显然,Swift 的成功不会取决于语言本身,因为,2014 年即已经奠定了成功的基础。剩下的只是 Objective-C 将以多快地速度退出主流开发圈。个人认为,也许一年就足够了。但这并不那么重要,更重要的是开发者的新老交替所带给开发圈更多新鲜“血液”以及竞争的动力。 12 | 13 |   有理由相信,Swift 也是苹果自身减负、迎接变革的开始。苹果生态自不必说,更重要的是如此简洁灵活、与时俱进的语言更容易吸引其它生态优秀的开发者参与。很多资深开发者往往把 Android 生态当做练兵场,把 iOS 生态当做战场。如今,Swift 使 iOS 开发门槛大幅降低之后,Android 生态开发者更可以大批介入,毕竟,对于大部分应用来讲,iOS 生态“印钞”能力远远强于 Android 生态。 14 | 15 |   还有 WatchKit, HomeKit, HealthKit 这几个新兴领域开发包,将进一步促进 iOS 生态发展。也使 Swift 语言开发者与老牌 Objective-C 开发者有了一个对等竞争的机会。可以汇集以上三个开发包作用于一身,当属  Watch 无疑,这个全新战场更赋予了 Swift 开发者得天独厚的优秀。 16 | 17 | 18 | ### 期待 19 | 20 |   对 Swift 的未来,个人认为是否或何时开源,开放程度如何?将是最值得期待的…… 21 | 22 | * 开源与否 23 | 24 |   对于一门发展中的全新语言,时机未必成熟。一旦成熟,自然可以效仿过去 WebKit 的经验。对于苹果来讲,应该构不不成问题。 25 | 26 | * 开放程度 27 | 28 |   对于一门有能力跨平台的全新且如此优秀的开发语言,有没有可能为更多平台开发者服务(进一步降低应用开发者的学习成本),这或许是苹果难以抉择、由不得自己的事。首先,这需要投入更多的研发力量,其次,它对于自身生态的影响不可估量,还有,这也不是一厢情愿的事。 29 | 30 | -------------------------------------------------------------------------------- /2019/OpenSourceforSwift-ApplicationArchitecture.md: -------------------------------------------------------------------------------- 1 | # Swift 开源项目精选 - 应用架构角度 2 | 3 | 基于[Swift 开源项目精选导图](OpenSourceforSwift-Classification.md),以应用架构角度出发继续甄选并“精分”。筛选、介定方法更偏重于构建应用时,项目在分类中起到的作用权重,可持续性权重,并部分算上开发者影响力。尝试持续地完善一份不那么杂乱无章(也许还比较好用)的 Swift 开源子集。内容将依然以导图和 myMindNode 形式呈现(持续更新中……) 4 | 5 | ![](OpenSourceforSwift-ApplicationArchitecture.png?raw=true) 6 | 7 | [myMindNode浏览及导图原文档下载……](https://my.mindnode.com/epd4C5grMxtWnojnVGXy9LCay1n8zosXRpzawppy) 8 | 9 | 10 | ## 附:MindNode 格式导图导出的文本内容 11 | * [浏览 Markdown 版本](OpenSourceforSwift-ApplicationArchitecture-MindNode.md) 12 | * [浏览 PDF 版本](OpenSourceforSwift-ApplicationArchitecture.pdf) 13 | 14 | --- 15 | 16 | 整理过程中八卦过的两位传奇人物: 17 | > 1. GitHub 上曾经最具影响力的 iOS 独立博主及开发者 Mattt 就曾于 2015年加入苹果后,几乎消声匿迹(无论在其个人网站、博客、 GitHub 社区还是 Twitter 都少有活动,原因又鲜为人知)。很多不太了解开发者多诧异他怎么了?大部分人都是在 Mattt 本人在 Twitter 上于2018年3月再次发声后,才知道他过去三年原来一直为苹果工作(做为一位资深技术作者为 The Swift Programming Language,Swift Package Manager 和 swift.org 等写开发文档)。并且,回归社区后的活跃度显示爆发式增加,并开辟了一个新的领域( Swift 基础教育系列课程项目 Flight School)。当然,奠定其“江湖”地位的几款知名开源项目的后续,也基本不用担心未来发展。 18 | 2. 此外,Swift “教父” Chris Lattner 于 2016 年下半年后在开源社区贡献大幅度减少,自从 2017年初闪电离职苹果公司,短暂加入特斯拉担任自动驾驶(Tesla Autopilot)项目软件副总裁,由于工作性质变更,Swift 及 开源社区贡献更加稀少。可喜的是不到六个月后即又离职特斯拉,并迅速加入了谷歌大脑(Google Brain)项目组,负责推动 TensorFlow 平台开发者体验及接入Swift 语言基础构架工作等工作后,逐渐恢复了开源社区活跃度及贡献。目前看来,他不会轻易地撒手不管 Swift 语言的发展、建设。这一点对于热衷于 iOS 开发和开源项目的同学们都是很大的鼓舞。 19 | 坦率地讲,以上内容只是在整理过程中,闲着无聊顺便“八卦”解闷,也可以认为纯粹凑字数。😂 20 | -------------------------------------------------------------------------------- /2019/OpenSourceforSwift-ApplicationArchitecture.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/2019/OpenSourceforSwift-ApplicationArchitecture.pdf -------------------------------------------------------------------------------- /2019/OpenSourceforSwift-ApplicationArchitecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/2019/OpenSourceforSwift-ApplicationArchitecture.png -------------------------------------------------------------------------------- /2019/OpenSourceforSwift-Classification.md: -------------------------------------------------------------------------------- 1 | # Swift 开源项目精选导图 2 | 3 | 这份文档主要基于微博 [@SwiftLanguage](https://weibo.com/swiftlanguage) 跟踪过活跃于 Swift 语言领域的那些 GitHub 开源项目,顺便也是对于过去几年关注的内容进行一次系统化梳理。尝试整理出一份相对结构化且精练的 Swift 开源项目参考知识库,它将主要以思维导图形式呈现。 4 | 5 | 导图分类规则尽可能遵循[苹果开发者文档](https://developer.apple.com/documentation/)(对应关系仅做参考),试图与官方类库分类尽量有一个对照关系(其初衷是引导开发者不要为了使用开源而忽视官方类库本身已经具备的功能特性);筛选规则主要参考过去四年多来微博分享,综合了库的实用性、稳定性、star/fork,以及活跃度等因素,筛选出其中一个子集,整理后的开源项目数量目前为 400 多个项目。导图将以一整张大图及 myMindNode 浏览两种方式访问。另外,站在开发者应用开发视角,额外筛检了一份更精简且分类明细的 [Swift 开源项目精选 - 应用架构角度](OpenSourceforSwift-ApplicationArchitecture.md)。 6 | 7 | 订阅后显示部分目前实为持续更新的 myMindNode 链接及明细内容浏览方式(叶子节点针对每一个收录开源项目的中文简介)。此外,附上项目中部分 [Swift 知名开发者介绍](SwiftDevelopers.md) 和 [Swift 开源项目团队介绍](SwiftDevelopmentTeam.md),以便于进一步了解其中部分优秀项目开发者背景。另外,考虑到开源项目的发展及持续更新。本文档并非最终稿,它将与微博 [@SwiftLanguage](https://weibo.com/swiftlanguage) 同步更新(周为单位)。对于那些不再活跃或中止的项目也会尽力删减。对于 Swift 新手欢迎关注文档 [Swift 开发指引](http://swiftguide.cn) 以及 [Swift 语言指南](https://github.com/ipader/SwiftGuide/blob/master/README20181213.md) (13.9k+ stars),其中有项目介绍、入门文章等与 Swift 开发相关的信息。 8 | 9 | ![](OpenSourceforSwift-Classification.png?raw=true) 10 | [myMindNode浏览及导图原文档下载……](https://my.mindnode.com/s4jn5DKQV7qwpCdnyd12sDXcnTYJmFzPNghYx91s) 11 | 12 | ## 附:MindNode 格式导图导出的文本内容 13 | * [浏览 Markdown 版本](OpenSourceforSwift-Classification-MindNode.md) 14 | * [浏览 PDF 版本](OpenSourceforSwift-Classification.pdf) 15 | 16 | 注:开源项目范围广泛,能力所及,其中主观性强烈,甚至不少错误之处,望包涵、指正。 17 | -------------------------------------------------------------------------------- /2019/OpenSourceforSwift-Classification.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/2019/OpenSourceforSwift-Classification.pdf -------------------------------------------------------------------------------- /2019/OpenSourceforSwift-Classification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/2019/OpenSourceforSwift-Classification.png -------------------------------------------------------------------------------- /2019/RecentlyIncludedSwiftProjects.md: -------------------------------------------------------------------------------- 1 | # Recently Included Swift Projects 2 | 3 | ![](RecentlyIncludedSwiftProjects.png) 4 | 5 | ## *Shared & Featured* 6 | 7 | - <*AWS SDK*>
swift-aws/aws-sdk-swift
➟ macOS | Linux 8 | 9 | 支持 macOS 和 Ubuntu 的 AWS SDK。 10 | 11 | - <*3D Picture Gallery Slideshow*>
folio-sec/Slideshow
➟ macOS 12 | 13 | 采用 SceneKit 写的 3D 动态图片墙。酷!不过系统资源消耗也很历害。 14 | 15 | - <*Metrics API*>
apple/swift-metrics
➟ iOS | macOS | Linux 16 | 17 | 苹果开源并逐步固定 Metrics API,以方便用户对应用的运行及资源状态进行有效跟踪。 18 | 19 | - <*converts between AttributedStrings and HTML*>
IdeasOnCanvas/Ashton
➟ iOS | macOS 20 | 21 | MindNode 团队开发使用的 NSAttributedStrings 和 HTML 高性能互转类库。 22 | 23 | - <*handy features to standard library*>
*Flinesoft/HandySwift*
➟ iOS | macOS | Linux 24 | 25 | 由于某些原因 Swift 标准库仍未收入且很好用的功能特性扩展。 26 | 27 | - <*Codable extension*>
JohnSundell/Codextended
➟ macOS | Linux 28 | 29 | 为自定义 Codable 而生的扩展 API。 30 | 31 | - <*dependency manager*>
JamitLabs/Accio
➟ macOS 32 | 33 | 结合 SwiftPM,为 Carthage 锦上添花的包管理命令行工具。 34 | 35 | - **
JohnSundell/Sweep
➟ iOS | macOS | Linux 36 | 37 | 比正则表达式简单很多的子字符串扫描和匹配。 38 | 39 | - <*Declarative UI construction*>
square/Blueprint
➟ iOS 40 | 41 | Square 公司开源的自用声明式 UI 开发框架库。 42 | 43 | - <*loading*>
farshadjahanmanesh/loady
➟ iOS 44 | 45 | 常用可定制载入进程按钮动画。 46 | 47 | - <*science-journal*>
google/science-journal-ios
➟ iOS 48 | 49 | Google 科学日志 iOS 版应用开源。 50 | 51 | - <*CLI tool*>
rockbruno/SwiftInfo
➟ macOS 52 | 53 | 命令行工具跟踪检查 iOS 应用版本代码级变化。 54 | 55 | - <*hand-drawn, comic shape*>
onmyway133/RoughSwift
➟ iOS 56 | 57 | 编程方式创建手绘和漫画风格画面。酷炫! 58 | 59 | ## *Shared Only* 60 | 61 | - <*animated switch*>
d-dotsenko/DDAnimatedSwitch
➟ iOS 62 | 63 | 把开关动画定制到可乐。 64 | 65 | - <*execute Swift into markdown*>
objcio/markdown-playgrounds
➟ macOS 66 | 67 | 在 Markdown 中执行 Swift Playgrounds 代码。这是想让 Markdown 编辑器无敌的节奏吗? 68 | 69 | - <*native source editor*>
twostraws/Sourceful
➟ iOS | macOS 70 | 71 | 有了这个支持,是时候写一款 iOS/macOS 通用的源代码编辑器了。 72 | 73 | - *
pigigaldi/Pock*
➟ macOS 74 | 75 | 将 macOS Dock 放入 Touch Bar。总得来讲是 Touch Bar 的有益补充,设计思路及程序结构也恰到好处。 76 | 77 | -------------------------------------------------------------------------------- /2019/RecentlyIncludedSwiftProjects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/2019/RecentlyIncludedSwiftProjects.png -------------------------------------------------------------------------------- /2019/SwiftDevelopers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/2019/SwiftDevelopers.png -------------------------------------------------------------------------------- /2019/SwiftDevelopmentTeam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/2019/SwiftDevelopmentTeam.png -------------------------------------------------------------------------------- /2019/recentlyarchive/RecentlyIncludedSwiftProjects-0201.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0201.png -------------------------------------------------------------------------------- /2019/recentlyarchive/RecentlyIncludedSwiftProjects-0201.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0201.zip -------------------------------------------------------------------------------- /2019/recentlyarchive/RecentlyIncludedSwiftProjects-0325.md: -------------------------------------------------------------------------------- 1 | # Recently Included Swift Projects 2 | 3 | ![](RecentlyIncludedSwiftProjects.png) 4 | 5 | ## *Shared & Featured* 6 | 7 | - <*openCV portrait mode*>
koooootake/Portrait-without-Depth-ios
➟ iOS 8 | 9 | 实现单摄人像模式。 10 | 11 | - <*JavasScript engine*>
googleprojectzero/fuzzilli
➟ macOS | Linux 12 | 13 | Javascript 解释器引擎,技术融合的一大进步。 14 | 15 | - <*randomness*>
pointfreeco/swift-gen
➟ iOS | macOS | Linux 16 | 17 | 基于强大的 Swift 随机数 API,包装易于扩展可定制的多类型随机数生成器。 18 | 19 | - <*vector animations*>
airbnb/lottie-ios
➟ iOS | macOS 20 | 21 | Airbnb 矢量级动画渲染库全面迁移至 Swift 版本。其势不可挡。 22 | 23 | - <*logger*>
apple/swift-log
➟ macOS | Linux 24 | 25 | 这个 Apple 官方也出,与民争利了。 26 | 27 | - <*modal*>
slackhq/PanModal
➟ iOS 28 | 29 | 这款可定制性底部上滑式模态窗口组件开发和用户体验都不错啊。 30 | 31 | - <*modularization*>
mxcl/Cake
➟ macOS 32 | 33 | 基于组件 MessageKit 及实时通讯云 Firestore 的即时通讯实现(功能参考 Facebook Messenger)。 34 | 35 | - <*animations*>
sagaya/Wobbly
➟ iOS 36 | 37 | 对界面组件元素实现各种摇晃抖闪的动画效果。 38 | 39 | - <*window manager*>
ianyh/Amethyst
➟ macOS 40 | 41 | 自动排列及快捷操作切换、管理窗口。 42 | 43 | - *<3D graphics>*
endavid/VidEngine
➟ iOS 44 | 45 | 用 Metal (GPU) 技术封装实现的 3D渲染引擎。 46 | 47 | - *
Cuberto/rubber-range-picker*
➟ iOS 48 | 49 | 很带人情味的数字区间选择。 50 | 51 | - <*progress view*>
mac-gallagher/MultiProgressView
➟ iOS 52 | 53 | 多区间进程条展示效果组件及示例。 54 | 55 | - <*component-based UI*>
ra1028/Carbon
➟ iOS 56 | 57 | 在 UITableView 和 UICollectionView 中构建基于组件声明式界面库。提供 API 文档及丰富示例。 58 | 59 | - <*Binary Codable*>
jverkoey/BinaryCodable
➟ iOS | macOS | Linux 60 | 61 | Codable 风格实现 Binary 数据的 Decode/Encode。 62 | 63 | - <*Regular Expression*>
Flight-School/RegularExpressionDecoder
➟ iOS | macOS 64 | 65 | 针对结构化数据的正则表达式解析库。 66 | 67 | - <*tensorflow apis*>
tensorflow/swift-apis
➟ macOS 68 | 69 | 应用于 Swift 的 TensorFlow 深度学习库。 70 | 71 | ## *Shared Only* 72 | 73 | - <*2d vector*>
2d-inc/Flare-Swift
➟ macOS 74 | 75 | Flare 创建的 2D 矢量动画 Swift 播放环境。 76 | 77 | - <*Watch Face*>
kuglee/TermiWatch
➟ watchOS 78 | 79 | Terminal 都能上 Apple Watch 了,想像力无处不在。 80 | 81 | - **
zagahr/Conferences.digital
➟ macOS 82 | 83 | 该应用模型可以方便你在 Mac 上观看开发论坛高清视频。 84 | 85 | - **
AndrewBennet/ReadingList
➟ iOS 86 | 87 | 阅读进程列表组件。 88 | 89 | - <*Swift Algorithms*>
thexande/SwiftAlgorithms
➟ iOS 90 | 91 | 把 raywenderlich/swift-algorithm-club Markdown 资源应用化了,查阅实在太便利了。 92 | 93 | - <*crop image and transformation*>
*d-dotsenko/DDPerspectiveTransform*
➟ iOS 94 | 95 | 交互式截图并转换。 96 | 97 | - <*bottom controller*>
IvanVorobei/SPLarkController
➟ iOS 98 | 99 | 效果不错的适用于应用设置模态控制器。 100 | 101 | - <*dependency manager*>
mxcl/AppUpdater
➟ CLI environment 102 | 103 | GitHub 开源应用自动更新器(macOS)。 104 | 105 | - <*tab bar*>
Cuberto/bubble-icon-tabbar
➟ iOS 106 | 107 | Tab 图标展开式显示栏。 108 | 109 | - <*development tool*>
peripheryapp/periphery
➟ macOS 110 | 111 | 排查消除项目内非使用过的代码碎片 112 | 113 | - <*javascript*>
pomber/git-history
➟ Browser 114 | 115 | 直观动态地展示 GitHub 文件历史。创意和效果一级棒,服! 116 | 117 | - <*Segment Slide*>
Jiar/SegementSlide
➟ iOS 118 | 119 | 功能完整的滑滚及切换组件。 120 | 121 | - <*notification*>
jogendra/BedgeNotificHub
➟ iOS 122 | 123 | 快速加上通知徽章及数字提醒到 UIView,支持丰富的徽章小动效。 124 | 125 | -------------------------------------------------------------------------------- /2019/recentlyarchive/RecentlyIncludedSwiftProjects-0325.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0325.png -------------------------------------------------------------------------------- /2019/recentlyarchive/RecentlyIncludedSwiftProjects-0325.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0325.zip -------------------------------------------------------------------------------- /2021/MarkdownProgramminginSwift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/2021/MarkdownProgramminginSwift.png -------------------------------------------------------------------------------- /HelloWorld.swift: -------------------------------------------------------------------------------- 1 | print("Hello world") -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://img.shields.io/badge/semgrep-security-green.svg)](https://semgrep.dev/) 2 | 3 | Swift 开源精选 4 | === 5 |   自 2014年 WWDC 发布 Swift 语言以来,[本项目](https://github.com/ipader/SwiftGuide/blob/master/2014%20letter.md) 一直致力于将主流 Swift 中文学习、开发资源汇集于此,并且尽力紧密地跟踪、甄选优秀 Swift 开源项目,以方便开发者快速获得并使用。考虑 Swift 已经正式发布超过四年半(更无力管理维护海量的 Swift 学习资源),因此,后续本项目将专注于 Swift 开源精选资源方向(项目及应用架构,开发方法和工具)进行维护、更新,内容的呈现或展示形式将着重于思维导图。而相对偏重于 Swift 初学者的旧有文档 [Swift 语言指南](https://github.com/ipader/SwiftGuide/blob/master/README20181213.md) 将不再进一步更新、维护。项目名称变更为 Swift 开源精选,库名由原先的 SwiftGuide 改为 awesome-swift。后续更新、维护的文档如下: 6 | 7 | * Swift 开源项目精选导图 8 | > 这份文档主要基于微博 @SwiftLanguage 跟踪过活跃于 Swift 语言领域的那些 GitHub 开源项目,顺便也是对于过去几年关注的开源项目进行一次系统化梳理。尝试整理出一份相对结构化且精练的 Swift 开源项目参考知识库,它将主要以思维导图形式呈现。[详见……](2019/OpenSourceforSwift-Classification.md)   9 | 10 | ![](2019/OpenSourceforSwift-Classification.png?raw=true) 11 | 12 | * Swift 开源项目精选 - 应用架构角度 13 | > 基于[Swift 开源项目精选导图](2019/OpenSourceforSwift-Classification.md),以应用架构角度出发继续甄选并“精分”。筛选、介定方法更偏重于构建应用时,项目在分类中起到的作用权重,可持续性权重,并部分算上开发者影响力。尝试持续地完善一份不那么杂乱无章(也许还比较好用)的 Swift 开源子集。[详见……](2019/OpenSourceforSwift-ApplicationArchitecture.md)  14 | 15 | ![](2019/OpenSourceforSwift-ApplicationArchitecture.png?raw=true) 16 | 17 | * Swift 开源项目团队介绍 18 | > 介绍活跃于开源社区优秀的项目团队以及参与到 Swift 项目的公司或组织。[详见……](2019/SwiftDevelopmentTeam.md)  19 | 20 | * Swift 知名开发者介绍 21 | > 介绍活跃于开源社区知名的开发者及其作品。[详见……](2019/SwiftDevelopers.md)  22 | 23 | * 近期分享和收录 Markdown Programming in Swift 24 | 25 | ![](2021/MarkdownProgramminginSwift.png?raw=true) 26 | 27 | 推荐:VPS 个人一直坚持使用 [Vultr](https://www.vultr.com/?ref=7229348) 。 28 | -------------------------------------------------------------------------------- /archive/getting-started.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # Swift 入门指引 4 | [@SwiftLanguage](http://weibo.com/swiftlanguage) 更新于 2016-3-10,完整文档详见 GitHub 《[Swift 语言指南](https://github.com/ipader/SwiftGuide/README.md)》 5 | 6 | --- 7 | 8 | > 以官方文档为基础结合已有中译版,整了一份简版 Swift 入门指引。 9 | 10 | 苹果为 Swift 开发者提供的[官方文档入口](https://developer.apple.com/swift/),包括 [概述](https://developer.apple.com/swift/),[博客](https://developer.apple.com/swift/blog/)([中译镜像](https://github.com/ipader/SwiftGuide/tree/master/mirror/Swift%20Blog%20-%20Apple%20Developer))及 [开发资源](https://developer.apple.com/swift/resources/)。其中以下几份文档(Swift 2.1)为入门级必备([iBooks 版](https://itunes.apple.com/us/book-series/swift-programming-series/id888896989?mt=11)): 11 | 12 | * [Swift Programming Language](https://developer.apple.com/swift/)([中文版](http://gg.swiftguide.cn)|[PDF 版](http://wiki.jikexueyuan.com/download/swift/pdf/) By [SwiftGG翻译组](http://weibo.com/swiftguide)) 13 | 14 | * [Start Developing iOS Apps](https://developer.apple.com/swift/resources/) 15 | * [Using Swift with Cocoa and Objective-C](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/index.html)([中文版](https://github.com/CocoaChina-editors/Welcome-to-Swift/blob/master/UsingSwiftwithCocoaandObjective-C%E4%B8%AD%E6%96%87%E6%89%8B%E5%86%8C.md) By [@CocoaChina](http://weibo.com/cocoachina)) 16 | 17 | 苹果同时也维护着相应 Beta 版(Swift 2.2)文档:[Swift Programming Language](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html),[Start Developing iOS Apps](https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/index.html),[Using Swift with Cocoa and Objective-C](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/index.html)。 18 | 19 | 学习实践的角度,标准库示例代码 [Swift Standard Library.playground](https://developer.apple.com/sample-code/swift/downloads/Standard-Library.zip) 是很棒的学习伴侣。 20 | 21 | 教程方面,苹果力荐了斯坦福课程 [Stanford University: Developing iOS 8 Apps with Swift](https://itunes.com/StanfordSwift)([中文字幕版](http://open.163.com/special/opencourse/ios8.html) By [@网易公开课](http://weibo.com/163open)) 22 | 23 | 除以上所涉及入门级文档,[iOS Developer Library](https://developer.apple.com/library/ios/navigation/) 还为开发者提供了更庞大、系统化的开发文档支持。 24 | 25 | 以下列举了几份已有第三方中文翻译文档: 26 | 27 | * [App Extension Programming Guide](https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/index.html)([中译镜像](https://github.com/ipader/SwiftGuide/tree/master/mirror/App%20Extension%20Programming%20Guide)) 28 | * [iOS Human Interface Guidelines](https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/index.html)([中文版](https://isux.tencent.com/?s=iOS+9+%E4%BA%BA%E6%9C%BA%E7%95%8C%E9%9D%A2%E6%8C%87%E5%8D%97)|[PDF 版](http://ixdc.org/2016/files/ISUX[%E8%AF%91]iOS9%20human%20Interface%20Guideline.pdf) By [@腾讯ISUX](http://weibo.com/txisux)) 29 | * [HomeKit Developer Guide](https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/HomeKitDeveloperGuide/Introduction/Introduction.html)([中文版](http://www.cocoachina.com/ios/20150324/11411.html) By [@CocoaChina](http://weibo.com/cocoachina)) 30 | 31 | 对于 Swift 开源及跨平台开发的同学,可以关注 [swift.org](https://swift.org/) 32 | -------------------------------------------------------------------------------- /archive/iT-bg-854X400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/archive/iT-bg-854X400.png -------------------------------------------------------------------------------- /archive/platforms.md: -------------------------------------------------------------------------------- 1 | ## 开放平台 2 | _开放平台相对于 Swift 语言更具战略意义,这是开发者不得不面对的挑战。也是苹果新一代创新应用的催化剂。通过 Extension 达成应用之间的协同及通讯,这是对生态内应用开放的基础。让我更期待的是,Extension 在 Safari Action 上实现及支持,这是实现平台开放及跨平台应用最简单直接的方案。_ 3 | 4 | ### 目录 5 | * [1. 文档](#open_doc) 6 | * [2. 示例项目](#open_examples) 7 | * [3. 实用资源](#open_utilities) 8 | 9 | 10 | ### 1. 文档 11 | * [谈谈 iOS 8 和 OS X 10.10 的 Extension](http://imtx.me/archives/1898.html):"我个人认为这是 iOS 和 OS X 发展至今非常具有里程碑意义的一处改进,甚至比 UI 上的改变重要的多。我想简单地谈一下为何 Extensions 这么重要。" By [@图拉鼎](http://weibo.com/tualatrix) 12 | * [App Extensions学习笔记](http://wangzz.github.io/blog/2014/06/23/WWDC 2014zhi-app-extensionsxue-xi-bi-ji/):"系统中支持extension的区域,extension的类别也是据此区分的,iOS上共有 Today,Share,Action,Photo,Editing,Storage Provider,Custom keyboard 几种,其中 Today 中的 extension 又被称为 widget" By [@foogry](http://weibo.com/foogry) 13 | * [详解 iOS 8 的动作扩展](http://sspai.com/26016):"动作扩展的出现,意味着用户能在应用程序间的切换上花更少的时间和精力,这是相当大的进步。" 译文作者:[@米斯特苹果](http://weibo.com/210100461), 原文:[《Action extensions in iOS 8: Explained》](http://www.imore.com/action-extensions-ios-8-explained) 14 | * [苹果iBeacon让智能家居走进现实](http://digi.tech.qq.com/a/20140715/008974.htm):"iBeacon 最初发布的时候是一个协议,苹果希望利用这一协议取代 NFC 技术。iBeacon 技术则可以利用支持该技术的设备创建一个信号区域,相当于实现了地理围栏的功能,当其他支持 iBeacon 技术的设备如手机进入这一区域时,对应的应用程序就会自动连接这一区域的信号网络,或者对用户进行提示" 15 | * [Android L/iOS8/WP8.1 到底谁抄了谁?](http://soft.zol.com.cn/465/4659548_all.html):"我们发现在三场发布会上都听到了观众这样的声音:“无耻抄袭!抄了谁谁谁的!!”,这种事情似乎说也说不清,所以我们决定把这三个新系统放到一起来看看,然后再下结论。" 16 | * [Google 开源字体 Noto Sans CJK 简介](http://weibo.com/1418521581/BdXqMkHbq#_rnd1405693766206)(By [@洋气书生](http://weibo.com/ben7th)):这篇 Noto Sans CJK(CJK: Chinese, Japan, Korean) 字体普及文章简单、直接、专业,且易于理解。作者友善地提供了一份[本地下载](http://pan.baidu.com/s/1mg9M8Gg),赞一个!P.S. 毫无疑问,新版 Android 上会很快支持,iOS/Mac/Windows 上也会尽快缺省支持吗? 17 | * [iOS 8 与 OS X 10.10 间的自由联动:Handoff 使用详解](http://sspai.com/27277):有关如何开启和使用 Handoff,文章做了比较详细的介绍,并以 Safari 为例进行了使用说明。作者([@iTumbledSea](http://weibo.com/kitevolant))撰写此文的英文参考[《How to use Handoff with iOS 8 and Yosemite》](http://www.macworld.com/article/2825972/how-to-use-handoff-with-ios-8-and-yosemite.html) 18 | * [Web Apps](http://ignorethecode.net/blog/2014/11/04/web_apps/):这篇新鲜文章较全面论述了Native应用和Web应用。有关Native应用和Web应用,最近争论渐少,原因应该有两点:1. 无论Apple还是 Google,Native 应用才是其生态的基础,过于激进推动,将损害其固有商业利益。而微软的话语权严重受阻于移动系统的发展;2. 基于 Web View 的混合应用基本满足应用跨平台性 。 19 | * [Back to Mac - XPC by objc.io](http://objccn.io/issue-14-4/):XPC 是 OS X 下的一种 IPC (进程间通信) 技术, 它实现了权限隔离, 使得 App Sandbox 更加完备。 20 | * [MATERIAL DESIGN设计规范学习心得](http://www.uisdc.com/material-design-learning-experience):“编者按:自学笔记就该这么做!今天分享[@東門王三](http://weibo.com/loafer117) 同学关于 Material Design 的自学成果,他的学习笔记严谨有序,触类旁通,从 Material Design 到其他系统的设计规范都有所研究,还认真地做了思维导图,同学们可以边学习边借鉴他的自学方法,一举两得呦。By [@优秀网页设计](http://weibo.com/uidesign)” 21 | * [聊聊移动端跨平台开发的各种技术](http://fex.baidu.com/blog/2015/05/cross-mobile/):文章研究很全面、很透彻。赞同林老师建议。实在需要时,iOS/WKWebView 和 Android/WebView 可以做为跨平台衔接技术。“[@林泰前](http://weibo.com/limtc):目前看到对跨平台开发最完整的文章,对这方面有兴趣的朋友建议一读。不过这是我的建议:好好学习 Swift/iOS 和 Java/Android,没有任何跨平台方案比得上真正原生的方案。” 22 | 23 | ### 2. 示例项目 24 | * [ViewSource(Swift+Objective-C)](https://github.com/dominic/ViewSource):通过 iOS 8 Extension 实现让 Web 工程师喜欢的"显示网页源代码"。 25 | * [indragiek/Unzip](https://github.com/indragiek/Unzip):浏览ZIP文件的 iOS 8 Action 扩展。 26 | 27 | ### 3. 实用资源 28 | * [google/material-design-icons](https://github.com/google/material-design-icons) :对于喜欢 Material Design 风格的同学,这是难得好资源。Google 提供了极为完整的各种图标(包含 iOS 各种精度及 SVG)设计资源。 29 | * [全唐诗数据库](https://github.com/hxgdzyuyi/tang_poetry):SQLite 数据库脚本。 30 | -------------------------------------------------------------------------------- /archive/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/archive/twitter.png -------------------------------------------------------------------------------- /archive/v2ray-linux-64.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/archive/v2ray-linux-64.zip -------------------------------------------------------------------------------- /archive/weibo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/archive/weibo.png -------------------------------------------------------------------------------- /archive/weixin-swiftlanguage.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/archive/weixin-swiftlanguage.jpg -------------------------------------------------------------------------------- /mirror/App Extension Programming Guide/README.md: -------------------------------------------------------------------------------- 1 | 应用扩展编程指南 2 | === 3 | 这是苹果官方文档《[App Extension Programming Guide](https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/index.html)》的非官方中文镜像。译文均来自网友翻译。这里仅记录文章链接。 4 | 5 | ### 应用扩展要点(App Extension Essentials) 6 | 译文 | 译者 | 原文 7 | ------------ | ------------- | ------------- 8 | [应用扩展如何工作](http://www.devtalking.com/articles/understand-how-an-extension-works/) | [@DevTalking](http://weibo.com/jacefu) | [Understand How an Extension Works](https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensionOverview.html#//apple_ref/doc/uid/TP40014214-CH2-SW2) 9 | [开发应用扩展](http://www.devtalking.com/articles/creating-an-app-extension/) | [@DevTalking](http://weibo.com/jacefu) | [Creating an App Extension](https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensionCreation.html#//apple_ref/doc/uid/TP40014214-CH5-SW1) 10 | [APP扩展提高你的应用影响力](http://www.devtalking.com/articles/app-extensions-increase-your-impact/) | [@DevTalking](http://weibo.com/jacefu) | [App Extensions Increase Your Impact](https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/index.html#//apple_ref/doc/uid/TP40014214-CH20-SW1) 11 | [常见问题的处理方案](http://www.devtalking.com/articles/handling-common-scenarios/) | [@DevTalking](http://weibo.com/jacefu) | [Handling Common Scenarios](https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple_ref/doc/uid/TP40014214-CH21-SW1) 12 | 13 | ### 应用扩展类型(App Extension Types) 14 | 译文 | 译者 / 校对 | 原文 15 | ------------ | ------------- | ------------- 16 | [Today](http://www.cocoachina.com/ios/20140904/9527.html)|[@CocoaChina](http://weibo.com/cocoachina) / [唧唧歪歪](http://weibo.com/p/1005051710992635)|[Today](https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/NotificationCenter.html#//apple_ref/doc/uid/TP40014214-CH11-SW1) 17 | [Share](http://www.cocoachina.com/ios/20140923/9728.html)|[@CocoaChina](http://weibo.com/cocoachina) / [张国鹏](http://blog.csdn.net/guopengzhang/article)|[Share](http://www.cocoachina.com/ios/20140923/9728.html) 18 | [Action](http://www.cocoachina.com/ios/20140929/9800.html)|[@CocoaChina](http://weibo.com/cocoachina)|[Action](https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/Services.html#//apple_ref/doc/uid/TP40014214-CH13-SW1) 19 | [照片编辑](http://www.cocoachina.com/ios/20141015/9918.html)|[@CocoaChina](http://weibo.com/cocoachina)|[Photo Editing]() 20 | [Finder同步](http://www.jianshu.com/p/359e064ffe20)|[星夜暮晨](http://weibo.com/u/3227937731)|[Finder Sync](https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/Finder.html#//apple_ref/doc/uid/TP40014214-CH15-SW1) 21 | [文档提供](http://www.jianshu.com/p/2f45696b812b)|[星夜暮晨](http://weibo.com/u/3227937731)|[Document Provider](https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/FileProvider.html#//apple_ref/doc/uid/TP40014214-CH18-SW1) 22 | [第三方输入法](http://www.jianshu.com/p/987dfa9f3baf)|[星夜暮晨](http://weibo.com/u/3227937731)|[Custom Keyboard](https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/Keyboard.html#//apple_ref/doc/uid/TP40014214-CH16-SW7) 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /mirror/iOS Human Interface Guidelines/README.md: -------------------------------------------------------------------------------- 1 | iOS人机交互指南 2 | === 3 | * iOS Human Interface Guidelines:[在线版(英文)](https://developer.apple.com/library/ios/documentation/userexperience/conceptual/mobilehig/index.html#//apple_ref/doc/uid/TP40006556-CH66-SW1), [iBooks版(英文)](https://itunes.apple.com/us/book/ios-human-interface-guidelines/id877942287?mt=11) 4 | * 非官方中译版 5 | 6 | 译文 | 译者 | 原文 7 | ------------ | ------------- | ------------- 8 | [UI设计基础](http://isux.tencent.com/ios8-human-interface-guidelines.html) |[@腾讯ISUX](http://weibo.com/txisux)| [Designing for iOS](https://developer.apple.com/library/ios/documentation/userexperience/conceptual/mobilehig/index.html#//apple_ref/doc/uid/TP40006556-CH66-SW1) 9 | [设计策略](http://isux.tencent.com/ios8-human-interface-guidelines-design-strategies.html) |[@腾讯ISUX](http://weibo.com/txisux)| [Design Principles](https://developer.apple.com/library/ios/documentation/userexperience/conceptual/mobilehig/Principles.html#//apple_ref/doc/uid/TP40006556-CH4-SW1) 10 | 11 | * iOS 7人机交互指南(旧版):[中译汇总](http://www.cocoachina.com/industry/20130628/6502.html) 12 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // GSwift 4 | // 5 | // Created by Lim Thye Chean on 04/07/14. 6 | // Copyright (c) 2014年 Virtual GS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | var window: UIWindow? 14 | 15 | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool { 16 | // Override point for customization after application launch. 17 | return true 18 | } 19 | 20 | func applicationWillResignActive(application: UIApplication) { 21 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 22 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 23 | } 24 | 25 | func applicationDidEnterBackground(application: UIApplication) { 26 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 27 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 28 | } 29 | 30 | func applicationWillEnterForeground(application: UIApplication) { 31 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 32 | } 33 | 34 | func applicationDidBecomeActive(application: UIApplication) { 35 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 36 | } 37 | 38 | func applicationWillTerminate(application: UIApplication) { 39 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 40 | } 41 | 42 | 43 | } 44 | 45 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/GSPicsView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Apple IIGS Pictures 3 | // GSwift 4 | // 5 | // Created by Lim Thye Chean on 05/06/14. 6 | // Copyright (c) 2014年 Virtual GS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | // Picture 12 | 13 | class Picture { 14 | let width = 240 15 | let height = 150 16 | let name:String 17 | var x, y, speed:Int 18 | 19 | init(file:String) { 20 | name = file 21 | x = random() % (WIDTH - width) 22 | y = random() % (HEIGHT / 2) + HEIGHT 23 | speed = -random() % 4 - 2 24 | } 25 | 26 | func move() { 27 | drawImage(name, x, y) 28 | y += speed 29 | 30 | // Reset picture when moved to top 31 | 32 | if speed < 0 && y < -height { 33 | x = random() % (WIDTH - width) 34 | y = HEIGHT 35 | } 36 | else if speed > 0 && y > HEIGHT { 37 | x = random() % (WIDTH - width) 38 | y = -height 39 | } 40 | } 41 | } 42 | 43 | var pictures = [Picture]() 44 | 45 | class GSPicsView: GSView { 46 | 47 | // Setup 48 | 49 | required init(coder aDecoder:NSCoder) { 50 | super.init(coder: aDecoder) 51 | 52 | refresh(rate:30) 53 | 54 | for name in ["flower.jpg", "fruits.jpg", "girl.jpg", "pam.jpg", "redhood.jpg", "taj.jpg"] { 55 | pictures.append(Picture(file:name)) 56 | } 57 | } 58 | 59 | // Main 60 | 61 | override func drawRect(screen:CGRect) { 62 | super.drawRect(screen) 63 | 64 | setColor(LIGHTBLUE) 65 | drawText("GSwift", 10, 10, size:32) 66 | 67 | for pic in pictures { 68 | pic.move() 69 | } 70 | } 71 | 72 | // Handle gesture 73 | 74 | override func touchesBegan(touches:NSSet, withEvent event:UIEvent) { 75 | if touches.anyObject() as? UITouch != nil { 76 | for touch:AnyObject in touches { 77 | let location = touch.locationInView(self) 78 | let x = Int(location.x) 79 | let y = Int(location.y) 80 | 81 | for pic in pictures { 82 | if x > pic.x && x < (pic.x + pic.width) && y > pic.y && y < (pic.y + pic.height) { 83 | pic.speed *= -1; 84 | } 85 | } 86 | } 87 | } 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/HiresView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Hires Demo 3 | // GSwift 4 | // 5 | // Created by Lim Thye Chean on 05/06/14. 6 | // Copyright (c) 2014年 Virtual GS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class HiresView: GSView { 12 | 13 | // Main 14 | 15 | override func drawRect(screen:CGRect) { 16 | super.drawRect(screen) 17 | 18 | // Draw gradient background 19 | 20 | clearVGradientScreen(fromColor:BLACK, toColor:BLUE) 21 | 22 | // Draw lines 23 | 24 | setColor(LIGHTBLUE) 25 | 26 | for i in 0...(WIDTH / 10) { 27 | let x = i * 10 28 | let y = x * HEIGHT / WIDTH 29 | 30 | drawLine(0, y, to:x, HEIGHT) 31 | drawLine(x, 0, to:WIDTH, y) 32 | } 33 | 34 | // Draw stars 35 | 36 | for i in 0...99 { 37 | setColor(red:Float(random() % 255) / 255, green:Float(random() % 255) / 255, blue:Float(random() % 255) / 255) 38 | paintCircle(random() % WIDTH, random() % HEIGHT, radius:2) 39 | } 40 | 41 | // Draw shapes 42 | 43 | let width = WIDTH - 100 44 | let height = HEIGHT - 80 45 | 46 | for i in 0...2 { 47 | 48 | // Paint rectangles 49 | 50 | setColor(red:Float(random() % 255) / 255, green:Float(random() % 255) / 255, blue:Float(random() % 255) / 255) 51 | paintRect(random() % width, random() % height, width:100, height:80) 52 | 53 | // Paint ovals 54 | 55 | setColor(red:Float(random() % 255) / 255, green:Float(random() % 255) / 255, blue:Float(random() % 255) / 255) 56 | paintOval(random() % width, random() % height, width:100, height:80) 57 | 58 | // Paint rounded rectangles 59 | 60 | setColor(red:Float(random() % 255) / 255, green:Float(random() % 255) / 255, blue:Float(random() % 255) / 255) 61 | paintRoundedRect(random() % width, random() % height, width:100, height:80, cornerRadius:20) 62 | 63 | // Paint gradient rectangles 64 | 65 | paintHGradientRect(random() % width, random() % height, width:100, height:80, fromColor:getColor(random() % COLOR_MAX), toColor:getColor(random() % COLOR_MAX)) 66 | 67 | paintVGradientRect(random() % width, random() % height, width:100, height:80, fromColor:getColor(random() % COLOR_MAX), toColor:getColor(random() % COLOR_MAX)) 68 | 69 | paintGradientCircle(random() % width, random() % height, radius:50, fromColor:getColor(random() % COLOR_MAX), toColor:getColor(random() % COLOR_MAX)) 70 | } 71 | 72 | // Write text 73 | 74 | setColor(WHITE) 75 | drawText("GSwift", 40, HEIGHT - 100, font:"Chalkduster", size: 64) 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "size" : "60x60", 15 | "idiom" : "iphone", 16 | "filename" : "Icon120.png", 17 | "scale" : "2x" 18 | }, 19 | { 20 | "idiom" : "ipad", 21 | "size" : "29x29", 22 | "scale" : "1x" 23 | }, 24 | { 25 | "idiom" : "ipad", 26 | "size" : "29x29", 27 | "scale" : "2x" 28 | }, 29 | { 30 | "idiom" : "ipad", 31 | "size" : "40x40", 32 | "scale" : "1x" 33 | }, 34 | { 35 | "idiom" : "ipad", 36 | "size" : "40x40", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "size" : "76x76", 41 | "idiom" : "ipad", 42 | "filename" : "Icon76.png", 43 | "scale" : "1x" 44 | }, 45 | { 46 | "size" : "76x76", 47 | "idiom" : "ipad", 48 | "filename" : "Icon152.png", 49 | "scale" : "2x" 50 | } 51 | ], 52 | "info" : { 53 | "version" : 1, 54 | "author" : "xcode" 55 | } 56 | } -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/Images.xcassets/AppIcon.appiconset/Icon120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift-2/Demo/Images.xcassets/AppIcon.appiconset/Icon120.png -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/Images.xcassets/AppIcon.appiconset/Icon152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift-2/Demo/Images.xcassets/AppIcon.appiconset/Icon152.png -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/Images.xcassets/AppIcon.appiconset/Icon76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift-2/Demo/Images.xcassets/AppIcon.appiconset/Icon76.png -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "orientation" : "portrait", 20 | "idiom" : "ipad", 21 | "extent" : "full-screen", 22 | "minimum-system-version" : "7.0", 23 | "scale" : "1x" 24 | }, 25 | { 26 | "orientation" : "landscape", 27 | "idiom" : "ipad", 28 | "extent" : "full-screen", 29 | "minimum-system-version" : "7.0", 30 | "scale" : "1x" 31 | }, 32 | { 33 | "orientation" : "portrait", 34 | "idiom" : "ipad", 35 | "extent" : "full-screen", 36 | "minimum-system-version" : "7.0", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "orientation" : "landscape", 41 | "idiom" : "ipad", 42 | "extent" : "full-screen", 43 | "minimum-system-version" : "7.0", 44 | "scale" : "2x" 45 | } 46 | ], 47 | "info" : { 48 | "version" : 1, 49 | "author" : "xcode" 50 | } 51 | } -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/Images.xcassets/first.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "first.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "first@2x.png" 12 | } 13 | ], 14 | "info" : { 15 | "version" : 1, 16 | "author" : "xcode" 17 | } 18 | } -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/Images.xcassets/first.imageset/first.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift-2/Demo/Images.xcassets/first.imageset/first.png -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/Images.xcassets/first.imageset/first@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift-2/Demo/Images.xcassets/first.imageset/first@2x.png -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/Images.xcassets/second.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "second.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "second@2x.png" 12 | } 13 | ], 14 | "info" : { 15 | "version" : 1, 16 | "author" : "xcode" 17 | } 18 | } -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/Images.xcassets/second.imageset/second.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift-2/Demo/Images.xcassets/second.imageset/second.png -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/Images.xcassets/second.imageset/second@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift-2/Demo/Images.xcassets/second.imageset/second@2x.png -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.virtualgs.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UIStatusBarHidden 32 | 33 | UIStatusBarTintParameters 34 | 35 | UINavigationBar 36 | 37 | Style 38 | UIBarStyleDefault 39 | Translucent 40 | 41 | 42 | 43 | UISupportedInterfaceOrientations 44 | 45 | UIInterfaceOrientationLandscapeLeft 46 | UIInterfaceOrientationLandscapeRight 47 | 48 | UIViewControllerBasedStatusBarAppearance 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/LoresView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Lores Demo 3 | // GSwift 4 | // 5 | // Created by Lim Thye Chean on 05/06/14. 6 | // Copyright (c) 2014年 Virtual GS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class LoresView: GSView { 12 | 13 | // Main 14 | 15 | override func drawRect(screen:CGRect) { 16 | super.drawRect(screen) 17 | 18 | clearScreen() 19 | 20 | // Draw lines 21 | 22 | setColor(BLUE) 23 | plotHLine(0, 39, at:19) 24 | 25 | setColor(GREEN) 26 | plotVLine(0, 39, at:19) 27 | 28 | // Draw dots 29 | 30 | setColor(RED) 31 | for i in 0...39 { 32 | plot(i, i) 33 | } 34 | 35 | setColor(YELLOW) 36 | for i in 0...39 { 37 | plot(39 - i, i) 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/PaintView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Paint Demo 3 | // GSwift 4 | // 5 | // Created by Lim Thye Chean on 05/06/14. 6 | // Copyright (c) 2014年 Virtual GS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | // Star 12 | 13 | class Point { 14 | var x, y, shape, color, size:Int 15 | 16 | init(x:Int, y:Int, shape:Int, color:Int, size:Int) { 17 | self.x = x 18 | self.y = y 19 | self.shape = shape 20 | self.color = color 21 | self.size = size 22 | } 23 | } 24 | 25 | class PaintView: GSView { 26 | var draw = false 27 | var shape = 0 28 | var points = [Point]() 29 | 30 | // Setup 31 | 32 | required init(coder aDecoder:NSCoder) { 33 | super.init(coder: aDecoder) 34 | } 35 | 36 | // Main 37 | 38 | override func drawRect(screen:CGRect) { 39 | super.drawRect(screen) 40 | 41 | clearScreen() 42 | 43 | for point in points { 44 | let x = point.x 45 | let y = point.y 46 | let size = point.size 47 | 48 | setColor(point.color) 49 | 50 | switch (point.shape) { 51 | case 0: 52 | paintCircle(x, y, radius:size) 53 | 54 | case 1: 55 | frameCircle(x, y, radius:size) 56 | 57 | case 2: 58 | paintRect(x - size, y - size, width:size * 2, height:size * 2) 59 | 60 | case 3: 61 | frameRect(x - size, y - size, width:size * 2, height:size * 2) 62 | 63 | case 4: 64 | drawLine(x - size, y - size, to:x + size, y + size) 65 | 66 | case 5: 67 | drawLine(x + size, y - size, to:x - size, y + size) 68 | 69 | case 6: 70 | paintHGradientRect(x, y, width:size * 2, height:size * 2, fromColor:getColor(point.color), toColor:BLACK) 71 | 72 | case 7: 73 | paintVGradientRect(x, y, width:size * 2, height:size * 2, fromColor:getColor(point.color), toColor:BLACK) 74 | 75 | case 8: 76 | paintGradientCircle(x, y, radius:size, fromColor:getColor(point.color), toColor:BLACK) 77 | 78 | case 9: 79 | drawImage("apple", x, y, width:size * 2, height:size * 2) 80 | 81 | default: 82 | openPoly(size:1); 83 | moveTo(x - size, y); 84 | addLine(x, y - size); 85 | addLine(x + size, y); 86 | addLine(x, y + size); 87 | addLine(x - size, y); 88 | closePoly(); 89 | } 90 | } 91 | } 92 | 93 | // Handle touches 94 | 95 | override func touchesBegan(touches:NSSet, withEvent event:UIEvent) { 96 | if touches.anyObject() as? UITouch != nil { 97 | if touches.count > 1 { 98 | draw = false 99 | points.removeAll() 100 | 101 | update() 102 | } 103 | else { 104 | draw = true 105 | shape = random() % 11 106 | let location = touches.anyObject().locationInView(self) 107 | let x = Int(location.x) 108 | let y = Int(location.y) 109 | 110 | points.append(Point(x:x, y:y, shape:shape, color:random() % 15 + 1, size:random() % 4 + 6)) 111 | 112 | update(x:x - 10, y:y - 10, width:x + 20, height:y + 20) 113 | } 114 | } 115 | } 116 | 117 | override func touchesMoved(touches:NSSet, withEvent event:UIEvent) { 118 | if touches.anyObject() as? UITouch != nil { 119 | if touches.count > 1 { 120 | draw = false 121 | points.removeAll() 122 | 123 | update() 124 | } 125 | else if draw { 126 | let location = touches.anyObject().locationInView(self) 127 | let x = Int(location.x) 128 | let y = Int(location.y) 129 | points.append(Point(x:x, y:y, shape:shape, color:random() % 15 + 1, size:random() % 4 + 6)) 130 | 131 | update(x:x - 10, y:y - 10, width:x + 20, height:y + 20) 132 | } 133 | } 134 | } 135 | } 136 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/SpaceView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Space 3 | // GSwift 4 | // 5 | // Created by Lim Thye Chean on 05/06/14. 6 | // Copyright (c) 2014年 Virtual GS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | // Star 12 | 13 | class Star { 14 | var x, y, color, speed: Int 15 | 16 | init() { 17 | x = random() % WIDTH 18 | y = random() % HEIGHT 19 | color = random() % COLOR_MAX 20 | speed = random() % 3 + 2 21 | } 22 | 23 | func move() { 24 | setColor(color) 25 | paintCircle(x, y, radius:speed - 1) 26 | 27 | y += speed 28 | if (y > HEIGHT) { 29 | x = random() % WIDTH 30 | y = 0 31 | } 32 | } 33 | } 34 | 35 | // Ship 36 | 37 | class Ship { 38 | let size = WIDTH / 12 39 | var x = (WIDTH - WIDTH / 12) / 2, y = HEIGHT - WIDTH / 6 40 | } 41 | 42 | // Setup 43 | 44 | let ship = Ship() 45 | var stars = [Star]() 46 | 47 | class SpaceView: GSView { 48 | 49 | // Setup 50 | 51 | required init(coder aDecoder:NSCoder) { 52 | super.init(coder: aDecoder) 53 | 54 | for i in 0...99 { 55 | stars.append(Star()) 56 | } 57 | 58 | refresh(rate: 20) 59 | } 60 | 61 | // Main 62 | 63 | override func drawRect(screen:CGRect) { 64 | super.drawRect(screen) 65 | 66 | for i in 0...99 { 67 | stars[i].move() 68 | } 69 | 70 | drawImage("ship", ship.x, ship.y, width:ship.size, height:ship.size) 71 | } 72 | 73 | // Handle touches 74 | 75 | override func touchesBegan(touches:NSSet, withEvent event:UIEvent) { 76 | if touches.anyObject() as? UITouch != nil { 77 | for touch:AnyObject in touches { 78 | let location = touch.locationInView(self) 79 | let x = Int(location.x) 80 | let y = Int(location.y) 81 | 82 | ship.x = x - ship.size / 2 83 | ship.y = y - 40 - ship.size 84 | } 85 | } 86 | } 87 | 88 | override func touchesMoved(touches:NSSet, withEvent event:UIEvent) { 89 | if touches.anyObject() as? UITouch != nil { 90 | for touch:AnyObject in touches { 91 | let location = touch.locationInView(self) 92 | let x = Int(location.x) 93 | let y = Int(location.y) 94 | 95 | ship.x = x - ship.size / 2 96 | ship.y = y - 40 - ship.size 97 | } 98 | } 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // GSwift 4 | // 5 | // Created by Lim Thye Chean on 04/07/14. 6 | // Copyright (c) 2014年 Virtual GS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class BallsController: UIViewController { 12 | override func viewDidLoad() { 13 | super.viewDidLoad() 14 | // Do any additional setup after loading the view, typically from a nib. 15 | } 16 | 17 | override func didReceiveMemoryWarning() { 18 | super.didReceiveMemoryWarning() 19 | // Dispose of any resources that can be recreated. 20 | } 21 | 22 | 23 | } 24 | 25 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/apple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift-2/Demo/apple.png -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/gspics/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift-2/Demo/gspics/background.jpg -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/gspics/flower.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift-2/Demo/gspics/flower.jpg -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/gspics/fruits.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift-2/Demo/gspics/fruits.jpg -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/gspics/girl.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift-2/Demo/gspics/girl.jpg -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/gspics/pam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift-2/Demo/gspics/pam.jpg -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/gspics/redhood.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift-2/Demo/gspics/redhood.jpg -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/gspics/taj.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift-2/Demo/gspics/taj.jpg -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/ship.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift-2/Demo/ship.png -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/Demo/space.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift-2/Demo/space.png -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/DemoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.virtualgs.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/DemoTests/TabbedDemoTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TabbedDemoTests.swift 3 | // TabbedDemoTests 4 | // 5 | // Created by 林泰前 on 04/07/14. 6 | // Copyright (c) 2014年 Virtual GS. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | class TabbedDemoTests: XCTestCase { 12 | 13 | override func setUp() { 14 | super.setUp() 15 | // Put setup code here. This method is called before the invocation of each test method in the class. 16 | } 17 | 18 | override func tearDown() { 19 | // Put teardown code here. This method is called after the invocation of each test method in the class. 20 | super.tearDown() 21 | } 22 | 23 | func testExample() { 24 | // This is an example of a functional test case. 25 | XCTAssert(true, "Pass") 26 | } 27 | 28 | func testPerformanceExample() { 29 | // This is an example of a performance test case. 30 | self.measureBlock() { 31 | // Put the code you want to measure the time of here. 32 | } 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/GSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/GSwift.xcodeproj/project.xcworkspace/xcuserdata/limtc.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift-2/GSwift.xcodeproj/project.xcworkspace/xcuserdata/limtc.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/GSwift.xcodeproj/project.xcworkspace/xcuserdata/limtc.xcuserdatad/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges 6 | 7 | SnapshotAutomaticallyBeforeSignificantChanges 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/GSwift.xcodeproj/xcuserdata/limtc.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/GSwift.xcodeproj/xcuserdata/limtc.xcuserdatad/xcschemes/Demo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 49 | 50 | 51 | 52 | 61 | 62 | 68 | 69 | 70 | 71 | 72 | 73 | 79 | 80 | 86 | 87 | 88 | 89 | 91 | 92 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/GSwift.xcodeproj/xcuserdata/limtc.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | Demo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 939B0F8C19666A5F0018279C 16 | 17 | primary 18 | 19 | 20 | 939B0FA019666A5F0018279C 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift-2/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift-2/screenshot.png -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift.xcodeproj/project.xcworkspace/xcuserdata/limtc.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift/GSwift.xcodeproj/project.xcworkspace/xcuserdata/limtc.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift.xcodeproj/xcuserdata/limtc.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift.xcodeproj/xcuserdata/limtc.xcuserdatad/xcschemes/GSwift.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 49 | 50 | 51 | 52 | 61 | 62 | 68 | 69 | 70 | 71 | 72 | 73 | 79 | 80 | 86 | 87 | 88 | 89 | 91 | 92 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift.xcodeproj/xcuserdata/limtc.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | GSwift.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 932A30431941E81400D7E094 16 | 17 | primary 18 | 19 | 20 | 932A30551941E81400D7E094 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // GSwift 4 | // 5 | // Created by 林泰前 on 06/06/14. 6 | // Copyright (c) 2014年 Virtual GS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | 17 | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool { 18 | // Override point for customization after application launch. 19 | return true 20 | } 21 | 22 | func applicationWillResignActive(application: UIApplication) { 23 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 24 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 25 | } 26 | 27 | func applicationDidEnterBackground(application: UIApplication) { 28 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 29 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 30 | } 31 | 32 | func applicationWillEnterForeground(application: UIApplication) { 33 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 34 | } 35 | 36 | func applicationDidBecomeActive(application: UIApplication) { 37 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 38 | } 39 | 40 | func applicationWillTerminate(application: UIApplication) { 41 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 42 | } 43 | 44 | 45 | } 46 | 47 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "ipad", 5 | "size" : "29x29", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "ipad", 10 | "size" : "29x29", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "ipad", 15 | "size" : "40x40", 16 | "scale" : "1x" 17 | }, 18 | { 19 | "idiom" : "ipad", 20 | "size" : "40x40", 21 | "scale" : "2x" 22 | }, 23 | { 24 | "idiom" : "ipad", 25 | "size" : "76x76", 26 | "scale" : "1x" 27 | }, 28 | { 29 | "idiom" : "ipad", 30 | "size" : "76x76", 31 | "scale" : "2x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "ipad", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "1x" 9 | }, 10 | { 11 | "orientation" : "landscape", 12 | "idiom" : "ipad", 13 | "extent" : "full-screen", 14 | "minimum-system-version" : "7.0", 15 | "scale" : "1x" 16 | }, 17 | { 18 | "orientation" : "portrait", 19 | "idiom" : "ipad", 20 | "extent" : "full-screen", 21 | "minimum-system-version" : "7.0", 22 | "scale" : "2x" 23 | }, 24 | { 25 | "orientation" : "landscape", 26 | "idiom" : "ipad", 27 | "extent" : "full-screen", 28 | "minimum-system-version" : "7.0", 29 | "scale" : "2x" 30 | } 31 | ], 32 | "info" : { 33 | "version" : 1, 34 | "author" : "xcode" 35 | } 36 | } -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.virtualgs.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UIStatusBarHidden 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationLandscapeLeft 36 | UIInterfaceOrientationLandscapeRight 37 | 38 | UISupportedInterfaceOrientations~ipad 39 | 40 | UIInterfaceOrientationLandscapeLeft 41 | UIInterfaceOrientationLandscapeRight 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift/Main.swift: -------------------------------------------------------------------------------- 1 | /** 2 | Floating Pictures 3 | **/ 4 | 5 | import UIKit 6 | 7 | // Picture 8 | 9 | class Picture { 10 | let width = 240 11 | let height = 150 12 | let name:String 13 | var x, y, speed:Int 14 | 15 | init(file:String) { 16 | name = file 17 | x = random() % (WIDTH - width) 18 | y = random() % (HEIGHT / 2) + HEIGHT 19 | speed = -random() % 3 - 1 20 | } 21 | 22 | func move() { 23 | drawImage(name, x, y) 24 | y += speed 25 | 26 | // Reset picture when moved to top 27 | 28 | if speed < 0 && y < -height { 29 | x = random() % (WIDTH - width) 30 | y = HEIGHT 31 | } 32 | else if speed > 0 && y > HEIGHT { 33 | x = random() % (WIDTH - width) 34 | y = -height 35 | } 36 | } 37 | } 38 | 39 | // Setup 40 | 41 | var pictures = Picture[]() 42 | 43 | func setup() { 44 | refresh(rate:30) 45 | 46 | for name in ["flower.jpg", "fruits.jpg", "girl.jpg", "pam.jpg", "redhood.jpg", "taj.jpg"] { 47 | pictures += Picture(file:name) 48 | } 49 | } 50 | 51 | // Main 52 | 53 | func main() { 54 | drawImage("background.jpg", 0, 0, width:WIDTH, height:HEIGHT) 55 | 56 | setColor(WHITE) 57 | drawText("GSwift", 10, 10, size:32) 58 | 59 | for pic in pictures { 60 | pic.move() 61 | } 62 | } 63 | 64 | // Manage touches 65 | 66 | func touchDown(x:Int, y:Int) { 67 | for pic in pictures { 68 | if x > pic.x && x < (pic.x + pic.width) && y > pic.y && y < (pic.y + pic.height) { 69 | pic.speed *= -1; 70 | } 71 | } 72 | } 73 | 74 | func touchMove(x:Int, y:Int) {} 75 | func touchUp(x:Int, y:Int) {} 76 | 77 | 78 | 79 | /** 80 | /** 81 | Space 82 | **/ 83 | 84 | // Star 85 | 86 | class Star { 87 | var x, y, color, speed: Int 88 | 89 | init() { 90 | x = random() % WIDTH 91 | y = random() % HEIGHT 92 | color = random() % COLOR_MAX 93 | speed = random() % 3 + 2 94 | } 95 | 96 | func move() { 97 | setColor(color) 98 | paintCircle(x, y, radius:speed - 1) 99 | 100 | y += speed 101 | if (y > HEIGHT) { 102 | x = random() % WIDTH 103 | y = 0 104 | } 105 | } 106 | } 107 | 108 | // Ship 109 | 110 | class Ship { 111 | let size = 80 112 | var x = (WIDTH - 80) / 2, y = HEIGHT - 160 113 | } 114 | 115 | // Setup 116 | 117 | let ship = Ship() 118 | var stars = Star[]() 119 | 120 | func setup() { 121 | for i in 0...99 { 122 | stars += Star() 123 | } 124 | 125 | refresh(rate: 20) 126 | } 127 | 128 | // Main 129 | 130 | func main() { 131 | drawImage("space", 0, 0, width:WIDTH, height:HEIGHT) 132 | 133 | for i in 0...99 { 134 | stars[i].move() 135 | } 136 | 137 | drawImage("ship", ship.x, ship.y, width:ship.size, height:ship.size) 138 | } 139 | 140 | // Manage touches 141 | 142 | func touchDown(x:Int, y:Int) { 143 | ship.x = x - ship.size / 2 144 | ship.y = y - ship.size 145 | } 146 | 147 | func touchMove(x:Int, y:Int) { 148 | ship.x = x - ship.size / 2 149 | ship.y = y - ship.size 150 | } 151 | 152 | func touchUp(x:Int, y:Int) {} 153 | 154 | /** 155 | Text Demo 156 | **/ 157 | 158 | setColor(WHITE) 159 | 160 | for i in 1...10 { 161 | drawText("GSwift", 50 * i, 50 * i, size:32 + i * 4) 162 | } 163 | 164 | /** 165 | Hires Demo 166 | **/ 167 | 168 | // Draw lines 169 | 170 | setColor(random() % (COLOR_MAX - 1) + 1) // Select random color except for Black (1st color) 171 | 172 | for i in 0...(WIDTH / 10) { 173 | let x = i * 10 174 | let y = x * HEIGHT / WIDTH 175 | 176 | drawLine(0, y, to:x, HEIGHT) 177 | drawLine(x, 0, to:WIDTH, y) 178 | } 179 | 180 | // Draw stars 181 | 182 | for i in 0..1000 { 183 | setColor(random() % (COLOR_MAX - 1) + 1) 184 | paintRect(random() % WIDTH, random() % HEIGHT, width:2, height:2) 185 | } 186 | 187 | // Draw rectangles 188 | 189 | for i in 0..100 { 190 | let size = random() % 20 + 10 191 | 192 | setColor(random() % COLOR_MAX) 193 | paintRect(random() % WIDTH, random() % HEIGHT, width:size, height:size) 194 | frameRect(random() % WIDTH, random() % HEIGHT, width:size, height:size) 195 | } 196 | **/ 197 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // GSwift 4 | // 5 | // Created by 林泰前 on 06/06/14. 6 | // Copyright (c) 2014年 Virtual GS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // Do any additional setup after loading the view, typically from a nib. 16 | } 17 | 18 | override func didReceiveMemoryWarning() { 19 | super.didReceiveMemoryWarning() 20 | // Dispose of any resources that can be recreated. 21 | } 22 | 23 | 24 | } 25 | 26 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift/gspics/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift/GSwift/gspics/background.jpg -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift/gspics/flower.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift/GSwift/gspics/flower.jpg -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift/gspics/fruits.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift/GSwift/gspics/fruits.jpg -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift/gspics/girl.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift/GSwift/gspics/girl.jpg -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift/gspics/pam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift/GSwift/gspics/pam.jpg -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift/gspics/redhood.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift/GSwift/gspics/redhood.jpg -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift/gspics/taj.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift/GSwift/gspics/taj.jpg -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift/ship.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift/GSwift/ship.png -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwift/space.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/GSwift/GSwift/space.png -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwiftTests/GSwiftTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GSwiftTests.swift 3 | // GSwiftTests 4 | // 5 | // Created by 林泰前 on 06/06/14. 6 | // Copyright (c) 2014年 Virtual GS. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | class GSwiftTests: XCTestCase { 12 | 13 | override func setUp() { 14 | super.setUp() 15 | // Put setup code here. This method is called before the invocation of each test method in the class. 16 | } 17 | 18 | override func tearDown() { 19 | // Put teardown code here. This method is called after the invocation of each test method in the class. 20 | super.tearDown() 21 | } 22 | 23 | func testExample() { 24 | // This is an example of a functional test case. 25 | XCTAssert(true, "Pass") 26 | } 27 | 28 | func testPerformanceExample() { 29 | // This is an example of a performance test case. 30 | self.measureBlock() { 31 | // Put the code you want to measure the time of here. 32 | } 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /other/VirtualGS/GSwift/GSwiftTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.virtualgs.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /other/VirtualGS/Lores/Lores.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /other/VirtualGS/Lores/Lores.xcodeproj/project.xcworkspace/xcuserdata/limtc.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/Lores/Lores.xcodeproj/project.xcworkspace/xcuserdata/limtc.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /other/VirtualGS/Lores/Lores.xcodeproj/project.xcworkspace/xcuserdata/yongguo.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/other/VirtualGS/Lores/Lores.xcodeproj/project.xcworkspace/xcuserdata/yongguo.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /other/VirtualGS/Lores/Lores.xcodeproj/xcuserdata/limtc.xcuserdatad/xcschemes/Lores.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 49 | 50 | 51 | 52 | 61 | 62 | 68 | 69 | 70 | 71 | 72 | 73 | 79 | 80 | 86 | 87 | 88 | 89 | 91 | 92 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /other/VirtualGS/Lores/Lores.xcodeproj/xcuserdata/limtc.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | Lores.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 93A77CBD1940A6BC00D3A623 16 | 17 | primary 18 | 19 | 20 | 93A77CCF1940A6BD00D3A623 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /other/VirtualGS/Lores/Lores.xcodeproj/xcuserdata/yongguo.xcuserdatad/xcschemes/Lores.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 49 | 50 | 51 | 52 | 61 | 62 | 68 | 69 | 70 | 71 | 72 | 73 | 79 | 80 | 86 | 87 | 88 | 89 | 91 | 92 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /other/VirtualGS/Lores/Lores.xcodeproj/xcuserdata/yongguo.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | Lores.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 93A77CBD1940A6BC00D3A623 16 | 17 | primary 18 | 19 | 20 | 93A77CCF1940A6BD00D3A623 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /other/VirtualGS/Lores/Lores/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // Lores 4 | // 5 | // Created by 林泰前 on 05/06/14. 6 | // Copyright (c) 2014年 Virtual GS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | 17 | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool { 18 | // Override point for customization after application launch. 19 | return true 20 | } 21 | 22 | func applicationWillResignActive(application: UIApplication) { 23 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 24 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 25 | } 26 | 27 | func applicationDidEnterBackground(application: UIApplication) { 28 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 29 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 30 | } 31 | 32 | func applicationWillEnterForeground(application: UIApplication) { 33 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 34 | } 35 | 36 | func applicationDidBecomeActive(application: UIApplication) { 37 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 38 | } 39 | 40 | func applicationWillTerminate(application: UIApplication) { 41 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 42 | } 43 | 44 | 45 | } 46 | 47 | -------------------------------------------------------------------------------- /other/VirtualGS/Lores/Lores/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /other/VirtualGS/Lores/Lores/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /other/VirtualGS/Lores/Lores/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /other/VirtualGS/Lores/Lores/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.virtualgs.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /other/VirtualGS/Lores/Lores/Lores.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Lores.swift 3 | // Lores 4 | // 5 | // Created by Lim Thye Chean on 05/06/14. 6 | // Copyright (c) 2014年 Virtual GS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | let BLACK = UIColor.blackColor() 12 | let RED = UIColor.redColor() 13 | let BLUE = UIColor.blueColor() 14 | let GREEN = UIColor.greenColor() 15 | let BROWN = UIColor.brownColor() 16 | let CYAN = UIColor.cyanColor() 17 | let MAGENTA = UIColor.magentaColor() 18 | let GRAY = UIColor.grayColor() 19 | let ORANGE = UIColor.orangeColor() 20 | let PURPLE = UIColor.purpleColor() 21 | let YELLOW = UIColor.yellowColor() 22 | let WHITE = UIColor.whiteColor() 23 | 24 | let colors = [BLACK, MAGENTA, PURPLE, GRAY, BLUE, BROWN, ORANGE, RED, GREEN, YELLOW, CYAN, WHITE] 25 | let COLOR_MAX = colors.count 26 | 27 | var screenWidth = 320 28 | var screenHeight = 480 29 | var pixelWidth = screenWidth / 40 30 | var pixelHeight = screenHeight / 40 31 | 32 | // Clear screen 33 | 34 | func clear(screen: CGRect) { 35 | UIColor.blackColor().set() 36 | UIRectFill(screen) 37 | 38 | screenWidth = Int(screen.size.width) 39 | screenHeight = Int(screen.size.height) 40 | 41 | pixelWidth = screenWidth / 40 42 | pixelHeight = screenHeight / 40 43 | } 44 | 45 | // Plot (PLOT X, Y) 46 | 47 | func plot(x:Int, y:Int) { 48 | UIRectFill(CGRect(x:pixelWidth * x, y:pixelHeight * y, width:pixelWidth, height:pixelHeight)) 49 | } 50 | 51 | // Plot horizontal line (HLIN X1, X2 AT Y) 52 | 53 | func plotHLine(x1:Int, x2:Int, #at:Int) { 54 | UIRectFill(CGRect(x:pixelWidth * x1, y:pixelHeight * at, width:pixelWidth * (x2 - x1 + 1), height:pixelHeight)) 55 | } 56 | 57 | // Plot vertical line (VLIN Y1, Y2 AT X) 58 | 59 | func plotVLine(y1:Int, y2:Int, #at:Int) { 60 | UIRectFill(CGRect(x:pixelWidth * at, y:pixelHeight * y1, width:pixelWidth, height:pixelHeight * (y2 - y1 + 1))) 61 | } 62 | 63 | // Set color 64 | 65 | func setColor(color:Int) { 66 | if color < colors.count { 67 | colors[color].setFill() 68 | } 69 | } 70 | 71 | func setColor(color:UIColor) { 72 | color.setFill() 73 | } -------------------------------------------------------------------------------- /other/VirtualGS/Lores/Lores/LoresView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LoresView.swift 3 | // Lores 4 | // 5 | // Created by Lim Thye Chean on 05/06/14. 6 | // Copyright (c) 2014年 Virtual GS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class LoresView: UIView { 12 | override func drawRect(screen: CGRect) { 13 | clear(screen) 14 | 15 | // Draw random dots 16 | 17 | for i in 0...99 { 18 | setColor(random() % COLOR_MAX) 19 | plot(random() % 40, random() % 40) 20 | } 21 | 22 | // Draw lines 23 | 24 | setColor(BLUE) 25 | plotHLine(0, 39, at:19) 26 | 27 | setColor(GREEN) 28 | plotVLine(0, 39, at:19) 29 | 30 | setColor(RED) 31 | for i in 0...39 { 32 | plot(i, i) 33 | } 34 | 35 | setColor(YELLOW) 36 | for i in 0...39 { 37 | plot(39 - i, i) 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /other/VirtualGS/Lores/Lores/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // Lores 4 | // 5 | // Created by 林泰前 on 05/06/14. 6 | // Copyright (c) 2014年 Virtual GS. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // Do any additional setup after loading the view, typically from a nib. 16 | } 17 | 18 | override func didReceiveMemoryWarning() { 19 | super.didReceiveMemoryWarning() 20 | // Dispose of any resources that can be recreated. 21 | } 22 | 23 | 24 | } 25 | 26 | -------------------------------------------------------------------------------- /other/VirtualGS/Lores/LoresTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.virtualgs.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /other/VirtualGS/Lores/LoresTests/LoresTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LoresTests.swift 3 | // LoresTests 4 | // 5 | // Created by 林泰前 on 05/06/14. 6 | // Copyright (c) 2014年 Virtual GS. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | class LoresTests: XCTestCase { 12 | 13 | override func setUp() { 14 | super.setUp() 15 | // Put setup code here. This method is called before the invocation of each test method in the class. 16 | } 17 | 18 | override func tearDown() { 19 | // Put teardown code here. This method is called after the invocation of each test method in the class. 20 | super.tearDown() 21 | } 22 | 23 | func testExample() { 24 | // This is an example of a functional test case. 25 | XCTAssert(true, "Pass") 26 | } 27 | 28 | func testPerformanceExample() { 29 | // This is an example of a performance test case. 30 | self.measureBlock() { 31 | // Put the code you want to measure the time of here. 32 | } 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /other/VirtualGS/README.md: -------------------------------------------------------------------------------- 1 | # VitualGS教程示例 2 | 以下示例程序来源于林泰前老师[微博](http://weibo.com/limtc)或[博客](http://blog.sina.com.cn/virtualgs)发布,为方便大家学习Swift编程,有幸获得林老师的准许在这里发布。如果它们对您的学习有用。欢迎关注他的微博([@林泰前](http://weibo.com/limtc))及教学博客([VirtualGS](http://#blog.sina.com.cn/virtualgs)),上面有更详细的编程过程介绍。那将带给您学习编程的乐趣及惊喜收获! 3 | 4 | ## How to 5 | * [如何播放声音?](http://blog.sina.com.cn/s/blog_9a099b040102uw94.html) 6 | * [如何把网页包装成 iOS 软件?](http://blog.sina.com.cn/s/blog_9a099b040102uw8k.html) 7 | * [如何使用 WebKit?](http://blog.sina.com.cn/s/blog_9a099b040102uw8g.html) 8 | * [如何显示文字?](http://blog.sina.com.cn/s/blog_9a099b040102uw5m.html) 9 | * [如何显示消息?](http://blog.sina.com.cn/s/blog_9a099b040101negf.html) 10 | 11 | ## 示例 12 | 13 | ### 1. Lores 14 | "我们小时候用 Apple II 电脑学习编程,都是用 BASIC 语言在低解析度(Lores,40x40)屏幕上用 PLOT,VLIN,HLIN 等指令来画砖块。这个程序是模拟 Lores 编程,不过语言换成了 Swift。" 15 | 16 | 基本功能: 17 | 18 | * clear:设定40x40屏幕 19 | * plot:画方块 20 | * plotHLine/plotVLine:画直线 21 | * setColor:设定颜色(编号/颜色名字) 22 | 23 | 24 | ### 2. GSwift 25 | "相较于第一个例子,这个风格更适合初学者。如何使用 GSwift 绘图程序库?Main.swift 是你编程的地方,里头有两个函数:在 setup() 里做设定,在 main() 里绘图。对已经会 iPhone 编程的高手-如果你需要在自己的 Swift 程序里使用,你只要从中抽取 GSView.swift 即可。" 26 | 27 | 相对于第一个例子绘图库,增加了以下功能: 28 | 29 | * hplot 30 | * paintRect 31 | * drawLine 32 | * drawImage 33 | * paintCircle 34 | * ... 35 | 36 | ### 3. GSwift-2 37 | GSwift 2 改变了程序架构,让其他 Swift 软件可以直接使用。绘图方面加入了渐变色彩。里头有一些展示程序方便初学者学习。 38 | 39 | 主要改变:1)用 Storyboard 来适配 iPhone 和 iPad,2)展示如何用自定义的 UIView 来继承 GSView 绘图程序,3)用 UIKit 自身的 init() 和 drawRect() 函数来替代之前的 setup() 和 main() 函数。GSView 现在可以使用在任何项目自定义的 UIView 上。 40 | 41 | ![截屏](GSwift-2/screenshot.png) 42 | 43 | 更详细功能参见程序库 44 | 45 | 46 | -------------------------------------------------------------------------------- /sl-logo_1.0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipader/SwiftGuide/d0e28f7513a7f5d309d9cd4f420f09326c203c14/sl-logo_1.0.png -------------------------------------------------------------------------------- /weekly/2014-10-27.md: -------------------------------------------------------------------------------- 1 | 2014-10-27收录周报 2 | === 3 | > **本周特别推荐**[tnantoka/edhita](https://github.com/tnantoka/edhita):edhita是一款用Swift重写并完全开源的文本编辑器。AppStore上已经有更新版下载。试用后感觉还不错。它甚至支持Markdown, HTML等文件编辑后的预览显示。 4 | 5 | ### 类库 6 | * [Hearst-DD/ObjectMapper](https://github.com/Hearst-DD/ObjectMapper):对象与JSON互转实用类库。需要的同学可以收一下。 7 | * [DaveWoodCom/XCGLogger](https://github.com/DaveWoodCom/XCGLogger) : 这是一款功能比较健全日志输出框架(Log4Swift)。之前推荐过一款类似的 hubertr/Swell,但它的功能明显没有这款强大。 8 | * [isair/JSONHelper](https://github.com/air/JSONHelper) :又一款JSON转对象类库,算上,lingoer/SwiftyJSON,owensd/json-swift,gfx/Swift-JsonSerializer,已经有四款了。同学们根据喜好及需求,择优使用吧。 9 | * [michaelarmstrong/SuperRecord](https://github.com/michaelarmstrong/SuperRecord) : Swift版CoreData框架扩展类库。相对于同类型CoreData框架库SugarRecord/SugarRecord http://t.cn/RhYLS4n ,SuperRecord要简单、轻量得多。很棒的快速开发类库。 10 | 11 | ### 项目 12 | * [tnantoka/edhita](https://github.com/tnantoka/edhita):edhita是一款用Swift重写并完全开源的文本编辑器。AppStore上已经有更新版下载。试用后感觉还不错。它甚至支持Markdown, HTML等文件编辑后的预览显示。 13 | * [google/material-design-icons](https://github.com/google/material-design-icons) :对于喜欢 Material Design风格的同学,这是难得好资源。Google提供了极为完整的各种图标(包含iOS各种精度及SVG)设计资源。 14 | 15 | ### 教程 16 | * [可失败构造器](http://www.devtalking.com/articles/failable-initializers/):苹果官方博客文章。译者:[@DevTalking](http://weibo.com/jacefu) 原文:[Failable Initializers](https://developer.apple.com/swift/blog/?id=17) 17 | * [iOS 8人机界面指南 - 设计策略](http://isux.tencent.com/ios8-human-interface-guidelines-design-strategies.html):苹果官方原文 [iOS Human Interface Guidelines - Design Principles](https://developer.apple.com/library/ios/documentation/userexperience/conceptual/mobilehig/Principles.html#//apple_ref/doc/uid/TP40006556-CH4-SW1) 译者:[@腾讯ISUX](http://weibo.com/txisux) 18 | * [Swift如何检查系统版本](http://idlelife.org/archives/716):介绍使用Swift语言检测操作系统版本的方法。作者:Mattt Thompson 译者:[@pockry](http://weibo.com/pockry) 原文:[Swift System Version Checking](http://nshipster.com/swift-system-version-checking/) 19 | * [为iPhone6设计自适应布局](http://www.devtalking.com/articles/adaptive-layout-for-iphone6-1/)([一](http://www.devtalking.com/articles/adaptive-layout-for-iphone6-1/)、[二](http://www.devtalking.com/articles/adaptive-layout-for-iphone6-2/)) :"当你们学习完这篇文章后,你们应该会比较自如的使用 storyboard、constaints、size classes 这三个Apple在Xcode里提供的工具,去探索和构建巧妙的自适应布局。" 译者:[@DevTalking](http://weibo.com/jacefu) 原文:[ADAPTIVE LAYOUTS FOR iPHONE 6](http://mathewsanders.com/designing-adaptive-layouts-for-iphone-6-plus/) 20 | * [iOS App集成Apple Pay教程](http://idlelife.org/archives/755):"Apple Pay还给开发者带来了处理支付的新渠道,用户将期望在应用中使用它,因为它将验证和交易极端简化,仅需手指轻轻一触即可完成。如果应用里面有涉及到交易,开发者很有必要集成Apple Pay。那么如何将Apple Pay功能集成到你的应用里呢?" 可惜Demo是Objective-C版本的。 译者:[@pockry](http://weibo.com/pockry) 原文:[Integrating Your iOS App with Apple Pay](http://java.dzone.com/articles/integrating-your-ios-app-apple) 21 | * [WWDC 2014 Session笔记 - 可视化开发,IB 的新时代](http://onevcat.com/2014/10/ib-customize-view/):"通过一个简单例子介绍了 Xcode 6 的 IB 中自定义 view 的基本使用。" 作者:[@onevcat](http://weibo.com/onevcat) 22 | 23 | ### 技巧 24 | * [开发Yosemite几个小技巧](http://io-meter.com/2014/10/24/develop-for-yosemite-some-tips/): "Apple 终于发布了 Xcode 6.1,带来了 Swift for OSX 等多个更新, 这几天我简单研究了下在 Yosemite 下实现一些新的小需求的方法, 这里使用 Swift 语言描述总结一下。" 作者:[@diumoo](http://weibo.com/u/2717070362) 25 | * [详解UICoordinateSpace和UIScreen在iOS 8上的坐标问题](http://chun.tips/blog/2014/10/23/xiang-jie-uicoordinatespacehe-uiscreenzai-ios-8shang-de-zuo-biao-wen-ti/):今天在整理AutoLayout API时,发现了一个关于UIScreen 坐标的坑。作者:[@pockry](http://weibo.com/pockry) 26 | * [我在开发第一个Swift App过程中学到的四件事](http://idlelife.org/archives/742):"本文翻译自raywenderlich.com,作者Greg Heo,是Razeware(Ray创办的公司)的员工,这是他为讲授iOS 8 App Extensions视频教程而实际使用Swift开发了一款App的经验,来看看他的心得体验。" 译者:[@pockry](http://weibo.com/pockry) 27 | -------------------------------------------------------------------------------- /weekly/2014-11-03.md: -------------------------------------------------------------------------------- 1 | 2014-11-3收录周报 2 | === 3 | > **本周特别推荐**[kentya6/KYCircularProgress](https://github.com/kentya6/KYCircularProgress):这个进程条类库实现及使用都很简单,支持进程路径的定制,灵活方便。 4 | 5 | ### 类库 6 | * [kylef/PathKit](https://github.com/kylef/PathKit): 简单、实用的文件路径操作类,常用功能一个也不少。 7 | * [kylef/Stencil](https://github.com/kylef/Stencil):通过在模板中支持if, for, ifnot 等语法标签,实现更强大、更灵活的数据及格式输出。 8 | * [kentya6/KYCircularProgress](https://github.com/kentya6/KYCircularProgress):这个进程条类库实现及使用都很简单,支持进程路径的定制,灵活方便。 9 | * [Masonry/Snappy](https://github.com/Masonry/Snappy):一个基于AutoLayout封装,语法简洁的轻量级布局框架。当然,用代码还是storyboard,全凭开发者喜好。若偏好可视化自动布局,@DevTalking 的两篇译文值得参考[《Swift自适应布局教程》](http://www.devtalking.com/articles/adaptive-layout-1/)和[《为iPhone6设计自适应布局》](http://www.devtalking.com/articles/adaptive-layout-for-iphone6-1/)。 10 | 11 | ### 教程 12 | * [CMDevice​Motion](http://nshipster.com/cmdevicemotion/):一篇关于CMDevice​Motion类解读及使用方法的文章。对于iPhone三轴陀螺仪和加速感应器,以及M7/M8协处理器,核心运动框架(The Core Motion framework)提供了完整的API支持。然而文章更重要的意义是启发开发者重视感应器,并结合场景开发新颖好玩的应用。 13 | * [如何在Swift中运用Text Kit框架](http://www.devtalking.com/articles/text-kit-tutorial-in-swift-1/) : “现在iOS8发布了,在文本渲染方面在延续了之前强大功能的基础上,又提升了其易用性。” 译者:[@DevTalking](http://weibo.com/jacefu) 原文:[Text Kit Tutorial in Swift](http://www.raywenderlich.com/77092/text-kit-tutorial-swift) 14 | 15 | ### 文档 16 | * iPhone6 & 6 Plus 尽寸适配说明 17 | * [iPhone6 & 6 Plus 视觉设计适配说明](http://www.ui.cn/project.php?id=30159) 作者:[@英小俊](http://weibo.com/dulinme) 18 | * [iPhone6和iPhone6 plus的iOS8设计尺寸参考指南](http://www.cssway.org/news_show.asp?id=288&classid=3) 作者:[@芒果道长](http://www.weibo.com/u/1797152462) 19 | * [iOS 5+ 设备一览](http://jamesdempsey.net/ios-device-summary/):作者的意图是通过这样一张直观的图,指导选择相对合理的设备组合进行开发和测试。[PDF版本](http://tapas-software.net/img/ios_device_summary.pdf) 20 | * [超越Objective-C,超越Swift](http://idlelife.org/archives/774):很有趣的作者,除了对Swift有比较专业地概括式理解,还从应用的纬度对新语言提出了自己的要求。比如:自动持久化,自动RESTful API,有表现力的触发器和响应,所见即所得的UI编辑等。译者:[@pockry](http://weibo.com/pockry) 原文:[Beyond Objective-C, Beyond Swift](http://blog.jaredsinclair.com/post/98402624705/beyond-objective-c-beyond-swift) 21 | * [iOS 8 与 OS X 10.10 间的自由联动:Handoff 使用详解](http://sspai.com/27277):有关如何开启和使用Handoff,文章做了比较详细的介绍,并以Safari为例进行了使用说明。作者([@iTumbledSea](http://weibo.com/kitevolant))撰写此文的英文参考[《How to use Handoff with iOS 8 and Yosemite》](http://www.macworld.com/article/2825972/how-to-use-handoff-with-ios-8-and-yosemite.html) 22 | 23 | 24 | ### 技巧 25 | * [Don’t Miss These Navigation Bar Interactions in iOS8](http://natashatherobot.com/navigation-bar-interactions-ios8/):iOS8新方法,像Safari那样滑动时自动隐藏navigation。 -------------------------------------------------------------------------------- /weekly/2014-11-10.md: -------------------------------------------------------------------------------- 1 | 2014-11-10收录周报 2 | === 3 | > **本周特别推荐**[kaishin/ImageScout](https://github.com/kaishin/ImageScout):最小网络代价获得图片大小(宽和高)及类型,它对于很多场合,比如:布局和排版都有积极作用。 4 | 5 | ### 类库 6 | * [kaishin/ImageScout](https://github.com/kaishin/ImageScout):最小网络代价获得图片大小(宽和高)及类型,它对于很多场合,比如:布局和排版都有积极作用。 7 | * [kaishin/gifu](https://github.com/kaishin/gifu):高性能GIF显示类库Swift版本。 8 | * [coolbeet/CBStoreHouseRefreshControl](https://github.com/coolbeet/CBStoreHouseRefreshControl):这个下拉刷新库,提供完全可定制进度变换效果,且极具艺术感。建议有能力的同学把Objective-C版本改写为Swift版本。 9 | * [kevinzhow/PNChart-Swift](https://github.com/kevinzhow/PNChart-Swift):PNChart的Swift版实现。PNChart http://t.cn/zRWXJCZ 是饼图、折线图、柱状图等常用可视化图表工具类库。开发者:[@周楷雯Kevin](http://weibo.com/kevinzhow) 10 | * [thoughtbot/Argo](https://github.com/thoughtbot/Argo):一个带有实战说明的JSON解析方案及类库。 11 | 12 | ### 项目 13 | * [jurre/TravisToday](https://github.com/jurre/TravisToday):一个功能相对完整的服务于Travis CI系统的OS X应用扩展Today项目案例。 14 | 15 | ### 教程 16 | * [Swift中的函数柯里化(Function Currying)](http://idlelife.org/archives/825):柯里化提供了强大的动态函数创建方法,也是动态语言重要组成部分。译文有关柯里化使用方法及应用场景讲解的很清楚。"Swift的各种特性已经被很多人研究过,但有一个特性只有较少人提及,那就是函数柯里化。本文将试图覆盖柯里化函数的基本知识点和一些可能的使用场景,希望对你了解Swift中的函数柯里化有所帮助。" 译者:[@pockry](http://weibo.com/pockry) 原文:[《Swift Function Currying》](http://blog.xebia.com/2014/11/06/swift-function-currying/) 17 | 18 | ### 文档 19 | * [Web Apps](http://ignorethecode.net/blog/2014/11/04/web_apps/):这篇新鲜文章较全面论述了Native应用和Web应用。有关Native应用和Web应用,最近争论渐少,原因应该有两点:1. 无论Apple还是Google,Native应用才是其生态的基础,过于激进推动,将损害其固有商业利益。而微软的话语权严重受阻于移动系统的发展;2. 基于Web View的混合应用基本满足应用跨平台性 。 20 | * [Wolg/awesome-swift](https://github.com/Wolg/awesome-swift):一位俄罗斯朋友分类整理的Swift资源列表(有持续更新)。 21 | 22 | ### 技巧 23 | * [Beginning iOS 8 Programming with Swift 读书笔记](https://github.com/sxyx2008/DevArticles/issues/26):点滴都是经验,也是日日夜夜与汗水的交织。好笔记!作者:[@荧星诉语](http://weibo.com/qq184675420) -------------------------------------------------------------------------------- /weekly/2014-11-17.md: -------------------------------------------------------------------------------- 1 | 2014-11-17收录周报 2 | === 3 | > **本周特别推荐**[Swift REPL入门介绍](http://idlelife.org/archives/842):"翻译自Swift官方博客。本文是对Swift REPL一个简单的入门介绍,面向新手开发者。译者:[@pockry](http://weibo.com/pockry)"。《Swift官方博客》完整中译镜像参见[这里](https://github.com/ipader/SwiftGuide/tree/master/mirror/Swift%20Blog%20-%20Apple%20Developer) 4 | 5 | ### 类库 6 | * [codestergit/SweetAlert-iOS](https://github.com/codestergit/SweetAlert-iOS):该弹窗控件设计简单直接,功能完整,动画效果恰如其分。实在不可多得,必须收录。 7 | * [jpsim/PeerKit](https://github.com/jpsim/PeerKit):基于事件驱动的多端对等连接开源框架。作者提供了该组件使用案例[jpsim/CardsAgainst](https://github.com/jpsim/CardsAgainst),具体引用代码详见[这里](https://github.com/jpsim/CardsAgainst/blob/master/CardsAgainst/Controllers/ConnectionManager.swift)。 8 | * [shuoli84/SocketIOCocoa](https://github.com/shuoli84/SocketIOCocoa):又一款WebSocket实用客户端类库,作者提供了详细的测试用例可以做为[示例代码](https://github.com/shuoli84/SocketIOCocoa/blob/master/SocketIOCocoaTests/SocketIOTests.swift)使用。 9 | * [Quick/Nimble](https://github.com/Quick/Nimble):功能更强于Xcode自带测试框架(XCTest)的测试类库。 10 | 11 | ### 快速入门 12 | * [Swift REPL入门介绍](http://idlelife.org/archives/842):"翻译自Swift官方博客。本文是对Swift REPL一个简单的入门介绍,面向新手开发者。译者:[@pockry](http://weibo.com/pockry)"。《Swift官方博客》完整中译镜像参见[这里](https://github.com/ipader/SwiftGuide/tree/master/mirror/Swift%20Blog%20-%20Apple%20Developer) 13 | * [WKWeb​View](http://nshipster.cn/wkwebkit/):"WKWebView 是现代 WebKit API 在 iOS 8 和 OS X Yosemite 应用中的核心部分。它代替了 UIKit 中的 UIWebView 和 AppKit 中的 WebView,提供了统一的跨双平台 API。" 作者:[Mattt Thompson ](https://github.com/mattt) 14 | * [Core Location in i​OS 8](http://nshipster.com/core-location-in-ios-8/):有关iOS 8核心位置服务介绍。文章从权限、室内位置跟踪、CLVisit等角度做了较全面的介绍。 15 | 16 | ### 文档 17 | * [为大屏手机而设计](http://beforweb.com/node/589):用了一个简单例子讲解了大屏手机基本的可操作性。总之,无论屏幕有多大,轻易放弃单手操作是不明智的。 18 | * [10 个 Safari for iOS 8 的实用小技巧](http://sspai.com/27367):"继上回 7 个 Safari for Mac 实用技巧之后,这次来介绍 10 个 Safari for iOS 8 的小技巧,相信一定有你可能还不知道的使用新姿势。by [@子不语Rex](http://weibo.com/u/2886498704) " 本身的细节,外加应用扩展,组合成更强大的Safari浏览器。 19 | * [苹果 A8X 芯片难逢敌手!英特尔、高通、三星纷纷落败](http://www.macgg.com/archives/30618.html):回想当年乔布斯团队从iPad开始,毅然选择自己设计基于ARM架构的A4芯片,无论在iPhone/iPad系列产品快速演变还是商业上,都获得了罕见的收获。从CPU革命延伸到如今开发语言Swift,奠定了其庞大生态环境内基础软、硬件坚实的基础。未来的苹果显然更值得期待。 20 | 21 | -------------------------------------------------------------------------------- /weekly/2014-11-24.md: -------------------------------------------------------------------------------- 1 | 2014-11-24收录周报 2 | === 3 | > **本周特别推荐**:对于很多同学来讲,本周WatchKit的发布是那么的重要,以至于拼尽全力、如火如荼地写代码、撰写或翻译文章。借此,也来单列一份合集吧,《[Apple Watch指南](https://github.com/ipader/SwiftGuide/tree/master/Apple%20Watch)》,且一并收录于《[Swift语言指南](https://github.com/ipader/SwiftGuide)》。 4 | 5 | ### 类库 6 | * [nghialv/MaterialKit](https://github.com/nghialv/MaterialKit):Swift版Google Material Design组件库。虽然个人并不推荐在iOS平台上使用非iOS风格界面,不过,对于Android强迫症“患者”,多一种选择也是友好的。顺带附上Google提供的开源[Material Design图标集](https://github.com/google/material-design-icons),可以一起收入。 7 | * [Ahmed-Ali/JSONExport](https://github.com/Ahmed-Ali/JSONExport):一款实用工 具,可以将JSON转换并输出为Swift语言类模型(也支持Android上的Java),支持简单的定制。 8 | 9 | ### 示例 10 | * [ide/UIVisualEffects](https://github.com/ide/UIVisualEffects):Swift实现模糊化等视觉效果示例代码。代码详见[这里](https://github.com/ide/UIVisualEffects/blob/master/UIVisualEffects/ViewController.swift) 11 | 12 | ### 教程 13 | * [使用 Swift 构建自定义(且“可设计”的)控件](https://github.com/nixzhu/dev-blog/blob/master/2014-11-20-build-custom-control-in-swift.md):"使用 Swift 构建自定义(且“可设计”的)控件。喜欢别人发布的自定义控件?那设计并实现自定义控件需要几步呢?只要三步。读了本教程,你就可以实现任何你想要的自定义控件。" 译者:[@nixzhu](http://weibo.com/nixzhu),原文[How to building a custom and designabl control in swift](http://www.thinkandbuild.it/building-a-custom-and-designabl-control-in-swift/) 14 | * [UIPrint​Interaction​Controller](http://nshipster.com/uiprintinteractioncontroller/):文章介绍了如何格式化打印内容及相关打印定制技巧或控制技术。或许,在如今移动及数子化时代,打印已经被许多人所忽视。无论如何,对于传统行业,需求仍然是切实存在的,因此,这是一篇难得好文章。 15 | * [在iOS 8 SDK中使用Touch ID API - Part I](http://www.cocoachina.com/ios/20141114/10222.html), [Part II](http://www.cocoachina.com/ios/20141114/10223.html):译文详述了如何在一款笔记编辑应用程序中集成iOS 8 SDK中Touch ID API,包括上下两个部分,在开发过程中使用了Swift语言。 16 | 17 | -------------------------------------------------------------------------------- /weekly/2014-11-30.md: -------------------------------------------------------------------------------- 1 | 2014-11-30收录周报 2 | === 3 | > **本周特别推荐**:[Natasha The Robot](http://natashatherobot.com/) -- 时髦码农不容错过的Swift开发实战教程类网站。为了简化学习复杂性,每一篇文章涵盖技术点单一又独立,配以开发步骤、运行结果以及代码等标准方式教授。难能可贵的是,它往往出品"追剧式"(最新开发特性或API跟进式)教程,实在是开发者必藏精品网站。 4 | 5 | ### 类库 6 | * [Ramotion/animated-tab-bar](https://github.com/Ramotion/animated-tab-bar):一款灵动的动画标签栏类库。可在storyboard中直接使用,非常方便。Demo效果非常漂亮。连续三天GitHub分类排名第一,且迅速过600星。它的代码并非复杂或特别,相信大家中意它的还是其设计感。 7 | * [frosty/Flipbook](https://github.com/frosty/Flipbook):"Flipbook是一个能录制iPhone上UIView动画生成帧动画序列并传输给AppleWatch以供直接播放的工具。By [@WatchKit开发](http://weibo.com/twios)" 8 | * [dongri/OAuthSwift](https://github.com/dongri/OAuthSwift):Swift版OAuth(1/2)授权类库。对于作者提供的API,看着舒服,用着方便。 9 | 10 | 11 | ### 项目 12 | * [stakes/Frameless](https://github.com/stakes/Frameless):一款基于WKWebView的最小化全屏浏览器,主要功能是方便开发者采用HTML5做原型设计或App发布。对于测试工程师或喜欢极简、全屏浏览用户,可以直接在[AppStore下载](https://itunes.apple.com/us/app/id933580264)使用。 13 | * [sxyx2008/FoodPin](https://github.com/sxyx2008/FoodPin):如此完整的Swift示例项目,可以帮助学习到不少Swift编程技巧。"用Swift写的一个功能比较完善的App,参照Beginning iOS 8 Programming with Swift一书。功能比较完善。AutoLayout、Core Animation、Core Data、国际化等。" By [@荧星诉语](http://weibo.com/qq184675420) 14 | 15 | ### 文档 16 | * 《WatchKit编程指南 - 通知 》中译(By @星夜暮晨):1. [有关通知的一些要点](http://www.jianshu.com/p/9bae3c5fc7cd) http://t.cn/RzcoR0x ;2. [自定义通知界面](http://www.jianshu.com/p/a2e26233868a) 17 | * [iOS设计指南](http://www.ui.cn/project.php?id=32167)(译者:shengbanx):这么好的文章和译文漏转可惜。非官方文档,不过原文《[The iOS Design Guidelines](http://iosdesign.ivomynttinen.com/)》遵循并基于《iOS Human Interface Guidelines》进行解读介绍。非常值得收藏。原作者Ivo Mynttinen,是一位来自德国的年轻UI设计师。其个人博客网站也值得同学们收录:[ivomynttinen.com](http://ivomynttinen.com) 18 | 19 | ### 教程 20 | * [Core Data 版本迁移经验总结](http://chun.tips/blog/2014/11/28/core-data-ban-ben-qian-yi-jing-yan-zong-jie/):版本升级是必备经验。文章或许还不够全面,但都是作者点滴经验,非常难得。对于进阶开发的同学文档《[Core Data Model Versioning and Data Migration Programming Guide](https://developer.apple.com/library/ios/documentation/cocoa/conceptual/CoreDataVersioning/Articles/Introduction.html)》是必读的,参考文章《[自定义 Core Data 迁移](http://objccn.io/issue-4-7/)》也值得收录。作者:[@Chun_iOS](http://weibo.com/junbbcom) 21 | * WatchKit快速入门两篇:《[使用WatchKit前需要先了解的几件事](http://www.imore.com/what-you-need-know-about-watchkit)》和《[如何新建一个“Hello World” WatchKit应用](http://natashatherobot.com/hello-world-watchkit-app/)》。两篇文章一起组成WatchKit应用快速开发入门参考。 22 | 23 | ### 网站 24 | * [Natasha The Robot](http://natashatherobot.com/): 时髦码农不容错过的Swift开发实战教程类网站。为了简化学习复杂性,每一篇文章涵盖技术点单一又独立,配以开发步骤、运行结果以及代码等标准方式教授。难能可贵的是,它往往出品"追剧式"(最新开发特性或API跟进式)教程,实在是开发者必藏精品网站。 25 | 26 | ### 媒体 27 | * [苹果 Apple Watch 的杀手级特性](http://www.feng.com/apple/news/2014-11-28/Apple-Apple-Watch-killer-feature-the-convenient-and-simple_601272.shtml):"方便简单:目前我们已经了解了很多关于Apple Watch的功能以及特性,但是了解了这些你是否会产生这么一种感觉:我的生活需要Apple Watch?其实这种感觉并不强烈吧。" 文章短,且论述平实,适合大众阅读。 28 | 29 | ### 其它 30 | * [新视频透露了苹果都不知道的iPhone隐藏技能](http://www.macgg.com/archives/31080.html):"iPhone的性能和扩展是否已经超乎苹果的想象?近日国外网友 Ivo Leko 利用iPhone上多项传感器用于完成实时的磁铁位置追踪演示。" -------------------------------------------------------------------------------- /weekly/2014-12-07.md: -------------------------------------------------------------------------------- 1 | 2014-12-7收录周报 2 | === 3 | > **本周特别推荐**《[Alamofire - 1. 基础教程](http://www.jianshu.com/p/f1208b5e42d9),[2. 进阶教程](http://www.jianshu.com/p/30599f64a09c)》(译者:[@星夜暮晨](http://weibo.com/moonisky)):Alamofire项目是Mattt Thompson为其著名的AFNetworking采用Swift语言重写的网络基础库开源项目。中译教程原文来自 [Ray Wenderlich - 1. Beginning Alamofire Tutorial](http://www.raywenderlich.com/85080/beginning-alamofire-tutorial), [2. Intermediate Alamofire Tutorial](http://www.raywenderlich.com/87595/intermediate-alamofire-tutorial)。 4 | 5 | ### 类库 6 | * [Ramotion/paper-switch](https://github.com/Ramotion/paper-switch):类库实现了当Switch组件开/关切换时,平滑过渡到父视图的变换效果功能(核心类继承了UISwitch)。P.S. 该开发者也是这几天热门项目 Ramotion/animated-tab-bar 的作者。 7 | * [FahimF/FloatLabelFields](https://github.com/FahimF/FloatLabelFields): 基于"[Float Label Pattern](http://mattdsmith.com/float-label-pattern/)"的内嵌浮动标签输入效果Swift版实现类库。 8 | * [facebook/AsyncDisplayKit](https://github.com/facebook/AsyncDisplayKit):它是由Facebook开发并用于其Paper应用的iOS UI框架,它主要解决问题是提供界面的高流畅性切换及更灵敏的响应,解决思路是将部分UI渲染及复杂计算交由独立于主线程的处理程序负责。中译教程《[AsyncDisplayKit 教程 - 达到 60 FPS 的滚动帧率](https://github.com/nixzhu/dev-blog/blob/master/2014-11-22-asyncdisplaykit-tutorial-achieving-60-fps-scrolling.md) By [@nixzhu](http://weibo.com/nixzhu)》,教程原文《[AsyncDisplayKit Tutorial: Achieving 60 FPS scrolling](http://www.raywenderlich.com/86365/asyncdisplaykit-tutorial-achieving-60-fps-scrolling)》。 9 | * [cemolcay/ReorderableGridView](https://github.com/cemolcay/ReorderableGridView):可以拖拽排列Grid框格的UI组件。功能说明完整,使用方便,应该是一个不错的UI"轮子"。 10 | * [p2/OAuth2](https://github.com/p2/OAuth2):独立又纯粹的OAuth2认证授权类库,作者所提供的示例及流程说明清晰又简洁。 11 | * [evermeer/EVCloudKitDao](https://github.com/evermeer/EVCloudKitDao):一套使用CloudKit简单封装库。作者还提供了示例项目及程序供开发者参考使用。 12 | 13 | ### 项目 14 | * [mozilla/firefox-ios](https://github.com/mozilla/firefox-ios):Swift写的iOS版Firefox。P.S. 第三方库用到了Alamofire, Snappy, swift-json等,内置阅读器还使用了Readability。 15 | 16 | ### 教程 17 | * [Alamofire - 1. 基础教程](http://www.jianshu.com/p/f1208b5e42d9),[2. 进阶教程](http://www.jianshu.com/p/30599f64a09c)(译者:[@星夜暮晨](http://weibo.com/moonisky)):Alamofire项目是Mattt Thompson为其著名的AFNetworking采用Swift语言重写的网络基础库开源项目。中译教程原文来自 [Ray Wenderlich - 1. Beginning Alamofire Tutorial](http://www.raywenderlich.com/85080/beginning-alamofire-tutorial), [2. Intermediate Alamofire Tutorial](http://www.raywenderlich.com/87595/intermediate-alamofire-tutorial) 18 | * [WatchKit Storyboard攻略(一)](http://weibo.com/p/1001603783085996013229):"目前的WatchKit只有用户界面的渲染是靠AppleWatch进行,本文的目的主要在于探索WatchKit界面部分的功能开发与小技巧,内容层次上偏基础。By [@WatchKit开发](http://weibo.com/twios)" 19 | * **相关文档** 20 | * [为Apple Watch进行设计的五点原则](http://www.beforweb.com/node/624):文章提及的五个设计角度分别是:1. 个人化;2. 快速、轻量的人机互动;3. Glances、Short Look与Long Look;4. 按压(Force Touch);5. 配色。译者:[@BeForWeb](http://weibo.com/beforweb) 原文:[Things to know when Designing for the Apple Watch](https://medium.com/universal-mind/5-things-to-know-when-designing-for-the-apple-watch-a5c8ce7633b7) 21 | * [传感器框架](http://segmentfault.com/blog/cruise/1190000002400742):一篇关于CMDevice​Motion类解读及使用方法的文章。对于iPhone三轴陀螺仪和加速感应器,以及M7/M8协处理器,核心运动框架(The Core Motion framework)提供了完整的API支持。然而文章更重要的意义是启发开发者重视感应器,并结合场景开发新颖好玩的应用。原文:[CMDevice​Motion](http://nshipster.com/cmdevicemotion/),译者:Cruise_Chan 22 | * [Mattt Thompson - Watch​Kit](http://nshipster.com/watchkit/):官方开发资源(尤其『视频Getting Started』,文档《Apple Watch人机交互指南》和《WatchKit编程指南》,以及「示例代码」)毫无意外做为文章优先推荐。当然,做为经验丰富的开发者,他还额外给出了WatchKit和UIKit惊人相似的对照表及核心API说明。 23 | * [objc.io - Games专题(译文)](http://objccn.io/issue-18/):对于致力于游戏开发的同学,相信本专题就是年前最大的福利了。而对于未开始游戏开发或其它领域开发的同学,这个专题所涵盖的人机交互设计,GPU编程,基于OpenGL的3D图形及动画编程,高效多点互联编程,多媒体音效编程同样是不可多得的学习盛宴。 24 | 25 | 26 | ### 网站 27 | * [iOSCreator](http://www.ioscreator.com/):这类开发指引式教程对于初学者来讲,是直接明了的有效学习资源。推荐者[@荧星诉语](http://weibo.com/qq184675420) 28 | 29 | ### 设计相关 30 | * [MATERIAL DESIGN设计规范学习心得](http://www.uisdc.com/material-design-learning-experience):“编者按:自学笔记就该这么做!今天分享[@東門王三](http://weibo.com/loafer117) 同学关于Material Design的自学成果,他的学习笔记严谨有序,触类旁通,从Material Design到其他系统的设计规范都有所研究,还认真地做了思维导图,同学们可以边学习边借鉴他的自学方法,一举两得呦。By [@优秀网页设计](http://weibo.com/uidesign)” 31 | -------------------------------------------------------------------------------- /weekly/2014-12-14.md: -------------------------------------------------------------------------------- 1 | 2014-12-14收录周报 2 | === 3 | > **本周特别推荐** [Apple Watch人机界面设计规范(中译版)](http://beforweb.com/node/596):这个是我所见过的几个中译版本中最喜欢的一个,我认为也是最好的一个。来源:[@BeForWeb](http://weibo.com/beforweb),译者: [@C7210](http://weibo.com/c7210) 4 | 5 | 6 | ### 类库 7 | * [mutualmobile/MMWormhole](https://github.com/mutualmobile/MMWormhole):提供了iOS应用与扩展之间的消息传递,其最有价值之处当属iPhone与Watch间的消息传递,从而实现相互操控的功能。 8 | * [tadija/AEXML](https://github.com/tadija/AEXML):简单又易于使用的XML解析类。作者提供了完整的示例程序。 9 | 10 | ### 文档 11 | * [Apple Watch人机界面设计规范(中译版)](http://beforweb.com/node/596):这个是我所见过的几个中译版本中最喜欢的一个,我认为也是最好的一个。来源:[@BeForWeb](http://weibo.com/beforweb),译者: [@C7210](http://weibo.com/c7210) 12 | 13 | ### 教程 14 | * [NSHipster - Apple Pay](http://nshipster.com/apple-pay/):继上一期WatchKit后,本期NSHipster专栏给了Apple Pay。分别从以下几个主题阐述:1. 获得商户ID;2. 开发第一个收费程序;3. PKPaymentAuthorizationViewControllerDelegate;4. 动态的物流方式及定价。 15 | * [WatchKit: Open Your iOS App From The Watch](http://natashatherobot.com/watchkit-open-ios-app-from-watch/):如何通过WatchKit启动它的宿主iPhone中的iOS应用。 16 | * [如何在Swift中运用Text Kit框架(一](http://www.devtalking.com/articles/text-kit-tutorial-in-swift-1/),[二](http://www.devtalking.com/articles/text-kit-tutorial-in-swift-2/)): “现在iOS8发布了,在文本渲染方面在延续了之前强大功能的基础上,又提升了其易用性。” 译者:[@DevTalking](http://weibo.com/jacefu) 原文:[Text Kit Tutorial in Swift](http://www.raywenderlich.com/77092/text-kit-tutorial-swift) 17 | * [WatchKit Storyboard攻略(二)](http://weibo.com/p/1001603787367470257327):"主要针对第二类视图界面也就是Glance(瞥览)进行示例介绍,编写之际恰逢WatchKit beta2的更新,因此也将顺便介绍有关更新内容。By [@WatchKit开发](http://weibo.com/twios)" 18 | * [用Swift的函数式编程解决硬币问题](http://idlelife.org/archives/896):作者的算法实现简单又巧妙,关键是充分利用到了Swift语法的精妙之处。项目:[ijoshsmith/break-a-dollar]( https://github.com/ijoshsmith/break-a-dollar)。"要破开一美元的方法一共有293种之多。也就是说,如果有人给你一美元换零钱,你可以给他293种不同的硬币组合。第二天,我开始思考如何编写代码来破开任意数量的金钱,本文总结了解开这个谜题的两种实现方式。" 译者:[@pockry](http://weibo.com/pockry)) 19 | * **相关文档** 20 | * [觉知性,Apple Watch的杀手级特性](http://beforweb.com/node/628):“随时随地以最小的成本提供觉知性。对时间的觉知,对自己健康状况的觉知,对朋友和爱人即时状况的觉知,对将来由开发者们带来的无论什么东西的觉知” 来源:[@BeForWeb](http://weibo.com/beforweb) 译者: [@C7210](http://weibo.com/c7210) 原文: [ 21 | Awareness: The Killer Feature of the Apple Watch?](https://medium.com/@marckohlbrugge/awareness-the-killer-feature-of-the-apple-watch-cb929c12821d) 22 | 23 | -------------------------------------------------------------------------------- /weekly/2014-12-21.md: -------------------------------------------------------------------------------- 1 | 2014-12-21收录周报 2 | === 3 | > **本周特别推荐** [Introduction To SceneKit(Part I](http://www.weheartswift.com/introduction-scenekit-part-1/), [Part 2](http://www.weheartswift.com/introduction-scenekit-part-2/)): 从最简单的示例引导式介绍SceneKit的使用及更高级功能编程实战。这是一篇非常用心、专业的SceneKit教程。P.S. SceneKit是官方提供给开发者编写3D游戏及3D互动应用功能强大的编程框架及类库。By [WeHeartSwift.com](http://www.weheartswift.com/) 4 | 5 | ### 项目 6 | * [lexrus/VPNOn](https://github.com/lexrus/VPNOn):一款驻在通知中心内的基于Today扩展的VPN开关应用。 7 | 8 | ### 文档 9 | * [Swift官方博客 - Swift中的NSMethodSignature怎么了?](http://idlelife.org/archives/910) (译者:[@pockry](http://weibo.com/pockry)):"Swift中一些关系到动态方法调用的类被隐藏了,不过有另外的方法可以实现同样甚至更强大的功能。" 原文:[ What Happened to NSMethodSignature?](https://developer.apple.com/swift/blog/?id=19)。P.S. 相对来讲,Swift官网博客更注重基础及细节。 10 | 11 | ### 教程 12 | * [Introduction To SceneKit(Part I](http://www.weheartswift.com/introduction-scenekit-part-1/), [Part 2](http://www.weheartswift.com/introduction-scenekit-part-2/)): 从最简单的示例引导式介绍SceneKit的使用及更高级功能编程实战。这是一篇非常用心、专业的SceneKit教程。P.S. SceneKit是官方提供给开发者编写3D游戏及3D互动应用功能强大的编程框架及类库。By [WeHeartSwift.com](http://www.weheartswift.com/) 13 | * [Natasha The Robot - WatchKit: A Quick Reply](http://natashatherobot.com/watchkit-a-quick-reply/):这是娜塔莎网站上提供的一篇iOS与WatchKit简单通讯及相互控制教程。供学习参考。 14 | * [NSHipster - NSUndo​Manager](http://nshipster.com/nsundomanager/):本文分别结合Swift/Objective-C代码示例讲解UndoManager的使用。 15 | 16 | * **相关文档** 17 | * [设计师+Xcode:突破产品开发的流程界线](http://www.beforweb.com/node/604):原文作者做为视觉设计师,讲述了采用Interface Builder和Storyboard与开发小组协同工作的故事。虽然只是一个4人小团队,但清晰的分工协作,使项目有序高效进展。Xcode也让视觉设计师及UX设计师有机会分担部分前端开发工作。来源:[@BeForWeb](http://weibo.com/beforweb) 译者: [@C7210](http://weibo.com/c7210) 原文: [Blurring the lines between design and code](http://ustwo.com/blog/the-billogram-story/) 18 | 19 | ### 评测 20 | * [【Workflow 测评】Workflow 是款什么软件?](http://jbguide.me/2014/12/18/workflow-review-what-is-workflow/)(作者:[@JailbreakHum](http://weibo.com/jailbreakhum)):"除了圣诞降价以外最近最火的软件话题应当是#Workflow#了。如果你没接触过此类软件,或许会纳闷它有何魅力。我们针对这款软件的测评系列的第一篇就是来向你概述它是什么软件的,所以文中给出大多是基本知识,不过相信也会给老手一定的启发。" 21 | 22 | ### 资源 23 | * [IBM Design Language](http://www.ibm.com/design/language/):"Living Language 24 | A shared vocabulary for design。Explore the guidelines for making delightful products and enlightening experiences." -------------------------------------------------------------------------------- /weekly/2014-12-28.md: -------------------------------------------------------------------------------- 1 | 2014-12-28收录周报 2 | === 3 | > **本周特别推荐** [盘点开发者最喜爱的Swift技巧](http://www.csdn.net/article/2014-12-25/2823312-favorite-swift-tips-and-tricks):文章首推Natasha The Robot博主Natasha Murashev独门Swift秘籍,还有objc.io博主Chris Eidhof着力推荐的独具特色的Swift版Quicksort,还有... 还是请同学们细细品读文章吧。译者:[@唐门教主](http://weibo.com/u/2019731997),原文:[Favorite Swift Tips & Tricks of 2014](http://realm.io/news/favorite-swift-tips-and-tricks-of-2014/) 4 | 5 | ### 项目 6 | * [indragiek/DominantColor](https://github.com/indragiek/DominantColor):采用YUV色域编码规则及K均值聚类算法提取图片代表色开源项目。很实用,很赞! 7 | * [iSame7/Panoramic](https://github.com/iSame7/Panoramic):该项目通过Core Motion实现了变换角度移动手机时,使图片显示产生对应位置及角度的变换。从而达到了具有现场感的图片浏览功能。 8 | * [duemunk/Async](https://github.com/duemunk/Async):一个后台执行代码封装库,它可以让你的后台代码封装语法更简洁。 9 | * [jquave/EasyCast](https://github.com/jquave/EasyCast):这是一个自动强制转换操作符左右类型及常用数学函数参数类型无障碍使用的类库。[@onevcat](http://weibo.com/onevcat)几个月前也写过类似功能库 [onevcat/Easy-Cal-Swift](https://github.com/onevcat/Easy-Cal-Swift),不过,停滞更新很久了。 10 | 11 | 12 | ### 教程 13 | * **开发技巧** 14 | * [盘点开发者最喜爱的Swift技巧](http://www.csdn.net/article/2014-12-25/2823312-favorite-swift-tips-and-tricks):文章首推Natasha The Robot博主Natasha Murashev独门Swift秘籍,还有objc.io博主Chris Eidhof着力推荐的独具特色的Swift版Quicksort,还有... 还是请同学们细细品读文章吧。译者:[@唐门教主](http://weibo.com/u/2019731997),原文:[Favorite Swift Tips & Tricks of 2014](http://realm.io/news/favorite-swift-tips-and-tricks-of-2014/) 15 | * [iOS二维码扫描,你需要注意的两件事](http://blog.cnbluebox.com/blog/2014/08/26/ioser-wei-ma-sao-miao/):相对于ZBar或ZXing,AVFoundation无论在扫描灵敏度和性能上来说都是最优的,所以毫无疑问我们应该切换到AVFoundation,需要兼容IOS6或之前的版本可以用zbar或zxing代替。 16 | 17 | * **相关文档** 18 | * [Natasha The Robot - Holiday Reading: Functional Programming](http://natashatherobot.com/reading-functional-programming/): http://t.cn/RzsyLqS : 考虑到在写Swift代码时,越来越多的使用函数式编程思想,圣诞节期间,娜塔莎网站特意精选了一份可以更深入理解函数式编程的阅读书单。书单主要以有函数式编程语言著称的Haskel为主要参考。 19 | * [Mattt Thompson - Watch​Kit(译文)](http://www.imooc.com/wenda/detail/240901):官方开发资源(尤其『视频Getting Started』,文档《Apple Watch人机交互指南》和《WatchKit编程指南》,以及「示例代码」)毫无意外做为文章优先推荐。当然,做为经验丰富的开发者,他还额外给出了WatchKit和UIKit惊人相似的对照表及核心API说明。原文:[Watch​Kit](http://nshipster.com/watchkit/),来源:[@慕课网iOS学习小组](http://weibo.com/u/5321505823) 20 | 21 | -------------------------------------------------------------------------------- /weekly/2015-01-04.md: -------------------------------------------------------------------------------- 1 | 2014-1-4收录周报 2 | === 3 | > **本周特别推荐** [PhotoBrowser](https://github.com/MoZhouqi/PhotoBrowser):"展示Instagram授权用户发布的照片的App,参考了Ray Wenderlich的Alamofire教程,还用了SwiftyJSON和FastImageCache。" By [@Kyrrr](http://weibo.com/u/2626996387) 4 | 5 | ### 项目 6 | * [PhotoBrowser](https://github.com/MoZhouqi/PhotoBrowser):"展示Instagram授权用户发布的照片的App,参考了Ray Wenderlich的Alamofire教程,还用了SwiftyJSON和FastImageCache。" By [@Kyrrr](http://weibo.com/u/2626996387) 7 | * [victor/whereami](https://github.com/victor/whereami):一款用Swift语言写的通过命令行获得当前设备地理位置程序。虽然很简单,不过,实用性及学习性俱佳。 8 | 9 | ### 教程 10 | * [怎样在Xcode 6中使用矢量图形](http://www.beforweb.com/node/633):"苹果在Xcode 6当中给我们带来了一些很棒的工具用以管理图形资源,它们可以帮我们从容的应对未来的iOS设备,例如基于PDF图形文件自动生成各种规格的图片资源..." 来源:[@BeForWeb](http://weibo.com/beforweb) 译者: [@C7210](http://weibo.com/c7210) 原文:[Using Vector Images in Xcode 6](http://martiancraft.com/blog/2014/09/vector-images-xcode6/) 11 | * **相关文档** 12 | * [WatchKit Storyboard攻略(三)](http://weibo.com/p/1001603792803355322322):"这是WatchKitStoryboard攻略的第三篇,重点自然是Notification(通知)视图这一部分的内容。By [@WatchKit开发](http://weibo.com/twios)" 13 | * [怎样从Sketch向Xcode自动导出图形资源](http://www.beforweb.com/node/647):"App设计开发的整个流程中会包含很多重复性的工作,例如在Sketch当中修改设计,重新导出,然后将更新后的图形资源移入Xcode,并再次运行项目以查看实际效果。而通过SketchTool配合Xcode,这些都可以自动化完成..." 来源:[@BeForWeb](http://weibo.com/beforweb) 译者: [@C7210](http://weibo.com/c7210) 原文: [Automatically Exporting Assets from Sketch into Xcode](http://mdznr.roon.io/automatically-exporting-assets-from-sketch-into-xcode) 14 | * [Workflow 教程 - 如何上手 Workflow](http://jbguide.me/2014/12/30/getting-started-with-workflow/):"Workflow 就像格莱美开奖前数月发售的一张钻石专辑,横空出世一鸣惊人,年终登上了各大媒体的最佳 App 榜。这篇文章用了一个实用的例子,介绍了 Workflow 里从简单到中等的一系列动作,相信会给没有头绪的你不少灵感。" 作者:[@JailbreakHum](http://weibo.com/jailbreakhum) 15 | * [5 Can’t-Miss Lessons from the Functional Swift Conference](http://natashatherobot.com/functional-swift-conference/):娜塔莎博主继续不遗余力的推荐的函数式编程。 16 | -------------------------------------------------------------------------------- /weekly/2015-01-11.md: -------------------------------------------------------------------------------- 1 | 2015-1-11收录周报 2 | === 3 | > **本周特别推荐:** 来自[Mattt Thompson](https://github.com/mattt) “大牛” 2014 年终美文一篇《[Cocoa之死](http://www.cocoachina.com/swift/20150107/10858.html)》。顺便,我也借2015年开年之季,额外整理了一份《[Swift 开源项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md)》,顺带短文一篇《[致 Swift 开发者](https://github.com/ipader/SwiftGuide/blob/master/2014%20letter.md)》。另外,特别推荐开发者一枚([@汤圣罡](http://weibo.com/lexrus)),他开发了两个特别牛的Swift项目 [LTMorphingLabel](https://github.com/lexrus/LTMorphingLabel) 和 [VPNOn](https://github.com/lexrus/VPNOn)。 4 | 5 | ### 项目 6 | 7 | * [marcelofabri/BigBrother](https://github.com/marcelofabri/BigBrother):网络请求活动状态监视器类。由于 Alamofire 库并无此项特性,因此它可以做为 Alamofire 的一个扩展功能。 8 | * [gavinbunney/Toucan](https://github.com/gavinbunney/Toucan):小而美的图片变换及处理类(支持:resize, clip, crop, scale, Ellipse Mask, Rounded Rect Mask, Image Mask)。功能略有超预期的感觉。 9 | * [ArtSabintsev/Siren](https://github.com/ArtSabintsev/Siren):当应用更新时,通知用户并提供App Store链接供用户更新的开源库。P.S. 该开发者也曾提供Objectvie-C语言版[ArtSabintsev/Harpy](https://github.com/ArtSabintsev/Harpy)。 10 | * [Thomvis/BrightFutures](https://github.com/Thomvis/BrightFutures):漫长或复杂计算由独立线程异步来完成。 11 | 12 | ### 教程 13 | * [怎样在Xcode 6中使用矢量图形](http://www.beforweb.com/node/633):"苹果在Xcode 6当中给我们带来了一些很棒的工具用以管理图形资源,它们可以帮我们从容的应对未来的iOS设备,例如基于PDF图形文件自动生成各种规格的图片资源..." 来源:[@BeForWeb](http://weibo.com/beforweb) 译者: [@C7210](http://weibo.com/c7210) 原文:[Using Vector Images in Xcode 6](http://martiancraft.com/blog/2014/09/vector-images-xcode6/) 14 | * **相关文档** 15 | * [致 Swift 开发者](https://github.com/ipader/SwiftGuide/blob/master/2014%20letter.md):“自 2014 年 6 月苹果发布 Swift 以来,本微博通过跟踪、归纳、汇总持续更新《Swift 语言指南》已经半年有余。由于个人力量绵薄,充其量它能让初学者快速索引到有用学习资源,而对于 Swift 进阶开发者,显然是远远不够的...” 16 | * [Swift开源项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md):“站在个人的角度,将2014年Swift开源项目做了一个甄别、筛选。当然,由于个人能力及涉足范围所限,还远远不够,其中肯定有偏颇及不足,还望同学们多多见谅。更希望能得到你帮助和补充,共同参与。” 17 | * [Mattt Thompson - Cocoa之死](http://www.cocoachina.com/swift/20150107/10858.html):"Cocoa,作为一个包含大多数工作在Objective-C语言上必要的基本库的集合,和CoreData,已经成为了Objective-C的事实标准。而Cocoa Touch基本上就是用UIKit更换掉AppKit的Cocoa,而且它也经常用来和Cocoa放在一起,来指代在iOS上的工作的系统框架。" 来源:[@CocoaChina](http://weibo.com/u/1659808677),译者:xiaoying,原文:[The Death of Cocoa](http://nshipster.com/the-death-of-cocoa/) 18 | * [为什么 iOS 开发不需要 Storyboard](http://idlelife.org/archives/946)(译者:[@pockry](http://weibo.com/pockry),原文:[The Story of no Storyboard in iOS Development](http://martinnormark.com/the-story-of-no-storyboard-in-ios-development/)):对于资深开发者或有代码"洁癖者",storyboard 或许会使其代码及配置相对臃肿或不必要的麻烦。即便如此,仍有使用程度及是否用好的问题。而对于大多数开发者,storyboard对于快速开发所带来直接的价值不可抹灭。以及另一故事《[设计师+Xcode:突破产品开发的流程界线](http://www.beforweb.com/node/604)》对于团队协同开发带来的积极影响。 19 | * [SwiftDoc.org](http://[SwiftDoc.org):自动生成的 Swift 在线文档。 20 | 21 | ### 资源合集 22 | * [Aufree/trip-to-iOS](https://github.com/Aufree/trip-to-iOS):显然作者很用心地做了非常深入的整理,尤其对于每一份资源的备注,它对于开发者拓展学习范围及增加开发知识面非常有益。作者:[@李锦发](http://weibo.com/jinfali) 23 | 24 | ### 开发工具 25 | * [InfinitApps - Bezel](http://infinitapps.com/bezel):“嫌 Xcode 6 目前提供的 Watch 模拟器不够直观?Bezel 是一个用于视觉预览 WatchKit 所开发程序效果的小工具,前提是你安装了 xScope 软件(Mac端)或 xScopeMirror(iPhone端)。 By [@WatchKit开发](http://weibo.com/twios)” 26 | -------------------------------------------------------------------------------- /weekly/2015-01-18.md: -------------------------------------------------------------------------------- 1 | 2015-1-18收录周报 2 | === 3 | > **本周特别推荐:** 开源项目 [Jan0707/SwiftColorArt](https://github.com/Jan0707/SwiftColorArt) 根据图片色系决定所在界面背景色及字体显示颜色。类库及示例代码也很简洁且易于使用。这样的项目真的带给我惊艳。何况,该开发者备注了这是他的第一个Swift项目。 4 | 5 | ### 项目 6 | * [uacaps/PageMenu](https://github.com/uacaps/PageMenu):分页式菜单控制及动态页视图切换。这款控件比较实用,且提供 CocoaPods 安装。 7 | * [kishikawakatsumi/KeychainAccess](https://github.com/kishikawakatsumi/KeychainAccess):这套Keychain管理比较完整。支持本地应用,网络应用,以及与Touch ID的集成应用。 8 | * [nori0620/SwiftFilePath](https://github.com/nori0620/SwiftFilePath):功能强大的文件及路径管理封装类库。 9 | * [Jan0707/SwiftColorArt](https://github.com/Jan0707/SwiftColorArt):根据图片色系决定所在界面背景色及字体显示颜色。类库及示例代码也很简洁且易于使用。这样的项目真的带给我惊艳。何况,该开发者备注了这是他的第一个Swift项目。 10 | 11 | 12 | ### 教程 13 | * [新年之际,盘点一些APP开发技巧](http://www.cocoachina.com/ios/20150114/10912.html):盘点了来自不同开发者的编程技巧或 Tips,相比以往 Mattt 文章,本文内容或许略显琐碎,不过,做为学习参考,尤其还能发现几位有经验iOS开发者还是很值得的。原文:[Reader Submissions - New Year's 2015](http://nshipster.com/new-years-2015/),作者:[Mattt Thompson](http://nshipster.com/authors/mattt-thompson/),译者:培子,校对蓝魂 14 | * [iOS 8 Handoff 开发指南](http://www.cocoachina.com/ios/20150115/10926.html):“本文通过一个包含不同功能的联系人示例工程详细讲述了如何进行 Handoff 开发,以及需要注意的地方。” 译者[@_HuaQiao](http://weibo.com/u/2509273763)),原文:[Working with Handoff in iOS 8](http://www.appcoda.com/handoff/) 15 | * [在iOS8创建一个交互性强的本地通知](http://www.cocoachina.com/ios/20150112/10901.html):“iOS 8里,通知加入了新特性。开发者可以指定用户可触发的具体的动作(actions),而且甚至不用启动App也可以处理这个通知。本文详细讲解了如何开发一个互动性强的本地通知,带示例项目。” 原文:[Creating Interactive Local Notifications in iOS 8 ](http://www.appcoda.com/local-notifications-ios8/)。为方便同学们实验使用,译者 [@iBenjamin_Go](http://weibo.com/u/2771490773) 还将 DropBox 上的示例移至GitHub: [ShoppingAlertFinal](https://github.com/iBenjamin/ShoppingAlertFinal) 16 | * [Mutating Functions in Swift Structs](http://natashatherobot.com/mutating-functions-swift-structs/) :Mutating Functions(变异方法)在结构中应用的简明教程。当然,如何需要进一步了解Swift语言中「方法」的特性,可以直接参考『[Swift语言编程 - 方法](http://numbbbbb.gitbooks.io/-the-swift-programming-language-/content/chapter2/11_Methods.html)』章节介绍 17 | * [Swift90Days - iOS 中的设计模式 (Swift 版本) 1/2](http://segmentfault.com/blog/callmewhy/1190000002479108):文章基于开发应用潜在使用到的设计模式进行论述,与实战结合可以让学习者印象深刻。当然,还可以结合另一个更直接介绍设计模式开源项目 [Design-Patterns-In-Swift](https://github.com/ochococo/Design-Patterns-In-Swift) 进行学习。纠正:严格的说,作者将MVC归到设计模式内并不合适,它是更上层的框架结构。原文:[Introducing iOS Design Patterns in Swift – Part 1/2 ](http://www.raywenderlich.com/86477/introducing-ios-design-patterns-in-swift-part-1),译者:[@请叫我汪二](http://weibo.com/small1030light) 18 | * **相关文档** 19 | * [objc.io - Infinite Things to Learn](http://www.objc.io/issue-20/natasha-murashev.html):通过这篇访谈,你可以了解 natashatherobot.com 博主娜塔莎同学 iOS 学习及"星"路历程。因为有她的不断的学习、分享,无限的开发兴趣,才让我们发现这个与 Swift 同步成长的优秀 Swift 教程类博客网站。 20 | 21 | -------------------------------------------------------------------------------- /weekly/2015-01-25.md: -------------------------------------------------------------------------------- 1 | 2015-1-25收录周报 2 | === 3 | > **本周特别推荐:** [#objc中国# - Issue 20](http://objccn.io/issue-20/):“三位传奇开发者的访谈,很有意思。天才少年 Andy Matuschak [《终身学习的一代人》](http://objccn.io/issue-20-1/) 两次创业 Loren Brichter [《让东西变得不那么糟》](http://objccn.io/issue-20-2/) 以及前 FBI 的俄国妹子 Natasha Murashev [《学无止境》](http://objccn.io/issue-20-3/)。简直篇篇精彩。By [@onevcat](http://weibo.com/onevcat)”。对于学习 Swift 语言的同学们,个人认为 Natasha Murashev 的访谈故事最应景,也最励志了。 4 | 5 | ### 项目 6 | * [Yalantis/Side-Menu.iOS](https://github.com/Yalantis/Side-Menu.iOS):一款带动画效果可定制 Slide Menu,可以学习其动画实现思路。P.S. 对于 Hamburger 式菜单,虽然很常用,不过,苹果并不鼓励使用,甚至有开发小组对其弊病用自家上线应用前后数据对比[进行了抨击](https://redbooth.com/blog/hamburger-menu-iphone-app),仅做参考。 7 | * [Mozharovsky/CVCalendar](https://github.com/Mozharovsky/CVCalendar):开源 Swift 版日历组件及示例。该项目开发者充分使用了面向对象设计思想,让开发者可以更容易扩展及定制功能。同时,该开发者还提供了详细的组件使用方法(Storyboard和代码方式指南)。 8 | * [dekatotoro/SlideMenuControllerSwift](https://github.com/dekatotoro/SlideMenuControllerSwift):这是一个侧滑菜单弹窗 UI 组件,它提供高度可定制参数及完整示例。另外,组件代码集中,易用,仅一个核心类 [SlideMenuController.swift](https://github.com/dekatotoro/SlideMenuControllerSwift/blob/master/Source/SlideMenuController.swift) 。 9 | * [mslathrop/SwiftNote](https://github.com/mslathrop/SwiftNote):一款简单的笔记应用及其Today插件。可惜开发者还不知道如何与iCloud进行数据同步,有兴趣的同学可以参与一下。 10 | * [schwa/SwiftGraphics](https://github.com/schwa/SwiftGraphics):一个易学、易用的绘图工具库封装。作者很勤劳,项目正在持续更新中。 11 | * [gcollazo/mongodbapp](https://github.com/gcollazo/mongodbapp):实现在Mac系统菜单栏上快捷启动/停止 MongoDB 的 Swift 项目。代码简单、易读,且核心代码全部在 [AppDelegate.swift](https://github.com/gcollazo/mongodbapp/blob/master/MongoDB/AppDelegate.swift) 12 | * [onevcat/RandomColorSwift](https://github.com/onevcat/RandomColorSwift):"刚刚开源了一个自动生成好看的颜色的 Swift 库,这是 [randomColor.js](https://github.com/davidmerfield/randomColor) 项目的 Swift 移植版本。在学习 Swift 的童鞋不妨一看,如果可以对于大家在 Swift 实际使用中的某些概念和写法有所启迪的话就再好不过了。" By [@onevcat](http://weibo.com/onevcat) 13 | 14 | 15 | ### 文档 16 | * [《The Swift Programming Language - 中译版》PDF 版](http://pan.baidu.com/s/1gd3VOiB)(提取码:vmcb ):"中文版繁杂不一,避免重复性答疑。与组织者[@梁杰_numbbbbb](http://weibo.com/numbbbbb) 商议后由我团队发布该翻译文档的 PDF 版和 EPUB 版。后续会增加CHM版,发布周期为2个月。" By [@老码团队](http://weibo.com/oldcoder) 17 | 18 | 19 | ### 教程 20 | * [AppCoda - 理解 iOS 8 中的 Photo Editing Extension](http://www.cocoachina.com/ios/20150122/10978.html):“我们一起来看看怎样制作一个 Photo Editing Extension。由于我们的关注点在创建应用程序扩展而不是写一个完整的应用,我已经创建了一个你们可以下载并且一路跟着做的上手项目”。原文:[Understanding Photo Editing Extensions in iOS 8](http://www.appcoda.com/photo-editing-extensions/),作者:Joyce Echessa,译者:[@X140Yu](http://weibo.com/272255634) 21 | * [NSHipster - Java​Script​Core](http://nshipster.com/javascriptcore/):文章介绍了在 Swift 中使用 Javascript 的方法和技巧,它对于 iOS 和 Web 应用工程师有两料价值。作者 Nate Cook 是一位独立的 Web 应用开发者及非常活跃的 Swift 博主。前些日子,他还创建了一个自动生成的 Swift 在线文档网站 SwiftDoc.org 22 | * [Swift 云编程功能](http://jiaocheng.ucai.cn/213-8612.html):“学Swift语言一定需要苹果设备或者虚拟机吗?NO,现在只要浏览器就可以练习Swift啦。看小编用Swift语言在线输出"Hello,World",是不是很神奇?” 23 | * **相关文档** 24 | * [王巍访谈:关于 Swift 学习和 AppleWatch 开发的一些建议](http://www.cocoachina.com/programmer/20150121/10966.html):“本期采访对象 [@onevcat](http://weibo.com/onevcat) ,圈儿内人称喵神,知名 iOS/Unity 开发者。喵神是 objc 中国项目发起人,开源过广受开发者喜爱的 Xcode 插件 [VVDocumenter](https://github.com/onevcat/VVDocumenter-Xcode) 。本期喵神主要跟我们分享关于 Swift 学习和 AppleWatch 开发的一些看法。” By [@CocoaChina](http://weibo.com/cocoachina) 25 | * [#objc中国# - Issue 20](http://objccn.io/issue-20/):“三位传奇开发者的访谈,很有意思。天才少年 Andy Matuschak [《终身学习的一代人》](http://objccn.io/issue-20-1/) 两次创业 Loren Brichter [《让东西变得不那么糟》](http://objccn.io/issue-20-2/) 以及前 FBI 的俄国妹子 Natasha Murashev [学无止境](http://objccn.io/issue-20-3/)。简直篇篇精彩。By [@onevcat](http://weibo.com/onevcat)”。对于学习 Swift 语言的同学们,个人认为 Natasha Murashev 的访谈故事最应景,也最励志了。 26 | * [Apple Watch 对苹果意味着什么?](http://www.ifanr.com/485205):作者详述了从 iPhone 的形式追随功能设计向  Watch 形式至上功能紧跟的设计转变;产品设计语言向圆润及曲面化发展,巧妙融入榫卯式连接;吐槽 Digital Crown 又赞赏了 Force Touch 里程碑意义,吐槽图标过密又赞赏三维位移UI; 展望了互联网金融、智能生活及健康医疗的可能性。 27 | 28 | ### 其它相关 29 | * [“设计”是思考的过程,而非光鲜的结果](http://beforweb.com/node/594):译文简述了产品设计的定义,以及它在产品研发过程中的意义。“设计流程,是彻底思考清楚一些事物的流程,这个流程才叫做“设计”;在这个流程的末端,就是那些实际可见的蕴含着思考产物的“副产品”。” 来源:[@BeForWeb](http://weibo.com/beforweb) 译者: [@C7210](http://weibo.com/c7210) 原文:[The one thing nobody designs](https://medium.com/the-reason-why-will-surprise-you/theres-no-such-thing-as-over-designed-3e2374ce996e) 30 | -------------------------------------------------------------------------------- /weekly/2015-02-01.md: -------------------------------------------------------------------------------- 1 | 2015-2-1收录周报 2 | === 3 | > **本周特别推荐:** [MengTo/Spring](https://github.com/MengTo/Spring) 不仅具有极简制作动画的 API ,还提供 Demo 界面调试动画效果,并生成相应代码。建议同学们在 Xcode 中运行体验一次,相信这个开源项目足够让你惊艳。已将其收入《[Swift 开源项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md)》。 4 | 5 | ### 项目 6 | * [rhcad/ShapeAnimation-Swift](https://github.com/rhcad/ShapeAnimation-Swift):功能强大、使用简单的矢量动画框架。支持多层级,多形状,渐变以及各种常见的动画变化效果。绘图核心基于该作者另一个近期很火的开源项目 [schwa/SwiftGraphics](https://github.com/schwa/SwiftGraphics)。 7 | * [raulriera/TextFieldEffects](https://github.com/raulriera/TextFieldEffects):具有不同输入风格及变化效果的标签和文本框组件库。它的原型来自 [codrops](http://tympanus.net/codrops/2015/01/08/inspiration-text-input-effects/) 的 JS/CSS 项目。P.S. 我曾经还推荐过另一款基于 "Float Label Pattern" 风格类似项目 [FloatLabelFields](https://github.com/FahimF/FloatLabelFields),与之一样优秀。 8 | * [MengTo/Spring](https://github.com/MengTo/Spring):不仅具有极简制作动画的 API ,还提供 Demo 界面调试动画效果,并生成相应代码。建议同学们在 Xcode 中运行体验一次,相信这个开源项目足够让你惊艳。已将其收入《[Swift 开源项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md)》。 9 | * [icanzilb/SwiftSpinner](https://github.com/icanzilb/SwiftSpinner):这个图文结合进程条功能完整,整体效果还很酷。当然,使用也很简单。值得收录。 10 | * [beltex/SMCKit](https://github.com/beltex/SMCKit):Mac 系统管理控制器 SMC(System Management Controller)Swift 语言版封装库。通过该类库,简单的几行代码就可知 CPU 温度,风扇转速,电池状态等硬件状态或活动状态。 11 | * [dasdom/BreakOutToRefresh](https://github.com/dasdom/BreakOutToRefresh):下拉加载刷新时,嵌入了用 SpriteKit 框架写的有趣的小游戏播放页。P.S. 此例中作者嵌入的或许并没有让你耳目一新,甚至感到有点牵强,不过,若嵌入更合适的呢? 12 | * [radex/SwiftyUserDefaults](https://github.com/radex/SwiftyUserDefaults):轻量级数据存储类 NSUserDefaults 扩展类,它使类型数据访问和存储更为便捷、直观。 13 | * [441088327/SYKeyboardTextField](https://github.com/441088327/SYKeyboardTextField):“开源一个我自己写的键盘附随输入框,为Swift做些贡献”。 作者:[@余书懿](http://weibo.com/ysy441088327) 14 | 15 | ### 教程 16 | * [Stanford 公开课 - Developing iOS 8 Apps with Swift](https://github.com/x140yu/Developing_iOS_8_Apps_With_Swift)(字幕翻译组):“Stanford 的 iOS 8 公开课在近日发布了。寻找一些想提高自己,愿意为大家做贡献的同学一起翻译字幕。有意向可以加入 QQ 群:277542197。即使英语不好,也有需要你来完成的任务。” 17 | * [WatchKit: Building a Simple Guess Game](http://www.appcoda.com/watchkit-introduction-tutorial/):用 WatchKit 编写一款简单随机猜数字小游戏教程。 步骤很清楚、详细,AppCoda.com 教程质量一如既往的好。来自 [AppCoda.com](http://AppCoda.com) 18 | * [怎样更优雅地处理网络返回数据](http://www.jianshu.com/p/5d4789db4310):“我写了新文章《Swift--怎样更优雅地处理网络返回数据》( 分享自 @简书 ) 竟然第一次写技术文章,想想都忏愧……希望以后能坚持下去……” 作者:[@日光镇](http://weibo.com/endertan) | P.S. 站在解决问题的角度,步骤清晰,目标明确。一次很好的开始。 19 | * [NSHipster - Java​Script​Core 中译文](http://www.csdn.net/article/2015-01-26/2823705-javascriptcore):学 Swift 的同学很幸福,很多优秀的文章发布不久,中译文就很快跟上了。译者:[@TurtleFromMars](http://weibo.com/u/2708375871) 20 | * **相关文档** 21 | * [提前关于 React Native 的一些介绍](http://segmentfault.com/blog/jiyinyiyong/1190000002523389):“Hacker News 上有人稍微描述了下, 我给翻译了一下. 简单说就是这项技术对于浏览器来说推进了一大步, 但是别期待太高, 只是个开发方案而已. 分享自 @SegmentFault”。作者:[@题叶](http://weibo.com/jiyinyiyong) | P.S. 若能再找到一份有关 React Native 性能、资源占用、耗能方面的评测文章,就更完美了。 22 | * [OS X 10.10 Yosemite: The Ars Technica Review](http://arstechnica.com/apple/2014/10/os-x-10-10/22/):“看了这篇从 CPU 指令集、编译器来剖析 Swift 的文章,对其的设计越来越肯定了。简单的说,它是一门使用 High Level 语言的语法及特性,同时仍有 Low Level 效能的一门语言。好久没看这么低层的文章了,过瘾!”。来源:[@图拉鼎](http://weibo.com/tualatrix) 23 | * [如何给苹果提交bug或功能需求?](http://idlelife.org/archives/950):“对于这个问题,好像国内还没有人写过,我觉得随着中国对苹果越来越重要,中国的苹果开发者也有必要站出来,和苹果多多交流沟通,不仅仅是对自己,也对改进中国区的苹果生态圈是有帮助的”。作者:[@pockry](http://weibo.com/pockry) 24 | 25 | ### 其它相关 26 | * [沃兹:Apple Watch 将改变世界](http://tech.ifeng.com/a/20150201/40966490_0.shtml):“手表会改变世界。每个人都会说很多人都在做智能手表。但是谁把它做的好了呢?苹果其实很多时候都站在风口浪尖的地方。每个人都会说很多人都在做智能手表。但是谁把它做的好了呢?我用过智能手表,但是每次我用完之后都很不喜欢,马上就不用了。只有苹果让我觉得好用” 来源 [@林泰前](http://weibo.com/limtc) 27 | * [Brett Terpstra 的 2014 年度最佳 Mac 软件推荐](http://www.waerfa.com/brett-terpstra-top-mac-app-list-from-2014):“Marked 的作者,Podcaster,独立程序员 Brett Terpstra 近期在自己的博客发布了自评年度最佳名单,涉及了硬件、软件、网络等产品近百项,我们将名单中的 Mac 软件提取出来,向大家介绍一下”。来源:[@Mac玩儿法](http://weibo.com/waerfa) -------------------------------------------------------------------------------- /weekly/2015-02-08.md: -------------------------------------------------------------------------------- 1 | 2015-2-8收录周报 2 | === 3 | > **本周特别推荐** [Ahmed-Ali/RealmObjectEditor](https://github.com/Ahmed-Ali/RealmObjectEditor):Realm数据库 Swift 版开源编辑器。提供针对实体,属性及关系的编辑功能,完成后可以将实体结构导出为Swift, Objective-C 或 Java 类模型。非常实用。 4 | 5 | ### 项目 6 | * [Khan/Prototope](https://github.com/Khan/Prototope):虽然看不懂这套用户交互层面的轻量级原型框架用处在哪里(哪位同学能给俺提示一下)?不过,作者将这套框架的 Swift API完整桥接为 JS 接口倒是很有意思。 7 | * [Ahmed-Ali/RealmObjectEditor](https://github.com/Ahmed-Ali/RealmObjectEditor):Realm数据库 Swift 版开源编辑器。提供针对实体,属性及关系的编辑功能,完成后可以将实体结构导出为Swift, Objective-C 或 Java 类模型。非常实用。 8 | * [michaelbabiy/RMParallax](https://github.com/michaelbabiy/RMParallax):在应用启动时,提供简单帮助向导步骤的界面组件及示例程序。 9 | * [andrelind/Breeze](https://github.com/andrelind/Breeze):轻量 CoreData 管理封装库。支持 iCloud 。 10 | * [eleks/rnd-apple-watch-tesla](https://github.com/eleks/rnd-apple-watch-tesla):Apple Watch 操作 Tesla 汽车。可惜是 Objective C 版本的,否则,Swift 同学又是一次很好的学习机会。 11 | 12 | ### 相关文章 13 | * [New Apple Photos app contains ‘UXKit’ framework](http://sixcolors.com/post/2015/02/new-apple-photos-app-contains-uxkit-framework/):“苹果已经移植 UIKit 到 Mac 了,叫做 UXKit,目前仍然未对开发者开放。新版本的 Photo 软件就用 UXKit 编写,相信在 WWDC 会正式推出-到时开发者会有一个接近统一的 iOS/Mac 开发平台。” By [@林泰前]() 14 | * [当特斯拉有了 Apple Watch 应用](http://www.ifanr.com/489113):“第三方开发商 Eleks Labs 就为特斯拉开发了一款 Apple Watch 应用。这款应用可以让用户通过手表控制特斯拉 Model S,包括上锁、解锁、调节车内不同区域的温度、开启大灯、定位……此外,宣传视频中还可以看到,应用能查看车辆电量、里程等信息。” 15 | * [让用户在输入密码时看到明文吧](http://www.beforweb.com/node/658):文章分析很全面,论述了各大公司在明文和遮罩间如何找平衡,作者列举了微软、Adobe、Twitter、LinkedIn、PayPal、Amazon 等大公司解决之道,结果是若仍采用密码方式,均非全平台最佳解决方案。最终只有借助 Touch ID (指纹)或其它可识别身份特征才是终极解决之道。 16 | -------------------------------------------------------------------------------- /weekly/2015-03-08.md: -------------------------------------------------------------------------------- 1 | 2015-3-8 收录周报 2 | === 3 | > **本周特别推荐** [objc.io - Camera and Photos](http://www.objc.io/issue-21/)([中译版 By #objc中国#](http://objccn.io/issue-21/)):这一期主要议题包括相机工作原理,图片格式,iOS 上的相机捕捉,照片框架,照片扩展,Core Image 介绍,GPU 加速下的图像处理,GPU 加速下的图像视觉,基于 OpenCV 的人脸识别。很精彩,不容错过。 4 | 5 | ### 项目 6 | * [prine/ROStorageBar](https://github.com/prine/ROStorageBar):存储器使用情况指示条组件,显示参数丰富,易于使用。开始以为它也包含了计算功能,可惜并没有,只是一个纯界面的小组件。不过,仍然有一定的实用性。 7 | * [MHaroonBaig/MotionKit](https://github.com/MHaroonBaig/MotionKit):为核心运动框架(The Core Motion framework)提供友好的类库封装,以更方便使用三轴陀螺仪和加速感应器特性。 8 | * [kylef/Mockingjay](https://github.com/kylef/Mockingjay):在单元测试时,模拟匹配条件的任意 HTTP 请求,该类库集成于 XCTest 框架内。是一套不可多得的快速开发工具库。 9 | * [uber/jetstream-ios](https://github.com/uber/jetstream-ios):一款 Uber 的 MVC 框架。它同时提供了多用户实时通讯支持,一旦启动 JetStream 后端服务,通过 WebSocket 协议可以分分钟建立多用户实时通讯应用。 10 | * [jpsim/DeckRocket](https://github.com/jpsim/DeckRocket):在相同 WiFi 网络环境内,通过 iPhone 控制并播放 Mac 中的 PDF 文档。 11 | * [MoZhouqi/KMPlaceholderTextView](https://github.com/MoZhouqi/KMPlaceholderTextView):可显示多行 placeholder 的 textView,实现逻辑简单、巧妙。 12 | * [kenshin03/Cherry](https://github.com/kenshin03/Cherry):定时器应用,功能包括在手表上新建活动,启动/停止活动,持久化活动数据在 iPhone,在 Glances 中查看活动状态并可直接切换至该应用。P.S. 该应用由作者之前开发的 Objective-C 项目采用 Swift 重写后获得。 13 | * [pixyzehn/MediumScrollFullScreen](https://github.com/pixyzehn/MediumScrollFullScreen):上下滚动时,全屏显示内容,并自然消隐上下菜单。由此项目感知,作者是一位很注重细节的开发者,[他](https://github.com/pixyzehn)的另外几个菜单类项目也都不错,值得参考,比如:PathMenu, MediumMenu 等。 14 | * [akosma/SwiftMoment](https://github.com/akosma/SwiftMoment):时间和日历函数封装库,也是经典的 [moment.js](http://momentjs.com/) 的 Swift 语言版本实现。 15 | * [ggamecrazy/LoadingImageView](https://github.com/ggamecrazy/LoadingImageView):简单实用的异步图片加载类库及示例。使用方便,功能独立、完整(离线存储也在计划中)。 16 | * [slazyk/SINQ](https://github.com/slazyk/SINQ):该项目把来自 C#和VB 的 LINQ 集成查询功能吸收了进来。是不是又一次证明了Swift 吸纳各语言精华的能力很强大,是不是又一次向"大一统"的编程/编译环境迈进了一步? 17 | * [practicalswift/swift-compiler-crashes](https://github.com/practicalswift/swift-compiler-crashes):旨在收集使 Swift 编译器崩溃的测试用例。这是一个疯狂又非常有意义的开源项目。可以定期关注一下。P.S. 该开源项目作者最新提示:Xcode 6.3 beta 与 Swift 1.2 已修复了其已发现编译器崩溃级缺陷的 83% 。 18 | 19 | 20 | ### 教程 21 | * [objc.io - Camera and Photos](http://www.objc.io/issue-21/)([中译版 By #objc中国#](http://objccn.io/issue-21/)):这一期主要议题包括相机工作原理,图片格式,iOS 上的相机捕捉,照片框架,照片扩展,Core Image 介绍,GPU 加速下的图像处理,GPU 加速下的图像视觉,基于 OpenCV 的人脸识别。很精彩,不容错过。 22 | * [玩儿转 Swift](http://www.imooc.com/view/127):粗略听了一下,发现[@刘宇波bobo](http://weibo.com/liuyubobobo)的这套 Swift 基础视频课程也比较适合初学者。PPT 及 示例代码显示很清晰。 23 | * [WatchKit Tutorial with Swift: Tables and Network Requests](http://www.raywenderlich.com/96589/watchkit-tutorial-swift-tables-network-requests):“Raywenderlich这篇关于WatchKit Table和网络请求的教程好详细,例子是实时获取比特币莱特币和狗币的最新价格,虽是英文但是图多啊!By [@WatchKit开发](http://weibo.com/twios)” 24 | *  Watch 开发讲座两份:[Architecting Your App for the Apple Watch ](http://realm.io/news/architecting-app-apple-watch-natashatherobot/) by [NatashaTheRobot](http://natashatherobot.com/), [Building WatchKit Apps in Swift](http://realm.io/news/building-watchkit-apps-swift/) by [Ben Morrow](https://github.com/happywatch) 25 | * [Github - Swift Style Guide](https://github.com/github/swift-style-guide)([中译版](https://github.com/Artwalk/swift-style-guide/blob/master/README_CN.md)): GitHub 官方版 Swift Style Guide。 26 | 27 | ### 相关文章 28 | * [“Silver”](http://elementscompiler.com/elements/silver/):“用Swift开发Android程序,还有.net Windows程序, 除了Apportable,又来了一个“Silver”。 学会Swift,iOS,Android,Windows全拿下!By [@蒋涛CSDN](http://weibo.com/csdncto)” 良好的编译架构成就非凡的 Swift 语言。 29 | * [Apple 最成功的产品是 Jonathan Ive?](http://www.hidecloud.com/blog/2015/02/25/profile-of-jonathan-ive.html):译文节选自《[The Shape of Things to Come](http://www.newyorker.com/magazine/2015/02/23/shape-things-come)》,可以让我们更多地了解 Jonathan Ive 。 30 | * [iOS 开发知识与能力体系](http://photo.weibo.com/1994161947/wbphotos/large/mid/3817767209953758/pid/76dc7f1bgw1epx5lszta3j214024q4dt):站在个人经验的角度,能整理出如此清晰、明细思维导图,非常赞。P.S. 编程语言部分若能补上 Swift 就更好了。在设计环节,建议补上设计方法及设计实践分支。By [@李锦发](http://weibo.com/jinfali) 31 | * [WatchApps](http://watchaware.com/watch-apps):“可交互的演示网站, 和 Apple Watch 应用开发者合作, 利用 Javascript 和动态 PNG, 以及来自视频, 真机屏幕截图等素材, 让大家预览 Apple Watch 上热门应用的使用体验, 包括应用界面, Glance 一瞥界面, 通知界面。” By [@苹果网](http://weibo.com/macx) -------------------------------------------------------------------------------- /weekly/2015-03-15.md: -------------------------------------------------------------------------------- 1 | 2015-3-15 收录周报 2 | === 3 | > **本周特别推荐** [kostiakoval/WatchKit-Apps](https://github.com/kostiakoval/WatchKit-Apps):WatchKit 开源小项目示例集锦。是不可多得地学习 WatchKit 的示例式教程。 4 | 5 | ### 项目 6 | * [ishkawa/APIKit](https://github.com/ishkawa/APIKit):为不同来源或类型 Web 服务,提供安全地可定制化网络请求 API 的基础类库。很好的面向对象设计思路实例。 7 | * [socketio/socket.io-client-swift](https://github.com/socketio/socket.io-client-swift):WebSockect 客户端类库。开放的通讯协议,有利于构建强大地跨平台应用。 8 | * [imaginary-cloud/CameraManager](https://github.com/imaginary-cloud/CameraManager):相机管理封装类库。看着极好用的样子。 9 | * [yannickl/QRCodeReader.swift](https://github.com/yannickl/QRCodeReader.swift):一款简单的 QR 二维码阅读组件及示例,提供前后相机切换功能。 10 | * [aaronabentheuer/AAFaceDetection](https://github.com/aaronabentheuer/AAFaceDetection):简单、实用的面部识别封装库。虽然该技术从 iOS 5 发展,不过真正有趣的应用还不多。例如:在视频直播中可以检测观众情感(微笑或眨眼),或注意力(看着屏幕或没有)。因此,作者对其抱以很高的期待,并已经着手开发实验室类大项目。 11 | * [schwa/TimingFunctionEditor](https://github.com/schwa/TimingFunctionEditor):贝塞尔曲线编辑器,编辑后可以预览或拷贝代码片段直接使用。P.S. 该项目采用更简单的依赖管理器 [Carthage](https://github.com/Carthage/Carthage)。 12 | * [Yalantis/Persei](https://github.com/Yalantis/Persei):动画隐藏或显示顶部菜单支持库及示例项目。P.S. Yalantis 这个开发商,在 GitHub 上展示开发能力,Dribbble 上展示交互设计能力,并在 Behance 推广项目。整体展现了其出众的软件过程管理及综合开发实力。非常值得国内开发者学习。 13 | * [KyleGoddard/KGFloatingDrawer](https://github.com/KyleGoddard/KGFloatingDrawer):一款适合于大屏手机或平板的浮动抽屉式导航界面组件。效果很赞。 14 | * [Carthage/Carthage](https://github.com/Carthage/Carthage):更简单的方式来管理 Cocoa 第三方框架。有了 CocoaPods 为何还要使用 Carthage,作者在 README.md([中译](http://www.cocoachina.com/ios/20141204/10528.html)) 已经做了充分说明。 15 | * [kostiakoval/WatchKit-Apps](https://github.com/kostiakoval/WatchKit-Apps):WatchKit 开源小项目示例集锦。是不可多得地学习 WatchKit 的示例式教程。 16 | * [MengTo/DesignerNewsApp](https://github.com/MengTo/DesignerNewsApp):一款针对 Designer News 网站的完整 iOS 应用,最具特色地是开发者对动画技术得心应手的应用。P.S. 该开发者发布过一套非常完整、实用的优秀动画封装库及演示工具 [Spring](http://weibo.com/5167456916/C2l95BHar)。 17 | * [MoZhouqi/VoiceMemos](https://github.com/MoZhouqi/VoiceMemos):“语音笔记本应用。用到了一些 iOS 8 新技术,比如 UISplitViewController、UISearchController、UIAlertController、自定义 Presentations、可视化开发,还有一些语音相关的用法。界面开发的新技术介绍可以参考 [@onevcat](http//weibo.com/onevcat) 的 [这个帖子](http://onevcat.com/2014/07/ios-ui-unique/)”。 18 | 19 | ### 文档及资源 20 | * [Apple Watch 的 5 个产品思路畅想](http://www.beforweb.com/node/689):“接下来的几年会很有意思,数字产品的体验模式正朝着多平台的方向迅速进化着,每一类设备都在开疆破土。我(英文原文作者)整理了五个类型的产品思路,或是说畅想,在 Apple Watch 即将正式上市的前夕,与大家做以分享和探讨...” 21 | * [WatchKit 数据共享 - 谨慎使用 NSFileCoordinator 和 NSFilePresenter](http://natashatherobot.com/watchkit-nsfilecoordinator-nsfilepresenter/):Natasha 教你如何深入理解 iOS 与 WatchKit 应用数据共享问题,并采用最有效方法开发,以避免陷入坑中。 P.S. 话说这位俄国妹子学习方法及能力真得很强,非常值得同学们学习。 22 | * [15 项 Force Click 特性](http://www.feng.com/apple/macbook/2015-03-13/15-2015-macbook-hidden-Force-Click-properties_609684.shtml):“MacBook 和 13 英寸 Retina MacBook Pro 均配备了新的 Force Touch 触控板,给 OS X 中的某些应用增加新的特性。10.10.3 Yosemite 系统测试版已经包括了 Force Touch 的 API(开发者界面)。” 23 | * [Robin Eggenkamp - Awesome Swift](https://swift.zeef.com/robin.eggenkamp):“一个收集了很多 Swift 开发资源的网站”。 24 | * [Swift 开源项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md):最近新收录 SwiftMoment,MotionKit,Jetstream,RMParallax,WatchKit-Apps 等 5 个,合计已收录 53 个。 25 | * *苹果春季(3/9)发布会亮点:* 26 | 1. MacBook 成为了笔电新的标杆; 27 | 2.  Watch 表壳通过全新材料的应用,不仅提升了硬度,更多彰显了其奢华及品味; 28 | 3. ForceTouch 应用于 MacBook / Pro,成为了新一代技术创新主打元素。而 USB-C 端口更引领笔电接口极简之风。 -------------------------------------------------------------------------------- /weekly/2015-03-22.md: -------------------------------------------------------------------------------- 1 | 2015-3-22 收录周报 2 | === 3 | > **本周特别推荐** [CarlosButron/Swift](https://github.com/CarlosButron/Swift):60 多个 Swift 示例项目及代码集锦,技术及品类几乎涉足方方面面。 4 | 5 | ### 项目 6 | * [zemirco/swift-linechart](https://github.com/zemirco/swift-linechart):功能完整、实用的折线图组件。使用方便,参数配置简单。是不可多得的优质组件。 7 | * [kiavashfaisali/KFWatchKitAnimations](https://github.com/kiavashfaisali/KFWatchKitAnimations):为  Watch 提供 60 帧动画显示效果解决方案及示例。 8 | * [khawars/KSTokenView](https://github.com/khawars/KSTokenView):带搜索、快捷输入、分段显示关键词的增强输入组件。作者提供了丰富地配置参数。主体功能同群发短信时选择、编辑好友群。 9 | * [CarlosButron/Swift](https://github.com/CarlosButron/Swift):60 多个 Swift 示例项目及代码集锦,技术及品类几乎涉足方方面面。 10 | * [andreamazz/GearRefreshControl](https://github.com/andreamazz/GearRefreshControl):这款下拉刷新动画是我所看到最没违和感的一个。 11 | * [zenangst/Versions](https://github.com/zenangst/Versions):版本比较小工具。 12 | 13 | ### 文档 14 | * [WatchKit开发小窍门](http://www.cocoachina.com/ios/20150319/11368.html):“使用这些小窍门和最佳实践来优化你的 WatchKit 应用 By [@CocoaChina](http://weibo.com/cocoachina)”。 苹果官网原文:[WatchKit Development Tips](https://developer.apple.com/watchkit/tips/) 15 | * [Swifty - Learn to code in Swift!](https://itunes.apple.com/us/app/swifty-learn-to-code-in-swift!/id886315617):“这款叫 Swifty 的 iOS 应用可以模拟 Swift 代码环境,不知道实际效果如何? By [@JailJT_MBlog](http://weibo.com/jailjumpt)”。虽然只是基础语法为主。不过这款应用能首先切入移动端教授 Swift 编程知识,还是很有意义的项目。 16 | * [NSHipster - IBInspectable / IBDesignable](http://nshipster.cn/ibinspectable-ibdesignable/):通过两者的配合,配置 NIB,XIB 或 storyboard 实例中的键值,所见即所得修改界面元素显示属性。尽管这样开发方式对于程序员来讲,并非那么地不可或缺。然而,对于设计师或美工来讲,则可以更多地参与界面开发,以有效提高实施效率。 17 | * [Apple Watch 三个月开发的一些收获总结](http://jerryliu.org/ios%20programming/Apple%20Watch-Development-summary/) By [@刘小崽儿_尐瑞rrrrr](http://weibo.com/u/1827525815) 18 | * [Swift 开源项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md):最近新收录 CameraManager,QRCodeReader,AAFaceDetection,APIKit,LineChart,KSTokenView,GearRefreshControl,Versions,CarlosButron - Examples 等 9 个,合计已收录 62 个。 19 | -------------------------------------------------------------------------------- /weekly/2015-03-29.md: -------------------------------------------------------------------------------- 1 | 2015-3-29 收录周报 2 | === 3 | > **本周特别推荐** [objc.io - #22 iOS at Scale](http://www.objc.io/issue-22/)( [中译版](http://objccn.io/issue-22/) By #objc中国#):本期通过 Omni,Artsy,Square,Dropbox,Facebook 等一定规模 iOS 开发团队的故事,基于不同侧重(开发流程、开源管理、发布管理流程、代码审查流程、组件化思想等角度)分享项目管理经验。 4 | 5 | ### 项目 6 | * [danielgindi/ios-charts](https://github.com/danielgindi/ios-charts):一款优秀 Android 图表开源库 MPAndroidChart 的 Swift 语言实现版(支持 Objective-C 和 Swift 调用)。缺省提供的示例代码为 Objective-C。P.S. 当然 [@周楷雯Kevin](http://weibo.com/kevinzhow) 同学的 [PNChart-Swift](https://github.com/kevinzhow/PNChart-Swift) 也不容错过,同学们可以各取所需比较使用。 7 | * [scotteg/LayerPlayer](https://github.com/scotteg/LayerPlayer):一款全面展示核心动画 API 示例项目([上架应用](https://itunes.apple.com/app/layer-player/id949768742))。包括 CALayer, CAScrollLayer, CATextLayer, AVPlayerLayer, CAGradientLayer, CAReplicatorLayer, CATiledLayer, CAShapeLayer, CAEAGLLayer, CATransformLayer, CAEmitterLayer 等使用的互动演示。RayWenderlich 有针对该项目的 [撰文解读](http://www.raywenderlich.com/90488/calayer-in-ios-with-swift-10-examples)([中译文](http://www.cocoachina.com/ios/20150318/11350.html) By [@TurtleFromMars](http://weibo.com/u/2708375871)),与开发者 Scott Gardner 的 [视频讨论](http://www.raywenderlich.com/90919/great-calayer-tour-tech-talk-video)。 8 | * [ReactiveCocoa/ReactiveAnimation](https://github.com/ReactiveCocoa/ReactiveAnimation):“ReactiveCocoa 推出了一个叫 ReactiveAnimation 的子项目,直接用完全用 Swift 来实现了。国外开发者社区就是拽啊! By [@图拉鼎](http://weibo.com/tualatrix)”。 9 | * [larcus94/BRNImagePickerSheet](https://github.com/larcus94/BRNImagePickerSheet):图片或视频选择器(可多选)组件及其示例项目。P.S. 作者推荐低藕、非侵入式三方库依赖引用方案 Carthage,从 iOS 8 开始,越来越多开发者推荐 Carthage 做为标配了。 10 | * [NorthernRealities/Rainbow](https://github.com/NorthernRealities/Rainbow):旨在提高代码可读性及易用性的 UIColor 扩展,它使原先有限的预定义颜色(方法)选择,扩展至超过 1200 种。 11 | * [jpotts18/swift-validator](https://github.com/jpotts18/swift-validator):基于规则的输入验证类库。项目良好的面向对象设计思想,使规则的扩展及自定义非常方便。P.S. 对于规则,若有更复杂的需求,则需要有更专业的规则引擎(甚至是基于自然语言的规则配置)解决方案。比如:开源的 Drools,商用的 ILOG 等。 12 | * [MakeZL/ZLSwiftRefresh](https://github.com/MakeZL/ZLSwiftRefresh):下拉刷新/上拉加载组件扩展及示例。“支持自定义动画,集成简单,兼容 UITableView,CollectionView,ScrollView,WebView”。 13 | * [gali8/Tesseract-OCR-iOS](https://github.com/gali8/Tesseract-OCR-iOS):OCR 文字识别也有相应 iOS 项目。虽然是 Objective C 版,不过,提供 CocoaPods 三方库引用。与 Android 版师出同门。属于主流开源项目。 14 | * [Akkyie/AKPickerView-Swift](https://github.com/Akkyie/AKPickerView-Swift):一款小而美的 3D 效果选择器。P.S. 作者分别提供了 CocoaPods 和 Carthage 两种方式的三方接口对外引用和指南,Carthage 获得越来越多主流开发者重视了。 15 | * [lizyyy/Homeoff](https://github.com/lizyyy/Homeoff):“用swift写了一个模仿Launcher通知中心快捷方式的应用。支持 20 个应用,并增加了一个返回到桌面来解放Home键的功能 By [@Swift攻略](http://weibo.com/u/2028497043)”。 16 | * [tsunghao/learn-swift](https://github.com/tsunghao/learn-swift):该项目是 [nettlep/learn-swift](https://github.com/nettlep/learn-swift) 项目的(正体)中译版。最难能可贵的是原项目最后更新是 6 个多月前了。而中译项目已经更新至 Xcode 6.2(6C131e) ,且下一版(Swift 1.2)正式发布后,作者还会继续更新。 17 | * [Lister](https://developer.apple.com/library/ios/samplecode/Lister/Introduction/Intro.html):“Lister 这个官方 demo 也跑起来了。Apple 还是很用心的,不仅做了 iOS、Mac 和 Apple Watch 版本,并且为这个 demo 分别用 Objective-C 和 Swift 实现了一遍,最后还配了整整 30 页的文档!By [@图拉鼎](http://weibo.com/tualatrix)”。官方示例一份顶十份,学走路从官方文档及示例开始。 18 | 19 | ### 文档 20 | * [objc.io - #22 iOS at Scale](http://www.objc.io/issue-22/)( [中译版](http://objccn.io/issue-22/) By #objc中国#):本期通过 Omni,Artsy,Square,Dropbox,Facebook 等一定规模 iOS 开发团队的故事,基于不同侧重(开发流程、开源管理、发布管理流程、代码审查流程、组件化思想等角度)分享项目管理经验。 21 | * [HomeKit 开发指南(中文版)](http://www.cocoachina.com/ios/20150324/11411.html)(By [@CocoaChina](http://weibo.com/cocoachina)):“内容包括:简介、启用HomeKit、创建Home布局、创建Homes和添加Accessories、观察HomeKit数据库的变化、访问服务和特性、测试HomeKitApp、创建动作集(Action Sets)和触发器(Triggers)以及用户管理”。原文来自苹果官方文档『[HomeKit Developer Guide](https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/HomeKitDeveloperGuide/Introduction/Introduction.html)』。 22 | * [WatchKit FAQ](http://www.cocoachina.com/ios/20150323/11396.html):“翻译自 Raywenderlich 的一篇译文,这篇WatchKit FAQ解答了一系列在社区、Twitter、邮件以及Stack Overflow上问的比较频繁的问题,包括基础问题,进阶问题、动画、调试和单元测试以及货币化的一些问题(译者:YueWang) By [@CocoaChina](http://weibo.com/cocoachina)”。 23 | * [跨平台开发时代的 (再次) 到来?](http://onevcat.com/2015/03/cross-platform/):过程分析很精彩。然而,在跨平台开发技术仍未明朗之前,虽然作者也无法给出决定性结论。不过,考虑到 NativeScript 及 ReactNative 进取型发展,正如作者最后所讲:“提前学点儿 Javascript 总是不会出错的”。无论如何,文章非常值得一读。作者:[@onevcat](http://weibo.com/onevcat) 24 | * [关于 URL Scheme 劫持的漏洞](http://drops.wooyun.org/papers/5309):“面对这个危险,app 暂且能做的很有限,只能检测,问题的主要原因是 URL Scheme 可以被任何 app 随意注册,长远来看需要苹果在这方面能有所改善。By [@你全家都快到碗里来](http://weibo.com/chinawangchen)”。解决方案:[0dayZh/ZDURLSchemeInspector](https://github.com/0dayZh/ZDURLSchemeInspector) 25 | * [适合iOS开发者的 15 大网站推荐](http://www.csdn.net/article/2015-03-04/2824108-ios-developers-sites/1):的确很全、很主流的国外 iOS 开发者网站。 26 | * [Swift 开源项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md):最近新收录 ios-charts,LayerPlayer,ReactiveAnimation,Rainbow,swift-validator 等 5 个,合计已收录 67 个。 27 | -------------------------------------------------------------------------------- /weekly/2015-04-05.md: -------------------------------------------------------------------------------- 1 | 2015-4-5 收录周报 2 | === 3 | > **本周特别推荐** [JayGajjar/JGTransitionCollectionView](https://github.com/JayGajjar/JGTransitionCollectionView):基于集合视图扩展实现完成自动布局及单元项 Flip 式动画效果。组件使用方便、自然(只需设置集合视图数据源的标准方式即可)。 4 | 5 | ### 项目 6 | * [nghialv/Transporter](https://github.com/nghialv/Transporter):短小、精悍、易用的多文件(并发或顺序)上传和下载传输库。还支持后台运行、传输进程跟踪、暂停/续传/取消/重试控制等功能。 7 | * [krzyzanowskim/CryptoSwift](https://github.com/krzyzanowskim/CryptoSwift):纯 Swift 版 Crypto 算法及相关功能类库。是一套易用、易扩展、完整、不可或缺的功能库。 8 | * [nomothetis/SemverKit](https://github.com/nomothetis/SemverKit):针对符合『语义化版本规范 2.0.0』版本号的解析、比较运算类库。不仅支持 Major, Minor, Patch,还支持 Alpha 和 Beta 预发布版本,以及相应地递增运算扩展。 9 | * [JayGajjar/JGTransitionCollectionView](https://github.com/JayGajjar/JGTransitionCollectionView):基于集合视图扩展实现完成自动布局及单元项 Flip 式动画效果(效果很赞)。组件使用方便、自然(只需设置集合视图数据源的标准方式即可)。 10 | * [knutigro/COBezierTableView](https://github.com/knutigro/COBezierTableView):通过编辑 Bezier 曲线四点位置设置 TableView 内 Cell 及对应按扭位置。实验效果很赞。#为开源点赞# 11 | * [szk-atmosphere/SAHistoryNavigationViewController](https://github.com/szk-atmosphere/SAHistoryNavigationViewController):通过继承 UIViewController 并扩展 UICollectionView,UINavigationController,NSLayoutConstraint 等界面及布局控制核心类,应用内模拟实现 iOS 任务管理界面及切换组件。 12 | * [szk-atmosphere/SABlurImageView](https://github.com/szk-atmosphere/SABlurImageView):支持渐变动画效果的图像模糊化类库。P.S. 与前几天推存类库 SAHistoryNavigationViewController 是同一位作者。 13 | * [jessesquires/JSQNotificationObserverKit](https://github.com/jessesquires/JSQNotificationObserverKit):一款轻量、易用的通知发送及响应框架类库。作者是知名开源项目 JSQMessagesViewController(Objective-C 版即时聊天)的作者 Jesse Squires ,也是一位知名博主,收录过其文章『An analysis of sorts between Objective-C and Swift』。 14 | * [artsy/eidolon](https://github.com/artsy/eidolon):艺术品拍卖的投标亭平台。作者提供了一个[很励志的开发故事](http://artsy.github.io/blog/2014/11/13/eidolon-retrospective/):从商业创意到最终实现。心路历程从不开源到开源,从 Objective-C 到 Swift(去年夏天的事,现在当然是 Swift),以及选择时髦的反应式编程框架 ReactiveCocoa…… 15 | 16 | ### 文档 17 | * [NSHipster - NSCalendar Additions](http://nshipster.com/nscalendar-additions/):文章介绍了 NSCalendar 及相关功能使用场景,剖解了相对于其它基本数据类型,苹果为具有更高复杂功能要求的日期类型所提供的强大的 API 支持。 18 | * [Facebook Paper使用的第三方库](http://blog.txx.im/blog/2014/02/11/facebook-paper-used-3rd/):这对于开发一版 iOS 商业应用意义重大。By [@糖炒小虾_txx](http://weibo.com/rpplusplus) 19 | * [一些国外知名app用到的 iOS 第三方框架](http://www.jianshu.com/p/c5b0eb58b878):针对 Paper 第三方库的补充非常赞。当然,这其中 [@糖炒小虾_txx](http://weibo.com/rpplusplus) 的[『Facebook Paper使用的第三方库』](http://blog.txx.im/blog/2014/02/11/facebook-paper-used-3rd/) 是点睛之笔。 20 | * [『Swift 官方博客』中译版更新](https://github.com/ipader/SwiftGuide#swift_blog):虽无固定团队维护,不过,已知译文有收录在 『Swift 语言指南』-官博镜像。贡献者有 @DevTalking,@pockry,@MichealGeng,@未来眼之老码团队 和 Bannings 等。 21 | * [Apple Watch 究竟有啥用?首批 60 款应用告诉你](http://www.leikeji.com/article?1986):嗯,很全。同学们在开发  Watch 应用之前先补补功课、随随主流或找找灵感,避免闭门造车。 22 | * [Apple Watch平台认知与产品设计](http://www.beforweb.com/node/695):长文。引子部分略显拖沓, Watch 交互设计介绍及应用场景探讨部分值得一读。个人感觉,仅供参考。 23 | * [念叨 - 关于Sketch、Origami、Swift及Apple Watch](http://www.beforweb.com/node/697):念叨得不错,文章标题或许取『与 Sketch 相关的那点事』更好。 24 | * [Swift 开源项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md):最近新收录 JGTransitionCollectionView,Transporter,CryptoSwift,SABlurImageView,JSQNotificationObserverKit,COBezierTableView 等 6 个,合计已收录 73 个。 -------------------------------------------------------------------------------- /weekly/2015-04-12.md: -------------------------------------------------------------------------------- 1 | 2015-4-12 收录周报 2 | === 3 | > **本周特别推荐** [harlanhaskins/Punctual.swift](https://github.com/harlanhaskins/Punctual.swift):通过一系列基础数据类型扩展,使日期访问及操作更加自然语言化。若没有动态语言化地超强扩展及定制能力,如此优雅的日期操作是无法实现的。 4 | 5 | ### 项目 6 | * [harlanhaskins/Punctual.swift](https://github.com/harlanhaskins/Punctual.swift):通过一系列基础数据类型扩展,使日期访问及操作更加自然语言化。若没有动态语言化地超强扩展及定制能力,如此优雅的日期操作是无法实现的。 7 | * [ayanonagon/Parsimmon](https://github.com/ayanonagon/Parsimmon):小而美的语言学类库封装工具包。提供分词、标记词性、词形归并、朴素贝页斯分类、决策树等自然语言分析小工具。P.S. 英语分词效果好于中文,感兴趣的同学可以针对中文做一些优化开发。参考译文 [NSHipster - NSLinguistic​Tagger](http://nshipster.cn/nslinguistictagger/) 8 | * [Alecrim/AlecrimCoreData](https://github.com/Alecrim/AlecrimCoreData):更容易地访问 CoreData 对象封装类库。除了 CRUD,还提供指针定位,强大的排序、筛选,异步数据获取,以及独立线程后台存取数据。 9 | * [cocoatoucher/AIFlatSwitch](https://github.com/cocoatoucher/AIFlatSwitch):一款带平滑过渡动画的 Switch 组件类。记得之前收录过两款相同风格的 [Hamburger - Menu/Close](https://github.com/robb/hamburger-button) 和 [Hamburger - Menu/Back](https://github.com/fastred/HamburgerButton)。都是精细之作。 10 | * [GabrielAlva/Swift-Prompts](https://github.com/GabrielAlva/Swift-Prompts):一款漂亮、实用的提示弹窗。使用简单,参数定制完整,还支持窗口拖拽操作。 11 | * [inFullMobile/WobbleView](https://github.com/inFullMobile/WobbleView):当界面组件过渡时,带波纹摆动效果的组件扩展实现类及示例项目。 12 | * [cjwirth/RichEditorView](https://github.com/cjwirth/RichEditorView):一套可定制富文本编辑器组件及示例。功能完整、代码简练、实现逻辑巧妙(编辑器核心与 WebView 结合,采用 HTML5 contentEditable 编辑模式,执行JS 配套命令 execCommand 实现富文本编辑功能)。 13 | * [SemperIdem/MKMapView-Extension](https://github.com/SemperIdem/MKMapView-Extension):“在用 MapKit 的时候发现MKMapView缺少了极其重要的 ZoomLevel 这一个功能,因此便参照了网上的一些OC例程写了一个Swift版本的扩展,允许开发者获取当前地图的缩放级别和设置缩放级别。By [@星夜暮晨](http://weibo.com/moonisky)”。 14 | * [philcn/Auto-Layout-Showcase](https://github.com/philcn/Auto-Layout-Showcase):几项常用自动布局技巧示例代码及演示。搭建简单应用够使了。 15 | * [FlexMonkey/MetalParticles](https://github.com/FlexMonkey/MetalParticles):超强计算、极致渲染,发挥 GPU 最高效能 Metal 框架演示项目。P.S. Metal 框架是并驾于 OpenGL ES 的底层图形计算接口。相比于 OpenGL,它甚至更底层、更接近 GPU。它是需求超强计算及渲染性能要求的游 16 | 戏平台不二之选。 17 | 18 | 19 | 20 | ### 文档 21 | * [生成自适应图表图片的秘密](https://github.com/nixzhu/dev-blog/blob/master/2015-04-08-adaptive-chart.md):局促的空间(  Watch)内如何优雅地显示完整柱状图?作者不仅有效地解决了问题,同时,其思考过程在文章中也一览无余。好文章(非程序员勿入)。示例项目 [AdaptiveChartDemo](https://github.com/nixzhu/AdaptiveChartDemo) 22 | * [『Objective-C GitHub 排名前 100 项目简介』](https://github.com/Aufree/trip-to-iOS/blob/master/Top-100.md) 23 | * [独家视频:Apple Watch开箱](http://video.sina.com.cn/p/tech/mobile/n/v/2015-04-08/200164813761.html):“上一条是[图文版详细评测](http://tech.sina.com.cn/mobile/n/apple/2015-04-08/200110024828.shtml),我们还准备了一短视频,快速介绍Apple Watch和两款表带开箱过程,并介绍它的主要的功能点。只此一家,别处没有。” By [@苹果汇](http://weibo.com/appleus) 24 | * [Swift 开源项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md):最近新收录 Punctual.swift, Parsimmon, AlecrimCoreData, AIFlatSwitch, Swift-Prompts, WobbleView, RichEditorView, MetalParticles 等 8 个,合计已收录 81 个。 -------------------------------------------------------------------------------- /weekly/2015-04-19.md: -------------------------------------------------------------------------------- 1 | 2015-4-19 收录周报 2 | === 3 | > **本周特别推荐** 《**Auto Layout 使用心得**》([1. 初体验](http://lvwenhan.com/ios/430.html);[2. 实现三等分](http://lvwenhan.com/ios/431.html);[3. 自定义 cell 并使用 Auto Layout](http://lvwenhan.com/ios/441.html);4. [22 行代码实现拖动回弹](http://lvwenhan.com/ios/442.html);[5. 根据文字、图片自动计算 UITableViewCell 高度](http://lvwenhan.com/ios/449.html)):这是我见过最为细致入微介绍自动布局及快速入门的中文教程。作者:[@吕文翰_JohnLui](http://weibo.com/balishengmuyuan)。 4 | 5 | ### 项目 6 | * [didierbrun/DBPathRecognizer](https://github.com/didierbrun/DBPathRecognizer):基于路径模型的手势识别工具(仅一个核心类)。妙处在于作者通过示例项目设置好 A-Z 字母的路径模型后,可以进行相应的手写识别。尽管它可能无法替代专业的手写识别输入,不过对于普通的手势识别还是搓搓有余了。 7 | * [Yalantis/GuillotineMenu](https://github.com/Yalantis/GuillotineMenu):正如其项目名字一样,这是一款极具创意及突破精神的动画演示项目。P.S. 这家公司(Yalantis)做动画,尤其界面特效出神入化。且 iOS / Android 通吃。 8 | * [contentful-labs/Concorde](https://github.com/contentful-labs/Concorde):一个可用于下载和解码渐进式 JPEG 的库。特定场合很有用。类库的调用方法也很自然、方便。 9 | * [burczyk/XcodeSwiftSnippets](https://github.com/burczyk/XcodeSwiftSnippets):Swift的版的 code snippets,快速代码输入工具。乐此不彼的同学还可以根据自己的偏好及项目特点,多写一些备用。 10 | * [diwu/LeetCode-Solutions-in-Swift](https://github.com/diwu/LeetCode-Solutions-in-Swift):LeetCode 的 Swift 语言版解题方案。需要面试人的同学可以收录,被面试的同学则要补补功课了。P.S. 虽然相对于 LeetCode 题库完成比例还不高,不过,正好可以学着用 Swift 语言练练手。作者:[@diwup](http://weibo.com/diwup) 11 | * [lexrus/LeetCode.swift](https://github.com/lexrus/LeetCode.swift):[@汤圣罡](http://weibo.com/lexrus) 版 LeetCode 算法解题方案。 12 | * [Markdown -> Playground](https://github.com/jas/playground):该开源项目可将内含有 Swift 代码的 Markdown 自动转换为 Xcode Playgrounds 文件。喜欢用 Markdown 编辑的同学很激动吧。P.S. 这款工具写于 NodeJS,原因作者有交待。 13 | * [全唐诗数据库](https://github.com/hxgdzyuyi/tang_poetry):SQLite 数据库脚本。 14 | 15 | ### 文档 16 | * [objc.io #23 Video - Core Image 和视频](http://objccn.io/issue-23-2/):本文介绍如何通过 Core Image 框架结合视频信息进行应景渲染,从而让视频表现出各种奇妙效果。译者:[@高考这件尛事](http://weibo.com/yuanjingkeji) P.S. 上上期(#21 Photo)着重于介绍图片的处理,本期又专注于介绍视频处理。objc 真是一个懂开发者的好网站。 17 | * Auto Layout 使用心得([1. 初体验](http://lvwenhan.com/ios/430.html);[2. 实现三等分](http://lvwenhan.com/ios/431.html);[3. 自定义 cell 并使用 Auto Layout](http://lvwenhan.com/ios/441.html);4. [22 行代码实现拖动回弹](http://lvwenhan.com/ios/442.html);[5. 根据文字、图片自动计算 UITableViewCell 高度](http://lvwenhan.com/ios/449.html)):这是我见过最为细致入微介绍自动布局及快速入门的中文教程。作者:[@吕文翰_JohnLui](http://weibo.com/balishengmuyuan)。 18 | * 再造 “手机QQ” 侧滑菜单([1. 实现侧滑效果](http://lvwenhan.com/ios/445.html);[2. 高仿左视图](http://lvwenhan.com/ios/446.html);[3. 视图联动](http://lvwenhan.com/ios/447.html)):通过简单直接的代码,实现了完整的动画效果。作者:[@吕文翰_JohnLui](http://weibo.com/balishengmuyuan),示例项目:[SwiftSideslipLikeQQ](https://github.com/johnlui/SwiftSideslipLikeQQ) 19 | * [在 WatchKit 应用里使用 Realm 的教程](https://realm.io/news/tutorial-sharing-data-between-watchkit-and-your-app/):是一份很完整的教程。文章附了[完整示例代码](https://github.com/FancyPixel/done-swift)。 P.S. Realm 是志向代替 Core Data 和 SQLite 的移动数据库,它的特点是轻量、低耦、面向对象。 20 | * [Swift 开源项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md):最近新收录 LeetCode-Solutions-in-Swift,Concorde,DBPathRecognizer,GuillotineMenu 等 4 个,合计已收录 85 个。 -------------------------------------------------------------------------------- /weekly/2015-04-26.md: -------------------------------------------------------------------------------- 1 | 2015-4-26 收录周报 2 | === 3 | > **本周特别推荐** [使用状态机的好处](https://github.com/nixzhu/dev-blog/blob/master/2015-04-23-state-machine.md):“你写过最复杂的控件是什么样?它根据用户的操作,是否会有不同的“状态”?了解一点状态机,就易于理清逻辑,能写出可维护性较好的代码”。P.S. 好文。状态机让代码可读性更高了。同时通过对状态的有效管理,加强了应用的健壮性。作者:[@nixzhu](http://weibo.com/nixzhu) 4 | 5 | ### 项目 6 | * [antitypical/Result](https://github.com/antitypical/Result):精巧实用的 success/failure 小类库。P.S. 无论多么小的类,有开源就直接用,尽量避免自己写。 7 | * [davecom/SwiftPriorityQueue](https://github.com/davecom/SwiftPriorityQueue):通用优先级队列数据结构实现类,使用经典的二进制堆最大保障先入先出。另外,作者基于这个数据结构实现了一个经典算法 astar 找路径的示例应用。 8 | * [aryaxt/ScrollPager](https://github.com/aryaxt/ScrollPager):一款小巧、易用的页滚界面组件。结合 storyboard 及滚动视图,轻易实现拖拽页滚功能。 9 | * [Mav3r1ck/Project-RainMan](https://github.com/Mav3r1ck/Project-RainMan):一款天气预报应用。Forcast.io 提供的天气预报 API 很赞。 10 | * [insidegui/WWDC](https://github.com/insidegui/WWDC):一款观看 WWDC 视频及 Slices 且访问效率更高于官方网站的开源项目。对于 WWDC 2014,应用似乎来得晚了点。不过,同学们除了回顾,至少还可以从中学习作者采用了哪些技术来编写这款完整应用的。另外 WWDC 2015 或许可以用上它了。 11 | 12 | ### 文档 13 | * [面向轨道编程 - Swift 中的异常处理](http://blog.callmewhy.com/2015/04/20/error-handling-in-swift/):学习笔记。轨道方案巧妙又富有成效。作者:[@请叫我汪二](http://weibo.com/small1030light) 14 | * [使用状态机的好处](https://github.com/nixzhu/dev-blog/blob/master/2015-04-23-state-machine.md):“你写过最复杂的控件是什么样?它根据用户的操作,是否会有不同的“状态”?了解一点状态机,就易于理清逻辑,能写出可维护性较好的代码”。P.S. 好文。状态机让代码可读性更高了。同时通过对状态的有效管理,加强了应用的健壮性。作者:[@nixzhu](http://weibo.com/nixzhu) 15 | * [“My Biggest WatchKit Mistake”](http://realm.io/news/watchkit-mistakes/):看看国外知名开发者在使用 WatchKit 开发应用时犯过哪些最大的错误。前人的错误及教训就是我们宝贵的经验积累。 16 | * [Swift extension 的三项细节](http://www.andrewcbancroft.com/2015/04/22/3-nuances-of-swift-extensions/):相对于其它主流面向对象编程语言,Swift extension 访问控制与之有着细微的不同之处。比如同一个.swift 文件中不同类/结构间是可以访问 private 属性值的。而 Java, C# 等不同类间显然不能访问其 private 属性。 17 | * Swift 开发经验小技巧:1. [如何正确地定义一个类变量(和类常量)](http://imtx.me/archives/1916.html);2. [用 Optional 来避免异常指针问题](http://imtx.me/archives/1920.html);3. [如何用 Swift 思维设计网络请求](http://imtx.me/archives/1921.html);4. [正确地启用 Logging 机制](http://imtx.me/archives/1924.html)。作者:[@图拉鼎](http://weibo.com/tualatrix) 18 | * [IOS 各种调试技巧豪华套餐](http://www.cnblogs.com/daiweilai/p/4421340.html):讲得很细。对于初学 Xcode 开发的同学值得参考,对于有经验的同学可以略过。作者:[@David戴未来](http://weibo.com/daiweilai) 19 | * [Facebook React Native 中文教程](http://wiki.jikexueyuan.com/project/react-native/):“Facebook 在 [React.js Conf 2015 大会](http://conf.reactjs.com/)上推出了基于 JavaScript 的开源框架 [React Native](http://facebook.github.io/react-native/),本中文教程翻译自 [React Native 官方文档](http://facebook.github.io/react-native/docs/getting-started.html)”。译者:[@极客学院_jikexueyuan](http://weibo.com/jikexueyuan) 20 | * [详解Xcode 6的视图调试](http://www.cocoachina.com/ios/20150423/11658.html):教程非常实用,值得学习。另外,教程选用的开源项目([jessesquires/JSQMessagesViewController](https://github.com/jessesquires/JSQMessagesViewController))也很经典。来源:Ray Wenderlich,译者:[@CocoaChina](http://weibo.com/cocoachina) 翻译组 21 | * [EGOCache 源码解析](http://www.isaced.com/post-268.html):很专业的解读。话说如此精简、广得人心的 Objective-C 类库,哪位同学抽空把它转为 Swift 吧。 22 | * [Swift 项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md):最近新收录 Result, SwiftPriorityQueue, Project-RainMan 等 3 个,合计已收录 89 个。 23 | * [Swift 文章精选](https://github.com/ipader/SwiftGuide/blob/master/Featured-Articles.md):经过一周多的整理更新,目前已经收录 36 份资源。由于刚开始整理,除了收录比较片面外,分类及排版也比较粗糙。任何不足、疏漏,望同学们及时提醒,或主动参与,以便让每一份资源更经得住推敲。 -------------------------------------------------------------------------------- /weekly/2015-05-03.md: -------------------------------------------------------------------------------- 1 | 2015-5-3 收录周报 2 | === 3 | > **本周特别推荐** [indragiek/MarkdownTextView](https://github.com/indragiek/MarkdownTextView):非常轻量、简洁、高效的 Markdown 编辑组件及示例。这样的开源项目太喜欢了。 4 | 5 | ### 项目 6 | * [soffes/X](https://github.com/soffes/X):等不及苹果 iOS/OS X 平台统一的开发同学(Sam Soffes),启了一个项目,先将常用类库统一了。该项目刚开始,感兴趣的同学可以考虑参与其中。 7 | * [naoty/Timepiece](https://github.com/naoty/Timepiece):直观(自然语言化)的日期类扩展。它使日期加减运算、初始设置、日期变更以及基于指定格式解析转换变得方便、易读。P.S. 相比前一段时间推荐另一个类似日期库(Punctual.swift O网页链接)功能更丰富。 8 | * [macoscope/SwiftyStateMachine](https://github.com/macoscope/SwiftyStateMachine):应用好状态机,不仅提高程序可维护性,更大大增强了程序健壮性。 9 | * [benzguo/MusicKit](https://github.com/benzguo/MusicKit):一套音乐编辑及创作框架。懂音乐、玩音乐的同学值得拥有。 10 | * [wltrup/iOS-Swift-Circular-Progress-View](https://github.com/wltrup/iOS-Swift-Circular-Progress-View):小而精悍地可定制类似 Apple Watch 圆型进程条组件。该组件同时支持代码及 Interface Builder 两种使用方式。 11 | * [haaakon/SingleLineShakeAnimation](https://github.com/haaakon/SingleLineShakeAnimation):用一行代码给视图加上抖动效果。 12 | * [indragiek/MarkdownTextView](https://github.com/indragiek/MarkdownTextView):非常轻量、简洁、高效的 Markdown 编辑组件及示例。这样的开源项目太喜欢了。 13 | * [nickoneill/PermissionScope](https://github.com/nickoneill/PermissionScope):向用户请求 iOS 权限的封装组件。封装库 API 调用非常方便,调用代码也很精简。一个很好的“轮子”,值得收录。 14 | * [mortenjust/androidtool-mac](https://github.com/mortenjust/androidtool-mac):“一款用 Swift 写的可在 Mac 上使用的 Android 工具, 支持一键截屏, 视频录制, APK 安装等功能”。 15 | * [kongtomorrow/WatchTransition](https://github.com/kongtomorrow/WatchTransition):模拟 Apple Watch 上的动画过渡效果。Objective-C 和 Swift 混搭开发学习参考。 16 | * [FlexMonkey/SnapSwift](https://github.com/FlexMonkey/SnapSwift):一款 Snapseed 风格滤镜及参数编辑菜单。弹出菜单项后,上下、左右滑动即可调整滤镜参数。 17 | * [lexrus/JSCoreDemo](https://github.com/lexrus/JSCoreDemo):“演示了一下怎样在 Swift 里用 JavaScriptCore 把原生功能桥接给 JS 用,代码少很容易理解”。简单、易懂的基础演示代码。P.S. 希望进阶学习的同学,这里有一个完整项目供参考 [RichEditorView](https://github.com/cjwirth/RichEditorView):基于 HTML 5 的可定制富文本编辑器组件及示例。 18 | * [gilesvangruisen/Swift-YouTube-Player](https://github.com/gilesvangruisen/Swift-YouTube-Player):用不了的同学就当学习吧。或参考并试着写个 Swift-(...)-Player。 19 | 20 | ### 文档 21 | * [用 Swift 实现轻量的属性监听系统](https://github.com/nixzhu/dev-blog/blob/master/2015-04-30-property-listener.md):“本文的目的是(优雅的)解决“模型的一处修改,UI 要多处更新”的问题。为此,我们会使用一些新技术,在对比中看看它们能给我们带来什么好处”。作者:[@nixzhu](http://weibo.com/nixzhu) 22 | * 在 iOS 应用中添加广告-[添加 iAD 广告](http://blog.csdn.net/li962429707/article/details/45291937),[添加admob广告](http://blog.csdn.net/li962429707/article/details/45334957):“实用教程。学自YouTube(一个神奇的网站)”。P.S. 虽然个人不喜欢应用内插广告,不过,作为一个服务类微博,不能任性。 23 | * [Searching on a Map View in iOS8 with Swift](http://www.ioscreator.com/tutorials/searching-map-view-ios8-swift):地图上搜索指定区域内的酒店和博物馆并显示的教程及示例。来源:iOScreator,附:[完整示例](https://github.com/ioscreator/ioscreator/tree/master/IOS8SwiftSearchMapTutorial)。 P.S. 话说 iOScreator 教程示例库真多,不信你可以移步[这里看看](https://github.com/ioscreator/ioscreator)。 24 | * [案例学习 - 为Apple Watch简化现有产品的设计思路](http://www.beforweb.com/node/709):文章讲述了一款导航应用在 Apple Watch 上的设计及思考过程。P.S. 来自 [@BeForWeb](http://weibo.com/beforweb) 的译文学习及思考性很强,目前读者虽然更倾向于产品经理、用户体验设计师或工程师。感兴趣产品体验的开发者,建议多关注。译者:[@C7210](http://weibo.com/c7210) 25 | * [案例学习 - 为Soundwave设计Watch应用时学到的五件事](http://www.beforweb.com/node/701):“Soundwave已经在iOS及Android平台上发展了将近两年。我(英文原文作者)最近有幸得到机会,能够为Apple Watch版本的Soundwave进行UI与交互设计,并在这个过程当中学到了一些很关键的东西...”。译者:[@C7210](http://weibo.com/c7210) 26 | * [“My Biggest WatchKit Mistake”](http://realm.io/news/watchkit-mistakes/):看看国外知名开发者在使用 WatchKit 开发应用时犯过哪些最大的错误。前人的错误及教训就是我们宝贵的经验积累。[“More WatchKit Mistakes”](http://realm.io/news/more-watchkit-mistakes/) 27 | * [当你产品上架 AppStore 会遇到 10 个大坑](http://zhuanlan.zhihu.com/100000PM/20010725):“相信大家一定非常「深恶痛疾」AppStore的一系列产品上架规则。每次产品上架,一定要折腾很久,让人蛋疼。所以特此发起本期沙龙,为大家带来一些经验”。 28 | * [Swift 项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md):最近新收录 MarkdownTextView, Timepiece, SingleLineShakeAnimation, Circular-Progress-View, androidtool-mac, X 等 6 个,合计已收录 95 个。 29 | * [Swift 文章精选](https://github.com/ipader/SwiftGuide/blob/master/Featured-Articles.md):最近新收录 5 份,合计已收录 41 份。 -------------------------------------------------------------------------------- /weekly/2015-05-10.md: -------------------------------------------------------------------------------- 1 | 2015-5-10 收录周报 2 | === 3 | > **本周特别推荐** [斯坦福大学公开课:iOS 8 开发](http://open.163.com/special/opencourse/ios8.html):中文字幕版已经更新至第 6 集。网易公开课与时俱进程度简直是教育界的表率,强烈推荐。来源:[@网易公开课](http://weibo.com/163open),字幕来源:[Stanford 公开课,Developing iOS 8 Apps with Swift 字幕翻译](https://github.com/x140yu/Developing_iOS_8_Apps_With_Swift) 4 | 5 | ### 项目 6 | * [contentful-labs/Stargate](https://github.com/contentful-labs/Stargate):通过 iPhone 桥接实现 Mac 与 Watch 的即时通讯。Stargate 通过封装两个优秀的基础类库 MMWormhole 和 PeerKit 实现高效的通讯应用。 7 | * [morizotter/TouchVisualizer](https://github.com/morizotter/TouchVisualizer):实用的多点触摸可视化组件。扩展并作用于 UIWindows,结构上提供了简单地针对触摸显示定制,比如触摸点的颜色。这个组件对于需要做应用演示的同学尤其有用。 8 | * [ziligy/JGFlipMenu](https://github.com/ziligy/JGFlipMenu):Flip 式菜单及其对应动画组件。使用也很简单直接 Interface Builder 。赞不赞自己看。 9 | * [FutureKit/FutureKit](https://github.com/FutureKit/FutureKit):“是一个 100% Swift 实现的 Future/Promises 库,由 Swift Generic 带来的类型安全、由 GCD 带来的线程安全,通过 FutureKit 可以在 iOS/OS X 下灵活玩转 Future/Promises 式编程了”。推荐者:[@图拉鼎](http://weibo.com/tualatrix) 10 | * [ArtSabintsev/FontBlaster](https://github.com/ArtSabintsev/FontBlaster):调用自定义字体封装类。很实用、很方便。 11 | * [kiavashfaisali/KFSwiftImageLoader](https://github.com/kiavashfaisali/KFSwiftImageLoader):极高性能、轻量、低功耗网络图片异步加载扩展库(支持 iOS 和 WatchKit)。良好的缓存管理机制保证的作者设计初衷。P.S. 作者曾开发过 [KFWatchKitAnimations](https://github.com/kiavashfaisali/KFWatchKitAnimations):一款为  Watch 提供 60 帧动画显示效果解决方案及示例。 12 | * [zhxnlai/UIColor-ChineseTraditionalColors](https://github.com/zhxnlai/UIColor-ChineseTraditionalColors):中国传统颜色引用 UIColor 扩展。“UIColor.桃红(),UIColor.竹青() ...”,如此引用是否感觉亲切多了。P.S. 好的项目,源于用心,技术次之。这位同学已经深谙其道了。 13 | * [FlexMonkey/ShinpuruLayout](https://github.com/FlexMonkey/ShinpuruLayout):通过水平和垂直分组模块实现简单、快速布局的组件库。作者提供了多种不同类型的布局示例。 14 | [acani/Chats](https://github.com/acani/Chats):聊天 UI 示例程序。此项目应该只为演示或学习之用。 15 | * [czechboy0/Buildasaur](https://github.com/czechboy0/Buildasaur):自动测试 GitHub Pull Requests,以提高团队生产力。Buildasaur 安装条件:Xcode 6+, Xcode Server 4+ 和 GitHub 仓库证书。 16 | 17 | ### 文档 18 | * [斯坦福大学公开课:iOS 8 开发](http://open.163.com/special/opencourse/ios8.html):中文字幕版已经更新至第 6 集。网易公开课与时俱进程度简直是教育界的表率,强烈推荐。来源:[@网易公开课](http://weibo.com/163open),字幕来源:[Stanford 公开课,Developing iOS 8 Apps with Swift 字幕翻译](https://github.com/x140yu/Developing_iOS_8_Apps_With_Swift) 19 | * [Swift Documentation](http://nshipster.com/swift-documentation/):“对于开发者来讲,良好的代码结构及组织是其引以为豪的事。干净、一致的代码习惯,对于编译器并无所谓,但程序字里行间可以代表个人符号、或与同伴的差异”。两位博主的倾情合作,有了这篇美文。来源:NSHipster 20 | * [Realm 数据库基础教程](http://www.cocoachina.com/ios/20150505/11756.html):“Realm 是一个跨平台的移动数据库引擎,于 2014 年 7 月发布,准确来说,它是专门为移动应用所设计的数据持久化解决方案之一。Realm 可以轻松地移植到您的项目当中,并且绝大部分常用的功能(比如说插入、查询等等)都可以用一行简单的代码轻松完成”。来源:[Ray Wenderlich](http://www.raywenderlich.com/81615/introduction-to-realm),译者:[@星夜暮晨](http://weibo.com/moonisky) 21 | * [Swift 的响应式编程](https://github.com/bboyfeiyu/iOS-tech-frontier/blob/master/issue-3/Swift%E7%9A%84%E5%93%8D%E5%BA%94%E5%BC%8F%E7%BC%96%E7%A8%8B.md):文章通过在使用 MVC 以及 MVVM 中发现代码繁杂的弊病,引出响应式编程解决方案,并通过解读 [ReactiveCocoa](https://github.com/ReactiveCocoa/ReactiveCocoa),让读者进一步理解响应式编程所带来的好处。原文:[Reactive Swift](https://medium.com/swift-programming/reactive-swift-3b6050375534),译文来源:[@开发技术前线](http://weibo.com/u/5589212242),译者:[@MrSimp1e](http://weibo.com/mrsimp1e) 22 | * [iOS 后台模式开发指南](https://github.com/bboyfeiyu/iOS-tech-frontier/blob/master/issue-3/iOS%E5%90%8E%E5%8F%B0%E6%A8%A1%E5%BC%8F%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97.md):“这个教程会教你在什么时候怎么去用最常用的一些后台操作... 在本教程中你将建立一个关于简单标签应用的工程,来探索从连续播放视频到周期性的获取更新内容的四种常见模式”。原文来源:Ray Wenderlich,译文来源:[@开发技术前线](http://weibo.com/u/5589212242),译者:[@MollyMmmmm](http://weibo.com/mollymmmmmmmm) 23 | * [案例学习 - 关于Watch应用的导航、通知、复杂任务及动效](http://beforweb.com/node/717): “为Watch设计的过程很有意思,我们必须聚焦在核心体验上,打造最基本最简化的界面及交互,并设计合理的通知机制。对于复杂的功能要考虑通过Handoff完成。此外不要忘记在恰当的地方通过动效来提升交互体验...”。来源:[medium.com](https://medium.com/design-for-wearables/designing-wallaby-for-apple-watch-dd5be371288a),译者:[@C7210](http://weibo.com/c7210) 24 | * iOS 开发 UI 搭建心得:[1. 驾驭 Storyboard](http://lvwenhan.com/ios/452.html),[2. 善用 xib](http://lvwenhan.com/ios/453.html)。作者:[@吕文翰_JohnLui](http://weibo.com/balishengmuyuan) 25 | * [iOS 开发技术前线](https://github.com/bboyfeiyu/iOS-tech-frontier):“一个定期翻译、发布国内外iOS优质的技术、开源库、软件架构设计、测试等文章的开源项目”。主要翻译来源 Ray Wenderlich,App Coda,Medium。来源:[@开发技术前线](http://weibo.com/u/5589212242) 26 | * [Rob Rix](https://github.com/robrix):作者专注于微框架(µframework)库的开发及研究,目前已经开发出不少成型的支持库。µframework 利用 Swift 语言新特性,让代码更精简、更直接。 27 | * [iOS/Mac Autolayout Constraints](http://constraints.icodeforlove.com/):这个工具不错,很直观,布局时可以省不少工夫。推荐者:[@荧星诉语](http://weibo.com/qq184675420) 28 | * [在线生成 AppStore 审核用截图](https://appscreens.io/yK7cLuBNij):便捷的生产力工具。免费,易操作,可自定义。 29 | * [智能手表从业者于海东:十句话读懂 Apple Watch 应用设计(一](http://www.leikeji.com/article?2307)、[二](http://www.leikeji.com/article?2308)):“Apple Watch 应用设计有何玄机?智能手表应用开发者应该注意什么?且看果壳电子软件副总裁于海东万字长文深度解析”。来源:[@雷科技](http://weibo.com/leitech) 30 | * [Swift 项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md):最近新收录 FontBlaster, Stargate, KFSwiftImageLoader, JGFlipMenu, ChineseTraditionalColors, ShinpuruLayout, TouchVisualizer 等 7 个,合计已收录 102 个。 31 | * [Swift 文章精选](https://github.com/ipader/SwiftGuide/blob/master/Featured-Articles.md):最近新收录 12 份,合计已收录 53 份。 32 | -------------------------------------------------------------------------------- /weekly/2015-05-17.md: -------------------------------------------------------------------------------- 1 | 2015-5-17 收录周报 2 | === 3 | > **本周特别推荐** [Draveness/DKChainableAnimationKit](https://github.com/Draveness/DKChainableAnimationKit):高可读、链式代码风格动画框架库。 4 | 5 | ### 项目 6 | * [i-schuetz/SwiftCharts](https://github.com/i-schuetz/SwiftCharts):基于层架构设计思想的图表类库。基于层架构,无论定制新的图表类型还是已有图表的叠加,都变得非常的容易。 7 | * [radex/SwiftyTimer](https://github.com/radex/SwiftyTimer):一个更友好、更简单的时间操作 NSTimer 扩展。P.S. 类似针对日期有 Punctual.swift 和 Timepiece。 8 | * [JustHTTP/Just](https://github.com/JustHTTP/Just):小而美的 HTTP 类。功能简单、直接、完整且健壮性高。 9 | * [SwiftBond/Bond](https://github.com/SwiftBond/Bond):使用简单、易于理解的对象绑定框架。比如:你可以使用代码 textField ->> label 将输入框文本映射到标签中的文字属性,当文本变化时,标签文字随动变化。 真的很方便。 10 | * [phimage/Prephirences](https://github.com/phimage/Prephirences):这个库可以让开发者更方便管理、读写应用的配置信息。很实用。 11 | * [Imperiopolis/WatchScreenshotMagic](https://github.com/Imperiopolis/WatchScreenshotMagic):快速生成干净、漂亮的 Apple Watch 截图的实用工具应用。 12 | * [Draveness/DKChainableAnimationKit](https://github.com/Draveness/DKChainableAnimationKit):高可读、链式代码风格动画框架库。 13 | * [andreamazz/BubbleTransition](https://github.com/andreamazz/BubbleTransition):以气泡膨胀和缩小的动画效果来显示切换界面。代码实现很简单,效果很突出。 14 | * [liufan321/SwiftQRCode](https://github.com/liufan321/SwiftQRCode):简单、实用的 QR Code 扫描识别及生成库。 15 | * [KittenYang/KYFloatingBubble](https://github.com/KittenYang/KYFloatingBubble):实现iOS7 Game Center浮动气泡的一种思路。示例代码不多,效果还真得赞。 16 | 17 | ### 文档 18 | * [Design for Wearables](http://designforwearables.com/vip/):很系统化的 Apple Watch 设计课程, 建议开发的同学好好学习一下。 19 | * [WatchKit 控制器的生命周期](http://weibo.com/p/1001603842436727235421):“本文介绍的生命周期同样适用于 Hierarchical interfaces, Glances, 以及 Notification interfaces”。译者:[http://weibo.com/twios](http://weibo.com/twios) 20 | * [Swift扩展的三个微妙细节](https://github.com/bboyfeiyu/iOS-tech-frontier/blob/master/issue-4/Swift%E6%89%A9%E5%B1%95%E7%9A%84%E4%B8%89%E4%B8%AA%E5%BE%AE%E5%A6%99%E7%BB%86%E8%8A%82.md):有关于 extension 细节的较完整说明。推荐不甚了解的开发同学阅读,避免稀里糊涂地使用。译文来源:[@开发技术前线](http://weibo.com/u/5589212242),译者:samw00,原文:[3 Nuances of Swift Extensions](http://www.andrewcbancroft.com/2015/04/22/3-nuances-of-swift-extensions/) 21 | * [mobitar/Starburst](https://github.com/mobitar/Starburst):几款可用于 Apple Watch 应用的 PNG 序列动画。 22 | * [2015-2016交互体验趋势](http://mux.baidu.com/?p=8242):“2015年的移动应用数量增长依然强劲,但是移动交互体验的却在发生着变化。较之去年层出不穷的新颖形式,今年的交互体验趋势中,更多的是某一个方面的体验优化与深耕,而较少有创造性的引领者出现。这说明移动应用在市场在“爆发”后进入了一个新的阶段”。 23 | * [聊聊移动端跨平台开发的各种技术](http://fex.baidu.com/blog/2015/05/cross-mobile/):文章研究很全面、很透彻。赞同林老师建议。实在需要时,iOS/WKWebView 和 Android/WebView 可以做为跨平台衔接技术。“[@林泰前](http://weibo.com/limtc):目前看到对跨平台开发最完整的文章,对这方面有兴趣的朋友建议一读。不过这是我的建议:好好学习 Swift/iOS 和 Java/Android,没有任何跨平台方案比得上真正原生的方案。” 24 | * [Swift 项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md):最近新收录 FSwiftCharts, SwiftyTimer, Bond ,Prephirences, DKChainableAnimationKit, SwiftQRCode 等 6 个,合计已收录 108 个。 25 | * [Swift 文章精选](https://github.com/ipader/SwiftGuide/blob/master/Featured-Articles.md):最近新收录 3 份,合计已收录 56 份。 26 | -------------------------------------------------------------------------------- /weekly/2015-05-24.md: -------------------------------------------------------------------------------- 1 | 2015-5-24 收录周报 2 | === 3 | > **本周特别推荐** 自己动手写一个 iOS 网络请求库:[1. NSURLSession 初探](http://lvwenhan.com/ios/454.html);[2. 封装接口](http://lvwenhan.com/ios/455.html);[3. 降低耦合](http://lvwenhan.com/ios/456.html)。项目地址:[johnlui/Pitaya](https://github.com/johnlui/Pitaya)。作者:[@吕文翰_JohnLui](http://weibo.com/balishengmuyuan) 4 | 5 | ### 项目 6 | * [emaloney/CleanroomLogger](https://github.com/emaloney/CleanroomLogger):相当于 CocoaLumberjack 或 Log4j 的 Swift 版本,功能上甚至更强大。另外,源代码中已经内含了完整的 API 文档,使用非常方便。 7 | * [Khan/Prototope](https://github.com/Khan/Prototope):一款轻量的 Javascript 桥接 Swift 库。对于 JS 控,或许可以从玩这个项目开始 iOS 原型开发。 8 | * [malcommac/SwiftDate](https://github.com/malcommac/SwiftDate):特别完整、强大的日期操作管理类库。它几乎涵盖了已知开源日期类库所有优秀特性。是一款值得毫不犹豫收录的类库。 9 | * [arkverse/SwiftRecord](https://github.com/arkverse/SwiftRecord):基于 Core Data 极为轻量、易用的对象持久化工具库,相当于 ActiveRecord 的 Swift 版本。 10 | * [tristanhimmelman/ZoomTransition](https://github.com/tristanhimmelman/ZoomTransition):通过手势操控图片的放大、缩小、旋转等自由变化效果的组件及示例。 11 | * [Yalantis/PullToRefresh](https://github.com/Yalantis/PullToRefresh):刷新动画可定制的下拉数据请求更新组件(类库非常简洁易用)。该组件由知名开源开发商 Yalantis 开发,并且还提供了完整动画定制演示项目 [PullToMakeSoup](https://github.com/Yalantis/PullToMakeSoup) 12 | * [mikaoj/BSImagePicker](https://github.com/mikaoj/BSImagePicker):图片多选组件。接口简单,使用很方便。 13 | * [realm/SwiftLint](https://github.com/realm/SwiftLint):Realm 采用 Swift 编写的基于 GitHub's Swift Style Guide 规则的检查工具。除了命令行运行方式,也提供集成 Xcode 的方法。对于新团队,这样的工具可以自动约束大家遵循编程规范。 14 | * [CodeEagle/SwiftCodeSnippets](https://github.com/CodeEagle/SwiftCodeSnippets):自动下载指定 Xcode Snippet 源的 Xcode Plugin。项目缺省提供 Snippet 代码源 [burczyk/XcodeSwiftSnippets](https://github.com/burczyk/XcodeSwiftSnippets/tree/master/plist) 。 15 | * [beltex/dshb](https://github.com/beltex/dshb):OS X 系统状态(CPU、电池、内存、温度传感器、风扇及杂项)监视器应用。每秒刷新文本界面,极低系统开销。 16 | * [nscoding/sleep-osx](https://github.com/nscoding/sleep-osx):在 Spotlight 中输入 sleep 即休眠你的 Mac。实现特别简单,几行代码而已。 17 | 18 | ### 文档 19 | * [objc.io - #24 音频](http://objccn.io/issue-24/):经过了前两期([照片](http://objccn.io/issue-21/)和[视频](http://objccn.io/issue-23/)),本期自然地延伸为音频,这种具有连续性的博客平台,对于开发者,实在是福气。本期首篇文章《[音频处理的狗屋(译文)](http://objccn.io/issue-24-1/)》是精品之作。 20 | * [Swift Documentation(译文)](http://nshipster.cn/swift-documentation/):“代码的结构和组织关乎了开发童鞋们的节操问题。明确和一致的代码表示了明确和一贯的思想。编译器并没有一个挑剔的口味,但当谈到命名,空格或文档,人类的差异就体现出来了”。来源:NSHipster 21 | * 自己动手写一个 iOS 网络请求库:[1. NSURLSession 初探](http://lvwenhan.com/ios/454.html);[2. 封装接口](http://lvwenhan.com/ios/455.html);[3. 降低耦合](http://lvwenhan.com/ios/456.html)。项目地址:[johnlui/Pitaya](https://github.com/johnlui/Pitaya)。作者:[@吕文翰_JohnLui ](http://weibo.com/balishengmuyuan) 22 | * [PaintCode 教程](http://www.jianshu.com/p/5e75408812df):"PaintCode是个非常棒又小而美的mac程序,主要用途是可以将你的矢量图轻松地转换成CoreGraphics代码,可以很轻松的把代码放在你的iOS app里"。作者:[@叶孤城___](http://weibo.com/u/1438670852),相关示例项目:[使用 PaintCode 制作一个星星评分视图](http://www.jianshu.com/p/e2efd7132bc1) By [@crane乖乖](http://weibo.com/u/1925302084) 23 | * Ray Wenderlich - WatchKit 开始教程:[1. 入门](http://www.cocoachina.com/swift/20150518/11860.html);[2. 表格和网络请求](http://www.cocoachina.com/swift/20150520/11861.html);[3. WatchKit 开始教程 - Table、Glance 和 Handoff](http://www.cocoachina.com/swift/20150522/11862.html)。原文:[Part 1: Getting Started](http://www.raywenderlich.com/89562/watchkit-tutorial-with-swift-getting-started) 24 | * Core Graphics 教程:1. [起步](https://github.com/bboyfeiyu/iOS-tech-frontier/blob/master/issue-5/Swift-Core-Graphics%E6%95%99%E7%A8%8B%E7%AC%AC%E4%B8%80%E9%83%A8%E5%88%86.md);2. [Gradients 与 Context](https://github.com/bboyfeiyu/iOS-tech-frontier/blob/master/issue-5/Swift-Core-Graphics%E6%95%99%E7%A8%8B%E7%AC%AC%E4%BA%8C%E9%83%A8%E5%88%86-Gradients%E4%B8%8EContext.md);3. [Patterns 和 Playgrounds](http://t.cn/R257CaO)。原文来源:[Ray Wenderlich](http://www.raywenderlich.com/90690/modern-core-graphics-with-swift-part-1),译文来源:[@开发技术前线](http://weibo.com/u/5589212242) 25 | * [网易新闻 iOS 版在开发过程中曾经使用过的第三方开源类库、组件](http://www.jianshu.com/p/8952944f7566):一款主流新闻 iOS 应用让我们感受开源的力量。来源:[@_TongJZ](http://weibo.com/u/2068840121) 26 | * [Swift 项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md):最近新收录 CleanroomLogger, Prototope, SwiftDate, SwiftRecord, ZoomTransition, PullToRefresh 等 6 个,合计已收录 114 个。 27 | * [Swift 文章精选](https://github.com/ipader/SwiftGuide/blob/master/Featured-Articles.md):最近新收录 6 份,合计已收录 62 份。 28 | -------------------------------------------------------------------------------- /weekly/2015-05-31.md: -------------------------------------------------------------------------------- 1 | [Swift 语言指南](https://github.com/ipader/SwiftGuide)-Issue 29 2 | === 3 | > **本期特别推荐** [一次 Objective-C 到 Swift 的改写之旅](https://github.com/nixzhu/dev-blog/blob/master/2015-05-27-wormhole.md):“既然 Swift 是未来,自然要改写。而改写应当是一种再思考、再设计的过程”。作者:[@nixzhu](http://weibo.com/nixzhu) 4 | 5 | ### 项目 6 | * [Produkt/RubberBandEffect](https://github.com/Produkt/RubberBandEffect):仿苹果橡皮筋动画效果。喜欢的同学可以学习参考一下。 7 | * [ricardopereira/SocketIO-Kit](https://github.com/ricardopereira/SocketIO-Kit):Swift 版 socket.io 实现。WebSocket 部分基于第三方开源库 [Starscream](https://github.com/daltoniam/Starscream) 实现。P.S. socket.io 是跨平台多种连接(http, websocket)自动切换、基于事件的实时通讯接口库。 8 | * [tidwall/SwiftWebSocket](https://github.com/tidwall/SwiftWebSocket):WebSocket 协议(RFC 6455)实现类库。相较于另外一个开源实现 [Starscream](https://github.com/daltoniam/Starscream),这个的 API 调用风格与 Javascript 版本几乎一致。 9 | * [mathcarignani/MCMHeaderAnimated](https://github.com/mathcarignani/MCMHeaderAnimated):这个类库提供列表与详细页切换过程中增加一个动画。 10 | * [GetHighstreet/HighstreetWatchApp](https://github.com/GetHighstreet/HighstreetWatchApp):一款采用 Highstreet 购物应用平台开发的极为流畅的 WatchKit 演示应用。 11 | * [melvitax/AFImageHelper](https://github.com/melvitax/AFImageHelper):一套针对 UIImage 和 UIImageView 的实用扩展库,功能包含填色和渐变、裁剪、缩放以及具有缓存机制的在线图片获取。 12 | * [nixzhu/Wormhole](https://github.com/nixzhu/Wormhole):[MMWormhole](https://github.com/mutualmobile/MMWormhole)的 Swift 版本,提供了iOS应用与扩展之间的消息传递。Swift 同学也有能力为该项目贡献或定制开发了。作者:[@nixzhu](http://weibo.com/nixzhu) 13 | * [x140yu/XYInputView](https://github.com/x140yu/XYInputView):“因为最近项目需要,所以实现了一个在 Keyboard 之上添加输入框的功能。代码很少,需要完善的地方也有...”。作者:[@X140Yu](http://weibo.com/hopexinyu) 14 | * [johnil/VVeboTableViewDemo](https://github.com/johnil/VVeboTableViewDemo):“将 VVebo 对 TableView 的优化剥离到了一个独立的 Demo 中。希望大家能通过这个 Demo 看到我的优化思路,欢迎随时来找我探讨”。看不太懂 Objective-C 的 Swift 同学,可以试着感受一下作者开发思路及实现技巧。作者:[@Johnil](http://weibo.com/u/3732851864) 15 | 16 | ### 文档 17 | * [一次 Objective-C 到 Swift 的改写之旅](https://github.com/nixzhu/dev-blog/blob/master/2015-05-27-wormhole.md):“既然 Swift 是未来,自然要改写。而改写应当是一种再思考、再设计的过程”。作者:[@nixzhu](http://weibo.com/nixzhu) 18 | * [codepath/ios_guides](https://github.com/codepath/ios_guides):通过众包模式为开发者写更专业(系统化一条龙学习平台)的开发教程。此项目若能长期长展,所有人都会受益。感兴趣的同学可以参与其中。 19 | * [案例学习 - 面向Apple Watch自身特性及局限的产品重设计](http://www.beforweb.com/node/720):“和前面几次 Watch 设计案例不同,今天这篇比实践更加实践 - 作者做了第一版 Watch App,发现在实际当中问题成堆,于是重新思考并改变架构,在设计规范框架基础上结合硬件限制和自家产品特性,做了大胆突破...”。原文:[Redesigning Overcast’s Apple Watch app](http://www.marco.org/2015/05/08/overcast-apple-watch-redesign),译者:[@C7210](http://weibo.com/c7210) 20 | * [Reducing WatchKit Traffic With View Models](http://techblog.thescore.com/2015/05/20/reducing-watchkit-traffic-with-view-models/):“介绍了如何通过视图模型优化WatchKit 应用的性能表现,英语好的大大可以翻译下。By [@WatchKit开发](http://weibo.com/twios)” 。WatchKit 开发最佳实践。 21 | * [iOS 项目的持续集成与管理](http://www.devtf.cn/?p=537):提高生产力的实战经验分享好文章。作者:[@Sam_Lau_13](http://weibo.com/liuyaozhu) 22 | * iOS应用架构谈:[1. 架构设计的方法论](http://www.infoq.com/cn/articles/ios-app-arch-part-01);[2.View层的组织和调用方案(上)](http://www.infoq.com/cn/articles/ios-app-arch-2-1),[iOS应用架构谈(二):View层的组织和调用方案(中)](http://www.infoq.com/cn/articles/ios-app-arch-2-2)。可以学习不同工作背景下开发同学对于 iOS 应用架构的理解及经验。作者:田伟宇 23 | * [XCode 升级后插件失效的原理与修复办法](http://joeshang.github.io/2015/04/10/fix-xcode-upgrade-plugin-invalid/):由一条命令引发的分析文章。[@_TongJZ](http://weibo.com/u/2068840121) 24 | * [Swift 项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md):最近新收录 SocketIO-Kit, SwiftWebSocket, AFImageHelper, Wormhole, MCMHeaderAnimated 等 5 个,合计已收录 119 个。 25 | * [Swift 文章精选](https://github.com/ipader/SwiftGuide/blob/master/Featured-Articles.md):最近新收录 5 份,合计已收录 67 份。 26 | * [IoTNotes](https://github.com/ideaTouch/IoTNotes):随着 2015 WWDC 的临近,HomeKit 配套的智能硬件大军就要来了。建议同学们多关注 IoT 硬件及相关开发平台。推荐上周我整理的这份笔记供大家参考。虽然不是最专业的,不过覆盖面还是比较广的。 27 | -------------------------------------------------------------------------------- /weekly/2015-06-07.md: -------------------------------------------------------------------------------- 1 | [Swift 语言指南](https://github.com/ipader/SwiftGuide)-Issue 30 2 | === 3 | > **本期特别推荐** [yannickl/DynamicColor](https://github.com/yannickl/DynamicColor):强大的颜色操作扩展类。通过该类,你可以通过扩展方法基于某个颜色得到不同深浅、饱和度、灰度、色相,以及反转后的新颜色。是不可多得的好类库。 4 | 5 | ### 项目 6 | * [nghialv/Future](https://github.com/nghialv/Future):基于微框架设计思想的异步执行及结果响应类。由示例发现,代码即简单又干净。 7 | * [alexeyxo/protobuf-swift](https://github.com/alexeyxo/protobuf-swift):Protocol Buffers 的 Swift 语言实现库。P.S. Protocol Buffers 是 Google 开源项目,主要功能是实现直接序列化结构化的对象数据,方便跨平台快速传递,开发者也可以直接修改 protobuf 中的数据。相比 XML 和 JSON,protobuf 解析更快,存储更小。 8 | * [yannickl/DynamicColor](https://github.com/yannickl/DynamicColor):强大的颜色操作扩展类。通过该类,你可以通过扩展方法基于某个颜色得到不同深浅、饱和度、灰度、色相,以及反转后的新颜色。是不可多得的好类库。 9 | * [feinstruktur/CoPilot](https://github.com/feinstruktur/CoPilot):通过此插件,Xcode 可以协同编程了(采用 WebSocket 通讯)。如此强大的“黑工具”,不爱它能行吗。[演示视频](https://vimeo.com/128713880) 10 | * [realm/SwiftCov](https://github.com/realm/SwiftCov):Realm 开发的 Swift 代码测试覆盖率命令行工具。大家可以用用看,试试效果如何? 11 | * [JohnEstropia/CoreStore](https://github.com/JohnEstropia/CoreStore):提供高可读性,一致性及安全性的 Core Data 管理类库。 其中事务管理及查询是其比较大的亮点,整套 API 功能完整,风格传统又实用。非常值得收入。 12 | * [sandofsky/soon](https://github.com/sandofsky/soon):一款倒计时 WatchKit 示例应用。作者从架构的角度,思考如何设计一款完整、通讯高效且性能又好的 WatchKit 扩展应用。该示例学习性非常强。 13 | * [wongzigii/WZDraggableSwitchHeaderView](https://github.com/wongzigii/WZDraggableSwitchHeaderView):这个 Objectve-C 项目的交互体验及动画实在很赞。忍不住分享大家。对于 Swift 同学,至少可以学习其交互体验及动画设计。作者:[@Wongzigii](http://weibo.com/wongzigii) 14 | * [radex/DiffyTables](https://github.com/radex/DiffyTables):提供在 WatchKit 应用中有效使用表格的实例。完整实现思路作者已经撰写长文 [Practical and efficient WatchKit tables with view model diffing](http://radex.io/watch/diffing/)。充分理解该文章作者推荐阅读 [Reducing WatchKit Traffic With View Models](http://techblog.thescore.com/2015/05/20/reducing-watchkit-traffic-with-view-models/) 15 | * [icanzilb/EasyAnimation](https://github.com/icanzilb/EasyAnimation):又一款使用简单、功能强大的动画类库。 16 | * [jessesquires/JSQWebViewControlle](https://github.com/jessesquires/JSQWebViewController):一款轻量的 WebKit 浏览器视图控制封装库(使用 WKWebView)。 17 | 18 | ### 文档 19 | * [iOS8 使用 iCloud](http://www.devtf.cn/?p=574):“对于开发者来说,如何用适当的方式来存储应用程序数据是一个比较重要的问题。 毫无疑问,任何应用都或多或少需要存储一些数据。对于一般的应用程序来说,被保存的数据各不相同,大部分时间都被存储在本地以便再次在相同的设备运行该应用程序。尽管这不是是唯一的选择”。原文来源:[AppCoda](http://www.appcoda.com/cloudkit-introduction-tutorial/),译者:[@HarriesChen](http://weibo.com/harrieschen) 20 | * [Grand Central Dispatch 基础教程:Part 1/2](http://www.jianshu.com/p/50c060bab0ff):“尽管 Grand Central Dispatch(以下简称为 GCD)已推出一段时间了,但并不是所有人都明白其原理;当然这是可以理解的,毕竟程序的并发机制很繁琐,而且基于 C 的 GCD 的 API 对于 Swift 的新世界并不是特别友好”。来源:[Ray Wenderlich](http://www.raywenderlich.com/79149/grand-central-dispatch-tutorial-swift-part-1),译者:[@Ethan_Joe](http://weibo.com/u/2898857711) 21 | * [Apple Watch 应用优化的一些心得技巧总结](http://www.csdn.net/article/2015-06-01/2824816):“尽管 Watch OS 1.01 已经提升了应用启动的速度,但用户普遍感受还是体验较差,因此我们有必要尽全力优化自己的 Apple Watch 应用。本文作者 [@WatchKit开发](http://weibo.com/twios) 结合自己的体会和其他先驱者的一些心得,对相关技巧做了一些汇总”。来源:[CSDN移动](http://weibo.com/csdnmobile) 22 | * [从减少点击次数,到降低使用负荷](http://www.beforweb.com/node/722):“从减少点击次数,到降低使用负荷 - 如果你的产品不需要用户背负沉重的认知与操作负荷便能高效的使用核心功能,并且将体验打磨到极致,那么你就拥有了竞争的力量 - 你至少可以拉拢到那些在多数时间只会用到这些特定功能,却被那些复杂的产品搞的疲惫不堪的用户...”。来源:[@BeForWeb](http://weibo.com/beforweb),译者:[@C7210](http://weibo.com/u/1833937113) 23 | * [iOS应用架构谈 - 三、网络层架构方案和设计](http://casatwy.com/iosying-yong-jia-gou-tan-wang-luo-ceng-she-ji-fang-an.html):“网络层在一个App中也是一个不可缺少的部分,工程师们在网络层能够发挥的空间也比较大。另外,苹果对网络请求部分已经做了很好的封装,业界的AFNetworking也被广泛使用。其它的ASIHttpRequest,MKNetworkKit啥的其实也都还不错,但前者已经弃坑,后者也在弃坑的边缘”。作者:[@反革命攻城狮CasaTaloyum](http://weibo.com/casatwy) 24 | * [Deep Dive Into the WatchKit SDK(深入WatchKit SDK)](http://tech.ustwo.com/2015/05/27/deepdive-with-watchkit/):“介绍了手机手表间的通信、本地通知、自定义动画、使用自定义字体等小技巧。By [@WatchKit开发](http://weibo.com/twios)”。 25 | * [Swift 项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md):最近新收录 CoPilot, DynamicColor, protobuf-swift, CoreStore, SwiftCov, Future, EasyAnimation 等 6 个,合计已收录 126 个。 26 | * [Swift 文章精选](https://github.com/ipader/SwiftGuide/blob/master/Featured-Articles.md):最近新收录 5 份,合计已收录 72 份。 27 | * [IoT 开发板一览](https://github.com/ideaTouch/IoTNotes/blob/master/IoT-DevBoards.md):针对已知物联网开发板整理了一份简要的汇总比较表。列信息包含平台商、开发板、操作系统、开发工具、编程语言、快速入门等。 -------------------------------------------------------------------------------- /weekly/Issue-31.md: -------------------------------------------------------------------------------- 1 | [Swift 语言指南](https://github.com/ipader/SwiftGuide)-Issue 31 2 | === 3 | > **本期特别推荐** [WWDC app for OS X](https://github.com/insidegui/WWDC):去年还只是一个会后的脑补演示项目。而今年已然成为追剧观看的超实用项目。连编译都懒得做的同学直接[下载应用](https://github.com/insidegui/WWDC/blob/master/Releases/WWDC_latest.zip?raw=true)即可。 4 | 5 | ### 项目 6 | * [WWDC app for OS X](https://github.com/insidegui/WWDC):去年还只是一个会后的脑补演示项目。而今年已然成为追剧观看的超实用项目。连编译都懒得做的同学直接[下载应用](https://github.com/insidegui/WWDC/blob/master/Releases/WWDC_latest.zip?raw=true)即可。 7 | * [czechboy0/XcodeServerSDK](https://github.com/czechboy0/XcodeServerSDK):非官方 Xcode Server SDK 封装库。 P.S. 该 SDK 分离自之前推荐的由该作者开发的自动测试框架 [Buildasaur](https://github.com/czechboy0/Buildasaur)。 8 | * [zhxnlai/ZLSwipeableViewSwift](https://github.com/zhxnlai/ZLSwipeableViewSwift):多变的卡片切换转场动画封装类库。 9 | * [micazeve/MAGearRefreshControl](https://github.com/micazeve/MAGearRefreshControl):同样是下拉即刷新,看看人家花了多大的心思写[代码](https://github.com/micazeve/MAGearRefreshControl/blob/master/Classes/MAGearRefreshControl.swift)。另一位开发者也实现在类似动画效果 [andreamazz/GearRefreshControl](https://github.com/andreamazz/GearRefreshControl),可以感受一下编程的多变性。 10 | 11 | > * WWDC 2015 关键信息:1. Swift 2.0:开源;2. watchOS 2:原生应用,更丰富的表盘;3. OS X EI Capitan:大幅提升性能,更多手势融入应用; 4. iOS 9:iPad 分屏、Slider Over、画中画,智能场景驱动;5. One More Thing:Apple Music(Beats Music) 12 | 13 | 14 | ### 文档 15 | * [UIKit Dynamics 和 Swift 教程:抛掷视图 (Tossing Views)](https://github.com/bboyfeiyu/iOS-tech-frontier/blob/master/issue-8/UIKit%20Dynamics%E5%92%8CSwift%E6%95%99%E7%A8%8B%EF%BC%9A%E6%8A%9B%E6%8E%B7Views.md):“在这篇UIKit Dynamics教程中,你将学会如何通过添加手势,用一种很自然的方式将视图抛掷出屏幕的显示区域”。译文来源:[@开发技术前线](http://weibo.com/u/5589212242),译者:samw00 16 | * [UIStackView](http://www.cnblogs.com/tieria/p/4572882.html):“iOS9 新增的 UIStackView 官方文档翻译”。译者:[@潇湘TT](http://weibo.com/tieria0512) 17 | * [WWDC 中那些令人感兴趣的事物:iOS 9, Swift 2](https://github.com/bboyfeiyu/iOS-tech-frontier/blob/master/issue-8/WWDC%E4%B8%AD%E9%82%A3%E4%BA%9B%E4%BB%A4%E4%BA%BA%E6%84%9F%E5%85%B4%E8%B6%A3%E7%9A%84%E4%BA%8B%E7%89%A9-iOS9%2C-Swift2.md):“WWDC中一些值得关注的新东西~”。译者:[@Lollypo](http://weibo.com/u/3322436022) 18 | * [开发者所需要知道的 iOS 9 SDK 新特性](http://onevcat.com/2015/06/ios9-sdk/):“简单汇总了 WWDC 15 一般开发者值得特别关注的地方”。作者:[@onevcat](http://weibo.com/onevcat) 19 | * [WWDC15 Session 207, 208 WatchKit In-Depth 笔记](http://t.cn/R2jAJ2k):“来看看 watchOS 2 后,  WATCH 相对于 iPhone 可以有多独立”。作者:[@nixzhu](http://weibo.com/nixzhu) 20 | * [苹果 WWDC15 下午的开发者内部会议 都讲了些什么?](http://weibo.com/p/1001603852570836734814):“苹果开发大会 WWDC15 下午的开发者内部会议都讲了些什么?图文长微博。点看自己看,几十个技术爆点,大家急需脑补”。作者:[@赵哲A](http://weibo.com/zhaozhecleric) 21 | * [一些iOS9 SDK中发现的新大陆](http://weibo.com/5167456916/profile?topnav=1&wvr=6#_rnd1434348418979) By [@KITTEN-YANG]() 22 | * WWDC 2015 watchOS应用示例:1. [Lister](https://developer.apple.com/library/prerelease/watchos/samplecode/Lister/Introduction/Intro.html)(大家比较熟了); 2. [PotLoc](https://developer.apple.com/library/prerelease/watchos/samplecode/PotLoc/Introduction/Intro.html):使用 CoreLocation 定位;3.[WatchKitMoviePlayer](https://developer.apple.com/library/prerelease/watchos/samplecode/WatchKitMoviePlayer/Introduction/Intro.html): 使用 WKInterfaceMovie播放视频。 23 | * [Swift 项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md):最近新收录 WWDC app for OS X, ZLSwipeableViewSwift, MAGearRefreshControl, XcodeServerSDK 等 4 个,合计已收录 130 个。 24 | * [Swift 文章精选](https://github.com/ipader/SwiftGuide/blob/master/Featured-Articles.md):最近新收录 3 份,合计已收录 75 份。 25 | * [IoT 笔记](http://ideatouch.github.io/IoTNotes/):为了方便学习、查阅,额外提供一份排版干净的版本。 26 | 27 | ### 网站 28 | * [iosdevtips.co](http://iosdevtips.co):iOS Development Tips 29 | 30 | -------------------------------------------------------------------------------- /weekly/Issue-32.md: -------------------------------------------------------------------------------- 1 | [Swift 语言指南](https://github.com/ipader/SwiftGuide)-Issue 32 2 | === 3 | > **本期特别推荐** [Swift 2.0 初探](http://www.devtalking.com/articles/what-is-new-in-swift/):言简意赅、示例并茂地讲了若干关键新语法功能及用途。作者:[@DevTalking](http://weibo.com/jacefu) 4 | 5 | 6 | ### 项目 7 | > [Swift 项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md):最近新收录 JSONCodable, UIImageColors, UIStackView-Playground, watchOS-2-Sampler, Dodo, ios-universal-webview-boilerplate 等 6 个,合计已收录 136 个。 8 | 9 | * [matthewcheok/JSONCodable](https://github.com/matthewcheok/JSONCodable):基于 Swift 2.0 新特性(Protocol Extensions and Error Handling)的JSON 解析类。 10 | * [soffes/SyntaxKits](https://github.com/soffes/SyntaxKit):TextMate 风格语法高亮类库(基于 Swift 2.0)。 11 | * [jathu/UIImageColors](https://github.com/jathu/UIImageColors):又一款根据图片获取主色、次色、背景色、详细色的类。P.S. 另一款功能相同的类是 [SwiftColorArt](https://github.com/Jan0707/SwiftColorArt)。 12 | * [alskipp/Swift-Diagram-Playgrounds](https://github.com/alskipp/Swift-Diagram-Playgrounds):面向协议的编程示例 Playgrounds 。P.S. 编程技术真是日新月异啊。 13 | * [jstart/UIStackView-Playground](https://github.com/jstart/UIStackView-Playground):采用 UIStackView 平铺式自动布局演示示例 Playground。#为开源点赞# P.S. 顺附 [UIStackView 官方文档译文](http://www.cnblogs.com/tieria/p/4572882.html) By [@潇湘TT](http://weibo.com/tieria0512)。 14 | * [exchangegroup/Dodo](https://github.com/exchangegroup/Dodo):一款轻量地可定制信息栏小组件。包含 success, info, warning 及 error 类型消息展现。提供基本的按扭及事件绑定。 15 | * [akeFiveInteractive/WeatherMap](https://github.com/TakeFiveInteractive/WeatherMap):基于地图的天气预报(上架)应用。比较适合长途自驾游的同学。 16 | * [shu223/watchOS-2-Sampler](https://github.com/shu223/watchOS-2-Sampler):基于 watchOS 2 若干新特性,作者写了相应的示例代码供大家学习、参考。 17 | * [KhaosT/HMWatch](https://github.com/KhaosT/HMWatch):即便只是一个有待完善的 watchOS 2.0 HomeKit 示例,参考价值还是很高的。 18 | * [nabilfreeman/ios-universal-webview-boilerplate](https://github.com/nabilfreeman/ios-universal-webview-boilerplate): 快速封装 WebApp 到 iOS 应用,即便你毫无 Swift 编程经验。 19 | 20 | ### 文档 21 | > [Swift 文章精选](https://github.com/ipader/SwiftGuide/blob/master/Featured-Articles.md):最近新收录 [Swift 2.0 初探](http://www.devtalking.com/articles/what-is-new-in-swift/),[Swift 2 有哪些新特性[译]](http://www.jianshu.com/p/2dc639b2675a),[Swift 2.0 异常处理](http://www.jianshu.com/p/96a7db3fde00),[Grand Central Dispatch 基础教程:Part 2/2](http://www.jianshu.com/p/6185d3753dd8) 等 4 份,合计已收录 79 份。 22 | 23 | * [Swift 2.0 初探](http://www.devtalking.com/articles/what-is-new-in-swift/):言简意赅、示例并茂地讲了若干关键新语法功能及用途。作者:[@DevTalking](http://weibo.com/jacefu) 24 | * [Swift 2 有哪些新特性[译]](http://www.jianshu.com/p/2dc639b2675a):“在WWDC我们发现Swift团队没有浪费时间在无谓的地方,而是致力于改善 Swift 2”。来源:Ray Wenderlich [What’s New in Swift 2](http://www.raywenderlich.com/108522/whats-new-in-swift-2),[@Sam_Lau_Dev](http://weibo.com/liuyaozhu) 25 | * [Swift 2.0 异常处理](http://www.jianshu.com/p/96a7db3fde00):“WWDC 2015 宣布了新的 Swift 2.0. 这次重大更新给 Swift 提供了新的异常处理方法。这篇文章会主要围绕这个方面进行讨论”。作者:[@溯流言之](http://weibo.com/rcgary) 26 | * [WWDC 2015 现场笔记 (一)](http://yin-xu.com/wwdc-2015-1/),[(二)](http://yin-xu.com/wwdc-2015-2/):“又是一年的 WWDC,如同朝圣一般的大家又是早早就在旧金山 Moscone Center 门前排起了长队。作为第二年参加WWDC的我已经不如其他开发者呢么激动,提早一天就来排队...”。作者:[@炎老影Pepsi先生](http://weibo.com/kelxu) 27 | * [Grand Central Dispatch 基础教程:Part 2/2](http://www.jianshu.com/p/6185d3753dd8):“在教程的[第一部分](http://www.jianshu.com/p/50c060bab0ff),你学到了一些关于并发,线程及GCD工作原理的知识。你通过并用dispatch_barrier_async与dispatch_sync保证了PhotoManager单例在读取与写入照片过程中的线性安全性”。 28 | * [SwiftEducation](https://github.com/SwiftEducation):“这是建立在 GitHub 上的一个 Swift 学习资料汇集,包括了有关幻灯和多个练手的应用程序源码。By @极客头条”。的确有不少基础实用的好[教程](https://github.com/SwiftEducation/presentations)。这对于基础学起的同学有福了。 29 | * [玩儿转 Swift](http://www.imooc.com/learn/127):“随着Swift最新1.2版本的出炉,大家期待已久的《玩儿转Swift》系列课程也将迎来暂时的终点。在课程的最后一章,我们将随波波老师全面了解Swift 1.2 的新特性:简洁的if-let、全新的Set结构、as和OC-bridge等内容。一起来学习吧!”。来源:[@慕课网](http://weibo.com/u/3306361973) 30 | * [IoT 笔记](http://ideatouch.github.io/IoTNotes/):为了方便学习、查阅,额外提供一份排版干净的版本。 31 | 32 | -------------------------------------------------------------------------------- /weekly/Issue-35.md: -------------------------------------------------------------------------------- 1 | [Swift 语言指南](https://github.com/ipader/SwiftGuide)-Issue 35 2 | === 3 | > **本期特别推荐** [Tesseract OCR(光学字符识别)教程](http://www.cocoachina.com/ios/20150708/12463.html):“你之前肯定已经见过,OCR技术被应用于在平板电脑上将扫描文件处理成手写字迹,还被应用于谷歌最近添加到他们的Translate app上的"Word Len"功能。现在你将学习在自己的iPhone app上使用OCR,非常酷,不是吗?”。原文:[Tesseract OCR Tutorial](http://www.raywenderlich.com/93276/implementing-tesseract-ocr-ios),作者:[Lyndsey Scott](http://www.raywenderlich.com/u/Lyndsey),译者:[@CocoaChina](http://weibo.com/cocoachina) 翻译组 [Mr_cyz](http://blog.csdn.net/u013604612) 4 | 5 | ### 项目 6 | > [Swift 项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md):最近新收录 [Mirror](https://github.com/kostiakoval/Mirror), [Decodable](https://github.com/Anviking/Decodable), [CoreValue](https://github.com/terhechte/CoreValue), [Static](https://github.com/venmo/Static), [ParkedTextField](https://github.com/gmertk/ParkedTextField), [GMStepper](https://github.com/gmertk/GMStepper), [tispr-card-stack](https://github.com/tispr/tispr-card-stack) 等 7 个,合计已收录 161 个。 7 | 8 | * [Anviking/Decodable](https://github.com/Anviking/Decodable):又一款 Swift 2 版 JSON 解析(对象映射)类。实现简单,易于理解。 9 | * [kostiakoval/Mirror](https://github.com/kostiakoval/Mirror):通过反射(Refection)实现镜像对象封装库。从而可以更轻松获取(或输出)对象属性名、类型及值变量。 10 | * [terhechte/CoreValue](https://github.com/terhechte/CoreValue):Swift 2 版 Core Data 封装库。相比另外两个 [SwiftRecord](https://github.com/arkverse/SwiftRecord) 和 [CoreStore](https://github.com/JohnEstropia/CoreStore) 更轻量。 11 | * [nsdictionary/CFRuntime](https://github.com/nsdictionary/CFRuntime):“Swift 版的 [MJExtension](https://github.com/CoderMJLee/MJExtension),运行时、反射与一键字典模型互转”。 12 | * [venmo/Static](https://github.com/venmo/Static):使用简单、功能强大地静态表格视图组件。快速开发利器。 13 | * [nixzhu/Proposer](https://github.com/nixzhu/Proposer):“用单个 API 处理 iOS 上的权限请求,以便使用前确认可访问“相册”、“相机”、“麦克风”、“通讯录”或“用户位置”。” 14 | * [gmertk/ParkedTextField](https://github.com/gmertk/ParkedTextField):带固定文本的输入组件。 15 | 16 | ![](https://raw.githubusercontent.com/gmertk/ParkedTextField/master/Screenshots/ParkedTextField.gif) 17 | 18 | * [gmertk/GMStepper](https://github.com/gmertk/GMStepper):带动画效果、支持手势滑动操作的步进标签。 19 | 20 | ![](https://raw.githubusercontent.com/gmertk/GMStepper/master/Screenshots/screenshot_1.gif) 21 | 22 | * [tispr/tispr-card-stack](https://github.com/tispr/tispr-card-stack):卡片风格动画切换组件及完整交互示例。P.S. 另外一个比较热门的类似组件 [Koloda](https://github.com/Yalantis/Koloda)。 23 | 24 | ![](https://github.com/tispr/tispr-card-stack/raw/master/Screenshot_main.gif) 25 | 26 | * [PhamBaTho/BTNavigationDropdownMenu](https://github.com/PhamBaTho/BTNavigationDropdownMenu):下拉列表暨导航标题组件。简单、直接、易用。 27 | 28 | ![](https://github.com/PhamBaTho/BTNavigationDropdownMenu/raw/master/Assets/Demo.gif) 29 | 30 | * [DeveloperLx/LxThroughPointsBezier-Swift](https://github.com/DeveloperLx/LxThroughPointsBezier-Swift):“破解绘制贝塞尔曲线定位控制点难题!仅需给出若干关键点,即可绘制出一条「经过」这些关键点的光滑曲线!!且关键点位置、曲度参数皆实时可调!” 31 | 32 | ![](https://github.com/DeveloperLx/LxThroughPointsBezier-Swift/raw/master/demo.gif) 33 | 34 | * [manavgabhawala/CocoaMultipeer](https://github.com/manavgabhawala/CocoaMultipeer):“CocoaMultipeer这个开源框架支持OS X, iOS和watchOS设备间的点对点通信,解决watchOS和Mac之间通信的方案还是很有用的。By [@WatchKit开发](http://weibo.com/twios)” 35 | * [shinobicontrols/iOS9-day-by-day](https://github.com/shinobicontrols/iOS9-day-by-day): 继 [iOS8-day-by-day](https://github.com/shinobicontrols/iOS8-day-by-day) 后, iOS9-day-by-day 也来了。如此专业的实战训练项目,不要错过。 36 | [MartinRGB/MTSwift-Learning](https://github.com/MartinRGB/MTSwift-Learning):通过一些简单项目实战演练开始学习 Swift 。P.S. 其它比较靠谱的连载式实战训练项目:[iOS9-day-by-day](https://github.com/shinobicontrols/iOS9-day-by-day),[iOS8-day-by-day](https://github.com/shinobicontrols/iOS8-day-by-day)。 37 | 38 | ### 文档 39 | > [Swift 文章精选](https://github.com/ipader/SwiftGuide/blob/master/Featured-Articles.md):最近新收录 [Tesseract OCR(光学字符识别)教程](http://www.cocoachina.com/ios/20150708/12463.html) 1 份,合计已收录 87 份。 40 | 41 | * [Tesseract OCR(光学字符识别)教程](http://www.cocoachina.com/ios/20150708/12463.html):“你之前肯定已经见过,OCR技术被应用于在平板电脑上将扫描文件处理成手写字迹,还被应用于谷歌最近添加到他们的Translate app上的"Word Len"功能。现在你将学习在自己的iPhone app上使用OCR,非常酷,不是吗?”。原文:[Tesseract OCR Tutorial](http://www.raywenderlich.com/93276/implementing-tesseract-ocr-ios),作者:[Lyndsey Scott](http://www.raywenderlich.com/u/Lyndsey),译者:[@CocoaChina](http://weibo.com/cocoachina) 翻译组 [Mr_cyz](http://blog.csdn.net/u013604612) 42 | * [iOS8 Swift文件管理教程](https://github.com/bboyfeiyu/iOS-tech-frontier/blob/master/issue-12/iOS8%20Swift%E6%96%87%E4%BB%B6%E7%AE%A1%E7%90%86%E6%95%99%E7%A8%8B.md):“当一款iOS的App安装到设备上以后,将会创建一个文件夹,其中包含了用于存储临时文件的临时文件夹。这篇文章我们在管理该临时文件夹,包括创建读取和删除文件”。译者:[@HarriesChen](http://weibo.com/u/3133068967),原文:[iOSCreator - File Management Tutorial in iOS8 with Swift](http://www.ioscreator.com/tutorials/file-management-tutorial-ios8-swift) 43 | * [watchOS 2: The Power of Animations](http://code.tutsplus.com/tutorials/watchos-2-the-power-of-animations--cms-24302):“是一篇挺详细的watchOS2动画英文教程。By [@WatchKit开发](http://weibo.com/twios)”。源代码:[tutsplus/watchOS-NativeAnimations](https://github.com/tutsplus/watchOS-NativeAnimations) 44 | -------------------------------------------------------------------------------- /weekly/Issue-55.md: -------------------------------------------------------------------------------- 1 | ![](http://dulema.sinaapp.com/logo/sl-banner.png) 2 | 3 | **[<= 往期回顾](https://github.com/ipader/SwiftGuide/blob/master/weekly/README.md)** 4 | [Swift 语言指南](https://github.com/ipader/SwiftGuide)-Issue 55 5 | === 6 | **本期特别推荐** 1. 项目: [Stellar(通过物理引擎 UIDynamic 实现超酷物理动画类库](https://github.com/AugustRush/Stellar)),[Floater_(加一个浮动指尖图标到你的演示应用)](https://github.com/Buglife/Floater_),[OOD-Principles-In-Swift(基于 Bob 大叔 OOD 经典 Swift 实现示例)](https://github.com/ochococo/OOD-Principles-In-Swift);2. 文章:[Swift:Selector 语法糖](http://swift.gg/2016/06/02/swift-selector-syntax-sugar/),[Swift 算法实战之路:链表](http://www.jianshu.com/p/cf962aeff643),[用 Swift 编写面向协议的视图](http://swift.gg/2016/06/01/protocol-oriented-views-in-swift/)。 7 | 8 | **大声一:**[十二位优秀的 Swift 开发者个人资料页](https://github.com/ipader/SwiftGuide/wiki/开发者个人资料页) 9 | 10 | **大声二:**[Squall - Convert AE animations to iOS code and preview them instantly! ](http://www.marcuseckert.com/squall/) 11 | 12 | ## 项目 13 | > [Swift 项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md) 最近新收录 10 个(标注 ⭐️ 表示收录),合计已收录 472 个。 14 | 15 | * [tween-controller:易用、强大的交互式菜单及教程创建工具包类库](https://github.com/daltonclaybrook/tween-controller)([Dalton Claybrook](https://github.com/daltonclaybrook)) ⭐️ 16 | 17 | * [Stellar:通过物理引擎 UIDynamic 实现超酷物理动画类库](https://github.com/AugustRush/Stellar)([August](https://github.com/AugustRush)) ⭐️ 18 | 19 | * [BaoKanIOS:适合 Swift 新手参考的新闻资讯类应用](https://github.com/6ag/BaoKanIOS)([六阿哥](https://github.com/6ag)) ⭐️ 20 | 21 | * [URITemplate.swift:方便实用的 URI 模式匹配库](https://github.com/kylef/URITemplate.swift)([Kyle Fuller](https://github.com/kylef)) ⭐️ 22 | 23 | * [OOD-Principles-In-Swift:基于 Bob 大叔 OOD 经典(S.O.L.I.D.) Swift 实现示例](https://github.com/ochococo/OOD-Principles-In-Swift)([Oktawian Chojnacki](https://github.com/ochococo)) ⭐️ 24 | 25 | * [ios-swift-collapsible-table-section:逐步骤教授如何实现可折叠表格区域及演示](https://github.com/jeantimex/ios-swift-collapsible-table-section)([Su](https://github.com/jeantimex)) ⭐️ 26 | 27 | * [Host.swift:小巧实用的主机信息(主机名,网络地址等)捕获类](https://github.com/rjstelling/Host.swift)([Richard Stelling](https://github.com/rjstelling)) ⭐️ 28 | 29 | 喜欢老版 NSHost 的同学看过来。 30 | 31 | * [Floater_:加一个浮动指尖图标到你的演示应用](https://github.com/Buglife/Floater_)([Buglife](https://github.com/Buglife)) ⭐️ 32 | 33 | 如何安装、使用步骤都写的比较清楚。 34 | 35 | * [ello-ios:ello.co 官方 iOS 开源应用](https://github.com/ello/ello-ios)([Ello](https://github.com/ello)) ⭐️ 36 | 37 | ello.co 是一家反广告,相比 Facebook 更简洁、清新的全新社交网站。 38 | 39 | * [NoChat:基于轻量级聊天框架 Chatto 的二次开发库](https://github.com/little2s/NoChat)([Yinglun Duan](https://github.com/little2s)) ⭐️ 40 | 41 | “旨在轻量、易定制。Demo简单仿写了流行的消息应用Telegram, WeChat, Slack。语言版本Swift 2.2。” 42 | 43 | ## 文章 44 | > [Swift 文章精选](https://github.com/ipader/SwiftGuide/blob/master/Featured-Articles.md) 最近新收录 6 份(标注 ⭐️ 表示收录),合计已收录 256 份。 45 | 46 | * [Swift:Selector 语法糖](http://swift.gg/2016/06/02/swift-selector-syntax-sugar/)(来源:[@SwiftGG翻译组](http://weibo.com/swiftguide)) ⭐️ 47 | 48 | 精简代码从此类语法糖开始。“今天要发的这篇来头很大,Chris Lattner 亲自转发过,就冲这个也必须读一读了。” 49 | 50 | * [Swift 2.0 :揭秘 Map 和 FlatMap](http://swift.gg/2016/05/30/swift2-map-flatmap-demystified/)(来源:[@SwiftGG翻译组](http://weibo.com/swiftguide)) ⭐️ 51 | 52 | “这篇文章有点旧,还好赶在 3.0 之前发出来了。关于 map 和 flatmap 已经有太多太多文章,如果你还没有掌握,那一定不要错过这篇。” 53 | 54 | * [用 Swift 编写面向协议的视图](http://swift.gg/2016/06/01/protocol-oriented-views-in-swift/)(来源:[@SwiftGG翻译组](http://weibo.com/swiftguide)) ⭐️ 55 | 56 | 实战好文。协议解决 shake 动画代码,让主程序代码更简洁。 57 | 58 | * [Swift 利用协议优化 NSNotificationCenter](http://weibo.com/u/1926303682)(译者:[@没故事的卓同学]) ⭐️ 59 | 60 | * [Swift 算法实战之路:链表](http://www.jianshu.com/p/cf962aeff643)(作者:[@故胤道长](http://weibo.com/soapyigu)) ⭐️ 61 | 62 | * [Swift 网络安全原理及实践](http://weibo.com/u/5732374415)(作者:[@我偏笑_NSNirvana](http://weibo.com/u/5732374415)) ⭐️ 63 | 64 | * [App:PaintCode 新出了一个可将 Sketch 3 图形自动转换为 Swift 或 Objective-C 代码的收费插件](http://www.paintcodeapp.com/sketch) 65 | 66 | 代码实现上可以斟酌,比如采用更好的框架代码。 67 | 68 | * [App:Squall - Convert AE animations to iOS code and preview them instantly! ](http://www.marcuseckert.com/squall/) 69 | 70 | 动画这类专业设计工作,通过工具转代码是正道。 71 | -------------------------------------------------------------------------------- /weekly/Volunteers.md: -------------------------------------------------------------------------------- 1 | ### [Swift 语言指南](https://github.com/ipader/SwiftGuide) - [收录周报](https://github.com/ipader/SwiftGuide/blob/master/weekly/README.md) - 志愿者 2 | 3 | 4 | 志愿者|负责期报 5 | ------------ | ------------- 6 | [@孟祥月_iOS](http://weibo.com/u/1750643861)|[Issue 52](Issue-52.md) 7 | [@钱强今年25](http://weibo.com/u/5266911162)|[Issue 51](Issue-51.md) 8 | 9 | 10 | ### 整理步骤 11 | 12 | 1. 从上一期后发布后的[微博](http://weibo.com/swiftlanguage),按项目和文章逐条整理至当期([模板](template.md)) 13 | 14 | >收录链接采用原始链接,非微博短链;项目开发者使用 Github 中作者名字,非用户名 15 | 2. 挑选项目和文章分别按类别收录至《[Swift 项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md)》和 《[Swift 文章精选](https://github.com/ipader/SwiftGuide/blob/master/Featured-Articles.md)》 16 | 17 | >收录标准较为主观,基于 Star 数和 GitHub 作者权重,微博转发、评论数等因子 18 | 3. 更新 [weekly/README.md](README.md) 19 | 20 | 4. 更新 [ipader/SwiftGuide - README.md](https://github.com/ipader/SwiftGuide/blob/master/README.md) 21 | -------------------------------------------------------------------------------- /weekly/template.md: -------------------------------------------------------------------------------- 1 | ![](http://dulema.sinaapp.com/logo/sl-banner.png) 2 | 3 | **[<= 往期回顾](https://github.com/ipader/SwiftGuide/blob/master/weekly/README.md)** 4 | [Swift 语言指南](https://github.com/ipader/SwiftGuide)-Issue XX 5 | === 6 | **本期特别推荐** 1. 项目:2. 文章: 7 | 8 | **大声一:** 9 | 10 | ## 项目 11 | > [Swift 项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md) 最近新收录 XX 个(标注 ⭐️ 表示收录),合计已收录 XXX 个。 12 | 13 | * 14 | 15 | ## 文章 16 | > [Swift 文章精选](https://github.com/ipader/SwiftGuide/blob/master/Featured-Articles.md) 最近新收录 XX 份(标注 ⭐️ 表示收录),合计已收录 XXX 份。 17 | 18 | * 19 | 20 | --------------------------------------------------------------------------------