This shows you the differences between two versions of the page.
links:xcode [2017/09/23 19:13] jdg [Training] |
links:xcode [2019/03/06 07:33] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Xcode ====== | ||
- | * Tags: Xcode, Objective-C, Swift, Cocoa, Cocoa Touch, Mac OS X, iOS | ||
- | |||
- | ===== Language ===== | ||
- | |||
- | |||
- | * ([[http://www.cocoabuilder.com/archive/cocoa/136618-what-does-ns-means.html|forum]]) The prefix 'NS' in Swift type names stands for 'Next-Sun', introduced in [[wp>OpenStep]] which was a co-creation between NeXT and Sun. | ||
- | |||
- | ===== Apple Developer ===== | ||
- | |||
- | * https://developer.apple.com | ||
- | * https://developer.apple.com/devcenter/mac/index.action | ||
- | * [[https://developer.apple.com/xcode/|Xcode]] IDE (wikipedia [[wp>Xcode]]) | ||
- | * [[https://developer.apple.com/swift/|Swift]] Programming Language (wikipedia [[wp>Swift_(programming_language)|Swift]]) | ||
- | * [[http://en.wikipedia.org/wiki/Cocoa_(API)|Cocoa]] is Apple's native object-oriented application programming interface (API) for the OS X operating system | ||
- | * [[http://mhm5000.gitbooks.io/swift-cheat-sheet/content/|Swift Cheat Sheet]] | ||
- | * https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ | ||
- | * http://en.wikipedia.org/wiki/Foundation_Kit | ||
- | * [[ | ||
- | https://developer.apple.com/legacy/library/documentation/Cocoa/Conceptual/CocoaFundamentals/WhatIsCocoa/WhatIsCocoa.html#//apple_ref/doc/uid/TP40002974-CH3-SW16 | ||
- | |Cocoa documentation (retired)]] | ||
- | * https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/ObjC_classic/ | ||
- | * http://www.gnustep.org/resources/OpenStepSpec/FoundationKit/Classes/index.html | ||
- | |||
- | ===== Frameworks ===== | ||
- | |||
- | * [[wp>Foundation_Kit|Foundation Kit]] | ||
- | * [[wp>Cocoa_(API)|Cocoa]] (for Mac OS development) | ||
- | * [[wp>Cocoa_Touch|Cocoa Touch]] (for iOS development) | ||
- | |||
- | ===== App Design ===== | ||
- | |||
- | * [[ https://developer.apple.com/library/mac/documentation/UserExperience/Conceptual/OSXHIGuidelines/index.html#//apple_ref/doc/uid/20000957|OS X Human Interface Guidelines]] (online) | ||
- | * [[https://itunes.apple.com/us/book/os-x-human-interface-guidelines/id930571558?mt=11|OS X Human Interface Guidelines]] (iBook) | ||
- | * [[https://developer.apple.com/design/tips/|UI Design Dos and Don'ts]] (introduced from iOS 7) | ||
- | * [[https://developer.apple.com/design/|App Design]] | ||
- | * [[https://developer.apple.com/app-store/product-page/|App Store Product Page]] | ||
- | ===== App Testing ===== | ||
- | |||
- | * [[https://developer.apple.com/support/debugging/|App Debugging]] | ||
- | * [[ https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/TestingYouriOSApp/TestingYouriOSApp.html|Beta Testing iOS Apps]] \\ Process: | ||
- | * Alpha testing: test your app in iOS simulator, then on your own devices (connected directly to Xcode) | ||
- | * Beta testing: send your App from Xcode to iTunes Connect | ||
- | * internal testing | ||
- | * external testing (needs 'Beta App Review') | ||
- | * Distributing Your App Using **Ad Hoc Provisioning** | ||
- | * [[https://developer.apple.com/testflight/|TestFlight]] | ||
- | * internal testing: to users in your iTunes Connect organisation, max 25 users, max 60 days | ||
- | * external testing: to external users, max 2.000 users \\ NOTE: for external testing, you do need to submit for **Beta App Review** | ||
- | * [[https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/SubmittingYourApp/SubmittingYourApp.html#//apple_ref/doc/uid/TP40012582-CH9-SW36|Submitting Your App to the Store]] | ||
- | ===== App Store ===== | ||
- | |||
- | * Submit your App, Review bij Apple, Reject or Accept, How to manage your Apps in the App Store and Testing | ||
- | * [[https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/|App Distribution Guide]] | ||
- | * [[ https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/Introduction/Introduction.html|About App Distribution]]: | ||
- | |||
- | {{:links:apple_-_app_distribution_guide_-_about_app_distribution_-_1_administration_tasks_2x.png?600}} | ||
- | |||
- | * [[https://developer.apple.com/app-store/review/|App Review]] | ||
- | * [[https://developer.apple.com/app-store/review/rejections/|Common App Rejections]] | ||
- | * [[https://developer.apple.com/app-store/review/guidelines/|App Store Review Guidelines]] | ||
- | * [[https://developer.apple.com/app-store/review/guidelines/mac/|Mac App Store Review Guidelines]] | ||
- | * [[https://developer.apple.com/programs/|Apple Developer Program]] | ||
- | * [[http://www.apple.com/itunes/working-itunes/sell-content/connect/|iTunes Connect]] | ||
- | * [[https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa|iTunes Connect (login)]] | ||
- | * [[https://developer.apple.com/app-store/app-analytics/|App Analytics]] | ||
- | * [[https://developer.apple.com/app-store/marketing/guidelines/|App Store Marketing Guidelines]] | ||
- | * [[https://developer.apple.com/app-store/marketing/guidelines/mac/|Mac App Store Marketing Guidelines]] | ||
- | ===== WWDC ===== | ||
- | |||
- | * https://developer.apple.com/wwdc/ | ||
- | * Apple [[wp>Apple_Worldwide_Developers_Conference|Worldwide Developers Conference]] ("Dub Dub DC") | ||
- | * http://asciiwwdc.com | ||
- | * [[https://developer.apple.com/videos/wwdc/2014/?id=408|WWDC 2014 Session Videos]] | ||
- | * [[https://developer.apple.com/videos/wwdc/2015/|WWDC 2015 Session Videos]] | ||
- | ===== Swift ===== | ||
- | |||
- | * Wikipedia: [[wp>Swift_(programming_language)|Swift]] | ||
- | * REPL = [[wp>Read–eval–print_loop|Read Eval Print Loop]] | ||
- | * https://developer.apple.com/swift/ | ||
- | * https://developer.apple.com/swift/blog/ | ||
- | * https://developer.apple.com/swift/resources/ | ||
- | * Apple's official language reference: [[ | ||
- | https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language | ||
- | |The Swift Programming Language]] | ||
- | * [[ | ||
- | https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/RevisionHistory.html#//apple_ref/doc/uid/TP40014097-CH40-ID459 | ||
- | |Revision History]] (such as the new 'set' type) | ||
- | * https://github.com/apple/swift-evolution | ||
- | * https://github.com/hsavit1/Awesome-Swift-Education | ||
- | ==== Swift Open Source ==== | ||
- | |||
- | * https://swift.org | ||
- | * https://swift.org/source-code/ | ||
- | * https://github.com/apple/ | ||
- | * https://github.com/apple/swift | ||
- | * Swift documentation (on Github) uses Sphinx-doc and re: | ||
- | * Sphinx-doc -> http://www.sphinx-doc.org/en/stable/ | ||
- | * reStructuredText (from DocUtils) -> http://docutils.sourceforge.net/rst.html | ||
- | |||
- | === wikis === | ||
- | |||
- | * https://www.twilio.com/blog/2015/12/getting-started-with-swift-on-linux.html | ||
- | * https://www.raywenderlich.com/122189/introduction-to-open-source-swift-on-linux | ||
- | * http://dev.iachieved.it/iachievedit/swift-on-linux/ | ||
- | |||
- | ===== Training ===== | ||
- | |||
- | * [[http://www.lynda.com/|Lynda]] online video training | ||
- | * [[http://www.lynda.com/Cocoa-tutorials/Cocoa-Swift-Essential-Training/182675-2.html|Cocoa Swift Essential Training]] | ||
- | * [[http://www.lynda.com/Swift-tutorials/Swift-Essential-Training/180105-2.html|Swift Essential Training]] | ||
- | * http://www.lynda.com/search?q=code+clinic | ||
- | * http://www.lynda.com/C-tutorials/Code-Clinic-C/373549-2.html | ||
- | * http://www.lynda.com/Swift-training-tutorials/5904-0.html | ||
- | * Stanford University CS193p "Developing iOS 8 Apps with Swift (Swift-2)" | ||
- | * http://web.stanford.edu/class/cs193p/cgi-bin/drupal/ | ||
- | * http://myvideos.stanford.edu/player/slplayer.aspx?course=CS108&p=true | ||
- | * [[https://itunes.apple.com/us/course/developing-ios-8-apps-swift/id961180099|view in iTunes U]] | ||
- | * Stanford University CS193p "Developing iOS 10 Apps with Swift (Swift-3)" | ||
- | * https://github.com/duliodenis/cs193p-Winter-2017 | ||
- | * https://github.com/grant/20-Apps | ||
- | |||
- | ===== Git ===== | ||
- | |||
- | * Linus' GIT homepage -> http://git-scm.com | ||
- | * [[wp>Git_(software)|Git]] | ||
- | * [[http://git-scm.com/doc|Git documentation]] | ||
- | * [[https://www.atlassian.com/git/tutorials/migrating-overview|Migratie SVN to Git]] | ||
- | |||
- | |||
- | ==== Git Hosting ==== | ||
- | |||
- | * [[wp>GitHub]] | ||
- | * https://github.com | ||
- | * https://bitbucket.org | ||
- | * https://gitorious.org (acquired in 2015 by GitLab) | ||
- | * https://gitlab.com | ||
- | |||
- | ==== Git Self Hosting ==== | ||
- | |||
- | * Gogs -> http://gogs.io/ | ||
- | * http://gogs.io/docs/installation/install_gogs_on_ubuntu.html | ||
- | * Gitolite -> http://gitolite.com/gitolite/index.html | ||
- | |||
- | ===== Hackintosh ===== | ||
- | |||
- | * http://www.hackintosh.com | ||
- | * http://www.tonymacx86.com/building-customac-buyers-guide-april-2015.html | ||
- | * http://www.tonymacx86.com/yosemite-desktop-guides/143976-unibeast-install-os-x-yosemite-any-supported-intel-based-pc.html | ||
- | |||
- | ===== Mac OS X Kernel Development ===== | ||
- | |||
- | * Apple [[ | ||
- | https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/KernelProgramming/About/About.html | ||
- | |Kernel Programming Guide]] | ||
- | * Apple [[ https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/KEXTConcept/KEXTConceptIntro/introduction.html#//apple_ref/doc/uid/10000191-SW1 | ||
- | |Kernel Extension Programming Topics]] | ||
- | * Book [[ | ||
- | http://www.apress.com/apple-mac/objective-c/9781430235361 | ||
- | |OS X and iOS Kernel Programming]] | ||
- | * http://tuntaposx.sourceforge.net | ||
- | * http://stackoverflow.com/questions/26723321/how-to-code-sign-mac-os-x-kernel-extension-with-self-signed-certificate | ||
- | * http://stackoverflow.com/questions/21370452/osx-create-c-kernel-extension | ||
- | * http://mjtsai.com/blog/2014/03/27/apple-discourages-mac-kernel-extension-development/ \\ says: \\ <code> | ||
- | > The Mac kernel is a Mach micro kernel, developed by the MIT | ||
- | pointy heads specifically to be safely extensible, so you can | ||
- | add extensions without bringing down a system. | ||
- | |||
- | > Mach was developed at CMU. My understanding is that the | ||
- | XNU kernel is not a true microkernel (for performance reasons), | ||
- | and extensions really can bring down the system. | ||
- | </code> | ||
- | * [[wp>Mach_(kernel)|Mach]] | ||
- | * [[wp>XNU]] | ||
- | * [[wp>Darwin_(operating_system)|Darwin]] | ||
- | |||
- | ===== How Cocoa works ===== | ||
- | |||
- | **The Core Objects for All Cocoa Apps** | ||
- | |||
- | |||
- | {{https://developer.apple.com/library/mac/documentation/General/Conceptual/MOSXAppProgrammingGuide/Art/single-window-app_2x.png?600}} | ||
- | |||
- | **Additional Core Objects for Multiwindow Apps** | ||
- | |||
- | {{https://developer.apple.com/library/mac/documentation/General/Conceptual/MOSXAppProgrammingGuide/Art/multi-window-app_2x.png?600}} | ||
- | |||
- | ===== Cocoa Swift Samples ===== | ||
- | |||
- | * Matt Gemmell - Cocoa Source Code \\ http://mattgemmell.com/source/ | ||
- | * Programming Mac OS X with Cocoa for Beginners \\ http://en.wikibooks.org/wiki/Programming_Mac_OS_X_with_Cocoa_for_Beginners | ||
- | * Mac Developer Library - Sample Code \\ https://developer.apple.com/library/mac/navigation/index.html#topic=Sample+Code§ion=Resource+Types | ||
- | * Full featured example application written in Cocoa (Mac desktop) \\ http://stackoverflow.com/questions/11552465/full-featured-example-application-written-in-cocoa-mac-desktop | ||
- | * Are there any good tutorials for Mac GUI Applications with Cocoa? \\ http://stackoverflow.com/questions/3656665/are-there-any-good-tutorials-for-mac-gui-applications-with-cocoa | ||
- | * Learn Cocoa on the Mac \\ http://www.amazon.com/dp/1430218592/?tag=stackoverfl08-20 | ||
- | * http://cocoadevcentral.com/ | ||
- | * Mac App Programming Guide \\ https://developer.apple.com/library/mac/documentation/General/Conceptual/MOSXAppProgrammingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40010543 | ||
- | * Quartz 2D Programming Guide \\ https://developer.apple.com/library/mac/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/Introduction/Introduction.html#//apple_ref/doc/uid/TP30001066 | ||
- | * The Core App Design \\ https://developer.apple.com/library/mac/documentation/General/Conceptual/MOSXAppProgrammingGuide/CoreAppDesign/CoreAppDesign.html#//apple_ref/doc/uid/TP40010543-CH3-SW1 | ||
- | * SpriteKit Programming Guide \\ https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Introduction/Introduction.html#//apple_ref/doc/uid/TP40013043 | ||
- | * Mac Technology Overview \\ https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/OSX_Technology_Overview/About/About.html#//apple_ref/doc/uid/TP40001067 | ||
- | * Network Kernel Extensions Programming Guide \\ https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/NKEConceptual/intro/intro.html#//apple_ref/doc/uid/TP40001858 | ||
- | * Cocoa Drawing Guide \\ https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CocoaDrawingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40003290 | ||
- | * Cocoa Event Handling Guide - Handling Mouse Events \\ https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/EventOverview/HandlingMouseEvents/HandlingMouseEvents.html | ||
- | * Tutorial: SwiftDraw – Part 1: Basics & drawing a single shape \\ http://www.extelligentcocoa.org/tutorial-swiftdraw-part-1-basics/ | ||
- | * With Quartz in Cocoa OSX and iOS, how do you draw lines and “connect” shapes? \\ http://stackoverflow.com/questions/9152219/with-quartz-in-cocoa-osx-and-ios-how-do-you-draw-lines-and-connect-shapes | ||
- | * Upgrading to Swift 1.2 - What you need to know about Xcode 6.3 \\ https://designcode.io/swift1-2 | ||
- | * Build a Swift App - Learn Xcode Storyboard, Auto Layout and Designable Views \\ https://designcode.io/swiftapp | ||
- | * Design with Swift - Learn UI and animations using Swift (chapter of book) \\ https://designcode.io/swift-design | ||
- | * http://bohemiancoding.com/sketch/ | ||
- | * Concept to Completion - One Man's Journey to Learn Swift \\ http://swiftly.chrisbowler.com/ | ||
- | * 5 approach to implement SpriteKit drag \\ http://eppz.eu/blog/spritekit-drag/ | ||
- | * DrawKit - A cocoa framework for drawing \\ http://apptree.net/drawkit.htm | ||
- | * https://swiftcast.tv | ||
- | * http://www.raywenderlich.com/84434/sprite-kit-swift-tutorial-beginners | ||
- | * https://github.com/AlexChesters/Ninja-Shooter | ||
- | * http://www.stefanom.org/data-visualization-in-cocoa/ | ||
- | * http://nshipster.com/the-death-of-cocoa/ | ||
- | * http://www.swifttoolbox.io | ||
- | * http://www.raywenderlich.com/90690/modern-core-graphics-with-swift-part-1 | ||
- | * http://www.computersciencezone.org/swift-programming-language-tools/ | ||
- | * http://www.appcoda.com | ||
- | * http://cdn2.raywenderlich.com/wp-content/uploads/2014/06/RW-Swift-Cheatsheet-0_3.pdf | ||
- | * http://www.raywenderlich.com | ||
- | * http://www.raywenderlich.com/75270/make-game-like-candy-crush-with-swift-tutorial-part-1 | ||
- | * http://applehelpwriter.com/2014/07/20/xcode-adding-source-control/ | ||
- | * https://github.com/palewar/CS193P | ||
- | * http://www.extelligentcocoa.org | ||
- | * http://www.sprite-kit.com/tutorials/ | ||
- | * youtube.com: [[ | ||
- | https://www.youtube.com/playlist?list=PLAPYooLKhJHFC9LcqvgZ_NfXoYJ11WmUd&app=desktop | ||
- | |Learn Swift and Sprite Kit - Video Tutorials]] | ||
- | * http://www.wentenschuh.eu/en/2014/moving-objects-with-mouse-in-scene-kit-and-with-swift/ |