Part one of my independent product development series
As a mobile developer, my greatest wish is, of course, to write an app and sit back while the money rolls in ( ͡° ͜ʖ ͡°).
What problems might you encounter when building an app on your own? I recently released an app of my own, and I want to share the problems I ran into and how I solved them.
1. Define the need
Everyone has a slightly different reason for wanting to build an independent app.
On a grand scale, you may see an urgent need whose solution could change the world, all you need is a programmer.
On a smaller scale, you may simply want to see your own app in the App Store. It could be an experiment with new technology: after iOS 8 introduced Today extensions, many distinctive apps based on them appeared. Or it could be a utility that removes an inconvenience in your life, such as a file management app or a weather app with thoughtful features.
Identify a need, however large or small. It gives you the motivation to keep going.
I built a file management app called “File Manager” in response to my wife's needs.
File Manager turns the phone into a server. Other devices on the same Wi-Fi network can manage its files through a browser: organize folders, copy and move files, and upload or download them.
After settling on this need, I spent roughly three months getting the project released. I learned some Swift along the way.
2. App prototypes and interactions
Once you have a need and a solution, you will probably have a rough picture of the prototype and how people will use it. The next step is to settle the actual screens and interactions.
I tried a few prototyping tools, then gave up on them.
I found that the time needed to learn a prototyping tool and lay out the screens would have been enough to build them with xib. I ended up solving my prototyping problem with hand-drawn sketches.
While making other products later, I realized that prototypes are necessary. Prototyping is really a process of organizing the logic and making it internally consistent.
3. What about all those little app icons?
With the prototype settled, I had a rough idea of the project's overall structure. Beyond the code, however, there was still a problem every independent developer has to face!
What should I do about all the little icons used throughout the project?
Here are a few icon libraries I have used:
- Alibaba's icon library → Complete sets of vector icons with freely adjustable colors and sizes, a generous resource. Commercial use still requires permission from the creator.
- icons8 → 56,500 free flat icons! There are icons for different platforms and even a Mac app.
- iconfinder → Also offers complete icon sets, with a more clearly commercial model.
4. Testing and beta testing
At a company, testers, product colleagues and other teammates help us improve the app. How can an independent developer find and prevent as many bugs as possible, as early as possible?
4.1 Testing it yourself
I now have to do the work I used to hand over to the testing team. Besides manual testing, we can also raise a testing monkey to help us test.
4.2 Recruiting beta testers
Building an independent app means wearing more hats than developer: product, operations, customer support and more. Promotion is also our own responsibility. Start with friends, classmates and family, and post on social networks: my app is almost ready, come help me try it out!
Beta users do more than find bugs. Their new requests and suggestions can make an even greater contribution to enriching and improving the app.
4.3 Distributing test builds
If obtaining beta testers' device identifiers is convenient, you can use a beta hosting platform such as Pgyer or fir.im. Device restrictions apply.
If device identifiers are difficult to obtain, you can use Apple's TestFlight, opened up after iOS 8, with up to 10,000 beta testing places.
5. App Store screenshots
Why give release screenshots their own section? Independent developers have relatively few promotion channels. The screenshots and description on our App Store product page are the app's entrance and shopfront.
If those screenshots look poor, we may lose a visitor who has just discovered the app.
At a company, UI designers and product colleagues help produce the screenshots. Working alone, how do we obtain screenshots in the right sizes?
5.1 Screenshots in the simulator
You can capture app screens directly in the simulator, though the result may look a little rough.
5.2 A little polish
I recommend a free website called shotbot. Upload your materials and it produces a complete set of consistently formatted product screenshots.
Note, 2022-04-11: I later wrote a Mac app specifically to make screenshots for my own App Store releases.
6. Other resources I used
When working on particular interactions and designs, third-party tools and ready-made icons will sometimes fall short of what you want.
Then edit the images yourself!
Of course, most developers are not particularly skilled with Photoshop, and some have never used it. What can we do?
Here are two websites: Online PS and Meitu's web editor
You can make simple image edits in the browser without downloading heavyweight Adobe software. That is good news for those of us who are not very good at Photoshop.
Beyond image editing, the app icon itself can also be a headache. Another website I recommend is MakeIcon: upload a 1024×1024 logo and it automatically generates all the other icon sizes. It even supports iMessage on iOS 10.
7. Closing thoughts
I finished development using existing resources without a UI designer's help. If you have a designer, feel free to show yourself out  ̄ヘ ̄.
I had wanted to make my own app for a long time. I only properly started recently, after sorting out what I needed. Most importantly, I finally had a clear need to address, and learned some Swift along the way.
During development I even went a week writing hardly any code. I realized that, when making an independent app, the need is what really keeps you going. Its size does not matter; solving a problem does.
As development progressed, the requirements grew: AirDrop sharing, iCloud integration and ShareExtension development were still unfinished. Keep going and iterate a little at a time! ʘʚʘ (I am definitely not admitting that my original reason for making this app was to share my “collection.avi” across my PC, phone and iPad.)
Here is the link to my app: The simplest way to manage files, File Manager
Note, 2022-04-11: The app can no longer be found in search. Without a good way to monetize it, I sold it to an outsourcing company. The sale prompted a lot of reflection; the next article goes into more detail.
The original article was published on Jianshu. My Jianshu account was later compromised, and my other articles kept being blocked. I am now migrating all my blog posts to github.io.