Lập trình viên iOS là vị trí công việc hấp dẫn với mức thu nhập khủng mà nhiều bạn trẻ mơ ước. Tuy nhiên để gây ấn tượng và lọt vào mắt xanh nhà tuyển dụng là điều không dễ dàng. Vì vậy bạn cần nắm chắc bộ câu phỏng vấn iOS developer để tạo lợi thế trước những ứng viên khác. Dưới đây, topviecit.vn giới thiệu bộ 8 câu hỏi phổ biến nhất cho vị trí lập trình viên iOS developer giúp bạn có sự chuẩn bị kỹ càng.
Câu 1: ARC là gì?
Với câu hỏi này, nhà tuyển dụng muốn kiểm tra xem lập trình viên IOS có thực sự am hiểu về phương pháp lập trình trong iOS không. Bạn chỉ cần trả lời ngắn gọn và chính xác về khái niệm này là được.
Ví dụ trả lời: ARC là từ viết tắt của Automatic Reference Counting, nghĩa là “Tự động đếm số lượng tham chiếu”. Đây là một hệ thống quản lý tự động được tích hợp sẵn trong ngôn ngữ lập trình Swift. Nó có vai trò tự động chèn thêm các đoạn code được chỉ định vào đối tượng và đưa ra quyết định khi nào đối tượng không cần thiết sử dụng các đoạn code nữa.
Câu 2: Khi nào ARC được sử dụng và không được sử dụng?
Với câu hỏi tuyển dụng iOS developer này, nhà tuyển dụng muốn thấy cách bạn ứng dụng các tính năng thực tế như thế nào. Chúng sẽ chứng minh mức độ hiểu biết của bạn về các kỹ thuật lập trình, công nghệ mới trên IOS có sâu sắc hay không.
Ví dụ trả lời: ARC thường được được sử dụng cho phiên bản iOS 5 trở lên. Còn với các phiên bản từ iOS 4 trở xuống, lập trình viên vẫn cần tự code mã để quản lý bộ nhớ. Riêng với các dự án dùng ARC nhưng có sử dụng thêm các code quản lý bộ nhớ thủ công như retain, release,.. thì lập trình viên có thể điều chỉnh về cơ chế non-arc và sử dụng code đó.
Câu 3: Nêu sự khác biệt giữa 2 biến Strong và Weak?
Các biến là yếu tố không thể thiếu trong hoạt động lập trình các ứng dụng. Vì vậy câu hỏi so sánh và phân biệt các biến cũng sẽ thường bắt gặp trong quá trình phỏng vấn vị trí iOS developer.
Ví dụ trả lời: Biến Strong khi trỏ đến đối tượng sẽ sở hữu đối tượng đó và làm retainCount của nó tăng thêm 1. Còn biến Weak khi trỏ đến đối tượng sẽ tham chiếu giá trị đó và không làm tăng retainCount của nó. Khi giá trị retainCount về 0 thì đối tượng sẽ bị hủy và biến Weak được reset về giá trị null.
Câu 4: Vậy biến Weak sử dụng trong trường hợp nào?
Sau khi bạn đã phân biệt 2 biến Strong và Weak, rất có thể nhà tuyển dụng sẽ muốn đào sâu về những trường hợp ứng dụng 2 biến này. Qua đó họ sẽ xác định được iOS developer hiểu biết tường tận hay chỉ tìm hiểu sơ bộ về những vấn đề này.
Ví dụ trả lời: Có 2 trường hợp lập trình viên nên sử dụng biến Weak là: 2 class có các đối tượng reference đến nhau và 2 class có quan hệ cha con. Lúc này, lập trình viên sẽ dùng biến weak với 1 class để tránh leak memory.
Tìm hiểu thêm: Developer Là Nghề Gì? Mô Tả Công Việc Và Mức Thu Nhập Của Developer
Câu 5: Phân biệt các hàm: viewDidLoad, viewWillAppear, viewDidAppear, viewWillDisappear ?
Câu hỏi này nhà tuyển dụng hướng tới việc kiểm tra sự am hiểu sâu rộng về kiến thức chuyên môn của iOS developer. Chỉ khi thực sự hiểu rõ về chuyên môn thì lập trình viên mới có thể phân biệt các hàm này.
Ví dụ trả lời: Bạn có thể phân biệt chúng dựa trên mục đích sử dụng của các hàm
- viewDidLoad được gọi đầu tiên khi khởi tạo một view
- viewWillAppear được gọi khi view bắt đầu được hiển thị bất cứ lúc nào
- viewDidAppear được gọi sau khi view đã hiển thị xong
- viewWillDisappear được gọi khi bắt đầu chuyển sang màn hình khác
Câu 6: Hãy nêu ý nghĩa của từ khóa @synthesize
Nêu ý nghĩa của một từ khóa, 1 hàm hay một biến sẽ thể hiện liệu ứng viên có nắm chắc các kiến thức về sử dụng và áp dụng chúng tốt hay không. Bạn cần tìm hiểu rõ về chúng và trả lời theo cách hiểu của riêng mình.
Ví dụ trả lời: Từ khóa @synthesize dùng cho 1 biến giúp nó có thể trình biên dịch tự động để tạo 2 hàm về getter và setter. Còn nếu lập trình viên đã tự viết thì khi dùng từ khóa này sẽ không tạo thêm hai hàm này nữa.
Câu 7: Trong Objective-C lập trình viên có thể khai báo Public Static không?
Với câu hỏi lựa chọn có hay không, bạn cần thể hiện thái độ trả lời nhanh chóng, tự tin với đáp án của mình. Điều này sẽ chứng tỏ bạn có nền tảng kiến thức vững chắc về công việc iOS developer.
Ví dụ trả lời: Có thể. Để khai báo Public Static ta đồng thời sử dụng từ khóa static và dấu + cho các function.
Tìm hiểu thêm: Câu Hỏi Phỏng Vấn Front-End ReactJS Và Hướng Dẫn Trả Lời
Câu 8: Hãy nêu các trạng thái thường gặp của một ứng dụng iOS
Câu trả lời này giúp nhà tuyển dụng đánh giá sự am hiểu của iOS developer về ứng dụng iOS thực tế. Với những câu hỏi ứng dụng này, bạn nên trả lời linh hoạt dựa trên vốn hiểu biết của mình.
Ví dụ trả lời: Ứng dụng iOS thường có một số trạng thái sau:
- Not running
- Inactive: trạng thái xảy ra khi người dùng lock màn hình hoặc ứng dụng đang chạy thì có tin nhắn hoặc cuộc gọi diễn ra.
- Active: trạng thái ứng dụng iOS chạy và xử lý các dữ liệu từ người dùng, hệ thống.
- Background: trạng thái mà ứng dụng chạy ở chế độ nền và có thể xử lý 1 số tác vụ.
- Suspended: trạng thái mà ứng dụng chạy ở chế độ nền và không thể xử lý tác vụ nào, thường xảy ra khi bộ nhớ thiết bị không đủ.
Có thể bạn quan tâm: Lập Trình React Native Là Gì? Mô Tả Công Việc Và Mức Lương React Native
Một số câu hỏi phỏng vấn ios developer khác:
- Sự khác biệt giữa Frame và Bound là gì?
- Single Inheritance trong Objective C là gì?
- Sự khác nhau giữa Frame và Bound?
- Giữa deep coppy và shadow coppy có gì khác nhau?
- KVO và KVC trong objective C là gì?
- Có những cách nào để hủy 1 đối tượng outlet?
Trên đây là 8 câu hỏi phỏng vấn iOS developer mà các ứng viên thường gặp trong các buổi phỏng vấn. Hy vọng những chia sẻ kinh nghiệm này sẽ giúp bạn có sự chuẩn bị tốt hơn và tự tin bước vào buổi phỏng vấn xin việc sắp tới. Nếu bạn đang có nhu cầu tìm việc làm ios developer, hãy truy cập vào TopCV ngay từ hôm nay để tiếp cận các tin tuyển dụng hấp dẫn hơn nhé.