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.
splash_AppCode_3.2
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
  • Continue reading

Posted in Announcement | Tagged , , | 16 Comments

AppCode 3.2 RC2

Hi everyone!

After the first release candidate we decided to publish several important improvements for Swift type inference in subscripts and expressions with operators. These changes are incorporated into RC2 (build 141.2456). Please refer to our tracker for more details.

As usual, you can download the build from confluence page. Patch update from RC1 is also available. Stay tuned as the official AppCode 3.2 release is coming soon!

Develop with pleasure,
The AppCode Team

Posted in Announcement | Tagged , , | Leave a comment

AppCode 3.2 Release Candidate

AppCode 3.2 Release Candidate (build 141.2455) is out today!

A few days left before the official release of AppCode 3.2, 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. Please note that to use AppCode 3.2 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.

As you may have already noticed, AppCode 3.2 officially supports Xcode 6.4 on OS X 10.10 and Xcode 6.2 on OS 10.9.

The one question you may all be asking though is, what about Xcode 7.0 and Swift 2.0?
Continue reading

Posted in Announcement | Tagged , , | 20 Comments

AppCode 3.2 EAP, build 141.2454: quick documentation in Swift

Hi,

New AppCode 3.2 EAP, build 141.2454 is available for download. The patch update is also available if you are using previous 3.2 EAP build.

The most notable feature in this build is Quick Documentation in Swift. To see the relevant documentation, just press F1 – the documentation displays in a pop-up window with clickable links to other resources. The content includes:

  • standard documentation from Apple DocSets:
    docs_lib
  • your own documentation comments (use standard ‘///documentation’ format),
  • classes, protocols and functions signatures, enums, type aliases, etc.:
    docs_type_alias
  • and even inferred type for constants and variables:
    docs_inferred_type

One of the previous AppCode EAP build introduced code resolve for custom Swift frameworks (like Alamofire), but thanks to our EAP users we’ve found out that it was not working correctly in case such framework was installed through the CocoaPods. This build includes a fix for this problem.

The full list of improvements can be found in our tracker.

Develop with pleasure,
The AppCode Team

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

AppCode 3.2 EAP, build 141.2391

Hi everyone,

Today AppCode 3.2 EAP 141.2391 is available for download. The patch update is also available if you are using previous 3.2 EAP build.

This build introduces mostly bugs/regressions fixes and small improvements, like unresolved Swift parent class members used in Objective-C code (OC-12245), incorrect unused code inspection (OC-12238), regression with block parameter autocompletion (OC-12233) and Inline Variables View for Swift now working correctly.

Please, note that in case you have custom appcode.vmoptions file (for example, you were increasing memory to fix some performance issues) EAP build without custom bundled JDK won’t run, until you delete this custom appcode.vmoptions and copy (and update if you still need it) an actual version from AppCode.app/Contents/bin/.

The full list of fixes can be found in our tracker.

Develop with pleasure,
The AppCode Team

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

New AppCode 3.2 EAP with improvements for mixed Swift/Objective-C code

Hi,

AppCode 3.2 EAP build 141.2263 is available for download. From the Swift and Objective-C side, this build delivers:

  • Resolve for the custom Swift frameworks (for example, Alamofire).
  • Swift bridging header problems fixes: OC-11488, OC-10856, OC-12151.
  • Resolve for members (properties, functions, etc) of Swift classes when used in Objective-C. Please note, that renaming Swift member elements from Objective-C code is not yet supported.
  • Code Data objects rendering for Xcode 6.3+.
  • Some small fixes for __nullable/__nonnull keywords (OC-12083 and OC-12084).

Other changes include bundled LESS, SASS and YAML plugins.

The full list of improvements can be found in our tracker.

New build is available for download on the confluence page. The patch update is also available if you are using previous 3.2 EAP build.

Develop with pleasure,
The AppCode Team

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

AppCode 3.2 EAP, build 141.2000

Thank you for participating in the AppCode Early Access Program. We’ve started one for AppCode 3.2 recently and have got many useful comments and feedback from you. Today we’d like you to try the next EAP build (sorry, but patch update is not available this time). As usual, it doesn’t require an active license. We would really appreciate your feedback in our tracker.

Since Xcode 6.4 is released, we recommend to use this version in AppCode on OS X 10.10. On 10.9 the supported Xcode version is still 6.2. Xcode 7, by-turn, is in beta now, however we do our best to make AppCode 100% compatible and interoperable with Xcode when it’s launched. This time we’ve made AppCode run all the unit tests correctly with Xcode 7, regardless of the testing framework you are using (XCTest, Kiwi or GoogleTests).

In this EAP build, instead of the bundled LLDB, AppCode uses LLDB paired with Xcode you’ve selected in settings. That means, among other things, that you are able to use LLDB introduced in Xcode 6.4.

This build also addresses a couple of regressions while using ‘self’ keyword (OC-12030, OC-12153), fixes for Override/Implement in Swift that was introduced in the previous EAP (OC-12047, OC-11924) and more.

Develop with pleasure,
The AppCode Team

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

5 favorite AppCode shortcuts by Krzysztof Zabłocki

Hi everyone,

Today we are going to share with you another 5 favourite AppCode shortcuts from a well-known iOS community member. This series of blog posts, in which we ask well-known personalities in the iOS development world who uses AppCode a simple question “What are your 5 favorite AppCode shortcuts?”, started with Orta Therox and Paweł Dudek. And today we are happy to present you answers from Krzysztof Zabłocki!

Krzysztof ZabłockiKrzysztof Zabłocki, an author of @foldify and Objective-C Playgrounds, loves to share stuff related to iOS development, hacking things and simplifying workflows for other developers.

Krzysztof on Twitter: @merowing_.
Krzysztof on GitHub: github.com/krzysztofzablocki.


I use Default keymap, with some modifications added, like selecting/navigation around camel case words, etc.

Let us now introduce you to 5 favorite shortcuts from Krzysztof. We’ll also point out these shortcuts as they come in the Default keymap.

I. Syntax Aware Selection (⌥Up)

I use this quite a lot when refactoring, it makes it much easier to extract method or variable and enables me to work effectively without using a mouse.

By the way, the same shortcut was mentioned by Paweł Dudek as well.

II. Show usages (⌥⌘F7)

Can’t live without it, gone are days of using cmd+shift+f to find references in Xcode, show usages is context aware and so much better.
show_usages

III. Quick Fix (⌥⏎)

I write my code TDD way so this is must-have.
quick_fix

Paweł Dudek was also mentioning this shortcut in TDD context.

IV. Rename (⇧F6) and Override/Implement (^O/^I)

Both rename and override are very common usage case for me, I constantly refactor my code and having confidence to do so is really helpful.

V. Introduce Variable (⌥⌘V) / Extract Method (⌥⌘M)

Must have for being able to perform constant refactorings of my code.

P.S. And a bit more…

For navigating and learning my way around new code:

  • ⌥⌘B -> Go to definition(s), which for me is showing all subclass implementations:
    go_to_definitions
  • ⌥⌘N-> Inline, which makes it easier to understand bigger piece of code.
  • ⇧⌘T -> Jump to test, which is very helpful.

That’s it! Thank you Krzysztof for sharing this with us.

Develop with pleasure,
The AppCode Team

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

5 favorite AppCode shortcuts by Paweł Dudek

Hi,

Last week we started a series of blog posts, in which well-known iOS community members share their AppCode experience. They all answer a very simple question: What are your 5 favorite AppCode shortcuts? First answer from one of the most well-known personalities in the iOS development world, Orta Therox, was already published.

Today we are happy to share with you 5 favourite shortcuts from Paweł Dudek. You probably remember a fantastic webinar (BDDing your Objective-C Apps) done by Paweł and Łukasz Warchoł nearly a year ago. They were talking about leveraging AppCode to empower your BDD workflow.

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

Paweł on Twitter: @eldudi.
Paweł on GitHub: github.com/paweldudek.


“I’m using the vanilla IntelliJ keymap in AppCode. It was a bit hard to switch over initially, however it’s really beneficial as most of those shortcuts work across all JetBrains products, which makes switching to other IDEs simple.

We’re also doing a lot of pair programming here at Taptera and it’s just simpler when everyone has the same shortcuts – no fighting over which keymap is better ;)

