14 Điều mà một lập trình viên iOS cần biết (phần 1)

Cập nhật ngày: 19/04/2024 - Đã có 2265 lượt xem bài viết này!
14 Điều mà một lập trình viên iOS cần biết (phần 1)
Phát triền một ứng dụng hoạt động trên nền tảng iOS thì chúng ta phải cần những gì? Ngày nay, thông tin tài liệu để học một công nghệ hay kiến thức nào đó tràn ngập trên Intermet, bạn rất dễ hụt chân trong biển thông tin này. Chúng ta phải bắt đầu từ đâu? Trước đây, tôi đã tốn rất nhiều thời gian đề tử hỏi và tìm hiểu làm như thế nào và bằng cách gì tôi có thể học tốt để trở thành một lập trình viên chuyên nghiệp trên nền tảng iOS. Sau khi đúc kết từ những chỉ dẫn và tham khảo của các tiền bối

14 Điều mà một lập trình viên iOS cần biết (phần 1)


1 — Quản lý mã nguồn (Source control) 

Mọi project đều cần phải có source control, kể cả dự án có một mình bạn là dev. Hai cái tên nổi bật nhất là Git và SVN

SVN dựa trên một hệ thống trung tâm để quản lý version gọi là central repository, nơi mà những phiên bản copy để làm việc được tạo ra và cần phải có kết nối mạng.Svn là lệnh dùng để thực hiện các chức năng Subversion trong môi trường thi hành lệnh trên các máy vi tính. SVN theo dõi các thay đổi bằng đăng ký files và lịch sử sửa đổi đều được nhìn thấy trên repository.  

Git làm việc dựa trên hệ thống phân phối các phiên bản để quản lý. Bạn sẽ có một local repository trong máy , và kết nối mạng chỉ được yêu cầu khi thực hiện tác vụ đồng bộ code vào với nhau. Quyền truy cập của nó là cho toàn bộ thư mục, theo dõi các thay đổi bằng cách đăng ký nội dung và cả repository lẫn working copy có thay đổi.

2 — Architecture patterns

Trước khi bắt đầu code, bạn cần phải chọn một kiểu kiến trúc (Design pattern) cho project của mình, hay nói cách khác là bạn sẽ code theo hướng nào. Có rất nhiều các kiến trúc để cho bạn chọn khi lập trình ứng dụng di động, MVC, MVP, MVVM, VIPER, etc. Ở đây tôi sẽ nói qua 2 kiến trúc phổ biến nhất đó là MVC và MVVM.

  • MVC — Viết tắt của Model, View, Controller. Controller

    M là Model: cấu trúc dữ liệu theo cách tin cậy và chuẩn bị dữ liệu theo lệnh của controller

    V là View: Hiển thị dữ liệu cho người dùng theo cách dễ hiểu dựa trên hành động của người dùng.

    C là Controller: Nhận lệnh từ người dùng, gửi lệnh đến cho Model để cập nhập dữ liệu, truyền lệnh đến View để cập nhập giao diện hiển thị.

  • MVVM — Viết tắt của Model, View, ViewModel. Cơ chế Bindings được thiết lập giữa View và ViewModel, cho phép ViewModel thay đổi trên Model, sau đó tự động update View dựa theo những dữ liệu đã được gán vào trước đó, ViewModel không biết gì về View, do vậy sẽ giảm thiểu được rất nhiều code.

3 — Objective-C hay Swift?

Trước khi quyết định sử dụng ngôn ngữ nào, bạn cần phải biết mỗi ngôn ngữ sẽ mang lại cho ta cái gì. Ở đây, theo ý kiến cá nhân thì tôi khuyến khích sử dụng Swift, vì sao?. Thực tế thì Objective-C là ngôn ngữ đã cú và có ít điểm nổi bật hơn so với Swift. Swift dễ đọc, cú pháp gần gũi và tự nhiên và do không phải là build từ nền ngôn ngữ C, nên không phải tuân thủ theo những convention cũ, điển hình là loại bỏ dấu chấm phẩy, không cần phải thêm ngoặc vuông khi gọi method và không còn file .h hay .m nữa. Swift chỉ cần một file .swift. Do đó bạn hoàn toàn không phải lo lắng về việc project có quá nhiều file nữa, đồng thời số lượng dòng code cũng sẽ chỉ bằng 1/3 so với Objective-C

