Original source: Ben Scheirman
If you go to a skilled Carpenter's studio, you can always find that he/she has a lot of tools to accomplish different tasks.
The same is true for software development. You can see how the software developer is using the tool. Experienced developers are adept at using tools. Keep your research on the tools you are using, and learn about the use of alternatives that can fill vacancies when the tools you currently use do not meet your needs.
With that in mind, I'll show you a long list of tools. Some of them I use every day, others I see the situation used. If you have more tools you want to show in this list, you can leave a message with me Oh pro.
I do my best to classify the list. Some are websites, some are back-office services, but most are apps you can install. Not all apps are free, so I'll use the $ symbol to indicate if this app is going to cost money.
Don't say much nonsense, we'll start right away.
- pttrns– a great iOS screen Design Gallery that is categorized by task. For example, if you want to see how other apps handle the active feed, here you can find a bunch of examples.
- tappgala– is another great collection station for beautiful application design. It's not categorized by task, it's just a list of good apps that you can get inspiration for.
- Cocoa controls– Some great list of components (codes) You can use in your iOS app. Sometimes you can find a good piece of code to save time, and sometimes you can learn how other developers are accomplishing a feature. Subscribe to their weekly newspaper, are the essence, very little dross.
- iicns– A collection of truly excellent icons. Get inspired, but don't copy.
- Dribbble– 's best designers show off their work. The real boutique.
- capptivate– inspired design artwork gallery. Some with animations.
- Mocks ($) – a simple app that quickly creates prototypes for iOS apps. With some default controls, you can quickly build prototypes.
- Briefs ($) – a useful application that allows you to create application prototypes that connect prototypes to form interactions. You can deploy to a real device and see what it feels like in your hand.
- Acorn ($) –photoshop's strong competitor is much cheaper than PS. I find myself getting less and fewer with Photoshop recently. The project is under active development and maintenance.
- Sketch ($) – a vector-based paint tool that is increasingly useful as screen size and pixel density change. You only need to design once, and then you can scale as needed. It also comes with a very powerful export system. For the sketch sample project, see Sketchmine.
- IOS 7 PSD by teehan+lax– This is a very useful resource if you (or your designer) use Photoshop. There are also versions of IOS 6.
- Bjango's Photoshop actions– If you use Photoshop to design iOS apps, you'll save time. Resize the canvas in one click, Scale 200% (or 50%), set global brightness to 90, and more. They also have a lot of Photoshop work skills in their blogs.
- Xscope ($) – an indispensable Swiss Army knife, guide, pixel magnifier, screen measurement and more. Want to know the color value of a pixel? Want to know how many pixels are there between a button and a window for a Mac app? Xscope can help you. Look at the iphone app they developed for the image design, and see how pixel-perfect the image design is on your Apple device.
- Glyphish ($) – a great collection of high-quality icons that you can use with many of your iOS apps. Apple does not offer many built-in icons, and it is useful to have such a collection of icons that encompass a variety of concepts. I'm still looking for some icons about babies. Glyphish is released in the form of a package, and the latest package has a iOS7 "thin line" icon that is useful when designing iOS7 applications.
- Fontastic Icons for ios– A collection of open source classes that use icon fonts, such as the font Awesome in an IOS app. You can quickly and easily get an icon on any pixel dimension. Because fonts can be easily scaled in nature, this approach makes it easy to use icons on different platforms without having to export different versions based on different sizes.
- Paintcode ($)-a vector-based drawing tool that allows you to export your artwork to the core graphics source code. It's great to learn the core graphics drawing, and it's also handy if you want to draw dynamically. My screencast on Paintcode has a video-on-screen demo.
- Edge Insets ($) – A simple tool that helps you define reusable picture margins. Available for sale on the Mac App store.
- liveview– a remote screen viewer on iOS, you can instantly see your designs on your device.
- Skala Preview ($) – another great tool to quickly see your designs on real-world devices. Bjango's friends are very helpful and the app is worth the money.
Source Code Control
- Git-If you're not using source code control, stop your work and make a change right away. I use Git to do anything and I love it very much.
- Kaleidoscope ($) – The best Diff/merge tool. Three-way merger, looking very beautiful. I use them every day.
- p4merge– a free, humble alternative to Kaleidoscope. Powerful three-way merging, but it's not easy to find the download link. Every time I'm looking, I feel like I've got a deep stash on their website.
- Git x – A simple and powerful GUI tool that allows you to see the Git timeline for easy and simple staging area submissions. I usually use git on the terminal, but I think about it when I need to commit the changes to the staging area. This is a derivative of the original (obsolete) GITX, which I found on this derivative list.
- Source tree– is a free, full-featured Git app. I didn't use it because I like the way the command line works, but if you like using GUI tools, you can look at this.
- pngcrush– This utility can compress the uncompressed PNG file, which is useful when you want to use the image in the App Store. Just open itunes, view the list of local apps, and right-click the icon to open it in the Finder. Then open the app and you'll see a bunch of PNG files, but you can't see them. With Pngcrush You can extract them all and view them in a preview.
- appcrush.rb– This handy ruby script can automate the process for all images. Simply point it to an. app file on your disk and it will extract all the pictures to a folder on your desktop. It's easy to know how the app on your phone is doing some design. My my screencast on dissecting apps has a video demo.
- Charles ($, free feature limited trial version) – I don't know why its interface or icon is so ugly, but Charles is a very important tool for any developer. Charles, as an agent, allows you to monitor network traffic to and from your iphone simulator. You can also monitor traffic on your device by setting up your phone's proxy as a running Charles on your Mac. Word-Signed SSL certificate, request & Response Breakpoint, request/Response Viewer, Charles is really great. A must-have tool. Again, my dissecting apps on video demo.
I know what you're thinking, aren't all iOS developers using Xcode? The answer is that most are used. But judging from my grievances with Xcode, I believe it is necessary to consider the alternatives.
- Appcode–jetbrains (ReSharper for. NET production company), a full-featured IDE. Powerful refactoring tools and features can help you write code faster. Quickly identify dead code and automatically insert #import statements when you use related code to easily select variables, methods, and classes. The only thing I want is that it can become a plugin for Xcode.
- Vim-Wait a minute, vim? Are you sure? It is true that someone does all the objective-c development in vim. I'm not one of them, but I like to develop Ruby with Vim. Because of this, I like ...
- Xvim-a Xcode plugin that can use the keybindings in Vim.
- Omcolorsense-another Xcode plugin that displays the color of the code in a small area when your cursor rests on a line of code such as: [Uicolor Redcolor]. Clicking on the Color tab opens the color picker, and any changes you make to it will be reflected in the code, and the corresponding code will be changed to [Uicolor colorwithred: ... blue ... alpha: ...]. When I write code with this function, people always ask me when they see it: "Wow!" What the hell is this? ”
- Ksimagenamed-another Xcode plugin that can be laid in your [UIImage imagenamed: ...] , automatically complements the file name of the image in the bundle. With it, you can avoid accidentally hitting the wrong image name causing the method to return nil, then you spend 10 minutes to check why the picture is not showing the problem.
- CocoaPods Xcode Plugin-This plugin adds a menu item that can interact with CocoaPods. It's useful if you don't want to use the command line.
- Alcatraz Package Manager-a great meta plugin that lets you easily install additional Xcode color schemes and plugins with a simple mouse click.
- Code Runner ($) – a lightweight code-aware text editor that knows how to compile and run multiple language codes. Want to quickly test a piece of objective-c code and don't want to create an entire Xcode project? Try code Runner.
Aha, documentation, everyone's favorite topic. The documentation is important, so please note that we can make your life easier.
- Appledoc-Want to automatically generate documents like Apple's official? No more searching. Automatically define hyperlink symbols in your project and use special-format code comments to extract content. Generate official documents and HTML pages.
- Dash ($) – A must-have API document viewer and code Snippet Manager. It works well and allows you to download and search API documentation for various languages and frameworks, and it's fast. The quickest way to access the document. To make the search faster, I used the dash and Alfred to integrate them.
Yes, only one tool is listed here. I don't want to introduce a real list of third-party libraries because they belong to another list that is completely different.
- CocoaPods-an important tool for managing OBJECTIVE-C projects. Allows you to easily and quickly integrate third-party libraries into your app. It is done by creating another static library project and then automatically linking to your project. There are thousands of pods available that can easily add support for your project to third-party libraries that do not belong to you (or private). I used cocoapods in every project I had.
Diagnostics & Commissioning
Sometimes we are developing applications and we want to better understand what's going on, fix bugs or improve performance.
- Cocoa Lumberjack-A more powerful Nslog,cocoa lumberjack provides advanced logging behavior, such as logging to a file, a network, and filtering based on the log level (Info,debug,warn,error). Mentioned in Nsscreencast episode 61.
- Dcintrospect-Link to the super-powerful tool in your app when you debug on the emulator. Once you have done this, you can press the spacebar to get some useful view debugging support. View the exact dimensions of the view elements on the screen, print the view hierarchy, or even move the view horizontally or vertically.
- Pony Debugger-Another you can embed a library into your debug version of the tool, Pony Debugger actually uses Chrome's development tools to view the network requests made on the device, as well as a basic core data browser. Very difficult to describe, please see my screencast on Pony debugger bar.
- Runscope ($) –runscope is a network service that can capture requests, log logs, and give you useful data about your API. Because it is an HTTP channel API, easy to set up, you just need to replace your host name on the line.
- Simpholders-Quick and easy access to your emulator folder. Browse by the iOS version, then the app name to open the folder directly in the Finder.
- Spark Inspector-When running your app in debug mode, you can use 3D to demonstrate debugging your view hierarchy. This app you really have to see before you really understand its value. It can help you understand which views your app is made of. It also comes with a notification center monitor that you can easily see which nsnotification are emitted and who is observing them. Another application for monitoring nsnotification is reveal.
- Imagealpha-a Mac app that lets you turn 24-bit PNG images with transparency into 8-bit PNG images with alpha channels. Typically 8-bit PNG images do not have an alpha channel, so you can save a lot of space by turning 25-bit PNG into 8-bit if your picture can be represented in 8 bits (such as a single-color button).
- Imageoptim-another Mac app that can compress PNG images to save space. Most PNG files can be omitted by a few percent of the size, sometimes even 30% or more. Smaller images mean smaller app sizes and less memory for loading them at run time.
- Prepo-a small app on a Mac that can quickly transform pictures into multiple sizes you need. Just drag a large icon file (for example, 1024*1024) to Prepo, which will generate 512*512 's itunesartwork,114*114 [email protected], as well as other dimensions and file names.
- Slender ($)-a great app that can analyze your application to find a variety of problems, such as missing retina screen images, useless images, compressed images. Using slender to get rid of those useless images can save you a lot of space for your iphone app.
- Mogenerator-A super-useful tool for generating nsmanagedobjects intelligent subclasses in your core data model. Some people use Xcode to do this, adding logic to the model by manual subclasses or by creating classifications. Mogenerator runs as a precompiled script to generate subclasses that you can use. It is done by creating an underlined version (_user) and a version (User) that you can modify normally.
- Base ($) – you'll definitely need to look at your core Data SQLite database to check what's going on. You can use the Sqlite3 command-line tool, but base gives you a convenient GUI browser for viewing. When you see the database schema that core data created for you, don't throw up.
- Core Data Editor ($)-for some more advanced analytics, excavations, and modifications, you can use the core database editor. This app understands core Data, so you're dealing directly with entities, not database rows.
Eventually your iOS app will probably communicate with the server to share data, get new content, send push notifications, and more. Although you can do it manually, you may want a more convenient solution.
- Helios-helios is an open-source framework that provides basic backend services for iOS apps, from data synchronization, push notifications to in-app purchases, and Passbook integration. It's built on many open source Ruby gems, so you can choose to build your own stack if you want. Take a look at the Nomad CLI, there are a lot of useful related tools.
- Windows Azure Mobile Services-You can think of it as a programmable database in the cloud. Build a table, use Javasscript to read, insert, delete, add additional functions. Implementing push notifications is fairly straightforward.
- Urban Airship-It's easy to integrate, and it's free for a small amount of users.
- Parse-This is another cloud data service, but it offers many APIs and an online data browser. We used the parse for a very small application and felt good.
There are other options here, but none of them makes me feel impulsive to replace flurry.
- Flurry-I've been using Flurry for a long time and it can provide useful analytical data for users using my app. Want to know when you can stop supporting iOS5? Flurry will give you the data for your discussion.
- Deploymate ($) – also need to support iOS4, but are you compiling with the IOS6 SDK? Deploymate warns you when you use a number of symbols that do not exist on your deployment target.
- Cupertino-nomad CLI Tool, Cupertino provides you with a command-line interface to manage devices and profiles on the Apple Provisioning portal. For example, simply type iOS devices:list to see the list of current devices in your account. Can be used to automate many processes.
- Hockey App ($) – Manage your Ad-hoc release of good service. Testers can get a link to install a new beta version wirelessly. It also provides a robust crash reporting feature that you can easily respond to crashes in your app.
- TestFlight-a free app similar to the hockey app. Our use of TestFlight has been a great success in releasing apps easily and collecting feedback from users. I only hope that they can charge for the service. It also includes analysis and crash reporting capabilities, but we don't use those features.
- IOS Simulator Cropper-a simple way to take a screenshot of the simulator, with or without a status bar, with or without a machine shell, etc. Useful for screenshots on the App Store or in the general market.
- Status Magic ($) – Get a better screenshot of the App Store screen shot. Nothing makes your app look worse than a screenshot with low power or low signal markings on the App Store. Status Magic allows you to fully customize your status bar, including removing some elements, changing the time to Apple's favorite "9:41 AM", and so on.
- Crashlytics-is a great crash reporting tool for apps you're developing. The dSYM file is automatically uploaded in the release, so your crash log is automatically symbolized and organized so you can focus on the most critical parts.
I think we're not paying enough attention to testing as a community. There are a lot of good tools available, most of them are good, and we have no excuse not to write some tests for our application.
- Kiwi-a nice rspec-style iOS test framework. Built based on Sentestingkit, so you just press? U to run your use case. It also comes with robust mocking and stubbing libraries and assertions.
- Specta-A lightweight BDD framework similar to Kiwi, but its expectation syntax has a better place than Kiwi: Each variable is implicitly boxed: Expect (Items.Count). To.equal (5). It is not necessary to pack 5 into nsnumber like Kiwi. It works better with Expecta.
Several of the following can be used to perform end-to-end acceptance testing. These tests will interact with your interface, click buttons, scroll, and so on. While they may be slower to run, it is easier to see whether all modules are well integrated in a wide range of tests.
- Reflector ($) – Mirror your iOS device to your Mac via air play. Great for application demos on your PC
- Placeit-A collection of high-resolution graphs about people using devices, but the device can be customized by screenshots you upload. It's cool and it's a great place to show your app gracefully on your website.
Apply Sales Reports
Of course you want to know how much money your app can make, don't you? There are some solutions, some of which are good here:
- App Viz 2 ($) – a useful Mac app to track your app's sales. You run it locally, it will log in and download your sales report.
- APP Annie-An online sales reporting tool. I'm not happy to give my credentials to a third party other than itunes, but it does make sure your report is up to date and you don't need to run a program locally.
These tools do not have a well-defined classification, but they are worth mentioning.
- Quick Radar-Submitting bug reports to Apple is the only way we can help them improve their tools. If you are frustrated by a lack of a feature, you can submit a bug report. If you encounter a bug, you can do the same. If they don't have a radar, the user has no right to complain: So, it seems like 1995 years to submit a bug report through Bugreporter. Quick Radar is a great app that makes it super easy to submit bug reports. Automatically released to the open radar so that others can see it, or tweet it, and post it to app.net. I use this app several times a week.
All right, that's all. A wall full of tools. I hope you will come across new tools to join your arsenal. If you like this article, you can watch my iOS screen recording in Nsscreencast.
75 essential tools for IOS developers