There are many ways to create a mobile application and it is easy to get overwhelmed by the variety of services available, especially to the novice app developer. Here are a few widely used, tried, and true services to help streamline your workflow. Each service or product corresponds to a phase of development, from UI design, to programming, and lastly to testing and marketing!
Prototyping and Design
After you come up with a great app idea, the first step before programming is to design the user interface and create a prototype. This will give you a good idea of how your app will work and allow you to make any adjustments to the user experience.
Not only is AppCooker ($39.99) an excellent tool for creating mockups, it also has many features to help you prepare your app for the App Store. It integrates with DropBox, Box.net, and your photo roll, so you can import icons and other UI assets directly into the prototyping tool. You can create simple shapes with gradient, strokes, and advance fill techniques, as well as have access to almost all the default Apple UI controls. If you are not ready to get into the graphics heavy design, you can opt to use the included AppCooker to create “sketch” themed assets to put together a more rough, yet uniform prototype. AppCooker includes an easy to use dynamic linking functionality to allow you to link as many screens as you want so you can think through all the various use cases you might encounter during the UX design phase.
It is only available on the iPad, but they also have a companion app called AppTaster for the iPhone/iPod Touch. You could send your completed AppCooker prototype files to other users for testing or feedback. Your prototype can also be exported as a linked PDF.
Short for "Prototyping On Paper", POP is a marvelous blend of low tech and high tech engineered into a beautiful app for iOS. Pop captures your UI sketches with your iPhone's camera, then let's you quickly add touch "links" to other captured sketches. Publish your sketched prototype and collect feedback all from within Pop. Pop is great for startups and those who follow lean UI processes, or anyone who wants to iterate through a potential idea without any excessive UI. Pop is free in the iOS App Store.
This is a web script that takes your maximum resolution 1024x1024 icon and sends you a zip file with every resolution required by Apple’s guidelines including retina and all device specific requirements. While this may seem like a simple tool, it saves a lot of time. You would be surprised by how much time is wasted reading through icon size requirements and manually resizing the same image over and over.
Check out MakeAppIcon.
FluidUI is an easy to use multi-platform web app that allows the user to create, test, and share mobile user interfaces. It includes elements for iOS, Android, and Windows phones. A great feature about FluidUI is that it can also be used offline with their Chrome app. Fluid UI is free for one project and then pricing is tiered based on expected use.
Sketch is an application for Mac that is a Vector/Pixel hybrid tool and is excellent at creating retina graphics. While this application is primarily a replacement for Photoshop or Fireworks, it is fairly new and includes a variety of developer friendly features such as “export to css” and export for retina options. It’s worth checking out if you contemplate creating your own design for your applications.
Get Sketch ($49 with a 15 day trial).
Once you have the initial UI and design elements taken care of you might find the following coding and development based tools useful:
Chances are you are using some type of version control for your project, and if you aren’t you probably should be. SourceTree is a free Mac app for Git and Mercurial version control systems. Based on my experiences most iOS developers use Git, although a few use Mercurial or SVN. SourceTree has you covered for whichever source control scheme you use. SourceTree is unique in that it is a GUI for the traditionally complex world of command line version control. It is simple enough for a novice Git user to use effectively, and robust enough even for the most seasoned application developer to find useful. With features such as incoming and outgoing changesets and intuitive branch management you would be surprised at how much time you'll save in terminal.
If you do web development you may have heard of HTML5 boilerplate, well now there is iOS Boilerplate! iOS Boilerplate is a sort of blank slate of standards compliant code from which you can begin your next iOS project. iOS Boilerplate is not intended to act as a framework, but it does include some solid, widely used third party libraries so that you do not end up reinventing the wheel. You can modify and extend Boilerplate to meet your needs and use it in your personal or commercial apps.
Get iOS Boilerplate.
Sometimes presenting your application on a larger display can be useful. Perhaps you would like to demonstrate your latest feature or bug fix by creating a screen capture video without going into full-on video editor mode. AirServer allows your Mac to function as an AppleTV would, taking advantage of the AirPlay protocol and listening for any iOS device capable of broadcasting media, or in this case mirroring the iOS screen exactly as it appears while you are using it. This is particularly useful for group demos, as well as testing applications within the context of a larger group. Air Server is available for both Mac and PC.
Easy APNS is a PHP Script for managing Apple Push Notifications from the backend. If you are interested in the backend portion of the Apple push notification eco system and happen to be familiar with PHP, Easy APNS is a must have for your tool box. It is completely open source and fairly easy to setup. Easy APNS provides a straightforward way to control the entire push notification backend by using a free and open source PHP script.
Get Easy APNS.
Slash is an open source library for iOS that adds an extensible markup language for styling NSAttributedStrings. The markup is similar to HTML, but you can define the meaning for each tag, which makes it very extensible.
Displaying attributed strings in iOS6 is fairly straightforward, however programmatically creating them is not. Using them in your app without using interface builder requires tweaking the NSRanges and font attributes. Slash makes working with attributed strings in iOS simpler and it yields cleaner code.
In the past year, we have witnessed an increase in server-side services aimed at mobile developers. These services claim to help with issues such as storage, scaling, delivering content, real-time functionality, and much more. With high reliability and toolsets that decrease development time considerably, it may be time to consider using a server-side service in your next app. Below you will find a short introduction to several of these services.
Firebase is a cloud database that advertises itself as a “Scalable real-time backend”. Due to its focus on real-time, collaborative applications, Firebase gives you the ability to create unique experiences, especially in a multi-user or multi-player application. Also for those worried about security, Firebase uses a flexible rules language that allows you to easily write your security logic. It enforces these policies across your application.
Urban Airship is one of the oldest and most trusted services in mobile development. In 2009, Urban Airship opened its doors to thousands of iOS developers by offering a push notification service that is easy to integrate into apps. Since then, the company has innovated its core product and now offers several more products that include geofencing, location targeting, location history, and passbook creation. Urban Airship products allow you to add location-aware features to your applications while giving you the ability to communicate the right message at the right time to your users' phone.
Get Urban Airship.
Kinvey claims to take the hassle out of creating and maintaining your mobile backend. Kinvey is a cross-platform service with rich features that include user management, business logic, data storage, push notifications, large file storage that moves across a CDN, analytics, automatic versioning, and several other features. This is a robust platform that has something for both indie developers as well as Enterprise level customers.
Parse is a feature rich service that helps developers focus on user experience by handling data storage and scaling. Parse also has powerful social and push notification features, and an impressive dashboard to handle it all. Furthermore if you are looking to add mobile commerce to your app, Parse has recently partnered with Stripe to create an open-source application to show you how it’s done. Parse has great features, documentation, and tutorials, and is constantly innovating in this space.
StackMob is a backend as a service that claims their platform “reduces many of the backend challenges associated with building, deploying, and growing a mobile business.” If you’re working on a team project, StackMob’s collaboration tool will make it easy for developers, designers, and clients to work together. Additional functionality includes app analytics, S3 integration, geoqueries, Facebook and twitter integration, and the ability to maintain separate development and production environments within one account.
Testing and Marketing
Testing is an important part of the development process. Ensuring that your application runs smoothly before it is released to the app store saves a lot of time and customer service related emails. There are many services available to test your application, obtain feedback, and get crash reports. Here are a few of those services:
TestFlight is a free on the fly provisioning and rudimentary ad-hoc distribution and testing service. It includes feedback, as well as tracking real time crash notices and in-app user feedback prompts that can be triggered at certain points. It has been around for quite a while and it is fairly robust. TestFlight still has some hiccups when it comes to managing test users provisioning profiles, but it is become almost an industry standard for pre-launch app testing.
Pieceable Viewer is a bit of code that you can add to your compile time development environment. It sets up a web server and uses a VNC like protocol to publish your simulated, recently built iOS application, which is then accessible via the web for viewing and testing purposes. This allows users to view and test the app and provide feedback without having to install the application on their device or even have a device, since the viewer is published to a web address of your choosing. This can be very helpful if you need to show how the app is functioning and are not prepared to provision and distribute a new build of the app.
Get Pieceable Viewer.
Tokens simplifies the process of generating and distributing free promo codes that are issued by iTunes Connect whenever a new app or a new version is released. Additionally it tracks who you shared the codes with and whether or not they have redeemed their code. This allows you to optimize the limited number of promotional codes allotted (50) and make sure they are not wasted. Using Tokens is good for the end user as well because it skips the confusing manual redemption process and offers a friendly step by step alternative through the Tokens service. It ultimately makes it easier for the people you want to share your finished application with to download and use it instead of messing around with iTunes.
Smore is the fastest, easiest way to create a minimalist web presence for your new app. Using only the same collateral that is required to have for AppStore submission (Screenshots, Description, etc) you can create a beautiful customizable, sharable mini-site to market your app. Smore provides traffic analytics so you can see how people are discovering your app. Smore is a Freemium web app which should be in every app creators marketing toolbox.
Check out Smore.
Countly is an open source, self hosted, mobile analytics suite. If you have thought about Google Analytics for mobile or Flurry, then you are familiar with the sort of functionality that Countly can provide as far as in-app analytics go. Countly takes the open source viewpoint and gives you all the server-side code you need to run your very own analytics suite on your own servers. This is useful for many reasons, such as developing your own tracking algorithms based on Countly’s open source standards as well as retaining all rights to the data you have collected. Countly is a powerful piece of software for those who understand its potential.
In this article I have showed you some of the many tools you can use to help make the most efficient use of your time and streamline your development process. You'll find that these services are useful for any app developer.