Chào mừng các bạn quay trở lại với series “Lộ trình học Lập trình viên iOS 2025“! Sau khi đã cài đặt và cấu hình Xcode, tìm hiểu vì sao Swift lại là lựa chọn hàng đầu và nắm vững những kiến thức Swift cơ bản, đã đến lúc chúng ta bắt tay vào xây dựng ứng dụng thực tế đầu tiên. Bước đầu tiên và quan trọng nhất chính là tạo một dự án iOS mới và thiết lập các tùy chỉnh ban đầu một cách chính xác. Việc này đặt nền móng cho toàn bộ quá trình phát triển sau này.
Trong bài viết này, chúng ta sẽ cùng nhau đi qua từng bước tạo dự án, khám phá các tùy chọn quan trọng trong cửa sổ thiết lập dự án mới, và cấu hình những cài đặt ban đầu cần thiết để đảm bảo dự án của bạn sẵn sàng cho việc phát triển. Đây là kiến thức nền tảng mà mọi lập trình viên iOS, đặc biệt là các bạn mới bắt đầu, cần phải nắm vững.
Mục lục
Bắt Đầu: Mở Xcode và Tạo Dự Án Mới
Sau khi khởi chạy Xcode, bạn sẽ thấy màn hình chào mừng (Welcome screen) hoặc cửa sổ làm việc cuối cùng của bạn. Để tạo một dự án mới, bạn có thể thực hiện một trong hai cách:
- Chọn File > New > Project… từ thanh menu ở phía trên màn hình.
- Nếu đang ở màn hình chào mừng, click vào “Create a new Xcode project”.
Hành động này sẽ mở ra một cửa sổ mới có tên “Choose a template for your new project:”. Đây là nơi bạn lựa chọn loại ứng dụng hoặc dự án mà bạn muốn tạo.
Lựa Chọn Template Dự Án Phù Hợp
Xcode cung cấp rất nhiều template (mẫu) dự án khác nhau cho nhiều nền tảng của Apple (iOS, macOS, watchOS, tvOS, visionOS). Với mục tiêu phát triển ứng dụng cho iPhone/iPad, chúng ta sẽ tập trung vào tab “iOS”.
Trong tab iOS, bạn sẽ thấy danh sách các template phổ biến như:
- App: Template phổ biến nhất cho việc tạo ứng dụng di động thông thường. Đây là điểm khởi đầu cho hầu hết các ứng dụng cơ bản.
- Game: Cung cấp các tùy chọn cho việc phát triển game, thường tích hợp với SpriteKit, SceneKit hoặc Metal.
- Library: Tạo thư viện mã (code library) để sử dụng lại trong các dự án khác.
- Framework: Tương tự như Library nhưng có thể chứa cả tài nguyên và giao diện người dùng.
- … và nhiều template khác cho các mục đích chuyên biệt hơn.
Đối với hầu hết các ứng dụng thông thường khi mới bắt đầu, template “App” là lựa chọn mặc định và phù hợp nhất. Hãy chọn template “App” và nhấn “Next”.
Cấu Hình Thông Tin Ban Đầu Cho Dự Án
Sau khi chọn template “App”, một cửa sổ mới xuất hiện yêu cầu bạn cấu hình các thông tin cơ bản cho dự án. Đây là các cài đặt rất quan trọng, bạn cần điền chính xác:
Product Name:
- Tên ứng dụng của bạn. Tên này sẽ hiển thị trên màn hình chính của thiết bị sau khi cài đặt (dưới icon ứng dụng). Chọn một cái tên mô tả và dễ nhớ.
- Ví dụ: MyFirstApp, TodoListApp, WeatherViewer.
Organization Identifier:
- Một chuỗi định danh duy nhất cho tổ chức hoặc cá nhân phát triển ứng dụng. Theo quy ước, nó thường được viết theo định dạng tên miền ngược (reverse domain name notation).
- Ví dụ: Nếu tên miền công ty bạn là evotek.vn, Organization Identifier có thể là
vn.evotek
. Nếu bạn là cá nhân, bạn có thể dùngcom.yourname
. - Chuỗi này kết hợp với Product Name để tạo ra Bundle Identifier duy nhất cho ứng dụng trên App Store.
Bundle Identifier:
- Đây là định danh duy nhất cho ứng dụng của bạn trên toàn bộ hệ thống Apple (từ lúc phát triển đến khi phân phối trên App Store).
- Xcode sẽ tự động tạo Bundle Identifier bằng cách kết hợp Organization Identifier và Product Name (ví dụ:
vn.evotek.MyFirstApp
). - Đảm bảo Bundle Identifier này là duy nhất và không trùng với bất kỳ ứng dụng nào khác trên App Store.
Team:
- Chọn tài khoản nhà phát triển (Apple Developer Account) mà bạn sẽ sử dụng để ký (sign) ứng dụng. Việc ký ứng dụng là bắt buộc để chạy ứng dụng trên thiết bị thật và phân phối.
- Nếu bạn chưa có tài khoản nhà phát triển được thêm vào Xcode, bạn có thể vào Xcode > Settings… (hoặc Preferences…) > Accounts để thêm tài khoản Apple ID của mình. Xcode cho phép chạy ứng dụng trên thiết bị thật ngay cả với tài khoản miễn phí, nhưng sẽ có một số hạn chế.
Interface:
- Đây là lựa chọn quan trọng quyết định công nghệ bạn sẽ sử dụng để xây dựng giao diện người dùng (UI).
- SwiftUI: Khung làm việc UI khai báo (declarative) mới và hiện đại của Apple. Giúp xây dựng UI nhanh chóng và hiệu quả trên tất cả các nền tảng Apple. Rất khuyến khích học SwiftUI cho các dự án mới.
- UIKit: Khung làm việc UI truyền thống, dựa trên mô hình hướng đối tượng và imperative. Đã tồn tại từ những ngày đầu của iOS. UIKit vẫn rất phổ biến và cần thiết khi làm việc với các dự án cũ hoặc cần khả năng tùy biến sâu mà SwiftUI chưa hỗ trợ đầy đủ.
Life Cycle:
- Quy định cách ứng dụng xử lý các sự kiện vòng đời (application lifecycle events) như khi ứng dụng khởi chạy, chuyển sang chạy nền, hoặc bị chấm dứt.
- App Delegate: Cách truyền thống, sử dụng các class
AppDelegate
vàSceneDelegate
(được giới thiệu từ iOS 13). - UIKit App Delegate: Tên cũ hơn, thực chất là cách sử dụng
AppDelegate
vàSceneDelegate
. - SwiftUI App: Sử dụng cấu trúc `App` trong SwiftUI để quản lý vòng đời ứng dụng. Đây là lựa chọn mặc định khi bạn chọn SwiftUI làm Interface.
Language:
- Chọn ngôn ngữ lập trình chính cho dự án của bạn.
- Swift: Ngôn ngữ hiện đại, an toàn và hiệu quả của Apple. Là lựa chọn mặc định và được khuyến khích cho các dự án mới.
- Objective-C: Ngôn ngữ gốc của iOS/macOS. Vẫn cần thiết khi làm việc với các codebase cũ hoặc một số thư viện đặc thù.
- Như chúng ta đã thảo luận trong bài viết Swift vs Objective-C và Tại sao Swift Thống Trị Lập trình iOS, Swift là điểm khởi đầu tốt nhất cho lập trình viên iOS vào năm 2025.
Use Core Data:
- Tích hợp sẵn Core Data vào dự án. Core Data là framework của Apple giúp quản lý vòng đời của object graph (đồ thị đối tượng) và lưu trữ dữ liệu một cách bền vững.
- Chọn tùy chọn này nếu bạn biết chắc rằng ứng dụng của mình sẽ cần lưu trữ dữ liệu có cấu trúc trên thiết bị. Có thể thêm Core Data sau nếu cần.
Include Tests:
- Tạo sẵn các target (mục tiêu) cho Unit Tests và UI Tests.
- Unit Tests: Kiểm tra các đơn vị mã nguồn riêng lẻ (hàm, lớp).
- UI Tests: Kiểm tra giao diện người dùng và luồng hoạt động của ứng dụng từ góc độ người dùng.
- Luôn khuyến khích bật tùy chọn này để bắt đầu viết kiểm thử từ sớm, một thói quen tốt trong phát triển phần mềm.
Host in Cloud (nếu có):
- Tùy chọn này có thể xuất hiện tùy thuộc vào phiên bản Xcode và cấu hình của bạn. Nó liên quan đến việc tích hợp với các dịch vụ đám mây của Apple như CloudKit. Thường không cần thiết khi mới bắt đầu.
Dưới đây là bảng tóm tắt một số lựa chọn cấu hình quan trọng khi tạo dự án mới:
Cài Đặt | Mô Tả | Các Tùy Chọn Phổ Biến | Lưu Ý Cho Người Mới Bắt Đầu |
---|---|---|---|
Product Name | Tên ứng dụng hiển thị trên thiết bị. | Tên mô tả chức năng ứng dụng. | Chọn tên đơn giản, dễ hiểu. |
Organization Identifier | Định danh tổ chức/cá nhân (định dạng tên miền ngược). | com.yourname , vn.companyname |
Sử dụng tên miền ngược của bạn/công ty. |
Bundle Identifier | Định danh duy nhất của ứng dụng. | vn.companyname.AppName |
Được tạo tự động từ hai mục trên. |
Team | Tài khoản nhà phát triển để ký ứng dụng. | Tài khoản Apple ID đã thêm vào Xcode. | Cần thêm tài khoản Apple ID trong cài đặt Xcode. |
Interface | Công nghệ xây dựng UI. | SwiftUI, UIKit | Nên bắt đầu với SwiftUI cho dự án mới, trừ khi có yêu cầu cụ thể dùng UIKit. |
Life Cycle | Quản lý vòng đời ứng dụng. | App Delegate (UIKit), SwiftUI App | Chọn phù hợp với Interface đã chọn. |
Language | Ngôn ngữ lập trình. | Swift, Objective-C | Luôn chọn Swift cho dự án mới. |
Sau khi điền đầy đủ và chính xác các thông tin, nhấn “Next”.
Chọn Vị Trí Lưu Dự Án và Tích Hợp Git
Cửa sổ tiếp theo yêu cầu bạn chọn thư mục lưu trữ dự án. Chọn một vị trí trên máy tính của bạn nơi bạn muốn lưu source code của dự án.
Quan trọng hơn, bạn sẽ thấy một tùy chọn: “Create Git repository on my Mac”.
- Git là hệ thống kiểm soát phiên bản (Version Control System) tiêu chuẩn trong ngành. Nó cho phép bạn theo dõi các thay đổi trong mã nguồn, quay ngược về các phiên bản trước, và làm việc nhóm hiệu quả.
- Việc tích hợp Git ngay từ đầu là một thực hành cực kỳ quan trọng và được khuyến khích mạnh mẽ.
- Hãy đảm bảo ô này được tích chọn. Xcode sẽ tự động khởi tạo một repository Git cục bộ trong thư mục dự án của bạn.
- Sau này, bạn có thể liên kết repository cục bộ này với một repository từ xa trên các dịch vụ như GitHub, GitLab, hoặc Bitbucket để sao lưu và cộng tác. Chúng ta đã tìm hiểu sâu hơn về Bắt Đầu Với Git và GitHub Cho Dự Án iOS Của Bạn trong bài trước.
Chọn vị trí lưu và đảm bảo tùy chọn Git được bật, sau đó nhấn “Create”.
Khám Phá Cấu Trúc Dự Án Ban Đầu
Chúc mừng! Bạn đã tạo thành công dự án iOS đầu tiên của mình trong Xcode. Cửa sổ làm việc chính của Xcode sẽ xuất hiện, hiển thị cấu trúc thư mục và các file mặc định được tạo ra.
Ở phía bên trái là Project Navigator, hiển thị cấu trúc cây của dự án. Các thành phần chính bạn sẽ thấy bao gồm:
- Thư mục dự án (ví dụ: MyFirstApp): Chứa tất cả các file mã nguồn, tài nguyên, v.v.
- File `.xcodeproj`: File chính chứa cấu hình của dự án. Bạn sẽ không chỉnh sửa file này trực tiếp mà thông qua giao diện Xcode.
- Các file mã nguồn chính:
- Nếu chọn SwiftUI:
[Tên ứng dụng]App.swift
(điểm vào của ứng dụng) vàContentView.swift
(view đầu tiên). - Nếu chọn UIKit với Scene Delegate:
AppDelegate.swift
,SceneDelegate.swift
, vàViewController.swift
(view controller đầu tiên) cùng file Storyboard tương ứng (thường làMain.storyboard
). Chúng ta sẽ tìm hiểu sâu hơn về Vòng đời của ViewController trong UIKit ở bài viết khác.
- Nếu chọn SwiftUI:
- Assets.xcassets: Nơi quản lý hình ảnh, icon ứng dụng (App Icon), và các tài nguyên đồ họa khác.
- Info.plist: File thông tin dự án, chứa các cấu hình quan trọng như quyền truy cập (permissions), hướng màn hình được hỗ trợ, v.v.
- Preview Content (SwiftUI): Chứa các asset chỉ dùng cho preview trong SwiftUI.
- Các thư mục Tests:
[Tên ứng dụng]Tests
và[Tên ứng dụng]UITests
chứa các file kiểm thử.
Dành chút thời gian để làm quen với cấu trúc này. Biết các file chính ở đâu sẽ giúp bạn định hướng tốt hơn khi bắt đầu code.
Thiết Lập Các Tùy Chỉnh Ban Đầu Quan Trọng
Dù Xcode đã tạo ra một dự án chạy được ngay, việc cấu hình thêm một vài tùy chỉnh ban đầu là cần thiết để tối ưu hóa quá trình phát triển và đảm bảo chất lượng code.
1. Cài Đặt Dự Án (Project Settings)
Nhấn vào tên dự án của bạn ở đầu Project Navigator (cùng cấp với các thư mục màu vàng). Bạn sẽ thấy màn hình cài đặt dự án ở trình biên tập chính.
Tại đây, bạn có thể điều chỉnh:
- General: Cấu hình Identity (Bundle Identifier, Version, Build), Signing & Capabilities (quản lý chứng chỉ, định danh, cấu hình Push Notifications, In-App Purchases, v.v.), Deployment Info (phiên bản iOS tối thiểu hỗ trợ, hướng màn hình, thiết bị hỗ trợ), App Icons and Launch Screen.
- Signing & Capabilities: Rất quan trọng để đảm bảo ứng dụng của bạn có thể chạy trên thiết bị thật. Xcode thường cố gắng tự động quản lý phần này nếu bạn đã thêm tài khoản Apple ID. Tuy nhiên, khi làm việc với các capability đặc biệt hoặc phân phối ứng dụng, bạn sẽ cần cấu hình thủ công hoặc qua Apple Developer website.
- Resource Tags: Quản lý các tài nguyên theo yêu cầu (On-Demand Resources).
- Build Settings: Đây là phần chứa rất nhiều cài đặt chi tiết ảnh hưởng đến quá trình biên dịch (compile) và liên kết (link) mã nguồn của bạn. Một số cài đặt phổ biến bạn có thể quan tâm sau này bao gồm:
- Swift Language Version: Phiên bản Swift được sử dụng.
- Architectures: Các kiến trúc CPU mà ứng dụng sẽ hỗ trợ (ví dụ: ARM64 cho các thiết bị iOS hiện đại).
- Code Signing Identity: Chứng chỉ được sử dụng để ký ứng dụng.
- Optimization Level: Mức độ tối ưu hóa code khi biên dịch (ví dụ:
-Onone
cho debug,-Os
hoặc-O
cho release).
Đối với người mới bắt đầu, bạn không cần phải lo lắng quá nhiều về Build Settings chi tiết. Xcode thường đặt cấu hình mặc định hợp lý. Tuy nhiên, biết nơi tìm và điều chỉnh chúng khi cần thiết là rất quan trọng.
- Build Phases: Định nghĩa các bước trong quá trình build ứng dụng (ví dụ: Compile Sources, Link Binary With Libraries, Copy Bundle Resources).
2. Cài Đặt Xcode (Xcode Preferences/Settings)
Ngoài cài đặt riêng cho từng dự án, bạn cũng nên tùy chỉnh các cài đặt chung của Xcode để nâng cao hiệu suất làm việc.
Vào Xcode > Settings… (hoặc Preferences…) từ thanh menu.
- General: Các cài đặt chung như tab behavior, các issue navigator filter.
- Accounts: Quản lý các tài khoản Apple ID, GitHub, GitLab, Bitbucket. Rất quan trọng để tích hợp Git và quản lý Team.
- Behaviors: Tùy chỉnh các hành vi của Xcode khi có các sự kiện nhất định xảy hỏi (ví dụ: khi build thành công, khi build thất bại).
- Components: Tải về các phiên bản iOS Simulator khác, documentation.
- Key Bindings: Tùy chỉnh các phím tắt.
- Navigation: Cấu hình cách Xcode điều hướng giữa các file và symbol.
- Source Control: Cấu hình tài khoản Git, Ignore files mặc định.
- Text Editing: Rất nhiều tùy chọn để cấu hình trình soạn thảo code. Bạn có thể điều chỉnh font chữ, kích thước chữ, hiển thị số dòng, indentation (định dạng thụt lề). Hãy thiết lập indentation theo chuẩn bạn hoặc đội nhóm của bạn sử dụng (thường là 4 spaces).
struct MyStruct {
var property: String // Thụt lề 4 spaces
func myMethod() {
print("Hello, World!") // Thụt lề 4 spaces
}
}
Việc tùy chỉnh Text Editing giúp code dễ đọc và nhất quán hơn. Đây là một phần nhỏ nhưng quan trọng trong việc hình thành thói quen code chuyên nghiệp.
3. Cấu Hình Git Ban Đầu (Nếu chưa có)
Dù Xcode đã tạo repository Git cục bộ, bạn cần cấu hình thông tin người dùng Git của mình (nếu chưa làm trước đó) thông qua Terminal.
git config --global user.name "Tên Của Bạn"
git config --global user.email "[email protected]"
Các thông tin này sẽ được ghi vào mỗi commit bạn tạo ra. Sau đó, bạn có thể vào Source Control Navigator trong Xcode (biểu tượng có 3 hình vuông nối với nhau) để xem lịch sử commit hoặc tạo commit đầu tiên.
Commit đầu tiên sau khi tạo dự án là một cột mốc quan trọng, lưu lại trạng thái ban đầu của dự án.
Chạy Dự Án Lần Đầu
Sau khi đã tạo và cấu hình dự án, hãy thử chạy nó để xem kết quả.
- Chọn Target: Đảm bảo tên dự án/target chính của bạn được chọn trong scheme selector (bên cạnh nút Run).
- Chọn Thiết bị/Simulator: Chọn một iPhone hoặc iPad simulator từ danh sách thả xuống ngay bên cạnh target name. Nếu bạn muốn chạy trên thiết bị thật, hãy kết nối thiết bị, đảm bảo nó được tin cậy (trusted) và xuất hiện trong danh sách.
- Nhấn nút Run (biểu tượng mũi tên play màu đen) hoặc nhấn
Cmd + R
.
Xcode sẽ tiến hành biên dịch (build) dự án. Nếu không có lỗi, ứng dụng sẽ được cài đặt và chạy trên simulator hoặc thiết bị bạn đã chọn. Với template “App” mặc định, bạn sẽ thấy một màn hình trắng hoặc một đoạn text “Hello, world!” tùy thuộc vào template SwiftUI hay UIKit.
Nếu có lỗi, Xcode sẽ hiển thị thông báo trong Issue Navigator (biểu tượng dấu chấm than màu vàng hoặc đỏ). Đây là lúc kỹ năng Xử lý Lỗi Một Cách Duyên dáng trong Swift của bạn phát huy tác dụng.
Kết Luận
Việc tạo một dự án iOS mới và thiết lập các tùy chỉnh ban đầu là bước đi đầu tiên và cần thiết trên Lộ trình học Lập trình viên iOS 2025 của bạn. Nắm vững các tùy chọn trong cửa sổ tạo dự án và biết cách cấu hình các cài đặt quan trọng trong Xcode sẽ giúp bạn xây dựng nền móng vững chắc cho dự án của mình.
Hãy dành thời gian làm quen với giao diện Xcode, thử nghiệm các tùy chọn khác nhau khi tạo dự án (ví dụ: tạo một dự án UIKit và so sánh với SwiftUI), và đặc biệt, hãy luôn bật tính năng tích hợp Git ngay từ đầu. Từ đây, chúng ta sẽ bắt đầu đi sâu vào việc xây dựng giao diện người dùng, quản lý dữ liệu, xử lý logic ứng dụng và nhiều khía cạnh khác của phát triển iOS.
Trong bài viết tiếp theo, chúng ta sẽ bắt đầu khám phá sâu hơn về UI – trái tim của mọi ứng dụng di động. Hẹn gặp lại các bạn!