AppCode 3.1 Release Candidate

AppCode 3.1 Release Candidate (build 139.677) is out today with all the final fixes and improvements!

There’s only a few days left before the official release of AppCode 3.1 with Swift support, and it’s very important for us to get your last feedback on the new features. 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.1 RC you need to have an active license (or start a 30-day trial period). To see the list of the issues fixed in this build, please go to the tracker.

Stay tuned not to miss the release, it’s coming closer! And be sure we’ll continue to enhance Swift functionality to deliver more features in the following 3.1.x updates.

Sincerely yours,
The AppCode Team

Posted in Announcement, Early Access Preview | Tagged | 10 Comments

Cooking Swift: An Interview with Maxim Medvedev

Max MedvedevSwift is a new and promising programming language introduced by Apple during the summer of 2014. In this interview we speak with Maxim Medvedev about Swift support in AppCode, our IDE for iOS/OS X developers. Maxim joined the AppCode team in summer and drives the Swift development at present. AppCode 3.1 is going to be released later this year with many intelligent features that will help you start using the new language.

Hello Maxim and thank you for taking the time to speak with us. Can you tell us a bit about yourself and your background?

Hi. I graduated from Software Engineering Department of Saint-Petersburg State University, and thus met a lot of my future colleagues there. Within the Mathematics & Mechanics Faculty were professors from JetBrains so it’s no surprise that I joined the company as a student and got started working on Groovy support. This summer I switched to Swift, which I find very similar to Groovy in terms of IDE support. Both languages have type inference, closures, traits/extensions and high-order functions.

Why have you decided to work on Swift support with the AppCode team?

For me it’s a super exciting experience to support a language from the very beginning: from a simple parser to smart and complicated refactorings. So I took my chance to make the journey with the AppCode team, trying to make progress quickly but with no loss in quality.

What benefits do you see in Swift for iOS developers?

Swift is a new language, but at the same time it follows all modern programming trends and principles. If you have followed the changes in Java or C# over the years, you’ll be able to easily begin programming for iOS/OS X. You will at least know what to expect. For example, Swift brings strong typization to developers that not only reduces the amount of typed characters, but also assists with the bug catching, long-term code support and code performance.

There are some controversial points as well, for example, meaningful whitespaces around an operator that is regulated by the complicated system of rules, or the lack of the exception handling mechanism.

People say, “JetBrains is cooking parsers for breakfast.” Was it so easy for you?

Swift grammar is quite large and comprehensive, so something was left for the lunch as well =) . But I can’t say it was a super complicated task to build a parser having a language’s syntax description. I’ve used an open source tool – Grammar Kit (available as a plugin for IntelliJ IDEA), developed by my colleague from the 0xDBE team (0xDBE is a new IDE for DBAs and SQL Developers). Greg Shrago created this tool while solving a problem with many SQL dialects that need to be parsed there. And I used it for Swift. It made my ‘cooking’ job easier.

Have you met any interesting challenges when developing Swift support that you’d like to share?

The most challenging task for me was Swift’s custom operators with custom precedence and associativity values. I have never met something like this before. To cover this case I finally implemented a two-level parser. First, it handles all the expressions without taking into consideration operators characteristics; and only then it builds the actual binary tree and calculates operator’s type, checks syntax and semantics errors.

What are the future plans in terms of Swift?

Before the AppCode 3.1 release we need to make the current Swift feature set stable: completion, code formatting, find usages, navigation options, Rename refactoring. Some interesting features are in development as well, but I won’t speak about them now because I’m not sure they’ll be ready before 3.1. We’ll further continue work on Swift support and provide you with more updates in future.

Thank you for your time it has been a pleasure. If you have questions that you would like to ask Maxim, please use the comment section below.

To try the latest AppCode 3.1 EAP build with Swift support visit our EAP page.

Yours as always,
The AppCode Team

Posted in Backstage | Tagged , | 4 Comments

AppCode 3.1 Champurrado EAP: unit testing in Swift

Hello everyone,

We’re getting closer and closer to the final release date, and probably the last big feature coming to 3.1 is here now. Nearly every developer considers unit testing as the essential part of the workflow. This EAP brings the Swift unit testing support. Use the XCTest framework, run all tests in one go or a single one, explore statistics, navigate to source and rerun tests from the dedicated view with the results:

This build also addresses a couple of other improvements for Swift:

  • Go to class (Cmd+O) and Go to symbol (Alt+Cmd+O) navigation actions works more accurately with code in Swift now.
  • Editor performance in case of code in Swift was improved.

Take a look at the complete list of changes, and our issue tracker and forums are open for your feedback!

As usual, you can find the latest EAP build here.

Sincerely yours,
The AppCode Team

Posted in Announcement, Early Access Preview | Tagged , | Leave a comment

AppCode 3.1 EAP: new debugger and file structure view for Swift

Hi everyone!

A couple of days ago we published the second EAP build of AppCode 3.1 with many Swift improvements. Now it’s time to get a new debugger! We’ve updated the LLDB framework used in AppCode to match with Xcode 6.1. Try the build and let us know what you think.

The second EAP (139.475) is still available for download in case of any critical problem you can meet with this build. Some issues are known, like this one.

This EAP also includes file structure view for Swift code. Press Cmd+F12 and use the pop-up to quickly navigate through the structure of the current file:

The full list of fixed issues can be found in our issue tracker.

Yours truly,
The AppCode Team

Posted in Announcement, Early Access Preview | Tagged , | 8 Comments

