Những hướng dẫn thực hành giúp bạn trở thành 1 iOS developer giỏi

429

Cách đây vài tuần, 1 trong những lập trình viên Android ưu tú của chúng tôi, Martin, đã chia sẻ bài viết ‘Good practices to become a great Android developer’. Đó là lý do khiến team iOS không thể ngồi yên.

Cần những tố chất gì để trở thành 1 dev xuất sắc? Chúng tôi sẽ cố gắng trả lời câu hỏi ấy trong hôm nay. Xuất sắc tức là đạt trình độ kiến thức và khả năng thấu hiểu không tưởng mà ít ai có thể thực sự chạm đến, nhưng bạn vẫn có thể từng bước tiến gần đến cột mốc đó. Chúng tôi đã thu thập vài hướng dẫn thực hành và mẹo mà chúng tôi tìm tòi được tại công ty Lateral View.

Trong trường hợp bạn mới gia nhập thế giới lập trình iOS, bài viết này sẽ là sự bổ sung hoàn hảo cho những tutorials mà bạn có thể tìm hiểu ngoài kia. Nếu bạn vẫn đang tìm kiếm những hướng dẫn cho người mới thì có thể xem khóa học của Stanford University courses trên iTunes U.

1. Liệu bạn có dám sử dụng 1 file Storyboard duy nhất cho toàn bộ ứng dụng của mình?

Đây là 1 storyboard “địa ngục”.

Thực lòng mà nói, storyboard này chẳng có nghĩa lý gì cả. Một storyboard dày đặc chữ rất khó để quản lý, bạn sẽ tốn rất nhiều thời gian và nguồn lực để tải và chỉnh sửa nó. Ngoài ra, nếu bạn làm việc trong 1 team, bên cạnh việc 1 lập trình viên phải viết lại những thay đổi trong cùng 1 storyboard thì việc hợp nhất các storyboard này sẽ rất khó khăn.

Cách tốt nhất là tạo 1 file storyboard cho mỗi flow trong ứng dụng, giữ cho các storyboards nhỏ gọn và sạch sẽ. Ngoài ra, nhóm các screens lại theo flow cũng giúp bạn tránh các lỗi về xác nhập, khi sử dụng lại cũng dễ dàng hơn. Kể từ khi Apple giới thiệu Storyboard References trong iOS 8, Storyboard References đã cho phép tạo các segues (làm mượt luồng xử lý giữa mỗi scene trên board) cho các storyboard khác nhau.

2. Auto Layout là mãi mãi, nên hãy nắm bắt nó

Kể từ khi được giới thiệu trong iOS 7, Auto Layout đã trở nên khá nổi tiếng, bạn nên làm quen với nó đi, không thì… đây chính là hồi chuông cảnh tỉnh cuối cùng! Auto Layout tự động tính toán kích cỡ và vị trị của tất cả các cấp bậc views, dựa trên các constraints đặt trên các views đó. Vào thời điểm trước khi chúng ta chỉ có iPhone 3.5 inch, chúng ta không gặp các vấn đề về sắp xếp các yếu tố ở các vị trí và kích thước phù hợp, nhưng kể từ lúc những màn hình 4 inch, 4.7 inch, 5.5 inch ra mắt thì Auto Layout trở thành công cụ hữu dụng, tiết kiệm thời gian và giúp giao diện của ứng dụng đẹp hơn.

Đây là tài liệu chính thức của Apple về Auto Layout.

3. Hãy cẩn thận khi thêm các views lập trình mới!

Khi tạo 1 view lập trình và sử dụng method addSubview(_:) để thêm vào view hierarchy, bạn có thể sẽ quên 1 yếu tố… đó chính là các constraints! Auto Layout được xây dựng dựa trên các constraints và các rules mà chúng ta thiết lập cho mỗi view, nếu bạn không thêm chúng vào lập trình thì mọi thứ vẫn ổn thỏa trên iPhone 5, nhưng khi test trên iPhone 6 hoặc iPhone 6 Plus, bạn sẽ gặp vấn đề ngay.

4. Swift, không phải là “chàng trai” quá mới mẻ trong khu phố

Swift xuất hiện lần đầu vào tháng 6/2014. Giờ thì nó đã 2 tuổi và đang lớn lên 1 cách nhanh chóng. Mỗi phiên bản mới lại mang đến rất nhiều tính năng và cải tiến mới và Swift 3 cũng không ngoại lệ. Cá nhân tôi cho rằng ngôn ngữ này đang ngày càng trưởng thành hơn với mỗi lần lặp và thực sự, nguy cơ những thay đổi to lớn có thể phá hỏng toàn bộ dự án của bạn cũng ngày càng ít đi. Nếu Objective-C rồi cũng chết, nên hãy vượt qua và code bằng Swift.

5. CocoaPods – 1 thế giới mà bạn phải xâm nhập

CocoaPods là 1 trình quản lý dependency dành cho các dự án iOS. Tại đây, bạn sẽ tìm thấy rất nhiều thư viện bên thứ 3 mà bạn có thể dễ dàng xuất sang dự án của mình, tùy chỉnh chúng và biến ứng dụng trở nên tuyệt vời hơn trong khi vẫn tiết kiệm được thời gian.

Nếu bạn không biết bắt đầu từ đâu, có thể tham khảo cách hướng dẫn nhanh để thêm CocoaPods vào dự án. Luôn thiết lập version dependency mà bạn muốn cài trong Podfile.

Nếu bạn để trống và cài đặt những dependencies sau đó, version này sẽ cập nhật các dependencies cũ lên phiên bản mới nhất hiện có và bạn có thể phải điều chỉnh dự án của mình để mọi thứ làm việc hiệu quả như mong đợi.

Liệu có nên nhập Pods directory vào repository của bạn hay cứ để Podfile thúc đẩy mỗi lập trình viên chạy cài đặt pod trước khi bắt đầu làm việc? Mỗi người lại có ý kiến riêng về vấn đề này, nhưng với chúng tôi, bỏ Pods directory vào source control dễ dàng và thực tế hơn.

6. Các graphics vector giúp các assets catalogs đơn giản hơn

Xcode 6 cho phép bạn bỏ các ảnh vector format PDF vào trong catalog .xcasset của bạn. Khi xây dựng project, Xcode sẽ tạo các files PNG @1x, @2x, and @3x nổi tiếng từ PDF và iOS sẽ chỉ sử dụng các hình ảnh cần thiết.

7. IBInspectable và IBDesignable giúp bạn thấy được điều kì diệu trong Interface Builder

Nếu 1 designer hỏi bạn về button với đường biên và góc bo tròn, bạn có thể lập trình như sau:

Hoặc thiết lập User Defined Runtime Attributes:

Bạn sẽ có được:

Bạn có nhận thấy những gì mới xảy ra? Bạn có các configurable attributes ngay trong Inteface Builder, hơn nữa bạn có thể thấy những thay đổi trực tiếp trong storyboard mà không cần chạy ứng dụng.

Làm thế nào để thực hiện được? Chỉ cần tạo 1 subclass từ UIButton với dòng code sau (Bạn cũng có thể tạo 1 UIButton class extensions để kích hoạt chức năng này trong mỗi button của project).

View raw

Nếu bạn muốn nghiên cứu thêm về vấn đề này, bạn có thể xem bài post này.

8. Unit testing!

Khi dự án mới chỉ bắt đầu, rất khó tích hợp testing trong dự án, nhưng việc này không phải là chuyện bất khả thi. Một số hướng dẫn của tôi về testing dành cho bạn tại đây.

Nguồn: IDE Academy via Medium