Welcome AppCode 3.2 release!

Today we are happy to share with you the official release of AppCode 3.2. We’ve put a lot of effort into this to bring you better Swift development experience and a host of Swift productivity features.
Let’s see what’s on board!

  • With more accurate code resolve for Swift and mixed Objective-C and Swift code, you can rely on AppCode 3.2’s code completion, find usages, navigation and Rename refactoring. You will also be happy to hear that custom Swift frameworks are resolved correctly now, meaning that code completion and other features will work for them as well.
  • Swift string interpolation is now handled correctly, with symbol name properly highlighted and completed:string_interpolation
  • To speed up your Swift development, use the Override/Implement feature and override functions/implement protocols in one step:override_implement
  • Quick Documentation for Swift shows not only the standard Apple documentation and your own documentation comments, but also classes, protocols, functions, signatures, and even the inferred type for constants and variables:documentation
  • Take the new debugger for Swift for a spin in AppCode 3.2.
  • Objective-C users can benefit from nonnull/nullable annotations (from Xcode 6.4).
  • A range of C++ parser improvements have made it into this release.
  • The update brings many general improvements as well, including a compact one-side view for comparing revisions, the Distraction-Free mode, synchronous HTML tag editing, and more.

There are several other important changes. First, UI Designer has moved into an optional plugin. Second, we offer a separate distribution package targeting OS X 10.10 Yosemite (and higher) users with custom bundled JDK, based on JDK 1.8, which includes fixes from the JetBrains team for several annoying problems appeared in JDK. Read more about that in one of the EAP blog posts.

And last but not least, please note that AppCode 3.2 officially supports Xcode 6.4 on OS X 10.10 and Xcode 6.2 on OS 10.9. We’ve already shared some explanations in an earlier post talking about the release candidate, but we’ll do it here once again.

You may be asking, What about Xcode 7.0 and Swift 2.0?

The short answer is that some parts are already in development, while others will be started soon after this release of AppCode 3.2. But we believe you also deserve a longer and more detailed answer.

At their WWDC in June 2015, Apple revealed a few surprises. Among these were: Swift 2.0 support, generics in Objective-C, and a few other things that had some impact on our roadmap. At the time we were working on Xcode 6.4 and Swift 1.2, mostly addressing code resolve issues (especially for mixed scenarios where Objective-C and Swift code are used) and also trying to bring as many smart features to Swift as we had planned, such as override/implement code generation features, improved navigation, quick documentation with inferred types, and debugger support for Swift, amongst other things. These were all planned and most, if not all, were based on customer feedback.

With the announcement, we had a tough choice: continue with our plans or drastically change direction and focus on Xcode 7.0 and Swift 2.0.

After a lot of back and forth, we decided to:

  • Finish our current work on Swift smart features in AppCode 3.2 for this August release.
  • Begin working on Swift 2.0 and new Xcode 7 features support for the next release, with EAP starting around September.

Which brings us to this announcement and the reason why we currently can’t offer support for Xcode 7 and Swift 2.0.

The good news is that we’re already working on support for Xcode 7, slightly ahead of schedule. You can see the subtasks left in the following ticket in our tracker. In addition, you can find information about our progress in supporting Swift 2.0 and Objective-C generics.

Finally, please note that this update is free for all AppCode users with an active license subscription! To download the release build, please visit our site. Patch update from the previous stable version 3.1.7 is available (for non-custom JDK build case only). And if you’ve already installed the AppCode 3.2 RC2 build, then simply keep using it, since it’s the same as the released one.

For a more detailed overview, visit the What’s new in AppCode 3.2 page. The full list of fixed issues can be found in our tracker.

Develop with pleasure!
JetBrains AppCode Team

This entry was posted in Announcement and tagged , , . Bookmark the permalink.