When it comes to shortcuts my first thought when I was asked was “only 5?”, but after giving it few minutes of thought I landed on shortcuts that centre around code refactoring and generation. For me this is the best thing about AppCode – ability to quickly change and generate code. This is also reflected in my statics for shortcuts (actually did you know you can see such thing? Go to Help -> Productivity Guide), Generate Code is quite high on the list.”

Let us now introduce you to Paweł’s 5 favorite shortcuts. We’ll also point out these shortcuts as they come in the Default keymap.

I. Generate Code (⌘N)

This is definitely one of my favourites. I strongly rely on creating custom initialisers for objects and being able to just click Ctrl+Enter and select initWith.. is a huge time saver.
generate

Here is also Override/Implement Method (^O / ^I) – two real gems. They allow you to quickly implement or override all the methods your object could have by just pressing ^O / ^I. Really cool when you’re using a lot of protocols to abstract things. Moreover you can press ⌥O to show/hide optional methods from the list. Or select (⌘A) all and just implement them ;)

II. Syntax Aware Selection (⌥Up)

It seems really simple, but it’s been a game changer in how I work with code. It’s actually second on my most used features of AppCode. Being able to quickly select given parameter, or method call, or whole block, or whole method implementation insanely speeds things up.
expand_selection
A common pattern for me when working with code is quickly pressing ⌥Up to select method call and ⌥⌘v to extract variable. That way I don’t have to actually declare variable, I just quickly write the method call and then magic happens.

