- vừa được xem lúc

Sub-modules cho Xcode

0 0 18

Người đăng: Nguyen Tuan Anh N

Theo Viblo Asia

Let's start:

Mở Xcode và tạo một WorkSpace mới. Bạn không thể thực hiện việc này từ màn hình Chào mừng của Xcode, nhưng bạn có thể sử dụng phím tắt ⌃ ⌘ N (control + command + n). Tạo một thư mục trống mới và gọi nó là modules. Bạn có thể chọn một tên khác, nhưng đối với bài viết này, tôi sẽ sử dụng modules.

Thêm một dự án mới vào WorkSpace này bằng ⇧ ⌘ N (shift + command + n). Trong hộp thoại mở, chọn mẫu iOS App template và gọi nó là main.

Đảm bảo bạn tạo nó trong thư mục modules và cũng chọn thêm nó vào app WorkSpace và app group. Add another new project, but now select the iOS Framework template and call it core. Create this in the modules folder too and also add it to the app workspace and app group. Thêm một project mới khác, nhưng bây giờ hãy chọn iOS Framework template và gọi nó là core. Tạo điều này trong thư mục modules và cũng thêm nó vào app workspace và app group.

Cấu trúc thư mục của bạn bây giờ sẽ giống như sau:

Link it together

Đã đến lúc link core project/module với main project. Chọn main target của main project và kéo và thả core.framework vào section Frameworks, Libraries, và Embedded Content.

A simple test

Để kiểm tra nó, hãy tạo một tệp Swift mới (⌘ N) trong core project bằng method đơn giản sau:

import Foundation public func name() -> String { return "Ralph"
}

Trong main project, hãy thay đổi ContentView.swift. Thêm import core statement và call method name():

import SwiftUI
import core struct ContentView: View { var body: some View { Text("Hello, \(name())!").padding() }
}

Xcode có thể hiển thị lỗi liên quan đến minimum deployment target. Để khắc phục điều này, hãy thay đổi nó thành 13.0 trong cả main và core projects.

Add dependencies

Hiện tại, tôi đang sử dụng CocoaPods để quản lý dependency vì tôi không quá quen thuộc với Swift Packages. Trong thư mục modules, tạo tệp Podfile với content này và call pod install.

workspace 'app.xcworkspace'
platform :ios, '13.0'
use_frameworks! def core_pods pod 'SwiftDate', '~> 6.3.1'
end def main_pods # add pods for the main target here
end target 'core' do project 'core/core.xcodeproj' core_pods
end target 'main' do project 'main/main.xcodeproj' core_pods main_pods
end

Lệnh pod install khởi tạo CocoaPods cho workspace này (vì chúng ta chưa làm điều đó cho đến nay) và thêm SwiftDate pod như một dependency vào core project.

Bây giờ chúng ta có thể sử dụng SwiftDate (tôi chỉ sử dụng cái này để chỉ cách thêm một dependency). Thay đổi tệp ContentView.swift và Name.swift trong core project như sau:

ContentView.Swift

import SwiftUI
import core struct ContentView: View { var body: some View { Text("Today in one year is: \(nextYear())").padding() }
} struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() }
}

Name.Swift

import Foundation
import SwiftDate public func nextYear() -> String { let nextYear = (Date() + 1.years) return nextYear.weekdayName(.default)
}

Done

Bạn có thể tìm thấy dự án hoàn thiện tại: https://github.com/the4thfloor/xcode-submodules

Nguồn tham khảo: Sub-modules for Xcode

Bình luận

Bài viết tương tự

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 1: Làm quen cô nàng Flutter

Lời mở đầu. Gần đây, Flutter nổi lên và được Google PR như một xu thế của lập trình di động vậy.

0 0 253

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 3: Lột trần cô nàng Flutter, BuildContext là gì?

Lời mở đầu. Màn làm quen cô nàng FLutter ở Phần 1 đã gieo rắc vào đầu chúng ta quá nhiều điều bí ẩn về nàng Flutter.

0 0 189

- vừa được xem lúc

Swift: Tạo custom phép toán tử (Operator) của riêng bạn!

Swift cho phép bạn tạo các toán tử có thể tùy chỉnh của riêng bạn. Điều này đặc biệt hữu ích khi bạn xử lý các loại dữ liệu của riêng mình. Operator Types in Swift. Có năm loại toán tử chính trong Swift.

0 0 45

- vừa được xem lúc

Chương 6 Protocol oriented programming.

Cuốn sách này là về lập trình hướng protocol. Khi Apple thông báo swift 2 ở WWDC 2015.

0 0 27

- vừa được xem lúc

Ví dụ về UIActivityViewController

Trên iOS, UIActivityViewController cung cấp giao diện thống nhất để người dùng chia sẻ và thực hiện các hành động trên văn bản, hình ảnh, URL và các mục khác trong ứng dụng. let string = "Hello, world!". let url = URL(string: "https://nshipster.com").

0 0 45

- vừa được xem lúc

Quản lý self và cancellable trong Combine.

. . Công việc quản lý bộ nhớ memory management thường trở nên phức tạp khi chúng ta thực hiện các tác vụ bất đồng bộ asynchronous vì chúng ta thường phải lưu giữ một số object nằm ngoài scope mà object được define trong khi vẫn phải đảm bảo được việc giải phóng object đó được thực hiện đúng quy trìn

0 0 28