
Meet a friendly, self-taught instructor and learn to take ownership of your macOS desktop app course. Ask questions, provide feedback, and use the iOS Blitz sections to tailor your learning.
Kick off your macOS development journey by building a to-do list app with a text field, a table view, and core data, while noting mac-specific differences from iOS.
Learn to build a macOS to-do app visually in a storyboard, adding a two-column table, label, text field, checkbox, and add button, and explore table view structure and basic layout.
New to do item saved in core data by wiring a text field, an important checkbox, and an add button, using the persistent container context to create the item entity.
Fetches to-do items from Core Data via a managed object context and fetch request, stores them in a class array, and updates the table view as items change.
Populate a macOS table view from a to-do items array by wiring the view controller as data source and delegate, defining rows and cells, and reloading data.
Populate a macOS table view with NSTableCellView by setting storyboard headers and column identifiers, and display either the to-do item name or an important check mark.
Learn to add a bottom-right delete button that appears when an item is selected, and wire it with outlets and actions to delete via the table view and core data.
Finish strong as you gain confidence in macOS vs iOS programming, master mac-specific concepts in Xcode with view controllers, storyboards, and table views, and preview a Mac-only to-do list project.
design and build a macOS status bar app exclusive to Mac programming that sits in the top menu bar and turns plain URLs into clickable links using HTML.
Learn to work with the pasteboard by inspecting clipboard items and types, printing pasteboard contents, and converting copied URLs into clickable links using the Link It button.
Identify the public utf eight plain text on the pasteboard and extract the url. Then print the url and prepare to re-add a clickable link in the next step.
Explore how to clear and repopulate the macOS pasteboard, turning copied text into clickable links by using NS pasteboard, set string, and public HTML or UTF-8 text formats.
Explore building macOS apps with practical tips on status bar items, menu actions, app quitting, and icon integration, plus exporting and using the pasteboard to streamline workflows.
Sketching guides macOS app development, turning a podcast prototype into a clear plan with a split view controller, custom table view cells, and a web view for HTML episode descriptions.
Learn to fetch podcast XML via URLSession data task from a text field, handle completion and errors, and parse metadata with a parser class to obtain the title and image.
Integrate swxmlhash to parse xml data from an rss feed, navigate rss, channel, and title, and print the parsed podcast title while handling optionals for robust core data storage.
Create and save a podcast entity in Core Data using a context, assign the RSS URL, image URL, and title, then fetch and sort podcasts by title for display.
connect the storyboard table view to the view controller, implement the table view data source and delegate to display podcasts from Chordata, and refresh the table on the main thread.
Validate data integrity in core data by checking for existing podcasts with a fetch request and a predicate on the RSS URL, returning a boolean to prevent duplicates.
Design a podcast details view in a split view controller using storyboard, adding a bold title label, image, and delete and play/pause buttons with an episodes table.
Learn to pass data between macOS view controllers using a split view controller, storyboards, and outlets, with live updates to episode details when a podcast is selected.
Load podcast images from URLs, delete podcasts with Core Data, and update episodes with custom table view cells across the split view.
Learn to implement a get episodes function that parses podcast XML into an array of episode objects. Define an episode class with title, publication date, HTML description, and audio URL.
Navigate RSS XML to extract episode data by looping through channel items, creating episode objects with title, description, audio URL, and pub date using a Swift date formatter.
Learn to fetch podcast episodes from XML, display them in a table view, and play audio with AVPlayer when an episode is selected.
Create a macOS custom table cell view called episode cell, connect title and pub date labels and a description web view, and format dates while adjusting the row height.
Practice polishing a macOS podcast app by testing multiple feeds, refining audio URL parsing to enclosure tags, and ensuring playback, UI updates, and delete controls behave correctly.
Recap how we built a fully functioning macOS podcast player using split view controllers, custom table cells and web views, with audio streaming and parser insights.
Sketch a macOS command line weather tool that takes input like 'weather tokyo, japan' and outputs 'temp: fifty eight degrees fahrenheit' via Yahoo's weather API, implemented in Swift in Xcode.
Explore building a simple command line tool in Xcode, starting from a single main.swift file, and learn to pass and parse arguments, run in terminal, and test with schemes.
Learn to parse weather json with SwiftyJSON to extract the current temperature by traversing query, results, channel, item, and condition, then print the value.
Extract a user-specified location from command line arguments and construct a URL with proper percent-encoding for spaces and commas. Then fetch and display the temperature, handling encoding or URL errors.
Test the Touch Bar simulator and implement Touch Bar support in a macOS app using Xcode 8.1 and macOS 10.12, wiring a color picker via storyboard and a window controller.
Develop an Instagram-like Twitter image viewer called Tweet Graham using collection views, CocoaPods, and user defaults, and connect to the Twitter API with OS authentication.
Create a macOS app with a login that launches the default browser for Twitter authorization, a grid of tweet images, and tweet details opened in a browser.
Log in with Twitter to access the user's home feed, extract images, and display them in a collection view, using OAuth with OS Swift and CocoaPods.
Integrate the oos swift code into your macOS app with CocoaPods, simplifying the OAuth flow. Install via a pod file to create a workspace and manage dependencies.
Explore the Twitter API, authenticate with OAuth, and make REST API calls to fetch followers and the home timeline, then parse JSON to extract tweets and media.
Implement login and logout logic by toggling the login button to logout, storing and clearing tokens in user defaults, and refreshing tweets on app launch.
Discover how to use collection views to display a grid of items, configure a flow layout with item size, insets, and spacing, and wire up data source and delegate.
Download images from tweets using the kingfisher library with cocoaPods, caching in an image view and loading into a collection view after fetching tweet image URLs.
Enhance the tweet gallery macOS app by adjusting image scaling, increasing tweets to 200, resizing images, enabling selectable collection view items, and opening tweets in a browser via expanded URLs.
Polish the app by refining sign-in and logout to clear data and refresh the collection view, and fix tweet image display by handling retweeted status and extended entities.
Master how a macOS window controller moves between view controllers inside one window, wiring a main window controller to a create account view controller via a storyboard identifier.
Create an account screen with name, email, password fields and image upload, lay out using auto layout in storyboard, and toggle to the login view controller.
Create a macOS user with the Pass SDK by wiring name, email, and password fields, using a secure text field, sign up in background, and set name property from input.
Implement an open panel to let users choose a single image file from their file system and display it in the profile pic image view.
Implement a macOS chat split view by creating a split view controller with a left channel menu and right chat area, and navigate to chat on login or account creation.
Master managing window controllers in a macOS app by adding a channel add button, presenting a second window, and wiring storyboard connections to support multiple windows and channel creation.
Design and implement an add channel flow: build a UI with title and description fields and a create button, create a Channel PFObject, save in background, then close on success.
Populate a macOS table view with chat channels by wiring the storyboard to code, fetching channels from a parse query, and displaying titles sorted by title with hash-tag prefix.
Design a chat room with channel name, description, and a table view of messages, plus a text field and send button, then connect to the chat view controller.
Create a new chat object with the message, current user, and channel, leveraging the created at timestamp, then save in background and clear input for display in the chat table.
Learn to style chat cells in a macOS app by building a custom table cell with a profile image, name, date, and multiline message using autolayout constraints.
Implement automatic bottom scrolling for chat updates on load and new messages, and enable sending on enter via text field delegates in a macOS desktop app.
Polish the macOS app by adding a clear chat function that resets channel, chat data, and UI elements, and stabilize the UI with fixed sizing and a delayed initial resize.
Implement a periodic timer in the chat view controller to poll for new chats, start on channel update, invalidate on logout, and update UI only when chat counts change.
set up a macOS app server with PA server, install the pass sdk, and explore open-source deployment with Heroku while mastering macOS window management and cross-window view controller switching.
Learn to implement handoff by building a movie review shell that starts on iOS and resumes on Mac, with an iOS device and Apple developer account.
Explore how to implement handoff between an iOS and macOS movie review app, transferring title, review, and rating across two Xcode projects.
Design the user interface with text fields, a text view, a rating label, and a slider; connect outlets and a slider-changed action to update the rating to one decimal.
Explore macOS handoff with user activity by building a movie review app, syncing with iOS via iCloud and Bluetooth, and passing title, review, and rating.
Set up cross-app handoff by declaring a shared user activity type in both iOS and macOS apps, then run on devices with the same development team and iCloud accounts.
Explore how to pass and sync data between iOS and macOS using user activity in a handoff workflow, including crafting the user info dictionary and toggling needs save for updates.
Restore user activity state by accessing the window and its view controller, then fill title, review, rating from a user info dictionary into macOS text field, slider, and text view.
Conclude by showcasing handoff between iOS and Mac apps, demonstrating cross‑platform integration to enhance user experience and merge iOS and Mac programming skills.
Explore creating macOS app menus, handling keyboard and mouse events, and building a simple game to apply interactive input techniques.
Create a physics contact delegate to detect collisions, implement didBegin contact, and use category bitmasks to identify Jet Woman and spikes, triggering game over and printing collision events.
Implement a start game function to position Jet Woman in the center, reset the score to zero, and update the on-screen score label when the player jumps.
Add a click input option by introducing a click entry with a negative one key code, handle mouse down, convert codes to unsigned 16, and update score and high score.
Finish your macOS game by implementing menu items, a reset high score action, and keyboard and mouse events, then reuse the scene in Xcode to bring the art to life.
Thank you for checking out my course :) "The Complete MacOS Developer Course" will help you conquer the programming world of the Mac. This course is for both those with an iOS background and those who are complete beginners. This course dives right into the specific tools you need to make MacOS apps.
Topics we cover include:
In this course, we'll be creating 9 complete projects that you can run on your computer or upload to the App Store. After we make each project, I will also supply you with the completed source code so you can always check your work against mine as a reference.
I would love to have you in the course. Take a look at the promo video and see you inside!