Δεύτερο μέρος της σειράς μου για την ανάπτυξη ανεξάρτητων προϊόντων

Το προηγούμενο άρθρο περιέγραψε πόρους για τον καθορισμό μιας ανάγκης, την ανάπτυξη ανεξάρτητης εφαρμογής και την κυκλοφορία της, από τη σκοπιά ενός προγραμματιστή iOS. Με περιορισμένους πόρους μπορούσα να ολοκληρώσω μόνο εφαρμογές βοηθημάτων διαθέσιμες στο App Store της Apple.

Αυτό το άρθρο εξετάζει την ανάπτυξη ενός πλήρους προϊόντος σε πολλές πλατφόρμες, τα προβλήματα που συναντάμε και τις λύσεις τους. Θα περιγράψω πώς έχτισα σταδιακά ένα πλήρες οικοσύστημα προϊόντος με επίσημο λογαριασμό WeChat, μίνι πρόγραμμα και εφαρμογή.

1. Στόχοι προϊόντος

Σε γενικές γραμμές, ο στόχος ενός προϊόντος είναι η αξία που προσφέρει. Ακόμη και όταν υπάρχει περίπτωση χρήσης, ένα προϊόν χωρίς αξία, που δεν αποφέρει κέρδος και έχει ελάχιστους χρήστες, δεν έχει ιδιαίτερο λόγο ύπαρξης.

Ή μπορούμε να ξεκινήσουμε ακόμη πιο γενικά, από το όραμα του προϊόντος…

Σταματήστε εδώ. Μη σκέφτεστε ακόμη όλα αυτά, αλλιώς το προϊόν ίσως δεν ξεφύγει ποτέ από την ατελείωτη φαντασία σας.

Όταν οι πόροι, οι άνθρωποι και οι επενδύσεις είναι περιορισμένοι, ο στόχος γίνεται σαφής: ποια προβλήματα πρέπει να λύσει το προϊόν ή ποιες λειτουργίες πρέπει να παρέχει;

Για παράδειγμα, όταν έφτιαχνα τον Διαχειριστή αρχείων, το MVP είχε σαφή στόχο: μεταφορά αρχείων μεταξύ τηλεφώνου και υπολογιστή.

Η ολοκλήρωση του MVP έφερε φυσικά άλλες απαιτήσεις. Κάποιες προήλθαν από τα σχέδιά μου, αλλά περισσότερες από τα σχόλια των χρηστών:

  • 1.0.0 Μεταφορά αρχείων μεταξύ τηλεφώνου και υπολογιστή
  • 1.1.0 Προεπισκόπηση ή αναπαραγωγή αρχείων εικόνας, βίντεο και ήχου
  • 1.2.0 Ομαδοποίηση, μετακίνηση, διαγραφή, συμπίεση και κοινή χρήση αρχείων
  • 1.3.0 Βελτίωση του προγράμματος αναπαραγωγής
  • 1.4.0 Προσθήκη ελέγχου ασφαλείας: κωδικοί μοτίβου χειρονομιών και βιομετρικός έλεγχος
  • 2.0.0 Προσθήκη αγορών εντός εφαρμογής
  • 2.1.0 Προσθήκη σάρωσης εγγράφων
  • …

Αρχικό στιγμιότυπο του Διαχειριστή αρχείων: περιήγηση και διαχείριση αρχείων

Αρχικό στιγμιότυπο του Διαχειριστή αρχείων: επιπλέον εργαλεία και διεπαφή

Επιλέξτε έναν στόχο. Δεν χρειάζεται να είναι μεγάλος, αλλά πρέπει να είναι υλοποιήσιμος. Εστιάστε σε ένα πράγμα κάθε φορά και συνεχίστε ακόμη κι αν φαίνεται λάθος — πώς θα ξέρετε χωρίς να το ολοκληρώσετε ◔ ‸◔; Ολοκληρώστε και μετά αξιολογήστε.

2. Πρωτότυπα προϊόντος