AppCode 3.1 Champurrado EAP: better Swift support and performance improvements

Hello everyone!

Today a new AppCode Early Access build is available for download. We’ve got a lot of interesting and useful feedback about our new Swift support after the Champurrado EAP opening, and to stir up your enthusiasm even further we are ready to present some new Swift features.

In order to make the code easier to read AppCode highlights it using specified color scheme. We’ve implemented this feature for Swift now. To select from the pre-defined color schemes or create your own one go to Preferences | Editor | Colors & Fonts | Swift. Preview will allow you to evaluate the settings:
Because of the changes users that have some customized color schemes imported from the previous AppCode versions to 3.1 EAP have to re-import them (through removing the ~/Library/Preferences/appCode31 and restarting the EAP) or check manually that the preferred colors are used there.
Continue reading

Posted in Announcement, Early Access Preview | Tagged , | 5 Comments

AppCode joins Swift club with 3.1 EAP

Most of us have read or at least heard of Gulliver’s Travels by Jonathan Swift. Well, we kind of feel like a Gulliver now, as we take a big step forward and start with Swift support in AppCode!

This summer, soon after the Apple event, we announced basic editing and highlighting for Swift code. Since then we’ve implemented resolve in Swift code and built a couple of useful features on top of that. So, let’s have a look at what’s already available in this EAP.

Start with creating a Swift-based project or just a new Swift file (select New | File from Xcode Template…) in the currently existing project. Now you can write some code, autocompletion for the language keywords will assist you with that.

After implementing the most part of resolve in Swift code, we are able now to provide you with smart features. Find Usages goes first! It helps you quickly find all pieces of code referencing a symbol at the caret, no matter if the symbol is a class, function, variable, constant, or type.

If you simply place a caret on a symbol in your Swift code, AppCode highlights all the usages within the current file and also marks them all in the right gutter:
If you are interested in the full list of usages, press Alt+F7 to have AppCode find all usages for you and collect them in a separate window. You can group the usages there by your preferred criteria, for example by directory:
Continue reading

Posted in Announcement, Early Access Preview | Tagged , | 21 Comments

Join us in Berlin

Hi everyone,

Join us at CocoaHeads Berlin meet-up, Wednesday, November 19, 2014.

Anton Makeev (developer, AppCode team lead) is going to show you how your typical development workflow can benefit from using AppCode. While doing some sample coding tasks Anton will provide you with tips&tricks on code editing and generation, code analysis, refactorings and writing tests. By the way, do you know that AppCode is seamlessly integrated with the CocoaPods? Learn more during this talk!

The plan is to hold this in a workshop fashion. So install the latest AppCode 3 and follow Anton’s examples hands-on.

See you!
The AppCode Team

Posted in Announcement | Tagged | 1 Comment

AppCode 3.0.6 update is available now

Hello everyone,

Today we are making AppCode 3.0.6 available. In this build we’ve fixed a couple of major problems with Xcode 6 and OS X 10.10. In particular, we’ve improved running unit tests on iOS 7.0 device and running XCTests on OS X and simulators.

This update also addresses a crucial AppCode’s crash on OS X 10.10 (and in some situations on 10.9.4), a broken integration with the newest version of CocoaPods and a couple of exceptions in UI Designer.

The full list of changes is available here, and you can download the build from our website or via ‘Check for updates’ AppCode menu.

P.S. By the way, AppCode’s online help is live! Find it by this link and don’t be lost in the IDE’s features with it.

Yours as always,
The AppCode team

Posted in Announcement | Tagged | 19 Comments

AppCode’s web help goes online!

From time to time we all feel a little bit lost in tons of AppCode’s features. To help us to get around there are a numerous ways to obtain information about the IDE: you can follow our twitter where we publish tips of the day, read Tips’n'Tricks posts in this blog, check the playlist on YouTube for the useful videos about the IDE.

But today we’d like to share a new option with you. AppCode’s online help is now live! Find it by this link:

For example, check how to work with connections in UI Designer, or what actions are available in the embedded terminal in the IDE, or how to use the Git integration, and much more.

And of course you are welcome to share your feedback here or in the web help’s comments form.

To boost your productivity with AppCode we also recommend you to check ‘Tip of the Day’ and ‘Productivity Guide’ sections in the IDE, both available under Help menu.

Develop with pleasure!
The AppCode Team

Posted in Announcement | Leave a comment

Meet us at Mobiconf


Are you going to Kraków, Poland this week? Meet us at Mobiconf, the international conference on mobile apps development, October 2nd-3rd.

Though no JetBrains booth is planned for the event, feel free to catch Anastasia Kazakova (Product Marketing Manager) with any questions you have. And you are all welcome at Anastasia’s talk during the first day:

Anastasia Kazakova Oct 2nd, Thursday, 15:30 – 16:30
Tools and Techniques that help maintain a high quality code base

It’s obvious that nowadays just having working code is not enough. As projects and teams grow, the code often starts to diminish in quality, which increases maintainability costs. Code should be clean and concise. It should be easy to understand and consequently easy to maintain. A “GOTO FAIL” shouldn’t ever pass! Dozens of tools and techniques exist to help developers keep their code base clean and of high quality. During this talk we’re going to see what is available in the iOS/OSX space and see how combining these with good practices such as unit testing, we can help identify bugs, code smells and refactor to produce a better code base.

Hope to meet you there! For others we are still with you in all our internet resources.

See you!
The AppCode Team

Posted in Announcement | Leave a comment