Nếu điều đó chưa đủ thuyết phục thì Swift an toàn hơn, nhanh hơn và chú trọng đến quản lý bộ nhớ hơn. Điều gì sẽ xảy ra trong Objective-C khi bạn gọi một method với một variable chưa được khởi tạo? Không có gì, đoạn code trên sẽ được bỏ qua và app sẽ không bị crash, tuy nhiên, nó sẽ dẫn đến hàng loạt bug phat sinh phía sau mà bạn sẽ không ngờ tới. Swift với cơ chế optional sẽ không cho phép điều này xảy ra.Swift sẽ dừng lại và app sẽ crash, do vậy bạn sẽ kiểm soát được lỗi của mình một cách chặt chẽ hơn, đồng thời đặc sản ARC của iOS hoạt động tốt hơn trên Swift. Ở Objective-C, ARC không làm việc với ngôn ngữ lập trình hướng thủ tục như C và API Core Graphic.

4 — React hay không React?

Functional Reactive Programming (FRP) là một khái niệm rất mới. Mục đích của nó là  là mô hình lập trình hướng tới luồng dữ liệu và sự lan truyền thay đổi. 

Để dễ hình dung thì chúng ta hãy bắt đầu với ví dụ sau. Timmy và chị gái, Jenny muốn mua một máy chơi game mới. Timmy và Jenny mỗi người được bố mẹ cho 5$ mỗi tuần. Tuy nhiên Jenny kiếm được thêm 5$ nữa nhờ đưa báo vào mỗi cuối tuần. Nếu cả cùng để dành thì chúng ta có thể kiểm tra hàng tuần cho đến khi đủ tiền mua máy chơi game. Mỗi lần một trong những khoản tiết kiệm của hai người thay đổi, thì giá trị tổng của họ đều được tính toán. Nếu đủ, một tin nhắn sẽ được lưu vào trong variable isConsoleAttainable. Và chúng ta có thể kiểm tra ở mọi lúc mọi nơi bằng cách subcribe tới nó.
 

// Savings
let timmySavings = Variable(5)
let jennySavings = Variable(10)
var isConsoleAttainable =
Observable
.combineLatest(timmy.asObservable(), jenny.asObservable()) { $0 + $1 }
.filter { $0 >= 300 }
.map { "\($0) is enough for the gaming console!" }
// Week 2
timmySavings.value = 10
jennySavings.value = 20
isConsoleAttainable
   .subscribe(onNext: { print($0) }) // Doesn't print anything
// Week 20
timmySavings.value = 100
jennySavings.value = 200
isConsoleAttainable
   .subscribe(onNext: { print($0) }) // 300 is enough for the gaming        console!

Đây là ví dụ đơn giản để mô tả về FRP, một khái niệm rất mới, nhưng khi bạn nắm được thì đây là cánh cổng mở ra một thế giới mới với rất nhiều điều thú vị, cho phép bạn thích ứng với nhiều kiến trúc khác nhau ngoài MVC ra, ví dự như MVVM.

Hết phần 1

 

Bạn đang muốn tìm kiếm 1 công việc với mức thu nhập cao.
✅ Hoặc là bạn đang muốn chuyển đổi công việc mà chưa biết theo học ngành nghề gì cho tốt.
✅ Giới thiệu với bạn Chương trình đào tạo nhân sự dài hạn trong 12 tháng với những điều đặc biệt mà chỉ có tại IMIC và đây cũng chính là sự lựa chọn phù hợp nhất dành cho bạn:
👉 Thứ nhất: Học viên được đào tạo bài bản kỹ năng, kiến thức chuyên môn lý thuyết, thực hành, thực chiến nhiều dự án và chia sẻ những kinh nghiệm thực tế từ Chuyên gia có nhiều năm kinh nghiệm dự án cũng như tâm huyết truyền nghề.
👉 Thứ hai: Được ký hợp đồng cam kết chất lượng đào tạo cũng như mức lương sau tốt nghiệp và đi làm tại các đối tác tuyển dụng của IMIC. Trả lại học phí nếu không đúng những gì đã ký kết.
👉 Thứ ba: Cam kết hỗ trợ giới thiệu công việc sang đối tác tuyển dụng trong vòng 10 năm liên tục.
👉 Thứ tư: Được hỗ trợ tài chính với mức lãi suất 0 đồng qua ngân hàng VIB Bank.
👉  Có 4 Chương trình đào tạo nhân sự dài hạn dành cho bạn lựa chọn theo học. Gồm có:
1)  Data Scientist full-stack
2)  Embedded System & IoT development full-stack
3)  Game development full-stack
4)  Web development full-stack 
✅ Cảm ơn bạn đã dành thời gian lắng nghe những chia sẻ của mình. Và tuyệt vời hơn nữa nếu IMIC được góp phần vào sự thành công của bạn. 
✅ Hãy liên hệ ngay với Phòng tư vấn tuyển sinh để được hỗ trợ về thủ tục nhập học.
✅ Chúc bạn luôn có nhiều sức khỏe và thành công!

 

 

Tham khảo các khóa đào tạo nhân sự qua danh mục