Στο προηγούμενο άρθρο ανέφερα ότι δοκίμασα πολλά εργαλεία πρωτοτυποποίησης και κατέληξα πως θα μπορούσα να έχω φτιάξει τις οθόνες με xib στον χρόνο που χρειάστηκε για τον σχεδιασμό του πρωτοτύπου.

Ας διαφωνήσω εδώ με τον εαυτό μου ,,Ծ‸Ծ,,

Αυτή η σκέψη είναι κατανοητή όταν φτιάχνετε ένα προσωπικό βοήθημα χωρίς μελλοντικό σχέδιο, με μοναδικό στόχο να το τελειώσετε και να το κυκλοφορήσετε.

Όσο το προϊόν εξελίσσεται, η πορεία βήμα προς βήμα χωρίς πρωτότυπο ή σχέδιο θα προκαλέσει σοβαρά προβλήματα στη μελλοντική ανάπτυξη. Ο σχεδιασμός πρωτοτύπου είναι ουσιαστικά η οργάνωση της λογικής του προϊόντος.

Ακολουθούν μερικά εργαλεία πρωτοτυποποίησης. Αυτό που χρησιμοποιώ περισσότερο τώρα είναι το MockingBot.

3. Διαχείριση έργου

Μετά την ανεξάρτητη ανάπτυξη και κυκλοφορία μιας εφαρμογής iOS, παρατήρησα ένα σοβαρό πρόβλημα: δεν είχα καμία αντίληψη διαχείρισης έργου. Δούλευα όταν είχα χρόνο ή το θυμόμουν και δεν έκανα τίποτα όταν βαριόμουν.

Ήταν δικό μου προϊόν, σχεδιασμένο και ανεπτυγμένο από εμένα. Το MVP πιθανότατα δεν είχε χρήστες που πλήρωναν, οπότε δεν ένιωθα υπόλογος απέναντί τους.

Αυτό καθυστερεί σοβαρά ένα έργο. Η παρατεταμένη δουλειά χωρίς σχέδιο μπορεί ακόμη και να το καταστρέψει.

Μετά από αρκετά χρόνια διαχείρισης επαναληπτικών εκδόσεων στη δουλειά, διαπίστωσα ότι τα εργαλεία διαχείρισης έργων λειτουργούν και σε προσωπικά έργα. Όταν έχουμε σαφείς στόχους προϊόντος και λογικά συνεπές πρωτότυπο, ο διαχωρισμός της δουλειάς σε εργασίες έρχεται φυσικά.

Χρησιμοποιώ το coding.net για τη διαχείριση έργου· μπορεί επίσης να φιλοξενεί πηγαίο κώδικα.

Αρχικό στιγμιότυπο διαχείρισης έργου: δουλειά χωρισμένη σε επιμέρους εργασίες

Χωρίστε τις εργασίες σε μονάδες που μετριούνται σε ώρες. Αυτό διευκολύνει τη διαχείριση και τη συγγραφή περιπτώσεων δοκιμής. Η τωρινή μου συνήθεια είναι να τελειώνω τις περιπτώσεις δοκιμής πριν τον κώδικα. Αυτό είναι απαραίτητο.

Το πρωτότυπο οργανώνει τη λογική του προϊόντος· οι περιπτώσεις δοκιμής οργανώνουν τις λεπτομέρειες υλοποίησης. Οι πλήρεις περιπτώσεις δοκιμής μάς οδηγούν στη σωστή επιχειρησιακή λογική ✅ και αποτρέπουν πολλά επιχειρησιακά σφάλματα ❌.

4. Επιλογή τεχνολογίας

Μέχρι εδώ όλα ήταν προετοιμασία· δεν έχουμε ξεκινήσει την ανάπτυξη. Η βασική δυσκολία είναι ότι είμαι ο μόνος προγραμματιστής, αλλά θέλω να χτίσω το πλήρες οικοσύστημα επίσημου λογαριασμού WeChat, μίνι προγράμματος και εφαρμογής.

