Do several things at once with AppCode

Since version 3 AppCode includes an awesome feature – multiple cursors and selections, that allows you to do many deals at a time increasing your productivity! Let’s see how you can use it and when it’s a good case for this feature.

Multiple selection allows you to put a cursor in multiple locations in your file and edit them at once. This feature works with all languages supported by AppCode such as Objective-C, C, C++, HTML, JavaScript, CSS and more.

Continue reading

Posted in Tips'n'Tricks | Tagged , | 1 Comment

Move refactoring moves routine away

AppCode offers a wide variety of code refactorings, which track down and correct the affected code references automatically. Some of them are widely known and often used, others are just missed. Move refactoring is present in AppCode since 2.1 version, but have you ever used it? Let’s take a closer look at it.

Generally speaking there’s nothing special about Move refactoring, but in complex projects with a large code base it really saves your time when, for example, you move a method to a new place that turns out to be a lot harder than you thought it would be. The Move refactoring allows you to move classes, protocols, methods, functions within a project – AppCode automatically corrects all references to the moved symbols in the source code.
Continue reading

Posted in Tips'n'Tricks | Tagged , | 2 Comments

Live Webinar: BDDing your Objective-C Apps, September 2nd

Join us Tuesday, September 2nd, 10:00 AM – 11:00 AM CEST (8:00 AM – 9:00 AM GMT) for a free webinar, BDDing your Objective-C Apps with Paweł Dudek and Łukasz Warchoł.

BDD is a great way to improve quality of your app and its code base. It is also a great way to improve your workflow and the way you create code. At the same time it is not easy to start BDDing your apps. If fact it is not easy to start writing tests at all.

With AppCode writing tests becomes easier. But when it comes to BDD it feels as if AppCode was designed from ground up to support it. This webinar will show how you can leverage AppCode to really empower BDD workflow. You will learn how code completion and code generation, as well as other, more advances, features of AppCode, can be used to greatly reduce time spent on typing and increase time spent on designing the architecture of your app.

Space is limited, please register now.

About the Presenters:

Paweł DudekPaweł Dudek is Senior Software Engineer at Taptera, where he builds beautiful iOS apps for enterprise. TDD believer and practitioner. Beer and coffee lover. And bass guitars during free time.

Łukasz WarchołŁukasz Warchoł is iOS Software Engineer at Berlin based startup, Up-next. He believes that clean and well tested code are essential while working in a team. While not coding he is probably snowboarding or kitesurfing.

Posted in Tips'n'Tricks, Webinars | Tagged | Leave a comment

Cherries of the AppCode by Julian Król

Julian KrólThis guest blog post is from Julian Król, iOS developer at Trifork.

He has been developing iOS apps for more than two years and continues to find it very exciting. In his free time he enjoys travelling and training martial arts. You can find him on

In this blog post I would like to mention a few features (from the very long list) that makes AppCode very valuable IDE for an iOS developer. Some of those features are in the AppCode for quite a long time but someone may missed them or be unaware of them. The functionalities I’m describing below are not the most popular and famous features of AppCode of them all but I want to highlight the things that can be unknown/forgotten and in my opinion are very valuable, making AppCode special IDE. As a word of an introduction and just mentioning for AppCode opponents, with this IDE you can create and modify xib and storyboards files! Describing features below I’m mentioning keyboard shortcuts, I’m referring to the Default AppCode key mapping (if you choose different – it’s totally fine but some features might be available through different key’s combination), keep that in mind. Examples and screenshots comes from the 3.0.3 version of the AppCode.

The feature I would like to start with is live templates. Here I would like to mention only three from the list (the full list of live templates can be found in the preferences, moreover you can add your own). Those three are: log, logv and logm. They makes logging very fast and easy to add. log stands for general purpose logs whereas logv is targeted for variables, logm for methods. While using logv there is very helpful context analyser which helps you log the right value with the prefix saying what exactly you are logging, awesome.

Continue reading

Posted in Tips'n'Tricks | Tagged , | Leave a comment

AppCode 3.0.4 bug-fix update

Hello everyone,

We’ve announced 3.0.3 update recently. Unfortunately a critical bug in formatting was there – thanks to our user who mentioned and reported the problem. Today the update 3.0.4 with the fix is available.

Also in C/C++ code the autocompletion is now working after ‘->’, ‘::’, ‘->*’, etc.

You can download the build from our website or via ‘Check for updates’ AppCode menu.

Develop with pleasure!
The AppCode Team

Posted in Announcement | Tagged | 5 Comments

AppCode 3.0.3 bug-fix update is available

Hi everyone,

We’ve got another fresh update for you today. Several crucial problems were addressed in this build:

  • OC-9910 – Incorrect indentation of method’s block arguments;
  • OC-10033 – Merge Tool unable to merge resolving conflicts;
  • OC-9752 – Line and block comments always place comment at first column regardless the settings.

