Chuyển đến nội dung chính

Bài đăng

Lưu ý về vendored_frameworks khi project pod sử dụng nhiều thư viện binary

vendored_frameworks Khi bạn cần đóng framework private source code thì có thể cung cấp cho các dev khác thông qua trực tiếp file .framework hoặc .xcframework hoặc qua pod,... Nếu bạn chỉ muốn đính kèm 1 dynamic framework thì bạn chỉ cần khai báo trong podspec như sau: s.vendored_frameworks = 'Frameworks/MyFramework.xcframework' Khi project thư viện của bạn sử dụng nhiều hơn 1 framework thì sử dụng cú pháp sau  s.vendored_frameworks = ['Frameworks/LV24hCore.xcframework', 'Frameworks/Alamofire.xcframework', 'Frameworks/AlamofireImage.xcframework', 'Frameworks/CryptoSwift.xcframework', 'Frameworks/ObjectMapper.xcframework'] Lưu ý là viết dấu [ trên 1 dòng nhé,  nếu Style xuống dòng trông cho sạch đẹp thì sẽ không ăn nhé. Ví dụ mình viết như này thì test không thấy ăn. s.vendored_frameworks = [ 'Frameworks/LV24hCore.xcframework', 'Frameworks/Alamofire.xcframework', 'Frameworks/AlamofireImage.xcframework',
Các bài đăng gần đây

Git migrate git to another git server

Migrate git from bitbucket to gitlab host on your server or other git server. Step 1: Clone all branches git clone --mirror <URL to my OLD repo location> cd <New directory where your OLD repo was cloned> Step 2: Create new empty repo Step 3: Change origin url git remote set-url origin <URL to my NEW repo location> Step 4: Push all code to new git server git push -f origin Git command to update current account to correct account with new git server git config user.email “[new email]”: Đổi email git config user.email -> Xem email hiện tại git config —global user.email: Xem thông tin email global git config —global user.email “[new email]”: Đổi email áp dụng global git config user.name “[new name]”: Đổi tên git config user.name -> Xem tên hiện tại Change user and origin url in Android Studio with new origin url: http(s)://[username]@domain/repo.git

Windows 10 enable long file/folder path

Windows 10 enable long file/folder path Registry Import Enabling Long Paths Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\FileSystem] "LongPathsEnabled"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem] "LongPathsEnabled"=dword:00000001 Enable via group policy editor Local Computer Policy -> Computer Configuration -> Administrative Templates -> System -> FileSystem -> Double click Enable Win32 long paths and select Enabled

[iOS][Swift] VND currency formatter

[iOS][Swift] VND currency formatter static func formatCurrency( _ inputNumber: NSNumber , symbol: String = "VND" ) -> String {     let formatter = NumberFormatter (numberStyle: . currency )     formatter. currencySymbol = symbol     formatter. currencyGroupingSeparator = ","     formatter. locale = Locales . vietnam     formatter. numberStyle = . currency     formatter. positiveFormat = "#,##0 ¤"     return formatter. string (from: inputNumber) ?? String (format: "%@%@" , AppConstant . Character . space160 , symbol)   } Đoạn formatter.positiveFormat chính là ép ký tự currencySymbol luôn ở bên phải (vd: 1,000,000 VND) thay vì nó sẽ hiển thị VND 1,000,000 trên một vài thiết bị. Tham khảo bài viết này để hiểu rõ thêm về NumberFormatter

UICollectionView set number or columns

#1. Subclassing  UICollectionViewFlowLayout  and using  UICollectionViewFlowLayout 's  itemSize  property ColumnFlowLayout.swift: import UIKit class ColumnFlowLayout : UICollectionViewFlowLayout { let cellsPerRow : Int init ( cellsPerRow : Int , minimumInteritemSpacing : CGFloat = 0 , minimumLineSpacing : CGFloat = 0 , sectionInset : UIEdgeInsets = . zero ) { self . cellsPerRow = cellsPerRow super . init () self . minimumInteritemSpacing = minimumInteritemSpacing self . minimumLineSpacing = minimumLineSpacing self . sectionInset = sectionInset } required init ?( coder aDecoder : NSCoder ) { fatalError ( "init(coder:) has not been implemented" ) } override func prepare () { super . prepare () guard let collectionView = collectionView else { return } let marginsAndInsets = sectionInset . left + sectionInset . right + coll