Θα χρειαζόμασταν δεξιότητες σε μίνι προγράμματα, iOS και Android. Η εκμάθηση μιας γλώσσας προγραμματισμού δεν είναι τόσο δύσκολη, αλλά η υλοποίηση της ίδιας επιχειρησιακής λογικής τρεις φορές κοστίζει τριπλάσια προσπάθεια. Αυτό είναι ξεκάθαρα μη ρεαλιστικό.

Συνήθως θα μπορούσαμε να χρησιμοποιήσουμε τον ιστό για πολλές πλατφόρμες ή ακόμη και να εγκαταλείψουμε την εφαρμογή και να εστιάσουμε σε επίσημο λογαριασμό και μίνι πρόγραμμα. Στο αρχικό στάδιο, όταν οι ανάγκες του προϊόντος χρειάζονται γρήγορη επικύρωση, αυτή είναι πολύ λογική προσέγγιση.

Μια σύντομη αναζήτηση αποκαλύπτει πολλές τεχνολογίες πολλαπλών πλατφορμών. Για εφαρμογή και μίνι πρόγραμμα με μία βάση κώδικα σε τρεις πλατφόρμες, μπορούμε να χρησιμοποιήσουμε το Uni-App. Χρησιμοποιεί το πλαίσιο frontend Vue.js, με υποστήριξη iOS και Android μέσω του Weex.

Είναι αρκετό για προσωπικά ή μικρά εμπορικά προϊόντα.

5. Διαχείριση δεδομένων

Με την προσέγγιση για το μίνι πρόγραμμα και την εφαρμογή καθορισμένη, μένει ένα κρίσιμο ερώτημα: πού θα αποθηκεύονται τα δεδομένα;

Για ένα βοήθημα αρκεί η τοπική αποθήκευση στην εφαρμογή. Τι γίνεται όμως αν ο στόχος είναι μια πλατφόρμα πληροφοριών με πλήρες σύστημα χρηστών ή ακόμη και μια πιο σύνθετη κοινότητα με περιεχόμενο χρηστών;

Το Uni-App προσφέρει τη δική του υπηρεσία uniCloud. Η ανάπτυξη του διακομιστή μπορεί να γίνει σε JavaScript και τα μίνι προγράμματα και οι εφαρμογές μπορούν να τον χρησιμοποιούν χωρίς όνομα τομέα.

Επέλεξα άλλη προσέγγιση: φιλοξενία δεδομένων στην πλατφόρμα serverless LeanCloud. Το μίνι πρόγραμμα και η εφαρμογή αποκτούν πρόσβαση στη φιλοξενούμενη βάση μέσω του JavaScript SDK του LeanCloud.

Το πακέτο ανάπτυξης υποστηρίζει 30.000 δωρεάν αιτήματα API την ημέρα και παρέχει επίσης υπηρεσίες SMS. Αρκεί για σύστημα χρηστών, μεταφόρτωση δεδομένων χρηστών και ανάκτηση δεδομένων της πλατφόρμας.

Όταν τα αιτήματα ξεπεράσουν το όριο ανάπτυξης, το προϊόν έχει αποκτήσει κάποια κλίμακα χρηστών. Πιστεύω ότι τα έσοδα από αυτή την κίνηση θα αρκούν τότε για το εμπορικό πακέτο χρέωσης ανά χρήση.

Ένας πονηρός τρόπος εύρεσης δεδομένων

Τι γίνεται αν θέλετε να φτιάξετε εφαρμογή καιρού ή πληροφοριών, αλλά δεν έχετε δεδομένα καιρού ή ειδήσεων;

Υπάρχουν πολλές αγορές API στην Κίνα, όπως:

Alibaba Cloud API Marketplace

Tencent Cloud API Marketplace

Baidu Cloud API Marketplace

Juhe Data

EastApi

και άλλες.

Αυτές οι αγορές προσφέρουν επί πληρωμή και δωρεάν API.

  • Αν το προϊόν σας έχει καλό τρόπο δημιουργίας εσόδων από την κίνηση, εξετάστε τα επί πληρωμή API.

  • Αν όχι, εξετάστε τα δωρεάν όρια. Όμως μια δοκιμή 100 αιτημάτων μπορεί να εξαντληθεί ήδη κατά τις δοκιμές. Τι κάνουμε τότε;

