tvOS

Yes its the most important week of the year again for any apple developer. WWDC! And according to Apple’s Keynote now there are over 20 million of us!

Apple has announced a lot of stuff in their Keynote, i’m sure the whole internet is filled with coverage of that. Lets have a quick glance at whats actually important for developers:

  • macOS 10.14 and iOS 12 with new APIs. we are still digging through the developer documentation to figure out what actually changed under the hood and at an API-level, like i am sure many of you are doing right now too. this year its actually considerably harder to find out whats new because Apple has discontinued their old developer documentation which always contained super-handy release-notes documents and replaced it with a flashy all-new documentation thats actually quite useless. at this point we can say for certain that there have been few large changes in key frameworks like Foundation/AppKit (things kinda died down here around 10.6) and the focus has been on extending recently released frameworks like ARKit and Core ML as well as tvOS and CarPlay changes. Apart from that we got 4 new Frameworks to play with:
    • Natural Language‘ a framework for processing Natural Language, this fits nicely with Apple’s recent machine learning focus
    • iTunesLibrary‘ a framework for interacting with iTunes, which is quite welcome on macOS where the only way to interact with iTunes has always been the scripting bridge, which has barely been accepted on the Mac App Store. we’ve already filed a bug report about this framework
    • Network‘ an aptly named framework to implement low level TCP/UDP networking
    • AuthenticationServices‘, which if it will prevent iOS apps asking for passwords that only exist in the Keychain will be get all our thumbs up
  • a “brand new Mac App Store”. i am sure there is much excitement about that and the visual overhaul is certainly welcome for users and the addition of the SKStoreReviewController API is certainly welcome for developers but lets not forget 1.) it has taken Apple (a 950 billion dollar company) 7 years to deliver an update that looks like an intern could do in 2 months and 2.) the changes we really have been asking for have not even been mentioned although we developers have pledged over 600 apps to the cause
  • Xcode 10: finally they brought the cold-folding back and their new build system is enabled by default. I guess most Swift developers will be disappointed that this is based on Swift 4.2 and not on Swift 5.

Unless you’ve won the WWDC lottery, some information is still hard to come by, so we’ll post more as it becomes available.


DotSwift 2018 Videos Online

Videos from the DotSwift 2018 in Paris are now online and there have been some interesting presentations! Check out the videos and bridge the gap until apple’s WWDC videos will be online – probably in June.

Upcoming conferences from our offline resources list:

  • UIKof May 13–16, 2018, Berlin
  • WWDC June 4–8 2018, San Jose (with additional conferences around the WWDC)
  • trySwift June 8 2018, San Jose
  • 360|iDev August 26–29 2018, Denver

Kotlin/Native Plugin for AppCode Released

Hot on the heels of the AppCode 2018.1 Release, JetBrains have published a plugin for their AppCode IDE that integrates with Kotlin/Native. Kotlin/Native allows completely interoperability between Kotlin on one hand and Swift or ObjC on the other hand, which obviously enables some interesting things for writing cross-platform apps. Kotlin/Native is now featured on our cocoa languages page along with all other languages that allow interoperability with Swift or ObjC.


 Rumour: Apple plans to unify iOS and macOS via ‘Marzipan’ and move from x86 to in-house ARM chips

Unlike the rest of the internet we see little point in endlessly talking about things that are just rumours and not facts.
However, if there is something behind all this, the impact for Mac developers would be enormous – as numerous sites have been reporting in the past few weeks, Apple may be planning to unify iOS and macOS via their ‘Marzipan’ project as well as move their line of Mac computers from Intel to in-house ARM chips.

While this is all speculation at this point, rumours of Apple moving their Macs to ARM have persisted for many years now and fit well with what Apple actually wants: thin devices with long battery life and a high-profit margin. A switch to in-house ARM chips would totally make sense on this front, enabling Apple to make even higher profits on some even more desirable devices. However, there are downsides. While ARM chips may be able to compete performance wise with the quite slow chips in the Macbook/Macbook Air notebooks, we doubt they could replace high-end iMac chips the chips in a hypothetical ‘Mac Pro’. While Apple could move just some models over to ARM, this would make the transition even more burdensome. The performance problem is made worse with the fact that one would undoubtedly need some kind of x86-emulation to run ‘legacy’ binaries. Apple already switched chip architectures twice, from 68k to PowerPC (mid 90s) and from PowerPC to x86 (late 00s) and this has always been very cumbersome for developers (needing to re-write all their apps) and users (putting up with slow binary-emulation). But in both of these cases, they actually migrated to a much faster platform, which made a clear gain visible to everyone, and made binary-emulation workable. If they now switch to a CPU-architecture that is actually slower, we see little reason to stay on the platform. Interestingly a move to ARM would be much easier if their development environment was based on a JIT, like Microsoft have long propagated with C#. The native-compilation model that served them very well to keep the iPhone ahead of the competition performance-wise, may now be a hindrance.

