AppCode 3.3 Release Candidate

AppCode 3.3 Release Candidate (build 143.379) is out today with all the final fixes and improvements! Please note that starting from this version Xcode 6.x on OS X 10.11 is no longer supported by AppCode due to recent changes in App Store submission introduced by Apple.

The most important changes in this build are:

  • Issue with Reveal integration was fixed and you can continue using it from AppCode (including latest 1.6.1 version).
  • Rename refactoring for template parameters in C++ is ready to use as well as corresponding Find Usages action and code inspection for unused template parameters.

Unfortunately, we had to switch off native file chooser dialog in this build due to the focus issues and crashes described here. We will do out best to fix all the problems and bring it back, so this is a temporary solution. You can still switch it on by changing value of ide.mac.file.chooser.native parameter in Registry (press Shift+CMD+A and type “Registry”), however we do not recommend doing this for better IDE experience.

A couple of weeks left before the official release of AppCode 3.3, and we really appreciate your feedback at this stage. If you find any bug at all, please file an issue in our tracker.

The build is available for download on our confluence page (since it’s a release candidate build, there is no patch-update from the previous EAP version). Please note that to use AppCode 3.3 RC you need to have an active license (or start a 30-day trial period).

Stay tuned not to miss the release and be sure we’ll continue to work hard on Swift support to deliver more features in future AppCode versions!

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