Μπορείτε να συνδυάσετε τη βάση serverless LeanCloud με μια αγορά API. Για τον καθημερινό καιρό, για παράδειγμα, ελέγξτε πρώτα τη βάση. Αν λείπουν τα δεδομένα, ζητήστε τα από την αγορά και μετά αποθηκεύστε τα στη βάση.

Κι αν τα 100 αιτήματα πάλι δεν καλύπτουν όλες τις πόλεις; Κρατήστε το πνεύμα των δωρεάν λύσεων και κάντε αίτηση σε πολλές πλατφόρμες.

6. Κυκλοφορία και λειτουργία

Σε αυτό το σημείο ολοκληρώσαμε την ανάπτυξη του μίνι προγράμματος, της εφαρμογής και του διακομιστή. Πώς τα κυκλοφορούμε;

Τα μίνι προγράμματα είναι σχετικά απλά: στην Πλατφόρμα επίσημων λογαριασμών WeChat ακολουθήστε τις οδηγίες για αίτηση μίνι προγράμματος.

Η κυκλοφορία στο iOS απαιτεί πληρωμένο λογαριασμό προγραμματιστή. Είναι εμπόδιο, αλλά για μακροχρόνια λειτουργία προτείνω να κάνετε αίτηση στον ιστότοπο προγραμματιστών της Apple. Τώρα είναι απλό: κατεβάστε την εφαρμογή Developer σε iPhone και πληρώστε εκεί.

Για διανομή στο Android χρειάζεται καταχώριση πνευματικών δικαιωμάτων λογισμικού. Μια κανονική αίτηση μπορεί να χρειαστεί 1–2 μήνες, ή μπορείτε να πληρώσετε έναν εξωτερικό μεσάζοντα να την αναλάβει.

Συνεχίζοντας με τις δωρεάν λύσεις: πού μπορούμε να αποθηκεύουμε εικόνες, ήχο και βίντεο για τις θέσεις προώθησης στην εφαρμογή και στο μίνι πρόγραμμα;

Η βιβλιοθήκη πολυμέσων του επίσημου λογαριασμού μπορεί να λύσει το πρόβλημα. Αποθηκεύστε εκεί εικόνες, ήχο και βίντεο, πάρτε τις αρχικές διευθύνσεις URL και η εφαρμογή και το μίνι πρόγραμμα μπορούν να τα προσπελάσουν.

7. Δημιουργία εσόδων

Ένας απλός τρόπος δημιουργίας εσόδων από την κίνηση είναι η διαφήμιση.

Όμως οι απαιτήσεις ένταξης των πλατφορμών για εκδότες αυξάνονται συνεχώς, κάνοντας δύσκολη την ενσωμάτωση διαφημίσεων για ανεξάρτητους προγραμματιστές.

  • Το Uni-App προσφέρει ενσωμάτωση με ένα κλικ· δείτε την τεκμηρίωση.

  • Όταν ένας επίσημος λογαριασμός αποκτήσει κοινό, μπορεί να ενεργοποιήσει διαφημιστικές θέσεις μέσα στα άρθρα.

  • Ένα μίνι πρόγραμμα μπορεί να ενεργοποιήσει έσοδα εκδότη όταν φτάσει τους 1.000 μοναδικούς επισκέπτες.

8. Τελικές σκέψεις

Ολοκληρώσαμε πλέον το οικοσύστημα επίσημου λογαριασμού WeChat, μίνι προγράμματος και εφαρμογής που περιγράφηκε στην αρχή.

Ακολουθώντας αυτά τα βήματα, ολοκλήρωσα τη διαδικασία για τρία προϊόντα. Σαρώστε τους κωδικούς για να τα δοκιμάσετε:

Αρχικοί ιστορικοί κωδικοί QR προϊόντων· η διαθεσιμότητα μπορεί να έχει αλλάξει