Native Mac apps built with Mac Catalyst can share code with your iPad apps, and you can add more features just for Mac. In macOS Big Sur, you can create even more powerful versions of your apps and take advantage of every pixel on the screen by running them at native Mac resolution.
- Jun 23, 2020 Apple's WWDC 2020 announcements show that the Mac is starting to feel more and more like an iPad. One key difference is how many ways there will be to make apps: native, catalyst, iOS, and more.
- Native apps bring so many benefits — from personalization and performance to familiarity and flexibility. And while we're always working hard to make Cloud an amazing space to collaborate, we still believe the Mac is the perfect place to let your ideas and imagination flourish.
Back in .NET Conf 2017 The Xamarin team already shared what's going to be new with Xamarin Forms 3.0 and it actually surprised me. I was expecting some performance improvements, bug fixing and a big upgrade on XAML. But, what they announced focuses on enabling the usage of Xamarin.Forms in more ways and on more platforms. I was really hoping for XAML improvements, maybe add some cascading styling like how CSS works. Maybe sometime in the future, we'll get it. For now, I'll just use the XAMLCss by warapa. Anyway if you want to watch all sessions from .NET Conf 2017, you can check it out on Channel9. Going back, I really didn't expect these new features, but definitely, I love it and really excited to try it out!
That's why right now, I'm going to show to you one of the exciting features added to the Xamarin.Forms 3.0 that I think you'll also love. I'm talking about Xamarin.Form's macOS support.
One of the Xamarin team's plan is to reach more platforms. That means UWP, iOS and Android are not only platform the Xamarin.Forms will be able to target from now on, they are also bringing macOS, GTK#, Linux and WPF!
You might think that it will be hard and will take a lot of time to integrate your Xamarin.Forms solution into the macOS project, but it's not. Not at all. You'll be able to create a native macOS application using your Xamarin.Forms solution using Visual Studio for Mac or Xamarin Studio in just 3 quick steps!
First step: Add a Cocoa App project
Right now, Xamarin.Forms template doesn't have a Cocoa App initially. So, what you would do is to start Visual Studio for Mac or Xamarin Studio and open your existing Xamarin.Forms solution. Then, add a project into the solution by right-clicking the solution and selecting Add > Add New Existing Project.
You can then select Mac > App > Cocoa App and name it whatever you want, but ideally, the name has a suffix of .macOs.
Second Step: Add the Xamarin.Forms NuGet Package
You will have to add the Xamarin.Forms' latest pre-release nuget package or specifically 2.4.0.282. To do this, right click the Cocoa App project that you just created and select Add > Add Nuget Packages.
Then, search for ‘Xamarin.Forms' and make sure that the ‘Show pre-release packages' Create iso mac sierra. is ticked. Click ‘Add' to add Xamarin.Forms nuget package.
You will also need to update the Xamarin.Forms on your shared project and the version should be the same with what the Cocoa app have.
Third Step: Configure the Cocoa App Project
The first thing that you should do with your Cocoa app project is to add the shared project into your Cocoa app as a reference.
Then, open the Info.plist and remove the ‘Main storyboard file base name' entry (Opened with XCode)
Or just open the Info.plist inside Visual Studio or Xamarin Studio by clicking it and leave the Main Interface blank.
The next one is to update your Main.cs' Main method to initialize the AppDelegate:
Lastly, update the AppDelegate by changing the NSApplicationDelegate to FormsApplicationDelegate:
Initialize the Cocoa app window within the constructor:
Then inside the DidFinishLaunching method, initialize Xamarin.Forms and load the application:
You can now set your project as the startup project and run your macOS!
Again, in just 3 quick steps, it's done!
This is just a basic walkthrough since this is still on preview. Expect that there are still bugs and not ready for production. Not all nuget packages are compatible and surely, there are lots of UI features still not implemented, but this is a good start. For now, you can send your issues and problems that you encounter in this forum discussion: https://forums.xamarin.com/discussion/93585/preview-xamarin-forms-for-macos/p1
Native Mac apps built with Mac Catalyst can share code with your iPad apps, and you can add more features just for Mac. In macOS Big Sur, you can create even more powerful versions of your apps and take advantage of every pixel on the screen by running them at native Mac resolution. Apps built with Mac Catalyst can now be fully controlled using just the keyboard, access more iOS frameworks, and take advantage of the all-new look of macOS Big Sur. There's never been a better time to turn your iPad app into a powerful Mac app.
Designed for macOS Big Sur.
When an app built with Mac Catalyst runs on macOS Big Sur, it automatically adopts the new design. The new Maps and Messages apps were built with the latest version of Mac Catalyst.
Get a head start on your native Mac app.
Your iPad app can be made into an excellent Mac app. Now's the perfect time to bring your app to life on Mac. The latest version of Xcode 12 is all you need. Begin by selecting the 'Mac' checkbox in the project settings of your existing iPad app to create a native Mac app that you can enhance further. Your Mac and iPad apps share the same project and source code, making it easy to make changes in one place.
Optimize your interface for Mac.
Your newly created Mac app runs natively, utilizing the same frameworks, resources, and runtime environment as apps built just for Mac. Fundamental Mac desktop and windowing features are added, and touch controls are adapted to the keyboard and mouse. By default, your app will scale to match the iPad's resolution. On macOS Big Sur, you can choose 'Optimize interface for Mac' to use the Mac idiom, running your app using the native resolution on Mac. This gives you full control of every pixel on the screen and allows your app to adopt more controls specific to Mac, such as pull-down menus and checkboxes.
Even more powerful.
Mac Apps Download
The new APIs and behaviors in macOS Big Sur let you create even more powerful Mac apps. Apps can now be fully controlled using just the keyboard. You can create out-of-window and detachable popovers, control window tabbing using new window APIs, and make it easier for users to select photos in your app by using the updated Photos picker. iOS Photos editing extensions can now be built to run on Mac. And your app is even easier to manage when it's running in the background with improved app lifecycle APIs.
Mac Native Apps For Mac
New and updated frameworks.
Mac Catalyst adds support for new and updated frameworks to extend what your apps can do on Mac. HomeKit support means home automation apps can run alongside the Home app on Mac. The addition of the ClassKit framework lets Mac apps track assignments and share progress with teachers and students. Plus, there are updates to many existing frameworks, including Accounts, Contacts, Core Audio, GameKit, MediaPlayer, PassKit, and StoreKit.
Mac Native Apps For Windows 10
Tools and resources.
Download Xcode 12 and use these resources to build native Mac apps with Mac Catalyst.