On the topic of ‘Marzipan’ we are even more sceptical. The good part here would be to finally have some Framework/API news for Mac developers. Cocoa has accumulated a lot of cruft over the decades, and while Apple took the chance to make come improvements on iOS with UIKit, they probably didn’t go far enough and never did make it back to the Mac. The pain is even bigger for Swift developers, the sometimes cumbersome integration with ‘legacy’ ObjC APIs is probably the biggest drawback of using Swift. We’ve been waiting for a ‘revolution’ or at least a larger evolution concerning Cocoa for years, and this ‘Marzipan’ could mean just that. However, the very idea of merging Mobile and Desktop interfaces on any kind of level strikes us as extraordinarily dumb. The futile attempt to merge something which does not belong together has cost Microsoft billions during their Windows 7 / Mobile escapades. The fact that Apple has thus far kept the Mac and iOS separate and each working as it should has been a major selling point versus competing devices that are confused about what they actually are. More concretely, we can’t imagine it being possible to create a GUI framework that actually works great to support both touch-based and mouse-based input as well as screen sizes ranging from 4 to 40 inch.

Disagree? Looking forward to totally rewriting your apps for ARM-based Macs based on a UIKit-gone-fat? Let us hear your thoughts in the comment section!

EDIT: Apr20: There may be hope after all. Indeed, premature rumourization is the root of all evil. But it keeps the internet alive 😉


AppCode 2018.1 Released

Over at JetBrains they have released AppCode 2018.1, which is probably the most important alternative IDE to Xcode. There are far too many improvements to list here, including some Swift 4.1 support and support for RxSwift, which is quite cool. AppCode looks very very convincing on the feature-front, but the interface is so ugly Windows-like and nothing like a proper Mac-app as far as look&feel is concerned, that we couldn’t bring ourselves to actually use it. Even for a Windows-app the UI is bad, they really need to hire someone with user interface design experience, or at least someone with a sense of taste. But if Xcode continues its recent deterioration (we nominate it for our ‘Bug of the week’ feature for silently destroying a XIB file during refactoring just yesterday), AppCode may be the only way to go.
AppCode is listed on our apps & tools page along with a few dozen other essential apps for mac&iOS developers.



Xcode 9.3 Released with Swift 4.1

Xcode 9.3 has been released by Apple. Interesting changes from the release notes:

  • 32-bit support is dropped. This is about time, since macOS has only supported 64-bit Macs since 10.7 (2011), Apple hasn’t offered a 32-bit Mac since 2007 and there were only a handful of 32-bit Intel Macs ever sold to begin with. Makes one wonder why Apple ever bothered with 32-bit Intel anyway.
  • the new energy organizer shows information about your iOS apps using ‘too much’ energy for apps distributed on the (iOS) App Store and Testflight
  • The debugger on macOS now requires the entitlement com.apple.security.get-task-allow to attach to apps. Apple seems to move in a direction where macOS is locked-down and you can’t debug random processes anymore. We foresee a lot of pain for low-level developers and security researchers.
  • Code-folding is still only working rudimentary, making the Xcode 9 series quite unusable
  • A lot of improvements for code coverage and new tool for parsing code coverage output, xccov.
  • Full Swift 4.1 support. We are detailing the Swift 4.1 changes in a separate post

Generally, Xcode 9.3 brings larger changes than Xcode 9.2 (release notes here) and 9.1 (release notes here) that mainly saw bug-fixes.


Welcome to apple-developer.org

Hello World,

welcome to apple-developer.org!

According to Apple, there are over 16 million registered ‘Apple Developers’, programmers developing software for their platforms (macOS, iOS, watchOS, tvOS) and using their languages (Swift, ObjC) and technologies. However, there is a notable lack of centralised information for all these people!

Over at CoreCode we’ve been frustrated by the lack of online information concerning software development for Apple’s platforms over the past few decades.

Specifically there is a lack of information about news & resources:

  • News: There are more than a billon websites, but there is no single website that exhaustively covers news of interest to Mac & iOS developers. Yes, there is Apple’s News Site, but it only covers their own stuff. Apart from that, there is basically nothing. There is no way to stay up-to-date, unless you have a large collection of carefully researched sites that you visit regularly and a lot of developer-friends tipping you off about new things. We want to remedy this situation with our Apple-Developer News site. We’ll start by covering the things that have happened in the past few weeks to make up for our delayed launch. After that we aim to cover everything thats interesting for ‘Apple Developers’ basically in realtime. Of course your tips about news are welcome!
  • Resources: There are quite a few interesting things for ‘Apple Developers’ out there. Specifically crafted great apps, tools & services. Awesome libraries & frameworks. Insightful online resources, blogs & podcasts. Books and conferences. However, there is no single, easy way to find out about all that stuff. We are launching our Apple-Developer Resources site today, filled with over 350 hierarchically organised links to interesting resources. More to come in the following weeks, and we’re also looking forward to your suggestions for things to add.

Thats basically it: We are launching the apple-developer.org today with a lot of excellent resources in the Resources section. The News section will be filled over the next few days with recent items and then (hopefully) kept up-to-date with everything thats happening related to Mac- & iOS-developement.

If you have any feedback, don’t hesitate to contact us or leave your comment below!