Materials for the webinar: BDDing your Objective-C Apps, September 2nd

Hello everyone,

Many of you have registered for our free webinar: BDDing your Objective-C Apps, September 2nd, with Paweł Dudek and Łukasz Warchoł. For those who have not – you still have a chance!

Our speakers are going to show how to empower your BDD workflow in AppCode. They’ll be relying heavily on various custom live templates for Cedar and Expecta. Those can be found on the GitHub together with the sample project and useful descriptions.

Feel free to download and investigate the materials in advance. And if you have any questions ask them here or during the live webinar.

Yours truly,
The AppCode Team

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

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