III. Quick Fix (⌥⏎)

I can’t stress enough how important this is when writing code, especially when doing TDD. In TDD tests are always written before implementation. Without AppCode you have to do the mundane task of going to the class you’re testing, declaring method there (and you have to remember all parameters you’re going to use – good luck with blocks), moving to implementation, declaring it there and then finally you can go back to your tests.

With AppCode it’s just ⌥⏎ -> generate method. It understands what objects you’ve passed and automatically prepares method signature. Moreover this works beautifully with blocks! My last favourite feature of Quick Fix is split into declaration and assignment – helps me extract variables when writing BDD-like tests in Specta/Quick.

There’s dozen other ways you can use this and options differ for different contexts. Be sure to check this feature out, you might find a really cool and useful feature!

V. Change Signature (⌘F6)

One that I really love. Being able to just press ⌘+F6 and just add/remove variables in a method signature helps me quickly refactor code. Plus you can move parameters around by pressing ⌥ and Up/Down arrows.

P.S. And a cherry on top (Find Action ⌘⇧A)

There’s one last shortcut that didn’t make into my favourites list and which is extremely useful when you’re starting your adventure with AppCode: Find Action. By pressing ⌘⇧A you get a place where you just type what you want to do and AppCode will tell whether there’s an action like and what’s the shortcut for it (and of course execute it if you select it). This really helped me when I was starting my adventure with this IDE as I remember what it could do, but did not have the muscle memory yet.

That’s it! Many thanks to Paweł for sharing his experience with us!

Develop with pleasure,
The AppCode Team

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

5 favorite AppCode shortcuts by Orta Therox

Hi everyone,

iOS community is diverse and rapidly growing. Like in other communities, there are members whose experience and knowledge are tremendous. Some of them use AppCode as an IDE for their iOS/OS X development, and as experts know a lot of tricks and productivity tips. In this series of blog posts we’d like them to share their experience with you.

As you may know, AppCode relies on a keyboard-centric approach to help you focus on code and raise your productivity. It has keyboard shortcuts for almost every feature, action and command. You can use one of the pre-defined keymaps or customize them as you wish.

Recently we’ve asked a few community members using AppCode in their everyday work a very simple question: What are your 5 favorite AppCode shortcuts? Here is the answer from one of the most well-known personalities in the iOS development world, Orta Therox.

Orta TheroxOrta Therox is Head of Mobile at Artsy and Design Dictator at CocoaPods.


Orta on Twitter: @orta.
Orta on GitHub: github.com/orta.


“I use a heavily modified version of the Xcode Keymap within AppCode. My first mentor was credited in the original book for TextMate, so I’m highly influenced in my expectations for keys based on TextMate. My favorite key commands all are about getting around code nimbly, and making quick edits. Because of this they are a little bit mundane, but these are solid foundations for navigation and exploring code bases. There are people that believe in the defaults, and then there are the tinkerers who can’t use anyone else’s computer. I’m the latter. 

For the last two years I’ve been keeping track of my own custom keymap settings in a repo on my GitHub. If any of the setup for these 5 resonate with you, you can grab the full set and a few more there.”

Let us now introduce you to Orta’s 5 favorite shortcuts. We’ll also point out these shortcuts as they come in the Default keymap.

I. Refactor This (^T)

My favorite key combo is the one for Refactor This, which I have assigned to ⌥ + T. It presents a list of refactorings that can be ran from the current cursor, reminding you of all the current options.

II. Search Everywhere (Double ⇧)

Next up is Search Everywhere which I have assigned to ⌘ + T. It’s a good job this is shown when you have no tabs open. I still have a mental modal that this is “Open Class”, but being able to write down almost anything I can name within a codebase and instantly jump to it means I’m often pleasantly surprised. The mapping for this command is a TextMate-ism.
Search_everywhere

III. Navigate with the File Structure (⌘F12)

Then Navigate with the File Structure which I have assigned to ⌘ + ⇧ + T. If I’ve used Search Everywhere to get into a file, I can then use File Structure to dig around inside and see what’s hiding in the file. It pops up a menu that you can then type to filter through until you tap enter to jump to that symbol in code. The mapping for this command is a TextMate-ism.
file_structure_search

IV. Find Usages (⌥F7)

Then Find Usages, which I have assigned to ⌘ + ^ + F. I use this as an improved Find All and so it has a similar mapping. It makes it easy to see the communication patterns of code upon request.

V. Rename (⇧F6)

Finally, Rename in my build is ⌘ + ^ + E. This is a shortcut to Refactor This + ⏎. It matches Xcode’s Edit All In Scope, but provides a deeper refactoring as it can go outside of the current scope and make changes to anything that can be named, not just inline variables.

That’s it! Thank you Orta for sharing this with all of us.

Develop with pleasure,
The AppCode Team

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