Back to Blog
Appcode simulator5/27/2023 ![]() ![]() ![]() No need to download the app or select the project directory. Package, the HotReloading Project instead. Stop Press: The functionality of InjectionIII is now available by simply adding a Swift Has been built into a standalone app: InjectionIII.app which runs in the status bar and is available from the Mac App Store. This start-over implementation of Injection for Xcode This saves the developer a significant amount of time tweaking code or iterating over a design. In the iOS simulator without having to rebuild or restart your application. AppCode is usable again – really quite often.InjectionIII - overdue Swift rewrite of InjectionForXcodeĬhinese language README & Tutorial: 中文集成指南, 掘金教程Ĭode injection allows you to update the implementation of functions and any method of a class, struct or enum incrementally And depending on what you're doing, CI might get harder, so you might want to look into that.īut overall, it's been totally worth it. Also, if you're using Firebase, there's a bug you need to work around. It's not perfect: best to stay away from the "all_binary!" option, which just seems flaky. So you can get down into a dependency's code when you need to – for debugging or just better understanding – but you don't burden the IDE with all the source for all the dependencies all the time. Similarly to Carthage, it builds dependencies at install time and adds the binaries to your project.Ī nice thing about it (and it beats Carthage in this regard) is that it's simple to flip an individual pod from binary to source. The cocoapods-binary plugin has made the 50-pod project usable again in AppCode. If it works for you, Carthage is a good option, and you'll get the same performance gains as. Unfortunately, not all projects support Carthage – particularly older ones (which you can understand) and those from big vendors (who have no excuse). Carthage is also nice because it's less invasive – it fits into your project nicely rather than forcing a workspace upon you like Cocoapods does. With Carthage, dependencies are added to your project as binaries, not source – they're either pulled down already-built, or Carthage builds them during its equivalent of pod install. ![]() AppCode doesn't support Swift Package Manager yet. So, what to do about it? There are a couple of options. (Yes, that's too many dependencies, but quite a few are integrations that the client wants, and I don't have much choice about those.) That's a lot of extra code for the IDE to deal with. I'm currently working on a project that has 50 pods once you count all the transitive dependencies. If you stop and think about it, the code in your pods is probably many times the size of your project's main code. This has a big impact: indexing is much slower, and things like code completion have way more to deal with – and often grind to a halt. Pods are added to your project as source code – that means they're compiled as part of your project, but more importantly here, AppCode indexes all that extra code. If you have a lot of pods, it slows down AppCode a lot. When a company starts doing this sort of thing, you can't help worrying about the product's future.Ĭocoapods, as it turns out, slows down AppCode. Not all their product forums mind you – just the AppCode one. There have been many complaints on the public AppCode forum about glacial, unusable slowness, but they've repeatedly been met with "oh, it must be your particular situation – send us a copy of your project" – disingenuously ignoring that performance is bad for most projects, not just a few outliers. ![]() JetBrains seem to be in damage-control mode. until I miss the many things I like better about AppCode. Periodically, this madness drives me back to Xcode. When the wind it southerly, it knows a hawk from a handsaw. Or when the wind is blowing from the north. Slow enough to make you cry, but you know. You know what I'm talking about – it's slow. Instead, using it often feels like a peculiar form of masochism. It has so much potential to be great, but it reaches greatness all too rarely. ![]()
0 Comments
Read More
Leave a Reply. |