Join us in November for the first annual Back to the Mac conference where misfits, rebels, troublemakers, and the ones who think differently will share their knowledge about developing Mac apps. The conference is free. There are no registration or application fees. It is completely online as a collection of videos on our YouTube channel. Videos are recorded by the speakers and information is provided so viewers can contact presenters with questions or comments.
Deadlines for the 2020 conference:
If you would like to give a presentation or demo, please submit your talk via email by September 8. Include the items listed below in your submission. Keep in mind that presentations and demos should be less than 30 minutes.
Here are some ideas for presentations. Other topics are welcome as long as they are relevant to native Mac app development.
Presenters should record their presentation or demo at fullscreen resolution. This will ensure the videos are encoded at the highest quality for YouTube. Try to keep the duration of the video to 30 minutes or less. Presenters will be given a Dropbox link for uploading their video. See the resources provided below for information about recording videos along with some recommended software and hardware options.
I’m the creator of Screenie, a Mac app to search for text in your screenshots. The core of the app is already open source. My talk will walk you through the text request Vision APIs, and how we can efficiently create an index for a large number of images in Swift using Combine, including code examples from Screenie. I’ll demonstrate how to improve search result accuracy using natural language concepts including tokenization, lemmatization, and data detection - all provided by the NaturalLanguage framework. Last, I’ll cover some new APIs added in macOS 11 for sentence embeddings which we can use to cluster similar screenshots. By the end of the talk, attendees will know how to use high level ML and NLP APIs on macOS to create an efficient image search.
This presentation will discuss using XPC to create a Python interpreter environment within your Mac application, including describing why you’d want a python interpreter in the first place, why you would benefit by using XPC, and how to establish bi-directional data links. Finally, I’ll discuss the results I observed doing this in my app, Cartographica.
If you want to distribute a Mac app outside the Mac App Store, Developer ID is no longer sufficient, you have to notarize your application. While Xcode can do everything for you in its organizer, it’s a good practice to have a separate machine for continuous integration, and that means scripting your builds for distribution. In this talk, we’ll go over the command-line `altool` to interface with Apple’s notarization system, and build a robust, yet simple script that can handle notarizing apps and disk images for immediate distribution from your website.
In this demonstration, I'll start from a new Xcode project and build a functioning Mac app using pure SwiftUI. I'll show how to use the standard Mac features that are not present in iOS apps such as multiple windows of varying sizes, preferences, menus, keyboard shortcuts, and UI elements that are not available on iOS or are different on the Mac. This demo is inspired by my series of blog posts on SwiftUI for Mac.
For this presentation, I would like to share a full-featured solution that replaces tools like Sparkle and App Center with free and easy-to-use services from Microsoft such as GitHub Actions and GitHub Releases. This presentation shows a modern approach for Mac app distribution outside the App Store.
Swiftly and easily extend SQLite with virtual tables, table-values functions, and custom scaler, aggregate, and window SQL functions. Imagine a SQL interface to Number Series, Clocks, Calendars, File Systems, User Defaults and more. I'll introduce some extenstions to a great SQLite Swift Framework and illustrate how and why you might create your own. Written in Swift, these extensions can be used from a modified sqlite3 command line shell or incorporated into any Swift application.
Application bundles seem like a topic everyone understands, but few have tried to build an app manually. We leave all the responsibility to Xcode, but when something goes wrong, we don’t know where to search for answers. I believe this topic could help macOS developers understand clearly the entry points and what makes up an application bundle.
Distributing Mac apps outside the store means signing and notarizing the app. When your app needs to function offline, this implies that you need to stamp the notarization result. Otherwise, you risk the dreaded “Apple cannot verify this application for malware” warning to your user. It also means needing to distribute apps as disk images instead of a simple ZIP archive since the latter cannot be stamped. But creating a notarized and stamped disk image is a lengthy 10-step process. Xcode is yet to provide a 1-click command to do this. What is the process involved to create a properly notarized and stamped disk image and how to automate this entire ordeal? Watch the talk to find out more.
by Ted Bradley Website
Accessing a live video's raw frames opens up lots of possibilities such as chroma-keying and precisely timed graphical effects. Even accurately pausing on a single frame and drawing over the top is hard - frame synchronized real-time graphics is another level. People would usually turn to a third-party framework such as FFmpeg. Instead, I will demonstrate the less well-documented APIs in AVFoundation to make this possible. I'll also give a taste of what we can achieve when we render these frames via Metal and SceneKit. We'll also see what's possible once you have some metadata about the camera providing the video.
In this talk, I'll run through the journey of making a Mac app, using (mainly) SwiftUI. Building an app with such a new framework has been a lot of fun, but it also came with some challenges. I would love to share some of these challenges I encountered along the way, my troubleshooting process, and the solutions I found. SwiftUI has changed since I started building the app, so I also want to chat about the impacts this has had on the app and the codebase.
In this talk I will show how you get a window overlay that doesn't take focus from your main window but can interact with keyboard events. It will be something like Safari's search bar window and does not steal key focus from the main window.
This talk describes how to use Metal to draw in 2D. Although we ordinarily think of Metal as a 3D graphics API, it can also be used to render 2D elements such as lines, curves, gradients, and text. These can be used to create custom user interfaces or even entire drawing applications. The talk begins with a brief introduction to the Metal API and command submission model, continues with several demonstrations of how to do high-performance low-level rendering in 2D, and concludes with a survey of popular GPU-accelerated UI systems, including Dear ImGui and NanoVG.
With Speculid, I built an app using existing C++ libraries to create app icons from SVG files. After WWDC 2020, I updated the app along with its build process and use of documents. In this talk, I'll explain how I used HomeBrew, GitHub Actions, and Swift Packages to create a consistent developer experience via continuous integration. I'll also cover how to integrate libraries like Cairo and Librsvg with Swift as well as the challenges associated with packaging, sandboxing, SwiftUI docs and more.
The Swift Argument Parser is the premier way to build command line applications. In this talk, I explain the basics of the Swift Package manager and how to get started building your first command line tool using the Swift Argument Parser. I'll go over decoding arguments, flags, and options and how to build a robust terminal application.
Nothing to see this year. Check back next year.