Hi, I’m Ashu.

Two months ago, I was a full-time game developer, tired of working at 996 and wanted to try my hand at being an indie developer. Two months have passed, and my App is on the App Store. I’d like to write a little summary of the development process. Below is the app download link

Morning Plan app Store download link

1. What kind of App should I make

I already had some ideas at the beginning, because I often started playing games after work without any plan for my life and future. I didn’t want time to pass by like sand and end up with nothing. At the same time, I also needed a software to help me move forward on the lonely road of indie developer. So I wanted to make a way to get up an hour early in the morning and plan the whole day, so that I can have a planned life, rather than following the flow.

2. Selection of technology stack

The second step is to choose the technology stack. First, IOS should be the first choice for independent apps, because IOS users have a high willingness to pay. I did not consider Android, because android models are complicated, and cross-platform development will consume a lot of energy on the platform. Therefore, I only consider IOS, and I choose the latest SwiftUI for development, because it looks more pleasing to my eyes and I don’t like the manual drag and drag interface. Actually, SwiftUI is fast in development!

The user’s data is stored locally in SQLite, not in the back end, which uses Python’s Flask for basic back-end services such as payment validation. Front-and-back interactions can also waste a lot of development time, and servers are expensive, so you don’t rely on them.

3. Design the interface of App

To be honest, I didn’t design the interface very much, just go by the feel, simple and simple style. The target interface below, for example, is very plain App Store style. I personally like the simplicity of the beauty, the interface is not redundant.

Target interface:

Task interface:

4. Code development

1. Try to use open source libraries to reduce development workload

At present, the development of the code occupies most of the time. In the spirit of using the open source library whenever possible, I have collected some swift libraries to reduce the workload.

  • SQLite. Swift operates the SQlite3 library, and MOST of my user data is stored in SQLite.

  • Alamofire network request library, API is friendly and simple, easy to use

  • Toucan image processing library

  • FSCalendar calendar control

2. Use a simple framework

It has been said that debugging is twice as complex as code, and by the time you write a framework that is complex enough, you may no longer be able to debug bugs. I just used simple MVC, which has a lot of benefits, but one of the most obvious benefits is that it reduces coupling and reduces the possibility of repetitive code.

3. Too many Googles and Stack Overflow

Because the popularity of SwiftUI is not so much, and there are not so many documents, and the new technology is not stable, there are bugs for sure. At this time, keywords are used to search, and there are many foreign masters.

4. Reconstruction

When your code doesn’t look good, you might want to start refactoring. There are two refactoring lessons I’ve learned. One is that it’s no big deal. If you repeat code more than three times, you need to extract it into a function. Second, don’t extract merge code if you can’t name the extracted function. An obscure function can be worse than a bug.

5. On

You don’t need to wait for the product to be perfect before you put it on the shelf, because pursuing perfection is actually a bad thing. Without user feedback, there is a risk that users will not buy any optimization. First make a general situation, and after testing several times without bugs, you can consider putting it on the shelf.

I was rejected the first time I put it on the shelves because the description for using photo permissions was not clear enough. The second review was quick, it took two days.

The above is all my summary, if you have any questions, please feel free to discuss with me privately.

Finally, I am an independent developer, I hope you live a healthy and happy life!

Morning Plan app Store download link