Apple has announced Xcode version 12 at #WWDC20; they released the beta version on the same day. Xcode is in the middle of all development on Apple’s platforms, and with Xcode 12, it’s a fresh update to match macOS Big Sur.
With Xcode-12, it is faster to open multiple files. Navigator fonts now match the system size or are often set to small, medium, or large. And Xcode 12 builds macOS Universal apps by default to support new Macs with Apple silicon.
Now that's settled, onto the IDE. Go to the mac app store (available in mac os x 10.6.8 and later) and search Xcode. It's the first option, click on it. Download it, it's a lengthy download, 4 Gb, so if you have a slow internet connection you may want to consider doing something else while it is downloading. Feb 22, 2017 If you still see the default app icon, quit the HelloWorld app, go back to Xcode and choose Clean Build Folder from the Product menu, then run the app again. Getting Help As well as being an editor, Xcode also contains all the documentation you will need for writing macOS apps.
First, open Xcode, and connect your iPhone to your Mac via USB Then, open the Devices panel in Xcode via the Window → Devices and Simulators menu Then, find your iPhone in the list on the left, and then click Enable for Development, and make sure that the Show as run destination checkbox is ticked. First things first, download the latest version of Xcode from Mac App Store and then install it on your Mac. Xcode is available from Apple on Mac App Store for free. As mentioned earlier, it is important to note that Xcode 9 or later is required on macOS 10.12.4 or higher for all this to work properly.
Xcode 12 release includes Swift 5.3 and SDKs for iOS 14, iPadOS 14, tvOS 14, watchOS 7, and macOS 11. The Xcode 12 beta release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12 beta requires a Mac running macOS Catalina 10.15.4 or later.iOS nine and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12 beta requires a Mac running macOS Catalina 10.15.4 or later.
What’s New in Xcode 12?
SwiftUI
SwiftUI (no SwiftUI 2.0) offers some new features with many performance improvements. The existing SwiftUI code continues to figure, with faster performance, better diagnostics, and access to further controls.
SwiftUI has a complete new lifecycle management API for apps built with SwiftUI. So, now you’ll share life cycle code across all Apple platforms.
With Xcode 12, SwiftUI views can now be shared with other developers, and appear as first-class controls within the Xcode library.
Organizer
Xcode 12 features an entirely new Organizer with an all-new design that groups all critical information about each of your apps together. Choose any app from any of your developer teams, then quickly navigate to examine crash logs, energy reports, and performance metrics, like battery consumption and launch time of your apps when employed by customers.
The organizer now displays scroll-hitch metrics. You’ll use these metrics to spot animation delays users encounter while scrolling in your application. Mac app can t be opened unidentified developer. To look at the Scroll Hitch bar chart, click on the Scrolling section within the Metrics Organizer window.
The organizer now also provides Disk Writes diagnostic reports. You’ll use these reports to optimize the disk-write performance of your apps.
Interface Builder
Xcode 12 features a new tab model. With this updated model, you’ll re-arrange the document tabs to make a working set of files for your current task, and configure how content is shown within each tab.
Xcode 12 comes with a replacement code completion UI with only the knowledge you would like. So, it’s more compact and takes up less screen space.
Is Xcode Free
The project navigator now takes advantage of the system setting to resize “Sidebar Font & Icon Size,” almost like Finder. You can also choose a single font and icon size for Xcode within Xcode Preferences.
Top Mac App
Xcode 12 adds a replacement minimap for the Interface Builder canvas. You can drag, double-click or command-click within the minimap to specialize in a selected area. You can enable and disable this minimap with Editor > Canvas > Minimap. This may be very helpful in large size storyboards.
Debugging
Xcode 12 now displays the breakpoint hit count for a specific breakpoint location. Like “Thread 1: breakpoint 1.1 (14), ” 14 means breakpoint 1.1 has been hit 14 times.
You can re-order breakpoint actions by dragging and dropping them into a unique position. You can name a breakpoint, and reference it by name from another breakpoint’s work. For instance, to enable a previously disabled breakpoint called “MyBreakpoint,” type break enables MyBreakpoint in an action’s Debugger Command field.
The breakpoint contextual menu now has a choice to delete all the disabled breakpoints.
Simulator
To keep Simulator ahead of other applications, you’ll select Window > to stay Top. Now Simulator, by default, uses the internal microphone unless you manually select a particular audio source.
Simulator now supports 32-bit & 64-bit processes for watchOS 7. To verify watchOS projects are 64-bit clean in Simulator, confirm ARCHES is about to its default value.
With Xcode 12, Simulator supports simulating Nearby Interaction for devices that support the feature. Dragging the device window around on the screen will update the simulated distance between the two devices.
Playgrounds
Photo album app mac. Playgrounds now support asset catalogs.
Xcode 12 Report Navigator now includes Playground build logs alongside Project build logs. If a Playground live view features a size of zero, a banner now indicates why the live view isn’t visible.
Xcode Playground now automatically compiles Core ML models in its Resources folder, and Playground code can access the generated ML model interface.
Xcode Playgrounds can now import and use Swift packages and frameworks. Select the Build Active Scheme checkbox within the Playground’s File inspector and make sure that the active scheme builds the package or framework target.
Store Kit (Local Test Environment)
Xcode 12 now supports the testing of In-App Purchases (IAP) directly in Simulator or on a connected device, employing a new local StoreKit test environment.
It is now possible to customize Default Execution Time Allowance and Maximum Execution Time Allowance within the Test Plan Editor. But during this version of Xcode, these settings are disabled.
UI Testing now can handle banner notifications on iOS that block the navigation bar during UI testing.
Swift Packages
You can now declare conditionals Swift packages target dependencies, like limiting the dependencies by a platform.
Swift packages can now contain resources like asset catalogs, images, localized content (.lproj), storyboards, and other files. A dependent package adds the package’s code and support to the app bundle to be used at runtime.
Universal Apps
Xcode 12 for macOS Universal Apps includes a standard macOS SDK that contains all the frameworks, debuggers, compilers, and everyone other tools you would like to create apps to support Apple Silicon and Intel x86_64 CPU. Even Xcode 12 is made as a Universal app.
When you open your existing project in Xcode 12, your app will automatically get updated to get release builds & archives as Universal apps.
Conclusion
Xcode 12 run destination menu added an “Any Mac” destination for Mac schemes. This new build destination will build each target within the system for all supported architectures, no matter the native structure of the local Mac.
I think it would be quite hard to do iOS dev on a Windows box because
you would need all the xCode libraries to do even the most basic thing.
Then you would be cross compiling to ARM code and would need some way to
fling your app to the phone in a secure way. There are cross-platform
dev setups to create apps that run on Android and iOS but Apple has
generally discouraged these. First, they tend to generate more bloated
code because they have to abstract away the platform differences. Then
there is the issue of only being able to use the
lowest-common-denomintaor features between the platforms so any
new/special stuff on iOS won't be available because it can't be ported
to Android. Then there is the problem of accessibility since
accessibility on Android only became possible in the very latest version
and so it's very far behind. A few apps I tested that came out of a
cross-platform dev environment (monoTouch if I recall) were totally
inaccessible on iOS. Another risk is you build your stuff in ABC to make
it cross platform and then a year later ABC goes out of business or is
acquired by XYZ so now your code is on an abandoned or unsupported
platform. Similarly is lag. Apple releases iOS 7 and then you have to
wait for ABC platform to support it.
CB
--
¯_(ツ)_/¯
you would need all the xCode libraries to do even the most basic thing.
Then you would be cross compiling to ARM code and would need some way to
fling your app to the phone in a secure way. There are cross-platform
dev setups to create apps that run on Android and iOS but Apple has
generally discouraged these. First, they tend to generate more bloated
code because they have to abstract away the platform differences. Then
there is the issue of only being able to use the
lowest-common-denomintaor features between the platforms so any
new/special stuff on iOS won't be available because it can't be ported
to Android. Then there is the problem of accessibility since
accessibility on Android only became possible in the very latest version
and so it's very far behind. A few apps I tested that came out of a
cross-platform dev environment (monoTouch if I recall) were totally
inaccessible on iOS. Another risk is you build your stuff in ABC to make
it cross platform and then a year later ABC goes out of business or is
acquired by XYZ so now your code is on an abandoned or unsupported
platform. Similarly is lag. Apple releases iOS 7 and then you have to
wait for ABC platform to support it.
CB
--
¯_(ツ)_/¯