12/08/2018, 14:27

Những điều cần biết về Swift trong phát triển App IOS cho người mới bắt đầu

Khó khăn khi phát triển app IOS Ngày trước tôi là một lập trình viên Server side, tuy nhiên từ tháng 6 năm nay thì đột nhiên tôi đã trở thành lập trình viên IOS, và đó là cảm tưởng của tôi khi mới bắt đầu Có nhiều bài viết giành cho những lập trình viên mới bắt đầu như: "Lập trình App IOS một ...

Khó khăn khi phát triển app IOS

Ngày trước tôi là một lập trình viên Server side, tuy nhiên từ tháng 6 năm nay thì đột nhiên tôi đã trở thành lập trình viên IOS, và đó là cảm tưởng của tôi khi mới bắt đầu

Có nhiều bài viết giành cho những lập trình viên mới bắt đầu như: "Lập trình App IOS một cách đơn giản!", "10 phút để lập trình App", tuy nhiên tôi vẫn gặp rất nhiều khó khăn và rắc rối. Giờ đây khi nhìn lại tôi đã tổng hợp lại những khó khăn đã gặp phải trong quá khứ và muốn chia sẻ chúng tới bạn đọc (honho)

1. Không biết là do lỗi gì mà không chạy nuột nhỉ?

** Cần biết về cách sử dụng Debug **

Breakpoint

Khi ta đính breakpoint vào thì quá trình xử lý sẽ được tạm dừng ở đúng vị trí đó. Hơn nữa là chúng ta có thể biết được trạng thái của các biến được nhập vào ở thời điểm đó. Tính năng này cũng giống như các IDE khác mà các bạn đã có kinh nghiệm có thể nhanh chóng sử dụng thành thạo.

Khi không sử dụng chúng ta nên xoá breakpoint đi, vì nếu không chú ý, nó có thể là nguyên nhất khiến App bị dừng đột ngột khi Build ^^

Ở trong code những hàm như print("OO") được viết nhằm mục đích Debug tuy nhiên chúng ta cũng thường quên xoá chúng đi. Bạn cũng nên tránh thói quen này nhé!

Vỡ hiển thị

Rất nhiều khi chúng ta không để ý khiến View hiển thị bị vỡ Khi App đang chạy chúng ta chọn phần Debug View Hierarchy

Chúng ta sẽ thấy các View hiển thị tầng lớp như hình bên dưới

2. Warning nil? Đầu tiên ta cứ thêm ! vào cái đã

** Sai lầm! App sẽ bị Crash!! **

Ở Swift, sử dụng biến Optional giúp chúng ta có thể truyền vào biến giá trị nil được. Tuy nhiên khi khai báo để tránh Warning ban đầu những người mới lập trình như chúng ta thường không suy nghĩ mà gán dấu !vào biến.

Điều nay chúng ta tuyệt đối nên từ bỏ. Bởi vì nếu giá trị nil được truyền vào biến đó App sẽ bị crash. Code như bên dưới đây là ví dụ về việc sẽ bị crash

var value: Int?
value = nil
print(value!)

Vì vậy khi Warning xảy ra chúng ta có thể tham khảo bài viết về cách sử dụng biến Optional như dưới đây

tham khảo

Và biến optional thường được khai báo như thế này :

guard let newValue = value else {
 return
}
print(newValue)

3. Ta cứ thêm Auto Layout Constrains thích hợp!

** Không được, chúng ta sẽ làm hỏng Layout, và làm khổ nười khác khi tiếp nhận lại** Khi thao tác trên storyboard, chúng ta hãy để ý cảnh báo ở góc phải trên như hình dưới đây:

Khi có màu vàng tức là các Constrains chưa được update đến vị trí chính xác của nó ở những thay đổi mới nhất. Ta chọn Object và update Frame , hoặc dùng command option + shift + = để update thông tin vị trí mới nhất

Khi hiển thị màu đỏ tức là Constrain đã bị nhầm (hoặc chưa đủ hoặc xung đột) , khi đó chúng ta cần sửa lại, ở phần này có thể rất nhiều người sẽ cảm thấy khó khăn. Khi đó chúng ta cũng có thể sử dụng gợi ý sửa lỗi của Xcode.

Ở ví dụ dưới đây, Vị trí của trục Y chưa được quyết định nên Constrain của Object trên dưới cũng chưa được gắn vào?

do đó với đối tượng của error là các constrains trên dưới trái phải, chiều rộng, chiều cao chúng ta hãy sửa những constrains đó.

Ta có thể thao tác bấm vào Add missing Constrain, tuy nhiên ta ko nên làm như vậy vì rất có thể sẽ còn tạo ra nhiều contrains lạ , không phù hợp khác nữa.

4. Lặp lại việc thêm và xoá các Constrains

** Nếu chúng ta không chú ý, App sẽ bị crash ** Các constrain như IBOutlet hay IBAction ở trong Xcode luôn có các liên kết nối từ Storyboard đến phần Code , khi chúng ta muốn xóa các kết nối này mà chỉ dùng Ctrl +z thì các kết nối ở trên Storyboard có thể sẽ vẫn còn. Do đó khi xoá chúng ta cần xác thực lại trên các part ở Storyboard một cách chắc chắn

5. Hãy hỏi mọi người

** Đây là điểm mấu chốt**

Mặc dù đã viết rất nhiều tuy nhiên trong quá trình phát triển App thì các vấn đề khó khắn tôi gặp phải còn rất rất nhiều nhiều. Để giải quyết các vấn đề đó ngoài việc tự tìm hiểu tôi đã hỏi những người xung quanh, các Sempai trong công ty. Các bạn cũng vậy, hãy cứ tích cực hỏi hay tạo ra một môi trường để có thể đặt câu hỏi nhiều hơn. Đó là điều rất quan trọng trong việc học lập trình cho những người chưa có nhiều kinh nghieemj như chúng ta.

Tham khảo : Qiita

0