CIAppKit 0.0.8

CIAppKit 0.0.8

Mobile Cloud-Interactive 维护。



CIAppKit 0.0.8

  • 移动团队

代码库

GitHub 链接

在项目过程中,如果做到了可重复使用的组件,无论是 UIKit 还是其他组件操作,都可以放到这个 Repo 中建档。未来如果有同样的需求,可以直接到这个 Repo 中拿出代码使用。如果开发者后续已经掌握 Cocoapods 或 Carthage 等构建工具,也可以将其构建成 framework,供其他人使用。

规范

一定需要写说明,至少一行,可以写在 .h 文件方法的上方,或者单独写 README.md

CIFoundation

基本的格式检查,放的是项目共用的东西

--

CIFormatter

// 检查此字符串是否全部为数字

+ (BOOL)isDecimal:(NSString*)string;

// 检查此字符串是否符合台湾手机格式

+ (BOOL)checkMobileNumber:(NSString *)mobileNumber;

// 版本号检查,如果 version 2 比version 大

+ (BOOL)checkNeedUpdateFrom:(NSString*)version1
          needUpdateVersion:(NSString*)version2;

// 邮箱检查,目前设定字符数为 2 ~ 100

+ (BOOL)checkEmailFormatIsValid:(NSString*)email;

CINumberFormatter

// 将一个 double 数字加上千分位,还可以设置小数点几位,小数点不足会补0

+ (NSString*)roundOff:(double)input fractionDigits:(NSInteger)fractionDigits;

CILockPatternView

使用手势解锁,需要设置圆点的顺序。灵感来源于 HUIPatternLockView

类别 + 扩展

NSString+URLEncoding

// 对 NSString 进行百分号编码,使这个 NSString 可以转换成 URL 不会出现 nil

- (nullable NSString *)stringByAddingPercentEncodingForRFC3986;

编码风格

目前遵循 Ray Wenderich
编码风格

xcodebuild 命令行脚本

xcodebuild \
-project CIFoundation.xcodeproj \
-scheme CIFoundation \
-sdk iphonesimulator12.1 \
-destination 'platform=iOS Simulator,name=iPhone 8,OS=12.1' \
test

也可以加上 xcpretty --test --color 上色

使用这个 framework 的项目需要添加这个 build phases

目前直接在使用 Cocoa Pods 项目内直接 embeded 这个 framework 会导致无法通过 App Store 的扫描,还在排查问题

FRAMEWORK="CIFoundation"

FRAMEWORK_EXECUTABLE_PATH="${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/$FRAMEWORK.framework/$FRAMEWORK"

EXTRACTED_ARCHS=()

for ARCH in $ARCHS

do

lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"

EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")

done

lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"

rm "${EXTRACTED_ARCHS[@]}"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"