Design Considerations
There are lots of things to consider when designing a mobile app. Audience, supported devices, connected and disconnected environments, cost, complexity, distribution options, and other important topics need thoughtful evalution.
Audience
Who is the intended audience? Many thousands of apps exist and each has an ideal audience or end-user. When you're doing design work, think carefully about the user, try to imagine how they interact with the app. Media-centric apps should contain rich graphics and feel fun, entertaining, hip. Enterprise apps, or apps with a more rigid audience are best designed to accomplish a set of specific tasks, provide important documents or information. These types of apps are most successful when the designer makes it as fast and easy as possible to get the task done and access the important information your application provides.
Supported Devices
How many different types of devices does your app need to support? If your audience is broad, you'll need to consider lots of different screen sizes, operating systems, and environments where the app will be used. App's that need to support a large number of devices are more complicated and take longer to develop. Contrast this with an app that is designed specifically for one type of device. App's that target one device are easier to create because you don't need to consider multiple layouts, screen sizes, operating system and other variables.
Online vs. Offline Access
Does your application need to function when no internet connection is available? If your application must work offline, you'll need to provide it's core content within the software itself. This means the application will take longer to download (because it contains content and media within it) and will function without an internet connection. However, this also means that the app will be more difficult to update and modify. The best applications find a reasonable balance between these competing ideas.
Cost
Cost can be measured in a literal sense (dollars and cents) or a time sense. Designing and creating an application yourself (DIY) may or may not "save you" anything. For some, it's best to work with a skilled developer, while others enjoy doing things themselves and exploring the technical aspects of mobile software. There are lots and lots of examples of successful apps created by non-programmers. However, there are tens of thousands apps that are poorly constructed because the creator lacked the necessary design skills and experience. Hiring a developer is not always a bad idea.
Complexity
More complexity and more features does not necessarily mean a "better" app. Some of the best apps are very very simple. Consider the Alarm Clock app on your device. It accomplishes a simple task efficiently and reliably and doesn't try to do too much. Mobile apps filled with hundreds of features and screens are usually a bad idea. Keep your ideas simple and if all-else-fails, make another app instead of extending or adding to an existing app.
Distribution Options
How are end users going to get your mobile app? Apple created a new market when they announced their App Store in 2008. Since then, millions of users have downloaded billions of apps, new competing "app stores" are emerging and the simplicity of Apple's original idea has turned into a complex problem for end-users and developers. Where do I get an app and how do I distribute an app is a complicated question. Each distribution channel (Apple's App Store, Google Play, Cydia, Amazon, etc) has a unique set of rules and regulations and supporting them all is challenging. For most developers, it's unproductive to work with more than a few. Consider how you plan to distribute your software and what the pros and cons are before submitting to any of them.