Saturday, January 18, 2014

Journey to App: Writing and publishing an iOS App Part 1

For the last few years, I have been developing and publishing some iOS and android apps.  I published a few apps for my previous employer, and I have published a few for myself.  (Check out SnackableApps.com for my currently published Apps).

When I tell people that I write apps, they often ask about the process and how hard is writing an App.  Depending on their technical background, it isn't always an easy question to answer.

So I decided to do a series of blog posts that will document the process I use to develop an app.  As a companion to these posts, I will also Open Source the App Code, and in the end, I'll publish the app to the Apple App Store and you can download the App. 

Please NOTE: This blog series is NOT a HOW-TO.  Google is a wonderful reference if you need specific help on a topic, and there are great communitties of wonderful, helpful people that will point you in the right direction.  This series IS a description of the process of writing an App.  I hope you enjoy the posts ... and add comments if you have any.

The app process is more than just writing software code, and I will also cover setting up the support system, monetizing the app, and some basic App marketing as well.

The focus of this post will be "The Idea".

Each app has to start with an idea.  Now, coming up with ideas for apps is not that difficult ... coming up with an idea for a great app, that is very elusive.

For this series of posts, I decided not to tackle anything too ambitious, so I want to start with a pretty simple problem to solve.  I often come across articles and information on the web that I either want to read later, or that I want to save.  A really good way to do that (and one that I use on my laptop) is to save the web page to PDF.

So the focus of this App will be to save a web page to PDF.  Yes I know there is a bunch of apps out there (paid and free) that do this, but I think that it is a good problem for this series of posts.  (Comment on this post if you would have different ideas that you think would be interesting to write an blog series on).

Web Pages to PDF ...  What are the Requirements
So ... what does the App need to do?  Defining the "User Requirements" should be the first step in evaluating an idea and developing an App.  Here are the requirements for our PDF App. (have additional requirements?  add them in the comments).

In iOS on the iPhone or iPAD, most people browse the web using either Safari or Chrome.  It is unlikely that they will open up the App to browse the web, so ...
1. We need to pass a URL from Safari or Chrome to the App

Some web sites require a password, or other user input, so ...
2. The App needs to show the web page so that the user can interact before creating the PDF

Web addresses often do not provide good "file names" that would be required for naming the PDF File, so ...
3. The user needs to be able to set the file name, but it would be nice if the App could propose a file name from the URL

Assuming that the user will use the App more than once ..
4. The App needs to be able to display a list of the PDF files that the user has created.
5. The App needs to be able to read / display the PDF
6. The App needs to be able to send the PDF file to other apps, such as iBooks or Good Reader
7. The user needs to be able to delete PDF files that they no longer want.

It is possible that the user may want to create PDFs of the same URL more than once (say for a news site or other sites that change content frequently), so ...
8. The App needs to be able to save and display the history of URLs that have been converted.
9. The user needs to be able to delete URLs from the history list.

Sounds like enough requirements to make the App usable for many users, but still keeps the app Simple. 

Next up ... Laying out the App ... Once we have the requirements understood, it is time to start laying out (also called wire framing) the App.

That will be the topic of our next post.

Hope that you will follow me on this journey to an iOS App!

Next: Part 2

No comments: