What's new in AppCode 2018.1

Hello!
 
This post, of course, about AppCode 2018.1. However, no, this time it is also about the first update. We have a lot of new and useful, all in pictures under the cut.
 
What's new in AppCode 2018.1
 
SE-0185 (Synthesizing Equatable and Hashable Conformance)
 
SE-0143 (Conditional conformances)
 
SE-0190 (Target environment platform condition):
 
SE-0075 (Build Configuration Import Test):
 
SE-0186 (Remove ownership keyword support in protocols)
 
 
Swift 4.0 we are basically have done in AppCode 2017.3. If interested, how do we move to
bright future
support Swift 4.2 and 5.? subscribe to this ticket is and its following steps .
 

Implicitly connected modules are


 
Here it is worth explaining with an example. If is connected. UIKit , it means that they are automatically connected, for example, CoreGraphics and Dispatch . All characters from these libraries must be accessible. The logic suggests that both modules must be explicitly imported somewhere inside the UIKit . But if we just recursively go through the whole tree connected to UIKit modules, we will not find any imports.
 

Why? Because they are all connected in version UIKit on Objective-C, and in Swift they are cast implicitly. AppCode builds autocompletion and navigation based on the tree of characters - no necessary characters - there is no auto-completion, or navigation for such libraries without explicit import. I think you can not even explain how much this affected the work of IDE.


 

In this release, we corrected everything:


 


 

Along the way, improved autocompletion navigation for some third-party libraries (for example, ? Firebase ? and PureLayout).


 

Support RxSwift


 

The basis of RxSwift lies the construction described here here . In AppCode 2018.1 we learned how to handle it correctly, which brought happy users normal autocompletion and navigation:


 


 

Part of the problems remains , we continue to work on them. To all who helped us in the channel # appcode-users in slake RxSwift , - Thank you!


 

Support for Quick


 

Have made the correct and convenient display of the tests:


 


 

Implemented navigation to a specific place in the test:


 


 

For Objective-C, the same is until they did , restarting failed tests until can not be done . But for ordinary tests on XCTest , as well as Kiwi , Catch , Boost.Test and Google Test This feature works, together with a bunch of other .


 

Formatting comments


 

Added several new settings in Preferences | Editor | Code Style | Swift | Code Generation for formatting comments:


 


 

Corrected the display of multi-line comments in the pop Quick Documentation ( Fl ):


 


 

The mixed code (Objective-C /Swift)


 

Improved the translation of Objective-C /Swift:


 
  •  
  • They began to correctly convert types Class and SEL / IMP , generic pointers and some types of parameters hence from Objective-C to Swift.  
  • Refactoring Rename and Find Usages began to work for the properties of the Swift classes used in Objective-C.  

 

Still accelerated the work Go to class /symbol in projects with mixed code and finally corrected problems with OCMock .


 

C ++


 

For improvements in C /C ++ support, see post @ anastasiak2512 in section Support for C ++ , there are almost no differences in this part between AppCode and CLion.


 

Header maps


 

While writing the post, the version of AppCode ??? was released. It added support for Xcode header maps , which automatically made the construction of symbols for the mass of projects (in particular, for the generated ones using
? BUCK ) more correct.


 

Wireless debugging


 

In Xcode ? wireless debugging was added, and in AppCode 2018.1 we supported it. Now, if you set up the device in Xcode, AppCode will also show it and let it debug and run the application.


 

Simulation of location


 

Added settings for simulating the location in Run /Debug Configurations :


 


 

Implemented support for changing the location when starting and debugging the application:


 


 

Supported settings for user defined locations:


 


 

Steel automatically process .gpx -Files as XML:


 


 

Project scopes


 

The project tree in AppCode had two display modes:


 
  •  
  • Project (shows all the files in the Xcode project)  
  • Files (all files in the directory in which the project file resides, and related directories like ) DerivedSources )  

 

Files view greatly facilitates the work with the project. I need to change some README.md or script - switched, opened, edited, returned to writing the code. Given the number of plugins for different languages, this is convenient.


 

Project and Files Is a particular case of Project Scopes , giving the ability to filter an arbitrary subset of project files. For example, to display only a portion of the files in Project view or to limit the scope of inspection /search work.


 

Now most of the standard filters can be used in AppCode:


 


 
  •  
  • Project Source Files - all files in the Xcode project.  
  • Project Non-Source Files - All files from the directory with the project file, not included in the Xcode project.  
  • Changed Files - displayed in the filter list only if version control is enabled, and includes all the modified files.  
  • Default - includes all files from the default change list (user lists are also shown):  

 

In Preferences | Appearance & Behavior | Scopes you can create your own filters:


 


 

In Preferences | Appearance & Behavior | File Colors For each filter, you can set its own color when displayed in mode. Files:


 


 

Migration from Xcode


 

In this release we worked the most obvious:


 
  •  
  • Steel automatically put more settings when selecting option Xcode on the theme setting screen and IDE behavior (shown when the IDE was first run).  
  • We carried out the first iteration of the finalization of the layout of Xcode .  
  • Improved the import of color schemes and slightly modified the built-in color scheme Xcode.  

 

If you have ideas for improvements on each of the items, you should immediately create a ticket in our tracker and attach to it your settings exported using File → Export Settings


 

Any


 
  •  
  • Added curtailment of control structures if / else , do / while , for , switch in Objective-C /C /C ++ ( ⇧⌘. ).
     
    Recycled all the built-in color schemes, added several platform ones (for example,
    .Github
    ):
     

     
    It became possible to include in
    Git
    -commits are only part of the changes.
     
     
    That's all. Download - here , bugs - in tracker , questions of a general nature are easiest to raise right here in the comments!
+ 0 -

Add comment