Đây là điều tôi học được sau 8 tháng xây dựng một ứng dụng
Mở đầu
Dự định xây dựng Elite Condos có từ trước khi mình bắt đầu học IOS. Đây có thể coi là app theo mình xuyên suốt quá trình tự học IOS đến hiện giờ, khoảng 8 tháng luôn đó nha. Mình đã đập bỏ và build lại 2 lần và cũng có nhiều điều muốn chia sẻ với bạn.
Sắp tới mình dự định sẽ đưa project này vào khóa học IOS One for All sắp tới. Mọi người cùng xem qua tính năng của nó cũng như điều mình học được từ nó nhé!
Giới thiệu
Elite Condos là ứng dụng dạng Uber for Home Services - giúp kết nối chủ căn hộ với các nhà cung cấp dịch vụ nhà ở ( như sửa nước, điện, nội thất,vv )
Có 2 app là Elite Condos và Elite Condos Supplier.
Link download tại đây:
Elite Condos:
https://itunes.apple.com/app/id1221853492
và Elite Condos Supplier:
https://itunes.apple.com/us/app/elite-condos-supplier/id1227582001?mt=8
Elite Condos
Đăng ký
Đăng nhập
Quên mật khẩu
Thông tin khách hàng
Đặt lịch
Chọn nhà cung cấp khi đặt lịch
Quản lý đơn hàng, xem trạng thái của đơn hàng
Hủy đơn hàng
Xác nhận thanh toán
Review nhà cung cấp sau khi xử dụng
Một số hình ảnh từ app:
Elite Condos Supplier
Đăng ký
Đăng nhập
Quên mật khẩu
Thông tin nhà cung cấp
Chọn các dịch vụ cung cấp
Nhận đơn hàng
Từ chối đơn hàng
Quản lý đơn hàng
Gửi báo giá
Xem review từ khách hàng
Bài học rút ra
Ý tưởng từ đâu, làm gì bây giờ?
Ý tưởng khá rẻ, ai cũng nghĩ được. Tuy nhiên bắt đầu với một ý tưởng tồi sẽ dẫn đến ngõ cụt, đó là điều hiển nhiên. Mình thấy nhiều bạn vẫn đang “bí” trong việc tìm ý tưởng đế thực hiện.
Thông thường ý tưởng xuất phát từ chính khó khăn mà bản thân mình đang mắc phải. Như Mark Zuckerberg học tâm lý học, anh biết mọi người nhiều chuyện, thích theo dõi trạng thái, hoạt động của người khác, vì thế Facebook ra đời. Brian Chesky không đủ tiền để thuê phòng vì thế AirBnb ra đời.
Những ý tưởng xuất phát từ chính nỗi đau của bạn, có nghĩa là nhiều người khác cũng gặp vấn đề tương tự. Người ta sẽ gọi ý tưởng đó là thực tiễn, có khả thi.
Vậy nếu bạn chưa tìm được ý tưởng, chưa thấy mình đang có vấn đề gì hết thì phải làm sao?
Đơn giản và hiệu quả nhất là tìm một cofounder đang gặp vấn đề ở các lĩnh vực khác để hợp tác. Có thể bạn chưa biết nhưng xã hội còn rất nhiều vấn đề, nhiều bài toán chưa có lời giải.
Vậy tại sao không hợp tác nhau để giải quyết vấn đề. Như ứng dụng Elite Condos này mình hợp tác với một anh làm trong lĩnh vực nhà ở vì thế sẽ hiểu nghiệp vụ hơn.
Còn nhiều thứ phải nghĩ hơn code
Ngay từ lúc đầu, mình đã lao vào code liền. Sau đó sửa tới sửa lui, app bắt đầu phức tạp thì rối hết lên. Vài tuần không code nhìn lại thì phải mất vài tiếng để hiểu code mình viết. Đây là những điều mình rút ra:
Nên comment code của chính mình, đặc biệt là những phần mới học, mới tiếp cận. Có thể lúc bạn code bạn hiểu nhưng xem lại thì bó tay.
Nên quan tâm đến những thứ ít thay đổi như kiến trúc phần mềm, design patterns. Ngôn ngữ, framework có thể thay đổi liên tục nhưng kiến trúc phần mềm, design patterns hầu như giống nhau ở mọi ngôn ngữ, framework, chỉ khác cách cài đặt.
Nên học những kiến thức bạn có thể làm và đưa ngay vào project được. Ví dụ mình mới học về protocol, delegate, mình đưa ngay vào project liền. Hay lúc mới học đa tiến trình multithreading, mình cũng áp dụng GCD vào project. Biển học bao la, nếu không làm, không thực hành thì sẽ quên ngay. Ví dụ Core Data mình cũng có học qua nhưng không đưa vào project làm, nên đã quên gần hết.
Refactor code rất quan trọng. Cứ mỗi khi thấy code bị trùng lặp, 2 class xài chung nhiều hàm thì hãy refactor code lại để dễ đọc, dễ phát triển hơn.
Nên tập trung vào một nền tảng trước. Elite Condos này mình hoàn toàn dùng Firebase làm backend. Nếu tự viết backend sẽ tốn thời gian học thêm nhiều thứ khác, có lẽ mùa quýt năm sau cũng chưa xong mất.
Tổng kết
Hai năm trước (năm nhất), mình giành gần 4 tháng để nghiên cứu cross platform ConfigureIT đề làm ứng dụng Gia Sư Việt. Một năm sau, mình mất gấp đôi thời gian để hoàn thành 2 app Elite Condos và Elite Condos Supplier này.
App mình viết rất nhiều bug, tính năng chưa có gì đặc sắc, nhưng một điều mình chắc chắn đó là:
"hard works pay off". Có thể với app này mình không kiếm được nhiều tiền, nhưng nó đem lại nhiều kinh nghiệm, cơ hội khác.