Việc chuẩn bị những thành phần cần thiết để bắt đầu 1 project ảnh hưởng rất nhiều đến hiệu suất công việc sau này. Đơn cử như việc phân chia môi trường phát triển app thành Develop với Release. Nhiều bạn mới bước vào lập trình ios thì cứ giữ nguyên mặc định như lúc khởi tạo và code dùng môi trường lập trình là dev (ví dụ dùng api của server dev, ID quảng cáo của dev..). Đến khi dự án gần hoàn thiện, phải thủ công thay đổi toàn bộ các url của dev sang dùng url của production. Nhiều khi bạn sẽ quên đổi url này lúc test và khi đó chỉ có ngồi khóc mếu vì sao app chạy không như mong muốn. Hồi đầu mới bước vào lập trình iOS mình đã từng gặp vấn đề này rồi nên mình hiểu tầm quan trọng của việc chuẩn bị thật tốt để bắt đầu 1 dự án. Nay mình sẽ liệt kê những cài đặt cơ bản mình hay áp dụng, dù nó có thể là bình thường đối với các bạn đã pro nhưng mình nghĩ nó sẽ hữu ích với các bạn mới bắt đầu.
1. Thêm git và các thành phần liên quan đến quản lý code
- Khởi tạo git: git init
- Tạo thùng chứa code (repository): Tuỳ thuộc project bạn là public hay private, bạn có thể chọn nơi lưu trữ code phù hợp. Phổ biến nhất hiện nay là github, cá nhân mình thì thích dùng gitbucket vì nó cho mình tạo private repo thoải mái với team nhỏ hơn 5 người.
- Thêm .gitignore: gitignore.io là tool rất hay để sinh tự động ra file này.
2. Quản lý các thư viện:
Cocoapods Cocoapods và Carthage được sử dụng nhiều để quản lý các thư viện dùng trong 1 project ios. Cá nhân dùng Cocoapods từ hồi còn code objective-c nên đến giờ lúc nào vẫn dùng nó và khuyến khích các bạn dùng.
3. Phân tách môi trường phát triển:
Develop vs Release Phần này mình sẽ viết 1 bài khác để các bạn tiện theo dõi, như đã nói ở đầu bài việc setup này theo mình là cần thiết nên các bạn hãy nhớ khi bắt đầu 1 project mới nhé.
4. Hỗ trợ đa ngôn ngữ
Tuỳ thuộc vào chiến lược của app bạn có phát triển ra toàn cầu hay không, nhưng mình vẫn khuyến khích các bạn nên cài đặt để app hỗ trợ được đa ngôn ngữ. Lúc đầu khi app còn nhỏ nếu bạn cài đặt rồi thì dễ, có sử dụng hay không thì tuỳ bạn quyết định. Nhưng khi app đã phình to, việc cài đặt từng file sẽ trở nên khá vất vả và sẽ mất rất nhiều thời gian của bạn. Các bạn theo dõi bài viết này để cài đặt cho app nhé.
5. Quản lý Constants sử dụng trong app
- Mình nhận thấy nhiều bạn hay định nghĩa hằng số ngay trong file đang code, đến khi việc quản lý hằng số này rất khó khăn. Chỉ việc tách ra 1 file const riêng biệt, bạn tổng hợp tất cả các hằng số về 1 nơi, app của bạn sẽ trở nên chuyên nghiệp và người khác đọc code của bạn cũng sẽ dễ hiểu hơn.
- Trong file const bạn có thể tách biệt được DEV và PRODUCTION environments bằng macros #if#else nên việc quản lý hằng số này trở nên dễ dàng hơn nhiều.
6. Cấu trúc các thư mục (tuỳ chọn)
Dưới đây là cấu trúc thư mục cơ bản nhất trong 1 project mình hay dùng các bạn có thể tham khảo, lúc project phình to ra rồi thì sẽ có thể khác đi nhiều, bạn nào có cách chia hay hơn thì góp ý bên dưới nhé.
- Views: Chứa các custom views và cả viewcontroller
- Data: Nơi định nghĩa các model sử dụng trong app.
- AppLibs: Các lib mình tự code, các services, utils..
- Config: Chứa các file config của develop và release như Info.plist, googleservice..
- Develop
- Release
- Extensions: Extension của các class thư viện ios.
- Communication: Các class hỗ trợ việc kết nối server, trao đổi và lấy dữ liệu. Những dự án khác nhau thì sẽ có những thành phần khác cần phải chuẩn bị nữa, trên đây là những thiết lập cơ bản nhất mà theo mình là cần thiết khi bắt đầu 1 project. Những bài viết tới sẽ đi chuyên sâu hơn nữa, các bạn cùng theo dõi nhé.