With these three quick tips, you’ll be on your way to being more productive when developing your mobile apps. These are not extremely difficult technical challenges, and should be easy to implement in to your workflow.
Dependency Management
If you’re on iOS, Cocoapods is a godsend. If you’ve ever used bundler with Ruby on Rails, you’ll be familiar with this concept. A series of dependencies for your iOS app are listed out in a human readable format in a Podfile, which is then used with the ‘pod’ command line utility to download, update, install, and check frameworks for compatibility. In the old days iOS developer’s would have to manually manage the importing and linking of every library used, but now cocoapods does the heavy lifting for you. If you’re not using it yet, go check it out. Cocoapods will help you leverage more open source code, more effectively, in less time.
Automated testing
One of the most time consuming parts of developing an iOS app can be performing tests of your application using the device (or iPhone simulator.) But many of the tests you are performing can be partially implemented using the now-default OCUnit testing suite. OCUnit does some nice things, but to truly automate all your actual use testing, look in to Calabash. It’s basically cucumber for iOS, and allows for UI-based testing of apps. By writing proper tests, you can automate almost all testing, find bugs faster, and resolve UI issues before they become serious problems. Not only does automated testing speed up the process of development, but it enables you to ship higher quality code.
Design before you build
I mean this on multiple levels. First, before you begin writing any code, it is a good idea to have a solid concept for your app, along with all the needed features for marketing and promotion.
Second, designing your UI up front can save you a LOT of time and frustration during the development process. Changing the way a button behaves in a Photoshop file after thinking about it a bit, is *much* easier than trying to change it after code has been implemented. Be as certain as possible of your UI before committing any code.
Third, before you (or your programmers) move in to the actual code, it’s important to plan out how every object should exist, and how they should relate to each other. This is basic software planning, but I’ve seen it skipped too many times to not bring it up. Taking this basic step ahead of time can be the difference between a project that completely misses it’s schedule, and a project that is delivered under budget and ahead of time.
Related article: Top 10 Lessons Learned from Launching iPhone Apps