原文:https://medium.com/macos-app-development/100-days-of-osx-development-e61591fcb8c8
原文作者:Harry Ng
100天OSX开发视频教程
学习使用Swift构建Mac App
喜欢学习任何东西,保持专注和定期练习是最好的方法。这是一个关于我在过去4个月内如何学习OSX Development的故事。
Mac应用程序开发的原因
我花了几年时间 在developing 、iOS、 apps 和teaching web development classes。大约4个月前,我被授予了一个项目,从事一个创业主意,在那里它作为一个Mac应用程序。在那一刻,我认为它可以由Swift构建,Cocoa框架应该类似于iOS上的Cocoa Touch。我接受了这个项目,花了一个月的时间创建了第一个Mac App。在此期间,我正在寻找有关OSX开发的一些教程。资源不如iOS那么丰富。我认为将我的学习作为共享资源可能是一个好主意。今天,我刚刚创作了100部关于我每天学到的视频。
查看我在 YouTube上的教程系列
开发Mac App,你需要准备什么
- Xcode
- Mac OS
开发Mac应用程序之前,您需要已经拥有Mac电脑。您不需要为自己装备另一台设备,如iPhone。有了个人证书,您可以稍后在Apple应用商店部署应用程序时注册Apple开发者帐户。
相反,像学习任何其他事情一样,耐心和一致性在开展OSX开发方面非常重要。你会看到为什么在本文的后面部分。
为什么很好的关注Mac应用程序?
苹果生态系统的优点之一是开发人员通过开发有用的应用程序获得更多的收入。为了比较其iOS版本和Mac版本的相同产品,后期通常会收取3至4倍的费用。某些类型的待办事项列表应用程序,日历或邮箱在维持开发团队方面得到很好的支付。一些我真正喜欢并使用它的Mac应用程序包括Toggl,Evernote,Sketch,Dropbox,1Password,Clear,FantasticCal。其他应用程序,如Bartender, Caffeine, Screenflow,RescueTime是我的首选工具。
OSX开发容易学习吗?
不。
我以为会像iOS开发一样。如果你看起来像TextField,Labels或Slider这样的基本控件,那就可以了。当涉及到NSCollectionView(在WWDC 2015中更新很多),NSTableView和Data Bindings有很多差异。
简单地说,虽然类名和功能签名看起来类似,但它们的结构完全不同。在OSX中,NSCollectionView和NSTableView是可滚动的,但它们不是NSScrollView的子类。相反,它们是滚动视图的层次结构中的子视图(称为documentView),然后是剪辑视图。 (Terminologies start to add up)。
数据绑定是OSX中长期以来使用的另一个概念。它现在被视为传统支持。 (在NSCollectionView的修订实现的文档中显示)。实际上,使用数据绑定还有很多例子。
除了结构差异,代码引用另外还有一个很大的挑战。像任何其他编程经验一样,我在谷歌中找到答案。它有时会转到stackoverflow,但它总是去一些旧的论坛,这可能是从2000年(16年前)开始运行的。不要指望在那里找到任何语法高亮。缩进已经是一个大拇指。在这种情况下,甚至不要期望编写Swift编写的例子。幸运的是,我开始将iOS开发作为Objective-C开发者。我仍然可以阅读Objective-C,但主要是写Swift代码。
建立Mac应用程序有什么好的资源?
我在OSX Dev上查找了很多资源。有很多资源。但是,其中许多是分散的。他们出现在10 - 15年。现在我已经知道一些OSX开发人员(加入我们在Cocoa Devs),他们在这个领域工作了10多年。他们都有比我更好的经验,这些年来的起伏不定。
在这种情况下,学习Cocoa框架的结构是非常重要的。在查看资源时,您需要先确定时间方面的相关性。例如,在(join us here at Cocoa Devs)中,您可能希望确保内容与2015年的更新相关。我发现很多人都有类似的问题,因此我为NSCollectionView 2015创建了一个单独的播放列表。没有特别的顺序,这些是我参考的其他资源。
WWDC - 了解OSX是最直接的方法。作为iOS开发人员,最好从iOS和OSX(2014)之间的会话233共享代码开始,并在2013年开始等待。我在2011年至2015年间观看了超过15个OSX会话。
The Big Nerd Ranch Guide - 这几乎是市场上最结构化的指南。它更新到Swift 1.x,并有一个伴侣Github回购最新的Swift更新。作为从Objective-C到Swift的端口,您将看到许多部分都使用Nib而不是Storyboards,以及其他一些传统方式。
Ray Wenderlich - 虽然博客的主要焦点是iOS,这是时尚,它有一些文章涵盖了OSX的一些基础概念。
下一步是什么
因为我刚刚制作了100部影片,每天都包括假期,我正在视频系列中寻找新的想法。在这里,我想尝试一下实验,灵感来自 Natasha the Robot.。
500$,我可以为你创建Mac应用程序。
怎么工作?
- First in, first out
- 给我发电子邮件到:harryworld@gmail.com
- 邮件主题:“I have a Mac App idea”
- 将应用程序的想法包含在3个句子和一个线框中
- 我会回复每个人的电子邮件,一旦我决定在您的项目上工作,我将与您建立Skype通话
- 付款:先250$,完成后再付250$
- 设计:我将主要使用本机UI组件,如果您也有设计,可以开放讨论。
- 你拥有代码,但是我将在我的博客中看到一些视频,并展示一些功能。
- 我有权选择项目进行工作。
让我知道如果你有任何问题,我会回答这里作为回应。
Topics of the tutorials
To conclude this post, I am going to list the topics I have created.
- Storyboard
- Auto Layout
- NSCollectionView
- NSTableView
- NSTableView — Add a row
- Array Controller
- Menu Bar
- Menu Bar — Event Monitoring
- NSOutlineView
- NSOutlineView — Drag & Drop
- NSOutlineView — Undo Manager
- NSOutlineView — Delegate Methods
- NSAlert
- UI Testing
- Unit Testing
- ContainerView
- ContainerView — NSViewController Lifecycle methods
- NSNotification
- NSNotification Best Practices
- NSPopover
- NSPopover Actions
- NSPopover w/ NSNotification UserInfo
- Window Controller
- Tab View Controller
- Split View Controller
- NSToolbar
- NSToolbar Transparency
- Cocoa Binding Part 1/3
- Cocoa Binding Part 2/3
- Cocoa Binding Part 3/3
- NSCollectionView 2015 — Flow Layout
- NSCollectionView 2015 — Selection & Highlight
- NSCollectionView 2015 — Grid Layout
- NSCollectionView 2015 — Custom Layout
- NSCollectionView 2015 — Header and Footer
- NSCollectionView 2015 — Custom Title for Header and Footer
- NSCollectionView 2015 — Set Item Value / Move Item
- NSCollectionView 2015 — Insert Item
- NSCollectionView 2015 — Delete Item
- NSCollectionView 2015 — Scrolling
- NSCollectionView 2015 — Modify Text Field inline
- NSCollectionView 2015 — NSTrackingArea
- Event Handling — Key Events
- Event Handling — Mouse Events
- Event Handling — Gesture Recognizer
- NSView
- Core Animation — 3D Drawing
- Event Handling — Custom Gesture Recognizer
- Font System
- CocoaPods
- CocoaSwiftPlayer — Get Started
- CocoaSwiftPlayer — Start with Storyboard
- CocoaSwiftPlayer — Setup Controls
- CocoaSwiftPlayer — Start Coding
- CocoaSwiftPlayer — Import Songs
- CocoaSwiftPlayer — Display Songs
- CocoaSwiftPlayer — Play Song
- CocoaSwiftPlayer — Next Rewind
- CocoaSwiftPlayer — Repeat Play
- CocoaSwiftPlayer — Shuffle Play
- CocoaSwiftPlayer — Show Song Progress
- CocoaSwiftPlayer — Show Song Title
- CocoaSwiftPlayer — Playlist
- CocoaSwiftPlayer — Playlist in Realm
- CocoaSwiftPlayer — Add to Playlist
- CocoaSwiftPlayer — Switch & Rename Playlist
- CocoaSwiftPlayer — Delete using Menu
- CocoaSwiftPlayer — Status Bar App
- CocoaSwiftPlayer — Visual Effects
- CocoaSwiftPlayer — Wrapping Up
- CocoaSwiftPlayer — Bonus
- NSOutlineView — Insert/Remove/Move
- CocoaSwiftPlayer — AppIcon & Release
- NSTimer
- NSUserDefaults
- Multiple Windows
- CocoaSwiftPlayer — Bonus 2
- NSCollectionView 2015 — Drag & Drop
- NSCollectionView 2015 — Insert / Delete
- NSTableView — Sorting
- NSTableView — Searching
- NSCollectionView 2015— Dragging Image
- AutoLayout — NSLayoutConstraint
- AutoLayout — SnapKit
- NSTableView — Searching without ArrayController
- NSCollectionView 2015 — NSScrollView
- NSCollectionView 2015 — NSScrollView Part 2
- NSCollectionView 2015 — Design Tips
- NSCollectionView 2015 — IBDesignable
- NSTextField
- NSTextField Subclass
- NSTextField vs NSTextView
- NSControl — NSPopUpButton
- NSControl — NSComboBox
- NSControl — NSTextView
- NSControl — NSSlider
- NSControl — NSDatePicker
- NSControl — NSButton — Radio Button Group
- NSControl — Checkbox and Submit the Form
- NSImageView
- Event Handling — More on Gesture Recognizers
附: 这仅是一个超过100个的视频。 我希望你喜欢它。
附2: 有点不高兴,在苹果特别活动中没有OSX的更新,因此希望这篇文章为每位读者带来一些享受。
喜欢这篇文章? 好的,关注我在Twitter和Medium上 @harryworld
如果你“推荐”这个帖子也会很酷。
你是父母与新生儿吗? 关心你的宝宝,想捕捉自己的成长? 你应该尝试Moments。