32 Responses to Welcome AppCode 3.2 release!

  1. Bill A says:

    Excellent! The Swift debugger support works great.

    I haven’t migrated to Swift 2.0 yet, so I’m looking forward to the next EAP.

  2. John Finch says:

    Great work guys!

  3. Stewart says:

    Seems Jetbrains are taking an extremely slow approach to Swift. Unfortunately I’m finding AppCode 3.2 somewhat of a disappointment. Swift is here to stay, Apple are pushing Swift, and ObjectiveC is taking a definite backseat.

    First, its good Swift 1.2 is supported and v2.0 is coming, this is where the good stops.

    The IDE is severely lacking in terms of Swift.

    For example, Swift variables can’t be evaluated – AppCode gives “Cannot evaluate expression for language Swift”. In Debugger View – >variables – no Swift variables are listed either. This is basic functionality that a developer would expect from an IDE.

    Intentions for Swift are almost non existent.

    Jet brains could have taken more time with v3.2 to implement more Swift IDE support instead of shoving out something half baked.

    After the release of Swift last year, Appcode has progressed so little. Sometimes I wonder if JetBrains will discontinue Appcode because in the past 12 months, development of the product has been very underwhelming. Jet brains lost there way with attempting to build the ill fated GUI Builder – which has now taking a backseat and now a package.

    I really enjoy using AppCode for ObjectiveC but the past 12 months overall has been a definite disappointment. If Jetbrains continue like this, even XCode will seem an attractive option for cranking out code!! This is nothing to be proud about.

    Personally, I’m hoping the next 12 months for AppCode is better than the last. The subscription renewal next year is looking less and less attractive.

    • Anastasia Kazakova says:

      Agree, quite a lot of Swift debugger related things are still in development, variable evaluation should be covered with this: https://youtrack.jetbrains.com/issue/OC-11121.
      Swift syntax inspections are also in the queue – https://youtrack.jetbrains.com/issue/OC-11496.

      In general we are really sorry to disappoint you and make you feel that way. We were a bit of lacking the resources during the last year and overwhelmed by the new additions introduced by Apple. But we don’t have any plans to close or stop AppCode development. We have great plans for Swift, team is growing and we have further plans to enlarge it, our vision and roadmap.
      UI Designer was postponed since we prefer to spend all our efforts on what we actually can do great – smart editors.

    • Andrey Slyusar says:

      Totally agree with Stewart. My subscription finished in April and with v3.2 I cannot find any reason to renew it.

      There is not support for Obj-C Swift frameworks code completion, it makes not possible to develop new things on top of legacy code. Debugger is just useless, “value is not a pointer type” the most common debug information.

    • Raphael says:

      I agree with Stewart.

      Swift was released over a year ago and AppCode still feels half baked. I recently switched to an old Objective-C project and realized how much better the IDE was.

      I really hope that AppCode becomes as good for Swift as it was for Objective-C.

    • Lucas Gramajo says:

      If I use Swift I pretty much are using Xcode. Appcode is not usable for Swift, unfortunately. That’s why until they solve this issues, I will stop upgrading AppCode.

      • Anastasia Kazakova says:

        What exact features are you missing for Swift? (you feedback could help us to sort out the tasks in the queue)

  4. lee says:

    plz support next version of ios ASAP

  5. Andrey says:

    AppCode 3.2 forces my Mac to switch from Intel graphics to Nvidia which leads to high energy consumption and fast battery discharge. I haven’t noticed this with 3.1. Is it a bug? Do you know about it? When can it be fixed?

  6. When I’ve started to work on new swift project on April I had to switch to Xcode (not funny after all). Now I’m using EAP and new 3.2 version and found it really better than working on Xcode – but still sometimes I need to see some quick fix in Xcode – but in every version it’s going more and more in good direction.

    For my base work in obj-c/c++ Appcode just rules on all fronts.

    Good work folks especially with new c++11 support and mixed code support (mm files).

  7. Frank says:

    I really like your products and I’m a happy user of ReSharper, WebStorm and AppCode. For Swift development I sadly(?) returned to Xcode, for the AppCode support is below par atm. Hopefully the next versions will bring the necessary coding assistance to switch back.

    One thing I was wondering however, is: have you ever considered creating a ‘ReSharper for Xcode’? I really like ReSharper for VS, and would happily pay some money for the same integration in Xcode. Thoughts?

    • Anastasia Kazakova says:

      Thanks for the feedback. What is the most annoying in current Swift support in AppCode and preventing you from using it?

      Coming to your question – yes, of course we’ve considered that. However, Apple doesn’t provide reliable interface for us to integrate AppCode as a plugin to Xcode. There was quite another story with ReSharper luckily.

      • Frank says:

        The thing I’m missing the most is the notion of intentional programming, as you call it on the AppCode features page. I really miss the ⌥-enter command to generate stuff that doesn’t exist. With this feature available for Swift, I’m back :)

        For me, the Interface Builder part is not of much interest. Xcode does quite a good job there.

        • Anastasia Kazakova says:

          I see. Well, we plan this for sure. Can’t provide any estimations now for you, but this is in our queue.

  8. Frank says:

    caching issues on my end, resulting in (sort of) a double-post. /deleteme

  9. Antoni says:

    Is there any chance for proper support for xcassets in any foreseeable future? What I mean is support for named assets (if they differ from file name), not adding .png by default when selecting from the list, proper support for @3x and for nested folders?

    Suggesting image names in UIImage imageNamed is great, but it fails as soon as I rename the asset name…

  10. Denis says:

    It’s buggy many times then previous version. It losts connection with iphone very often. Edited lines not get marked (git repo). Syntax highlighting get broken sometimes showing syntax errors. It a raw product.

    • Anastasia Kazakova says:

      Could you please share some samples? Which language do you use – Swift or Objective-C?
      Also please share logs with the connection to iphone problem.

  11. Yunxin Wu says:

    “Find Usage” does not work for my C++ project with AppCode 3.2. It works with AppCode 3.1. My xcode version is 6.4.

    A side note (don’t know if it is related to the above):
    With AppCode 3.2, xcodebuild command line does not set SYMROOT and OBJROOT, which is actually good. AppCode 3.1 sets those two parameters, which caused build locations to be off, so project dependency tracking does not works. I had to work around it by changing some of the xcode project settings not to depend on SYMROOT and OBJROOT.

    • Anastasia Kazakova says:

      Could you please share some sample project to reproduce? Here or to appcode-support at jetbrains.com. We’ll appreciate greatly. This could help to localize the issue.

      • Yunxin Wu says:

        I can’t share the project. I’d be happy to dig into this problem at my end, if you give me instructions. What changed in 3.2 on ‘Find Usages’? Thanks.

        • Anastasia Kazakova says:

          Nothing. But it could be affected by any other change in any particular case. Since we can’t reproduce the problem on our side, some sample project could be helpful if you manage to create one. Is there any chance of this?

Leave a Reply

Your email address will not be published. Required fields are marked *