Part two of my independent product development series

The previous article described resources for defining a need, developing an independent app and releasing it, from an iOS developer's perspective. With limited resources, I could only complete utility apps available in Apple's App Store.

This article looks at developing a fully featured product across platforms, the problems we encounter and their solutions. I will share how I gradually built a complete product ecosystem of a WeChat official account, mini program and app.

1. Product goals

Broadly speaking, a product goal is the value a product delivers. Even when a use case exists, a product without value, one that cannot earn money and has very few users, has little reason to exist.

Or we could start even more broadly, with the product vision…

Stop there. Do not think about all of that yet, or your product may never get beyond your endless imagining.

When resources, people and investment are limited, our goal becomes clear: what problems should the product solve, or what functions must it provide?

For example, when I built File Manager, the MVP had a clear goal: transfer files between a phone and a computer.

Completing the MVP naturally led to other requirements. Some came from my product plans, but more came from user feedback:

  • 1.0.0 Transfer files between phone and computer
  • 1.1.0 Preview or play image, video and audio files
  • 1.2.0 Group, move, delete, compress and share files
  • 1.3.0 Improve the player
  • 1.4.0 Add security verification: gesture passcodes and biometrics
  • 2.0.0 Add in-app purchases
  • 2.1.0 Add document scanning
  • …

Original File Manager screenshot: file browsing and management features

Original File Manager screenshot: additional file tools and interface

Choose a goal. It need not be large, but it must be actionable. Focus on one thing at a time and keep going even if it seems wrong, how can you know without finishing it ◔ ‸◔? Finish, then review.

2. Product prototypes

In the previous article, I mentioned trying many prototyping tools and concluding that I could have built the screens with xib in the time it took to design the prototype.

Let me contradict myself here ,,Ծ‸Ծ,,

It is understandable to think this way when making a personal utility app with no follow-up plan and only the aim of finishing and releasing it.

As the product evolves, proceeding one step at a time without a prototype or plan will cause serious problems for future development. Designing a prototype is really a process of organizing the product's logic.

Here are some prototyping tools. The one I currently use most is MockingBot.

3. Project management

After independently developing and releasing an iOS app, I noticed a serious problem: I had no concept of project management. I worked when I had time or remembered, and did nothing when I felt lazy.

It was my own product, designed and developed by me. The MVP probably had no paying users, so I did not feel accountable to them.

This seriously slows a project down. Working without a plan for too long can even kill it.

After several years of managing iterations at work, I found that project management tools also work well for personal projects. Once we have clear product goals and a logically consistent prototype, breaking the work into tasks follows naturally.

I use coding.net for project management; it can also host source code.

Original project management screenshot: work broken into individual tasks

Split tasks into units measured in hours. This makes them easier to manage and helps with writing test cases. My current habit is to finish the test cases before coding. This is essential.

A prototype organizes the product logic; test cases organize implementation details. Complete test cases guide us toward correct business logic ✅ and prevent many business errors ❌.

4. Choosing technology

So far, all of this has been preparation; we have not begun development. The key difficulty is that I am the only developer, yet I want to build the complete ecosystem of a WeChat official account, mini program and app.

We would need skills in mini programs, iOS and Android. Learning a programming language is not that hard, but implementing the same business logic three times costs three times the effort. That is clearly unrealistic.

Normally we might use the web to serve multiple platforms, or even abandon the app and focus on an official account plus a mini program. During the early stage, when product needs require rapid validation, this is a very reasonable approach.

A little searching reveals many cross-platform technologies. To build an app and a mini program with one codebase across three platforms, we can use Uni-App. It uses the Vue.js frontend framework, with iOS and Android supported through Weex.

It is sufficient for personal products or small commercial products.

5. Data management

With the mini program and app approach settled, another crucial question remains: where should the data live?

For a utility, storing data locally in the app is enough. But what if the goal is an information platform with a complete user system, or even a more complex user-generated-content community?

Uni-App offers its own uniCloud service. Server development can be done in JavaScript, and mini programs and apps can use the server without a domain name.

I chose a different approach: hosting the data on the serverless platform LeanCloud. The mini program and app access the hosted database through LeanCloud's JavaScript SDK.

Its development tier supports 30,000 free API requests per day and also provides SMS services. This is enough to build a user system, upload user data and retrieve platform data.

When requests exceed the development quota, your product has gained a certain scale of users. I believe the revenue from that traffic should then cover the commercial pay-as-you-go tier.

A cheeky way to source data

What if you want to build a weather or information app but have no weather or news data?

There are many API marketplaces in China, including:

Alibaba Cloud API Marketplace

Tencent Cloud API Marketplace

Baidu Cloud API Marketplace

Juhe Data

EastApi

and others.

These marketplaces offer both paid and free APIs.

  • If your product has a good way to monetize traffic, consider paid APIs.

  • If it does not, consider using the free allowances. But a trial of 100 requests can disappear during testing. What then?

You can combine the LeanCloud serverless database with an API marketplace. For daily weather, for example, query the database first. If the data is missing, request it from the marketplace and then store it in the database.

But what if 100 requests still cannot cover every city? Keep the freebie spirit alive and apply to several platforms.

6. Launch and operations

At this point, we have finished developing the mini program, app and server. How do we launch?

Mini programs are relatively straightforward: on the WeChat Official Accounts Platform, follow the instructions to apply for a mini program.

Releasing on iOS requires a paid developer account. That is a barrier, but for long-term operation I recommend applying on Apple's developer website. Applying is now straightforward: download the Developer app on an iPhone and pay there.

For Android distribution, you need software copyright registration. A normal application may take 1-2 months, or you can pay a third-party agent to handle it.

Continuing the freebie spirit: where can we store images, audio and video for the promotional placements in the app and mini program?

The official account's media library can solve this problem. Store images, audio and video there, obtain their original URLs, and the app and mini program can access them.

7. Earning revenue

One simple way to monetize traffic is advertising.

However, platforms' eligibility requirements for publishers keep increasing, making ad integration difficult for independent developers.

  • Uni-App offers one-click integration; see its documentation.

  • Once an official account has built an audience, it can enable ad placements within articles.

  • A mini program can enable publisher monetization after reaching 1,000 unique visitors.

8. Closing thoughts

We have now completed the ecosystem of a WeChat official account, mini program and app described at the start.

Following these steps, I completed this process for three products. Scan the codes to try them:

Original historical product QR codes; availability may have changed