Once you've got your list, narrow it down. If you've got a list of 10 features, try reducing it to four or five that are absolutely essential, and save the rest for future iterations. The fewer features you try to build right out of the gate, the sooner you'll have a working app.
At this point, you can also start thinking about design principles. Draw some sketches of your app's screens. Consider the flow of a user's experience through these screens. What has to be on the opening screen for users to understand your app? After someone does something on that home screen, what happens next? You can map out the process with a flow chart, and make simple wireframe mockups to guide your design process. Tools like LucidChart and Proto.io make it easy to generate useful mock-ups and diagrams quickly.
Once you have a basic plan, you can start thinking about how to turn it into working software. Expect to spend several weeks researching a range of options for building the app in a way that accomplishes your goals, and then several weeks more for actually coding a basic, feature-limited version of the app. This is sometimes called an MVP, or minimum viable product, and it represents a starting point from which you can continue to iterate the app based on what's working and what's not.
As your app begins to take shape, you may want to bring in some outside dev talent on a limited basis to sanity-check your work, answer questions that arise during the process, and offer solutions to nagging problems. Many freelance developers are happy to offer their insights for an hourly rate, and you can benefit from their expertise without hiring them for a complete project.
To be sure, software development isn't easy. If it were, everyone would do it. But if you approach it with realistic ambitions and manage your training, research, and planning processes effectively, the DIY approach can pay off in unexpected ways as you continue to improve your app, build your skills, and tackle new projects.
Sign up for CIO Asia eNewsletters.