I just released my first iOS App to the App Store recently [May 23, 2019 to be exact] (very happy ^_^😁), and in the process, I learned a few things, oh no, a lot of things that some of you might find useful, so I’ll share them with you today.

Wait, what kind of app is it?

I’m assuming that’s what’s on your mind when you look at this, right? With that in mind, LET me briefly introduce you to my first application.

It’s called “Little Memories”, and it’s a free app for recording and reminding birthdays, anniversaries, countdowns and other important dates. This article will talk in detail about how I personally developed this product step by step.

[Little Memorial] Currently only iOS version, it is simple, easy to use and safe, the data is in the user’s local, I do not collect any user’s data information.

Give a symbolic download address:

Itunes.apple.com/cn/app/id14…

Well, without further ado, let’s get down to business!

Developing a decent app takes a lot of time

Of course, we all know that developing an application takes a lot of time. But when you’re the only one working for it, especially if you’re a full-time 996 office worker, it takes longer. When I first came up with the idea for this app, I thought it would take no more than two weekends to get it done, but it was easy to do in the time frame I had in mind.

However, although I do development (focus: back end), I have never done iOS development, and I want to write everything myself (try not to use third-party libraries). After all, it was also a learning experience and I wanted to learn as much as I could about iOS, Cocoa Touch and Swift.

So it took me four weekends, longer than I originally thought, and I underestimated how long it would take to make an app that I thought was just fine.

I started with the goal that once my App was released on the App Store, I was responsible for maintaining the App and making sure it was maintained and running properly. So when you have a super cool idea, make sure you’re willing to commit to it for the next year or two and keep it there.

The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time.

— Tom Cargill, Bell Labs

The challenge is that there are things that newcomers like me (I’m talking iOS development, after all, back-end development is my bread and butter) don’t fully understand (e.g., the iOS development process, Cocoa Touch, Swift).

Building your first application interface is fun

Before I started developing this application, I had no experience in creating iOS interfaces (also known as views). So, I spent a lot of time getting to know and learning about all the built-in UIKit views that Apple provides for us. When I run into problems, I usually go to the official forums to check out some online posts about views and some related issues on StackOverflow. From there, I quickly learned how to make the pages I wanted to build, and over the next weekend or so I built all the pages for the initial version.

All in all, I learned a lot of interesting things that CAN be done using custom UIViews, and it helped me think about how to create my applications differently. If you’ve never built a custom view, you can try it out.

I’m not good at design

Yes, I am not good at it, so I will as much as possible in accordance with the feel good custom page style, to achieve the effect, the application of interface state is in accordance with the feel good build, please pat 】 【 you have Suggestions or are interested in joining your little memorial 】 【 design ideas into practice, can contact me; But please believe that my design level will be better and better, after all, I am also very motivated!

Hey Siri, remind me when I have time to read more design related courses.

Plan, plan, plan

That’s probably the most important thing I’ve learned on this project. I was new to iOS development and I was learning as I went along, so I didn’t have everything planned out. I mean, I knew what I wanted to build but I didn’t know exactly what I wanted to build. Not a single product manager consulted with me. So one of the big mistakes I made in developing this application was that I started developing it when I wanted to do it and I didn’t have any plans, and I got a little rushed.

Planning is crucial because it helps you stay focused while also preventing your enthusiasm from fading. Obviously things change, and so do plans (after all, the old saying goes, “Plans don’t change”), but try to do a plan before you start, even if it’s just your Side Project. There are many online tools that make it easy to implement a simple plan. One of my favorites is Trello.

Push yourself to finish the plan

This is a problem I often encounter when developing this application. It’s easy to want to drop something I’ve been working on for a while and move on to something more interesting. One weekend, I didn’t get any development done and decided to do something else. Of course, it is important to keep a good balance between work and rest, but quitting should not be an option.

So, it makes sense to force yourself to finish, but that doesn’t mean you need to spend a day refactoring your entire codebase just because you’re unhappy with the way some of your code is named internally (which I did 😂); What makes sense is that you should add new features that you plan for the Trello board, or fix bugs that you found earlier.

As a developer, it’s easy to look at your code and be unhappy and want to make it better, but I don’t actually think you’ll ever be 100% happy with the code you write, there’s always a better way to make it better. The end users won’t know the difference, so it’s secondary at first, and should be left to updates and refactorings after the app is released.

You don’t know your app’s shortcomings any better than your users do

Seriously, if you have a chance to give your app a small trial run before you decide to go live, that’s great! As developers, we sometimes focus on smaller aspects of development and design. Your app may look fine to you, but when it reaches the user’s hands, it reveals a lot of problems. Some features don’t work well, some system versions crash, etc. At this point, you can’t write a bunch of tests to get all the details right, you’re alone!

If you don’t have a lot of friends or family who can help you Test your app, you can try Posting your app to Xcode Flight Test and Posting beta invitation links on certain social media platforms, asking people to help you Test your app. I invited over 20 people to do a playtest on “Little Memories”, and although not everyone gave me feedback, I also received a lot of valuable feedback, which helped me make “Little Memories” better.

Remember: Don’t be afraid of criticism.

Final thoughts

It was fun to invest in Little Memorials, although it was difficult and frustrating at times, and although the current application is not perfect, overall it was a good experience. I’ve learned a lot and hopefully other people can now enjoy what I’ve created. If you’re new to software development, sit down for a few days and try to learn to develop something.

Practice and improve your skills. It doesn’t have to be amazing or great, but learning is never bad. If you need more advice or want to participate in the development, design and translation of “Little Memorial”, please feel free to contact me!

Finally, thank you all. I will try my best to maintain it all the time. I hope you can give me more support!