75 essential tools for iOS developers, ios developers
Source: Ben Scheirman
Source: Njuxjy
If you go to a skilled carpenter's studio, you will always find that he/she has a bunch of tools to complete different tasks.
The same is true for software development. You can see how software developers use their tools. Experienced developers are dedicated to using tools. Continuously researching the tools you are currently using and learning about the use of some alternatives can fill gaps when your current tools cannot meet your needs.
With this in mind, I will show you a long list of various tools. Some of them are used on a daily basis, while others are used on a daily basis. If you still have more tools to display in this list, you can leave a message with me.
I do my best to classify the list. Some are websites and some are background services, but most are applications that you can install. Not all applications are free of charge, so I will use the $ symbol to indicate whether the application will spend money.
Let's get started right away.
Inspiration
- Pttrns-a great iOS screen design gallery by Task Type. For example, if you want to see how other applications process the active feed, you can find a bunch of examples here.
- TappGala-another great collection site with beautiful application design. It is not classified by task, but a list of excellent applications. You can get inspiration here.
- Cocoa Controls-a great list of components (CODE) that you can use in your iOS app. Sometimes you can find a piece of good code to save time, and sometimes you can also learn how other developers complete a function. Subscribe to their Monday reports. They are the essence and have very few bad habits.
- IICNS-a collection of truly outstanding icons. Get inspiration, but do not copy it.
- Dribbble-the best designers present their work on it. Real boutique.
- Capptivate-a gallery of inspired design works. Some are animated.
Design
- Mocks ($)-a simple application tool for quickly creating iOS app prototypes. Comes with some default controls, you can quickly build a prototype.
- Briefs ($)-a useful application that allows you to create an application prototype and connect the prototype to form interaction. You can deploy it on a real device to see what it feels like.
- Acorn ($)-powerful competitor of Photoshop, which is much cheaper than ps. I found that I have used fewer and fewer Photoshop recently. This project is under active development and maintenance.
- Sketch ($)-a vector-based drawing tool that is increasingly useful as the screen size and pixel density change. You only need to design it once and then scale it as needed. It also comes with a powerful export system. For the sample project in Sketch, see Sketchmine.
- IOS 7 PSD by Teehan + Lax-this is a very useful resource if you (or your designer) use Photoshop. There are also iOS 6 versions.
- Bjango's Photoshop Actions-if you use Photoshop to design iOS apps, it will definitely save you time. You can reset the canvas size, scale 200% (or 50%), set the global brightness to 90, and so on. Their blog also has a lot of Photoshop skills.
- XScope ($)-an indispensable Swiss Army knife, guides, pixel magnifiers, screen measurements, and more. Want to know the color value of a certain pixel? How many pixels is there between a button and window of a Mac application? XScope can help you. Let's take a look at the iPhone applications they developed for image design and how pixel perfect the image design is on your Apple device.
- Glyphish ($)-a collection of high-quality icons that many iOS apps can use. There are not many built-in icons provided by Apple. It is useful for all icons that have such a set of concepts. I am still looking for baby icons. Glyphish is released as a package. The latest package contains the "fine line" icon of iOS7, which is useful when designing iOS7 applications.
- Fontastic Icons for iOS-a collection of open-source classes that use the icon Font, such as Font Awesome in the iOS app. You can quickly and easily get an icon in any pixel dimension. Because fonts can be scaled easily in essence, this method can be used easily on different platforms without the need to export different versions based on different sizes.
- PaintCode ($)-a vector-based drawing tool that exports your work to the source code of Core Graphics. It is great to learn the Core Graphics drawing, and it is also very convenient if you want dynamic drawing. There is a video demonstration on my screencast on PaintCode.
- Edge Insets ($)-a simple tool that helps you define reusable image margins. Available on Mac App Store.
- LiveView-a remote screen viewer on iOS that allows you to easily view your design drawing on your device.
- Skala Preview ($)-another great tool that allows you to quickly view your design drawing on a real device. Bjango's friends are awesome. This application is worth some money.
Source code control
- Git-if you do not use source code control, stop the job and immediately change it. I use git to do anything, and I love it.
- Kaleidoscope ($)-the best diff/merge tool. Three-way merge, looks pretty. I use it every day.
- P4merge-a free and simple alternative to Kaleidoscope. Powerful three-way merge function, but it is not easy to find a download link. Every time I look for it, I think it's very deep on their website.
- Git X-a simple and powerful GUI tool that allows you to view the git timeline and easily implement commit in the staging area. I usually use git on the terminal, but I will think of this application when I need to commit the changes in the temporary storage area. This is a derivative of the original (obsolete) GitX, which I found on this derivative list.
- Source Tree-a free Git application with full functionality. I have never used it because I like the command line method, but if you like to use GUI tools, you can look at this.
Analyze applications
- Pngcrush-This utility can compress and decompress PNG files. It is useful when you want images from apps on the App Store. Open iTunes, view the Local Application List, and right-click the icon to open it in the Finder. Open the application and you can see a bunch of PNG files, but you cannot view them. With pngcrush, you can extract all of them and preview them.
- Appcrush. rb-this handy ruby script can automate the above process for all images. You just need to point it to A. app file on your disk, and it will extract all the images to a folder on your desktop. It is easy to know how applications on your mobile phone can complete certain designs. My screencast on dissecting apps has a video demonstration.
- Charles ($, trial version with limited free features)-I don't know why its interface or icon is so ugly, but Charles is a very important tool for any developer. Charles acts as a proxy to allow you to monitor inbound and outbound network traffic to your iPhone simulator. You can also set the proxy of your phone as Charles running on your Mac to monitor the traffic on your device. The SSL Certificate of the word signature, the request and response breakpoint, And the request/response viewer. Charles is really a thumbs up. A required tool. Again, my dissecting apps video demonstration.
Editor
I know what you are thinking. Aren't all iOS developers using Xcode? The answer is that most of them are used. However, from the complaints between me and Xcode, I believe it is necessary to consider the alternatives.
- AppCode-Jetbrains (ReSharper for. NET production company) is a fully functional IDE. Powerful refactoring tools and functions can help you write code faster. Quickly identify dead code. When you use the relevant code, the # import Statement is automatically inserted to easily select variables, methods, and classes. What I only hope is that it can become a plug-in of Xcode.
- Vim-Wait, vim? Really? Indeed, some people do all Objective-C Development in vim. I am not one of them, but I like to use vim to develop ruby. That's why I like it...
- Xvim-An Xcode plug-in that can use keybindings in vim.
- OMColorSense-another Xcode plug-in, when your cursor stays on a code line such as [UIColor redColor], it will show the color of the Code in a small area. Click the color tab to open the color selector. Any changes you make above will be reflected in the Code. The corresponding code is changed to [UIColor colorWithRed :... Green... Blue... Alpha :... ]. When I write code with this function, others always ask me, "Wow! What is this !"
- KSImageNamed-another Xcode plug-in. You can click [UIImage imageNamed:…] Automatically complete the file name of the image in the bundle. With this function, you can avoid returning nil results due to incorrect image names. Then, it takes 10 minutes to check why the image is not displayed.
- CocoaPods Xcode Plugin-this plug-in adds a menu item that can interact with CocoaPods. It is useful if you do not want to use command lines.
- Alcatraz Package Manager-a great meta-plug-in that allows you to easily install other Xcode color schemes and plug-ins with a few clicks.
- Code Runner ($)-a lightweight Code-aware text editor that knows how to compile and run Code in multiple languages. Want to quickly test a piece of Objective-C code, and do not want to create an entire Xcode project? Try Code Runner.
Document
Aha, document, and everyone's favorite topic. Documentation is very important, so please note that we can make your life easier.
- Appledoc-do you want to automatically generate documents of the official Apple website? No more. Automatically defines hyperlink symbols in your project and extracts content using code annotations in special formats. Generate official documents and HTML webpages.
- Dash ($)-a mandatory API document viewer and code snippet manager. It is easy to use and allows you to download and search API documents of various languages and frameworks, and the speed is fast. The fastest way to access documents. To make search faster, I integrate Dash and Alfred.
Dependency Management
Yes, only one tool is listed here. I don't want to introduce the real list of third-party libraries because they belong to a different list.
- CocoaPods-an important tool for managing Objective-C Projects. It allows you to easily and quickly integrate third-party libraries into your applications. It is implemented by creating another static library project and then automatically linking to your project. With thousands of available pods, you can easily add third-party libraries that are not yours (or private) to your project. I use CocoaPods in each of my projects.
Diagnosis and debugging
Sometimes we are developing applications. We want to better understand what happened, fix bugs or improve performance.
- Cocoa Lumberjack-a more powerful NSLog. Cocoa Lumberjack provides advanced log behaviors, such as logging to files and networks, and filtering by log level (info, debug, warn, error ). Mentioned in NSScreencast Episode 61.
- DCIntrospect-links to powerful tools in your application when debugging on the simulator. Once you do this, you can press the Space key to obtain some useful view debugging support. View precise dimensions of view elements on the screen, print view levels, and even move views horizontally or vertically.
- Pony Debugger-another tool that you can embed into your debugging version. Pony Debugger actually uses Chrome's development tool to view network requests sent from devices, there is also a basic Core Data browser. It is hard to describe. Please refer to my screencast on Pony Debugger.
- Runscope ($)-Runscope is a network service that captures requests, records logs, and provides you with useful data about your APIs. Because it is an HTTP channel API, it is easy to set up. You only need to change your host name.
- SimPholders-quick and easy access to your simulator folder. Browse by iOS version, and then the application name. You can open the folder directly in the Finder.
- Spark Inspector-when running your application in debug mode, you can use 3D to display and debug your view hierarchy. You can really see the value of this application. It helps you understand which views your application consists. It also comes with a notification center monitor that allows you to easily see which nsnotifications are sent and who is watching them. Another application that monitors NSNotification is Reveal.
Image
- ImageAlpha-a Mac application that allows you to convert a 24-bit PNG Image with transparency into an 8-bit PNG Image with alpha channel. Generally, an 8-bit PNG image does not have an alpha channel. Therefore, if your image can be represented in 8 bits (such as a monochrome button, you can save a lot of space by converting 25-bit PNG to 8-bit.
- ImageOptim-another Mac application that can compress PNG images to save space. Most PNG files can save a few percentage points, sometimes even 30% or more. Smaller images mean smaller application sizes and smaller memory to load during runtime.
- Prepo-a small Mac application that can quickly convert images into multiple sizes you need. You just need to drag a large icon file (for example, 1024*1024) to the Prepo, it will generate 512*512 iTunesArtwork, 114*114 Icon@2x.png, and other sizes and file names.
- Slender ($)-a great application that analyzes your application and finds various problems, such as images without a Retina screen, useless images, and compressed images. Using Slender to Remove useless images can save a lot of space for your iPhone applications.
Core Data
- Mogenerator-an extremely useful tool that generates an NSManagedObjects intelligent subclass in your Core Data model. Some people use Xcode to perform this function and manually subclass or create a category to add logic to the model. Mogenerator runs as a pre-compiled script to generate subclasses that you can use. It is implemented by creating an underlined version (_ User) and a version (User) that you can modify normally.
- Base ($)-You must check your Core Data sqlite database to check what happened. You can use the sqlite3 command line tool, but the Base gives you a convenient GUI browser. When you see the schema of the database created for you by Core Data, do not spit it out.
- Core Data Editor ($)-You can use Core Data Editor for more advanced Data analysis, mining, and modification. This application understands Core Data, so you are dealing directly with entities, not database rows.
Background Service
In the end, your iOS app may communicate with the server to share data, obtain new content, and send push notifications. Although you can do it manually, you may want a more convenient solution.
- Helios-Helios is an open-source framework that provides basic background services for iOS apps, including data synchronization, notification push, In-APP purchase, and passbook integration. It is built on a lot of open-source ruby gem, so you can choose to build your own stack if you want. Take a look at Nomad CLI, there are many useful tools.
- Windows Azure Mobile Services-you can think of it as a programmable database on the cloud. Create tables and use external scripts to read, insert, and delete tables. Pushing notifications is quite simple.
- Urban Airship-it is easy to integrate and is free of charge if the number of users is small.
- Parse-this is another cloud data service, but it provides many APIs and an online data browser. We use Parse for a small application, and it feels good.
Analysis
There are still some other options, but none of them make me feel impulsive to replace flurry.
- Flurry-I have been using flurry for a long time and it provides useful analysis data for users to use my application. Do you want to know when I can stop supporting iOS5? Flurry will give you data for discussion.
Deployment
- Deploymate ($)-You still need to support iOS4, but are compiling with iOS6 SDK? Deploymate will warn you when you use symbols that do not exist on your deployment target.
- One of the Cupertino-Nomad CLI tools, Cupertino provides you with a command line interface to manage the devices and profiles on the Apple Provisioning Portal. For example, you can enter ios devices: list to view the current device list in your account. It can be used to automate many processes.
- Hockey App ($)-manages the good services released by your ad-hoc version. The tester can get a link to wirelessly install a new test version. It also provides a robust crash reporting feature that allows you to easily handle crashes in your applications.
- TestFlight-a free App similar to the Hockey App. We have achieved great success in using TestFlight. We can easily publish applications and collect feedback from users. I only want them to charge for this service. It also includes the analysis and crash reporting features, but we do not use those features.
- IOS Simulator Cropper-a simple method for taking a screenshot of the Simulator screen. You can choose to take the screenshot with or without the status bar or Machine Shell. It is useful for screenshots of App Store or ordinary market.
- Status Magic ($)-make a better screenshot of the app store. There is nothing worse than a screenshot with a low-power or low-signal logo 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 "AM", and so on.
- Crashlytics-a great crash reporting tool for applications you are developing. The dSYM file is automatically uploaded in the release version. Therefore, your crash log is automatically signed and organized for you. You can focus on the most critical part.
Test
I think we are not paying enough attention to testing as a community. There are a lot of good tools available, most of them are very useful, and we have no excuse not to write some tests for our applications.
- Kiwi-a good Rspec style iOS testing framework. Based on SenTestingKit, you only need to press ⌘ U to run your use case. It also carries robust mocking and stubbing libraries and assertions.
- Specta-a lightweight BDD framework similar to Kiwi, but its expectation syntax is better than Kiwi: each variable is implicitly boxed: CT (items. count ). to. equal (5 ). 5 does not need to be packaged into NSNumber like Kiwi. It works better with Expecta.
The following items can be used for end-to-end acceptance testing. These tests will interact with your interface, click the button, scroll, and so on. Although they run slowly, it is easier to see if all modules are well integrated in a wide range of tests.
- KIF
- Calabash
- Zucchini
- Frank
- Bwoken
Demo/market
- Reflector ($)-mirror your iOS device to your Mac using Air Play. It is suitable for application demonstration on your computer.
- Placeit-a collection of high-resolution images for people to use devices, but devices can be customized by screenshots you upload. It's cool and is suitable for elegantly displaying your applications on your website.
Application sales report
Of course you want to know how much your application can earn, don't you? There are some solutions, some of which are good:
- App Viz 2 ($)-a very useful Mac App that can track your App sales. If you run it locally, it will log in and download your sales report.
- App Annie-an online sales report tool. I'm not happy to give my authentication information to a third party except iTunes, but it does ensure that your report is up-to-date and you don't need to run a program locally.
Lucky Bag
These tools do not have a defined classification, but it is worth mentioning.
- Quick Radar-submitting a bug report to Apple is the only way we can help them improve their tools. If you are frustrated by the lack of a feature, you can submit a bug report. If you encounter a bug, you can. If they do not have a radar, users do not have the right to complain: therefore, if you submit a bug report through bugreporter, it seems that they have returned to 1995. Quick Radar is a great application that makes it easy to submit a bug report. It is automatically released to the open radar so that others can see it, send twitter, and publish it to App.net. I use this application several times a week.
That's all. A wall-filled tool. We hope that you will be able to add new tools to your arsenal in the future. If you like this article, you can watch my iOS screen recording in NSScreencast.