Một dự án iOS viết bằng Objective-C thường có một cấu trúc cơ bản gồm nhiều thành phần khác nhau, bao gồm cả mã nguồn, tài nguyên, và các file cấu hình. Dưới đây là một cấu trúc cơ bản cho một dự án iOS Objective-C:
Thư mục Gốc (Root Directory):
- Thư mục chứa tất cả các thành phần khác của dự án.
Thư mục Mã Nguồn (Source Code):
- Classes:
- Chứa tất cả các file mã nguồn Objective-C (.m và .h).
- Mỗi lớp nên có thư mục con của riêng mình.
Classes/
├── MyClass/
│ ├── MyClass.h
│ └── MyClass.m
├── AnotherClass/
│ ├── AnotherClass.h
│ └── AnotherClass.m
└── main.m
Categories:
- Chứa các category mở rộng của lớp (nếu có).
Categories/
├── MyClass+Category/
│ ├── MyClass+Category.h
│ └── MyClass+Category.m
Thư mục Tài Nguyên (Resources):
- Images:
- Chứa tất cả các hình ảnh và biểu tượng.
Resources/
├── Images/
│ ├── icon.png
│ └── background.jpg
Storyboards và XIBs:
- Chứa các file mô tả giao diện người dùng (nếu sử dụng Interface Builder).
Resources/
├── Main.storyboard
└── CustomView.xib
Thư mục Tài Nguyên (Assets):
- Nếu sử dụng Asset Catalog, chứa các tài nguyên như hình ảnh, biểu tượng, và ảnh launch.
Assets.xcassets/
├── AppIcons.appiconset/
│ └── AppIcon.png
├── LaunchImage.launchimage/
│ └── LaunchImage.png
└── Images.xcassets/
├── Image1.imageset/
│ └── Image1.png
└── Image2.imageset/
└── Image2.png
Thư mục Cấu Hình (Configuration):
- Chứa các file cấu hình như PCH (Prefix Header) và các file cấu hình khác.
Configuration/
├── Prefix.pch
└── AppConfig.plist
Thư mục Thư Viện Bên Thứ Ba (Third-Party Libraries):
- Nếu sử dụng bất kỳ thư viện bên thứ ba nào, chúng thường được đặt ở đây.markdown
ThirdPartyLibraries/
├── AFNetworking/
│ ├── AFNetworking.h
│ └── ...
└── SomeOtherLibrary/
├── SomeOtherLibrary.h
└── ...
Tệp Cấu Hình (Configuration Files):
- Chứa các tệp cấu hình như Info.plist.
ProjectRoot/
├── Info.plist
Thư mục Kiểm Thử (Tests):
- Chứa các bài kiểm thử.
Tests/
├── UnitTests/
│ ├── MyClassTests.m
│ └── AnotherClassTests.m
└── UITests/
└── MyUITests.m
Tệp Build và Dữ Liệu Tạm (Build and Derived Data):
- Thư mục này thường được sinh ra tự động và chứa dữ liệu tạm và tệp build.
Build/
├── DerivedData/
│ └── ProjectName-abc123/
└── Products/
└── Debug-iphonesimulator/
└── YourApp.app
Lưu ý rằng đây chỉ là một cấu trúc cơ bản và có thể thay đổi tùy thuộc vào kích thước và đặc điểm cụ thể của dự án. Các dự án lớn hơn có thể chia thành các framework
Xin chào các bạn!
Bài viết này dùng AI ChatGPT viết sau đó được tôi chọn lựa, biên tập lại nội dung, chỉ một phần nhỏ các bài là tôi tự viết. Nội dung thể hiện ý chí mang tính cá nhân về các vấn đề của tôi và giải pháp. Tôi lưu tại website này để tra cứu và chia sẻ cho cộng đồng. Tôi tin rằng nội dung này giải quyết vấn đề của tôi thì cũng giải quyết vấn đề của các bạn.
Tôi là Minh, sống tại Hà Nội. Tôi là kỹ sư phần mềm với hơn 20 năm kinh nghiệm. Hiện nay, công việc chính của tôi là phát triển các app trên iOS và Android. Các ngôn ngữ và framework yêu thích của tôi là Swift, Objective-C, Java, Kotlin, .NET, HTML, JavaScript, CSS, Bootstrap, jQuery, AngularJS, Angular…
Các bạn có thể tải app của tôi trên App Store hoặc Google Play:
QuestionBank-Ôn thi vào 10: phiên bản iOS, phiên bản Android
TypingTest by QuestionBank: phiên bản iOS, phiên bản Android
Xin cảm ơn,
Minh