18 Responses to AppCode 3.3 Release Candidate

  1. Syu says:

    Hi,

    Am I missing something or AppCode can’t display this kind of error ?
    Xcode (left) – AppCode (right)

    http://imgbox.com/YRDHzYFz

    Thanks !

    • Stanislav Dombrovsky says:

      We just started to work on code inspections for Swift, so this feature is not implemented yet.

      • Syu says:

        Glad to hear that ! Will it be available for AppCode 3.4 ?
        Thanks.

        • Stanislav Dombrovsky says:

          See, we are currently preparing 3.3 release, so all plans for future release will be discussed after it. Wait for some time – we will share it as soon as it will be decided )

  2. Thierry Leveque says:

    Hi, I am trying to use AppCode instead of xCode since I worked for 10 years with IntelliJ, but it is a very frustrating experience. Autocompletion is still not working all the time.
    And there is also problem with type inference. Here is an example:

    func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView?
    {
    var lView: MKAnnotationView? = mapView.dequeueReusableAnnotationViewWithIdentifier(Constant.AnnotationViewReuseIndentifier)

    if lView == nil {
    lView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: Constant.AnnotationViewReuseIndentifier)
    lView?.canShowCallout = true
    }
    ...

    In this code, I don’t need to put the type on the line
    var lView: MKAnnotationView? = …
    Because mapView.dequeueReusableAnnotationViewWithIdentifier return an MkAnnotationView.

    But if I don’t put it, AppCode is unable to autocomplete functions with the variable!

    And there is many other problems like that.
    Next time I will take notes to report them.
    But calling this release a RC is… I don’t know, a bit premature I think

    • Stanislav Dombrovsky says:

      Thierry, we are really sorry to disappoint you. There are still many tasks with Swift completion in different cases – and for sure we will continue to work on it. Your particular issue with completion is a separate case with resolving Swift submodule classes in Swift headers for base modules. Let me describe it. See, if you try the following code

      var view = MKAnnotationView()

      completion for view methods will work. But with your example – it will not work, because there is an issue with resolving MKAnnotationView in MapKit.MKMapView submodule. We created a ticket in our tracker and will try to fix it after current release.

      About RC and current release. We cannot deliver everything, because we are limited with resources, but we need to give our users an ability to use Xcode 7 with AppCode, to work with Objective-C generics and to use Swift 2 features in AppCode (may be not all for now). So, as we are currently preparing it – do not expect any new big features in the 3.3 version, but of course – we will have it in future updates.

  3. Thierry Leveque says:

    It will be also a great thing to autocomplete overwritten (or implemented) functions as soon as we start typing them. Like in xCode. Now we have to use Crtl-n….
    Probably also a nice feature to add in other Jetbrains applications!

    Support for markers would be great also.

    • Stanislav Dombrovsky says:

      It will be also a great thing to autocomplete overwritten (or implemented) functions as soon as we start typing them. Like in xCode. Now we have to use Crtl-n….

      If you mean Swift – we will try to implement it in future versions of AppCode.

      Support for markers would be great also.

      Not sure what exactly do you mean, //MARK comments in Swift?

      • Thierry Leveque says:

        Yes I am talking about // MARK comment in Swift.
        That is the kind of little thing that xCode users are used to and if you want those users to move to AppCode, it needs to be supported in a similar way.

        Is that really a Swift thing only?

      • Thierry Leveque says:

        When I am talking about autocompletion of overwritten or implemented functions, that is something that could be really great in any language.
        I am mainly a Java developper and I’d love to see that in IntelliJ too! Just start typing the first letters of a superclass method or of a method declared in an interface and boom! A list of methods to implement or overwrite appears in a dropdown list! That would be very nice.

        • Stanislav Dombrovsky says:

          Sorry, for now I understand that we are talking about completion + code generation right when we choose function name from completion list. Agreed, it’s a great feature and hope that we will have it in the future as well.

  4. Максим Наумов says:

    Хочу согласиться с Thierry Leveque. Пользовался AppCode ранее, еще до появления Swift, и все было прекрасно. Сейчас занимаюсь другим проектом, пишу его частично на Objective-C, частично на Swift. И, к сожалению, приходится пользоваться исключительно Xcode. RC версию уже даже не ставил, последняя версия, которую проверял, была 3.3 EAP 143.249.
    Если вам это как-либо поможет: сейчас использую Xcode 6.4 под Yosemite, т.к. нужно тестировать на симуляторе iOS 7.1.
    Множество ошибок, которых на самом деле нет, не позволяют пользоваться AppCode. Попробую перечислить:
    – Совершенно не учитывается prefix header. Если в каком-то файле нет импорта, который есть в prefix header, то AppCode считает, что его вовсе нет. Является ли это использованием prefix header “по назначению” или нет – вопрос уже сторонний. Код остается корректным и успешно компилируется, но ide считает, что нет.
    – Incompatible pointer types ‘NSString *’ and ‘String *’? Поясню: происходит обращение к полю swift-класса из objective-c кода. При этом в …-Swift.h ясно сказано, что тип поля ‘NSString *’
    – Поле в Swift-классе с типами вроде Double, в objective-c определяется как ‘Double *’. Видимо, ошибка из той же серии.
    – Missing enum keyword. Для компилятора это не ошибка. Честно говоря, не знаю, документирована ли эта фича, но если опустить ‘enum’, то все так же работает. Тип объявлен в swift файле, так что написать typedef NS_ENUM я не могу, довольствуюсь тем, что есть. Ну а поле с данным типом объявлено в классе на objective-c.
    – [UIImage imageNamed:imageName] – ошибка Can’t find the resource. Ресурс на самом деле есть и успешно загружается приложением.
    – var spinnerColor = UIColor.whiteColor() {
    didSet { strokeColor = spinnerColor.CGColor }
    }
    Ошибка ‘:’ or ‘=’ expected, got ‘=’ at line. На всякий случай еще раз упомяну, это Xcode 6.4 и Swift 1.2

    Это то, что вспомнил по памяти, возможно что-то забыл.
    Проблем довольно много, и на то, чтобы оформлять каждую в тикет, мне просто напросто жалко времени.

    • Stanislav Dombrovsky says:

      Совершенно не учитывается prefix header. Если в каком-то файле нет импорта, который есть в prefix header, то AppCode считает, что его вовсе нет. Является ли это использованием prefix header “по назначению” или нет – вопрос уже сторонний. Код остается корректным и успешно компилируется, но ide считает, что нет.

      Есть такая проблема – и мы ее уже исправляем

      Incompatible pointer types ‘NSString *’ and ‘String *’? Поясню: происходит обращение к полю swift-класса из objective-c кода. При этом в …-Swift.h ясно сказано, что тип поля ‘NSString *’
      Missing enum keyword. Для компилятора это не ошибка. Честно говоря, не знаю, документирована ли эта фича, но если опустить ‘enum’, то все так же работает. Тип объявлен в swift файле, так что написать typedef NS_ENUM я не могу, довольствуюсь тем, что есть. Ну а поле с данным типом объявлено в классе на objective-c.

      Воспроизвели у себя, завели https://youtrack.jetbrains.com/issue/OC-12602, https://youtrack.jetbrains.com/issue/OC-12604

      [UIImage imageNamed:imageName] – ошибка Can’t find the resource. Ресурс на самом деле есть и успешно загружается приложением.

      Про это знаем, постараемся исправить.

      var spinnerColor = UIColor.whiteColor() {
      didSet { strokeColor = spinnerColor.CGColor }
      }
      Ошибка ‘:’ or ‘=’ expected, got ‘=’ at line. На всякий случай еще раз упомяну, это Xcode 6.4 и Swift 1.2

      Это уже в процессе исправления

      Проблем довольно много, и на то, чтобы оформлять каждую в тикет, мне просто напросто жалко времени.

      В любом случае ни один комментарий из этого блога не пройдет мимо нас. Спасибо вам за потраченное время и за подробное описание проблем, постараемся в ближайшем будущем улучшить ситуацию.

      • Максим Наумов says:

        Большое спасибо за ответ! Надеюсь, что скоро снова смогу вернуться к пользованию вашей IDE.

  5. Antoni says:

    In the current version, in ObjC if I start typing for example #define SOME_CONSTANT_VALUE 1, each letter I type triggers indexing, causing slow downs and some occasional jumpy behaviour

Leave a Reply

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