Roadmap/state of Swift support in AppCode

Hi I've seen similar posts on the forum; but wondering if there's any general update on this.

I've had 2 years away from appcode (one year doing Xamarin, another doing ghastly node.js work) - partly because I wanted to wait for swift to settle before getting back into native swift dev, and partly because xcode is such a turd of an IDE to write code in, that I couldn't bear to do any more iOS development without the code comfort I was used to with appcode.

 

I figured 2 years would be enough for you guys to get more or less parity with where you were with objective c.

I can give you the benefit of the doubt with the constant changing in swift; but even then, I'm still quite shocked at what is missing:

  • Auto imports do not work/not implemented
  • Code completion is slow and often doesn't even work (nearly all extensions have no idea about fileprivate vars, etc)
  • No auto-generation of init methods (which is a total and utter pita, considering how strict swift is about that)
  • No help with description/equality/coding/other framework methods
  • Debugger is extremely slow to resolve variables

This is just after a few hours of use; so I imagine I will find many more gaps.

So the question is - how long do you guys think until we can get feature/comfort parity to where we were with objective c support about 4 years ago, when I found appcode to be absolutely heavenly to use every single day.

EDIT: To be clear - this is *not* a complaint; the support that is there is pretty good - it's a genuine question. It's a shame that we can't some how take the handful of positive elements from xcode's swift support and port it into appcode :( 

 

2 comments
Avatar
Stanislav Dombrovsky
Comment actions Permalink
Official comment

>I can give you the benefit of the doubt with the constant changing in swift; but even then, I'm still quite shocked at what is missing:

As it was mentioned in the current release roadmap, this particular release is dedicated to stabilisation and performance improvements together with the support tasks related to Xcode 8/8.1/8.x which can appear before the end of the year and Swift 3. About new features - there are huge improvements in Swift formatting and new code generation features, but the most of our work was dedicated to 3 main areas:

1. Resolution performance in Swift, because it causes performance problems in completion, navigation and everywhere where this resolution engine is used. As its used in the most of code-generation actions and refactorings, until we'll improve the performance, it's hard to work on any new feature you've mentioned, because it would be hard to use it if it's not that fast as user expects. 

2. Swift 3 support in parser, because every parser problem also can affect various IDE features. 

3. Xcode 8/8.1 support (running/debugging/new documentation format).

In fact, new features appeared in this release were prepared a long time ago, so we included them only because they were ready to be published and we didn't work on them during the current release except some bug-fixes. 

About areas mentioned:

1. Swift 3 - here you can see the list of parser tasks finished in the task description. They are all included in 2016.3 EAP and partially backported to 2016.2.x updates. 

2. Xcode 8.x - currently the only important task left is the documentation support 

3. Main performance epic - it's still in progress, but the first and most significant part  will be included into the current release. This particular task will finally solve the problem, when some of the complex Swift constructions were processed for a very long time by our parser. And it will automatically improve lots of different areas in the IDE. 

Of course, we understand, that the main question is

>So the question is - how long do you guys think until we can get feature/comfort parity to where we were with objective c support about 4 years ago, when I found appcode to be absolutely heavenly to use every single day.

In short, it's hard to give any exact estimations here, because for every release we have the following risks:

1. Xcode support tasks

2. Swift changes itself

The first one can affect the roadmap significantly and it's impossible to estimate these affects before they appear. The second one could be easier to estimate, but some tasks here could be so huge (such as Objective-C to Swift translation, which we need to handle nearly for every IDE feature including the navigation, completion etc in the mixed code) that it's also nearly impossible to give a clear estimation. The only thing we can suggest here is to track the corresponding task/ticket in our tracker, where we are trying to track any problem that exists in the current version of AppCode. 

 

Comment actions Permalink

As always, honest and direct response from you guys. Appreciate it.

 

Look forward to the improved performance - I cry a bit knowing that xcode is now faster to write code in than appcode; but I still use Appcode becuase slow or not it's more comfortable than xcode for actually writing code.

 

Keep up the good work guys, it's appreciated!

0

Please sign in to leave a comment.