Also some use cases were improved for the new code inspection which offers to switch to modern literal syntax (#ifdef/#if sections handling, cases with specific symbols, cases that should consider type casts OC-10314, OC-10318).

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

Yours truly,
The AppCode Team

Posted in Announcement | Tagged | 3 Comments

AppCode 3.0.2 bug-fix update is available

Hi everyone,

In this update we’ve improved compatibility with the latest Xcode 6 beta releases (including beta 2 and beta 3) and iOS 8 and fixed a couple of problems. For instance, here are several crucial problems that were addressed in this build:

  • OC-10186 – XCTest does not work on iOS7.1, iOS8 device with Xcode 6;
  • OC-10232 – Logic tests don’t work under simulator in Xcode 6;
  • OC-10303 – Reveal library couldn’t be injected to iOS 8 (however still an issue exists in case of iPhone 4S).

Please note here that in case of Xcode 6 to run logic tests under simulator or OS X (or for any other tests that failed to run under simulator/OS X) do the following:

  • For the simulator: add $(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks to Runpath Search Paths and to Framework search paths fields in Project Settings (Cmd+;)
  • For the OS X: add $(DEVELOPER_DIR)/Platforms/MacOSX.platform/Developer/Library/Frameworks to Runpath Search Paths and to Framework search paths fields in Project Settings (Cmd+;)

We’ve also added some fixes for the UI Designer issues, including exception while pasting Table View Cell.

Please pay attention to the fact that “Select word at caret” action was renamed to “Extend/Shrink Selection” to match the corresponding action in IntelliJ IDEA and other products from JetBrains.

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

Develop with pleasure!
The AppCode Team

Posted in Announcement | Tagged | Leave a comment

Webinar Recording: Embracing AppCode 3

The recording of our June 12th webinar, Embracing AppCode 3, is now available on JetBrainsTV YouTube channel.

In this webinar, Rafał Legiędź shows some “standard” magic like code assistance, code generation and refactoring features, goes through debugging and CocoaPods support, and even gives a small demo of Swift coding in AppCode.

Below are some questions from our webinar answered by Rafał and Anastasia.

Q: Does AppCode have Interface Builder? Does it support storyboard format?
A: Yes, since 3.0 version AppCode includes integrated UI Designer that provides all the essential UI editor features and works with the full component palette supported by iOS SDK. For developing your application’s UI, you can use either .xib or .storyboard formats.

Q: How to synchronize code style convention (autoformat) between Xcode and AppCode team members?
A: Right now there is no automatic option to do that. AppCode has a possibility to import colour schemes from Xcode and includes Xcode keymap, fully re-worked in 3.0 version to better match the native one, and to have fewer conflicts with Xcode itself. As for the other there is an issue in our tracker. Feel free to vote to increase the priority.

Q: What are the possible cases for using Cmd+N shortcut? Where code generation can be used in AppCode?
A: There are vast code generation options in AppCode.

  • You can use it in the main code:
    • for Objective-C (initWith, init/encodeWithCoder, copyWithZone, Override/Implement Methods, @synthesize, etc.)
    • or C++ (constructor, destructor, getter, setter, etc.).
  • In unit tests (for more details read our post):
    • for setUp/tearDown methods or test methods in OCUnit, XCTest or Google Test;
    • it, context, beforeEach, afterEach and specify blocks for Kiwi.
  • Create new File / Class / Protocol / Category / File from Xcode template, when pressed in Project View.
  • Create new Target, when executed in Project Settings.

About the Presenter:

Rafał LegiędźRafał Legiędź works as a principal software developer for ABB Poland. He believes that being pragmatic in our field is very helpful and proves that by switching technologies he uses whenever there is a need or an opportunity to learn new concepts. Started with .NET back-end solutions, he quickly became a web guy using technologies of few sorts and now he develops enterprise iOS and javascript apps

Thanks to all the attendees for the nice features suggestions! If you still have some, please, put them to our tracker.

Read more about Tips&Tricks in AppCode, follow our blog and twitter (@appcode).

Thank you and develop with pleasure!

Posted in Tips'n'Tricks, Webinars | Tagged | Leave a comment

Context-sensitive analysis with AppCode 3: Never miss a value again!

One of the most notable features of AppCode is code analysis, which helps keep your code accurate and clean. The flexible mechanism of resolving problems works on the fly and allows you to easily improve code structure, detect unreachable and redundant code, conform to numerous guidelines and standards, detect performance issues, and much more.

AppCode not only highlights code issues in the editor, but also suggests intelligent quick-fixes and adds useful indicators to the right-hand gutter which let you instantly see the status of the file and navigate around the detected issues:
AppCode also provides shortcuts for navigating between these issues (Go to next highlighted error with F2; go to previous with Shift+F2). This detailed tutorial on code inspections will help you explore and learn more useful shortcuts and preferences.

In AppCode 3 we improved the handling of one of the most intelligent case for code analysis: context-sensitive analysis. The IDE helps you with many smart scenarios, for example if a condition is redundant, or if you are trying to access a reference that can be nil, or if you use an unrecognized selector, or if you cast to a type that’s probably incompatible. AppCode warns you about any potential problems and suggests quick-fixes for all cases. Here we’d like to show you a few examples.

Continue reading

Posted in Tips'n'Tricks | Tagged | 2 Comments

AppCode 3.0.1 update: Xcode 6 and basic Swift support

Last week Apple presented a bunch of new fantastic software pieces and technologies for iOS/OS X developers. New OS X, new iOS, new Xcode and even a new language! These innovations looks really impressive and promising, and we know you undoubtedly want to try them. So we did our best to deliver the new Xcode 6 support together with basic Swift support in a short time. And here it comes, please, welcome AppCode 3.0.1 update!

To try the new features check you have Xcode 6 installed and selected in AppCode’s Preferences | Xcode. Create new project from Xcode 6 template, build and run your app on simulator or device.

There is a couple of known issues with Xcode 6 however: XCTest does not work on iOS7.1, iOS8 devices; Logic tests don’t work on a simulator. These hopefully will be fixed in the upcoming updates.

We were really thrilled with the new programming language shown by Apple. It’s concise and full of modern concepts and ideas, which are familiar to us because of Kotlin language that we develop here in JetBrains. What we do in 3.0.1 update is the basic Swift support – you can open and edit coloured *.swift files. Let’s start with it and learn all together this new fantastic language.

A few other improvements and fixes were also included. Especially, for the UI Designer, where we’ve fixed some exceptions, added UITableViewCell/UICollectionViewCell subviews (OC-9654) and improved the font size (OC-10161).

Develop with pleasure!
The AppCode Team

Posted in Announcement | Tagged , | 31 Comments