Colodaily: bản làm quá tay vẫn đang phát hành
Colodaily bắt đầu từ một cuốn sách gợi ý vẽ mỗi ngày và câu hỏi liệu tôi có thể tự xây một ứng dụng hay không. Tôi học React Native cùng Expo trên đường đi, rồi biến phiên bản đầu thành thứ lớn hơn hẳn lời hứa ban đầu.
Phiên bản Colodaily hiện có trên App Store không phải phiên bản tôi muốn giữ. Tôi biết chính xác nó sai ở đâu, đã hoàn thành một bản tốt hơn trên máy, nhưng chưa tải bản đó lên. Đây là một điều lạ khi thừa nhận công khai, nên bài viết này là lời giải thích.
Đó là ứng dụng đầu tiên của tôi. Mọi sai lầm đều là lần đầu tiên tôi được mắc nó.
Mọi thứ bắt đầu từ một cuốn sách vẽ
How to Draw Almost Every Day của Kamo gồm những gợi ý vẽ nhỏ—mỗi ngày một gợi ý, đủ đơn giản để ngay cả người tin rằng mình không biết vẽ vẫn hoàn thành được.
Điều cuốn hút tôi không phải hình vẽ mà là cấu trúc. Một gợi ý mỗi ngày loại bỏ phần khó nhất: quyết định sẽ vẽ gì. Ta không cần tài năng để bắt đầu; chỉ cần một gợi ý và lý do quay lại vào ngày mai.
Cuốn sách đưa ra gợi ý, nhưng không thể báo rằng bạn đã xuất hiện mười một ngày liên tiếp. Khoảng trống đó chính là ứng dụng.
Tôi chưa biết cách xây một ứng dụng
Khi ấy tôi chưa từng đưa gì lên App Store. Tôi chọn React Native và Expo vì đó là con đường ngắn nhất từ con số không đến một thứ chạy được trên điện thoại, rồi học mọi thứ từ đầu: điều hướng, thao tác chạm, khung vẽ, lưu trữ trên máy, tạo bản dựng và cập nhật qua mạng.
Tôi viết toàn bộ dự án trong Cursor. Công cụ này giúp những phần xa lạ trở nên chịu đựng được: tôi có thể hỏi vì sao bản dựng lỗi thay vì mất cả tối. Nhưng nó không thể nói rằng tôi đang xây nhầm thứ—và đó mới là sai lầm của câu chuyện này.
Cái bẫy: khi viết mã không còn là nút thắt, ta viết nhiều mã hơn và tưởng đó là tốc độ. Không thể gọi là nhanh nếu đoạn mã ấy tạo ra tính năng chẳng ai cần.
Tôi làm quá tay theo cả hai nghĩa
Quá tay về kỹ thuật là kiểu ai cũng cảnh báo: lớp trừu tượng cho trường hợp chưa từng đến, quản lý trạng thái phức tạp cho một màn hình nhỏ, cấu trúc dành cho ứng dụng lớn gấp mười lần thực tế.
Quá tay về sản phẩm nguy hiểm hơn nhưng ít được nhắc tới. Đó là thêm tính năng vì mình có thể, không phải vì người dùng cần: phần cài đặt không ai mở, cách thứ hai cho việc vốn đã có một cách, chiều sâu dư thừa trong sản phẩm chỉ hứa một điều—hôm nay vẽ một thứ nhỏ thôi.
Quá tay về kỹ thuật lấy mất thời gian; quá tay về sản phẩm lấy mất chính sản phẩm. Ứng dụng vẽ cho người nghĩ mình không biết vẽ cần giống một cái huých nhẹ. Bản của tôi lại giống một bộ công cụ, mà công cụ dễ khiến người mới e ngại—đúng nỗi sợ ứng dụng được tạo ra để xóa bỏ.
Phát hành dạy tôi những điều việc xây dựng không dạy
- App Store Connect. Mã nhận diện ứng dụng, cấp quyền, khai báo quyền riêng tư, phân loại độ tuổi và ghi chú xét duyệt.
- Ảnh chụp màn hình. Mỗi kích thước thiết bị cần bố cục và chú thích riêng.
- Quảng cáo. Kết nối quảng cáo Google cùng tệp
app-ads.txtphải đặt trên tên miền riêng để được xác minh. - Nội dung trang ứng dụng. Tiêu đề, phụ đề và mô tả phải thuyết phục trong vài giây người dùng dừng lại.
Tôi từng viết rằng mười phần trăm cuối chiếm bốn mươi phần trăm thời gian. Tôi học điều đó ở đây. Lume Flow chỉ đi suôn sẻ vì Colodaily đã đi vấp trước.
Phiên bản thứ hai mới là thứ tôi thực sự muốn
Tôi xây lại quanh điều đã khiến cuốn sách hiệu quả. Bản mới dễ thương hơn, chỉ thêm động lực ở những nơi cần thiết—chuỗi ngày, cột mốc, lịch dần được lấp đầy—và ít giống một bộ công cụ hơn. Ít sản phẩm phô trương, nhiều cái huých nhẹ.
Nó đã hoàn thành. Nhưng nó vẫn chưa có trên App Store.
Vì sao bản đã xong vẫn nằm trên máy
Vì tôi đang xây Lume Flow, và chỉ có thể làm tốt một việc tại một thời điểm. Phát hành cập nhật không kết thúc công việc; nó mở ra một công việc khác gồm đánh giá, báo lỗi, số liệu cửa hàng và thư hỗ trợ.
Làm dở hai ứng dụng cùng lúc còn tệ hơn làm tốt một ứng dụng. Colodaily không bị bỏ rơi; nó đang xếp hàng sau Lume Flow. Giới hạn ở đây không phải tham vọng mà là sự chú ý.
Điều tôi muốn nói với mình vào ngày đầu
- Hãy phát hành phiên bản trung thực nhỏ nhất. Với Colodaily, đó là một gợi ý, một khung vẽ và một chuỗi ngày.
- Quá tay về sản phẩm là sai lầm đắt hơn. Kiến trúc tệ làm ta chậm; tính năng thừa thay đổi bản chất sản phẩm.
- Học về cửa hàng trước khi ứng dụng hoàn thành. Phần không phải mã nguồn không phải việc hành chính; nó là nửa còn lại của công việc.
- Ứng dụng đầu tiên là học phí. Colodaily dạy tôi Expo, App Store Connect, ảnh giới thiệu và quảng cáo. Tôi trả bằng một phiên bản mình chưa tự hào, và cái giá ấy công bằng.
Bản làm quá tay vẫn đang được phát hành, và tôi đã chấp nhận điều đó. Nó là hồ sơ trung thực về những gì tôi chưa biết khi ấy. Bản tốt hơn sẽ lên khi tôi có thể dành cho nó sự chú ý xứng đáng, không phải phần chú ý còn sót lại.
Viết bởi Roach
Tôi là một kỹ sư sản phẩm thích tạo ra những thứ hữu ích và kể lại câu chuyện đằng sau cách chúng được xây dựng.