DynamicImagePlacer 0.0.1

DynamicImagePlacer 0.0.1

测试已测试
Lang语言 Obj-CObjective C
许可 MIT
Released上次发布2014年12月

未申请 维护。



 
依赖
RoutingHTTPServer~> 1.0.0
CCTemplate~> 0.2.0
Base64~> 1.0.1
 


  • 作者
  • 赵阳阳

DynamicImagePlacer是一个iOS开发者和设计师使用的库,可以简单地替换资源束中的图像文件而无需重新构建应用。

支持iOS 6+

背景

在团队中参与了几个应用项目后,我发现应用程序开发者和UI/UX设计者之间的团队合作存在一些基本事实。

  • 他们都非常忙碌。开发者专注于布局创建、功能实现、错误修复等。而设计师则专注于颜色、像素、大小等。
  • 对于iOS应用程序中某些类型的图像资源(导航项图像、标签栏项图像、工具栏项图像、视图背景图像等),这些图像的大小是固定的,或者项目初期就可以固定。
  • 开发者通常会使用一些“自行发现图像”来先适合图标组件。
  • 设计师希望在做出一些小改动(可能是颜色改变或1像素的改变)后,尽快看到应用中的应用部分。
  • 开发者正忙于一些模板分支,甚至无法编译当前代码库,他们懒得去切换到设计师设备上安装的版本。所以他们认为设计师可以自己替换图像。
  • 设计师拒绝学习如何使用Xcode,甚至都不下载它。

因此,就有了这个DynamicImagePlacer想法,有了这个想法

  1. 开发者将不会只为设计师更改图像文件而工作。
  2. 设计师将能够使用的一个iOS开发应用,并替换图像以查看效果。

基本功能

稍许使用一些技术,比如运行时方法混合和一个iOS web服务器。

  1. 使用运行时方法混合来修改 UIImage 的原生实现。
  2. 设置一个web服务器与开发者/设计师交互。
  3. 设计师上传需要替换的图像,web服务器将图像存储到应用程序文档目录中,名称与原始图像相同。
  4. 当应用程序重新启动时,资源束中原图像的代码/Storyboard/Xib使用将被替换为文档目录中的替换图像版本。

    所以,如果您要将它提交到AppStore,最好将其拆分到构建中,尽管我已经小心翼翼地编写了宏,以确保运行时方法混合代码不会被包含在发布构建中,这意味着您在发布构建中不能使用DynamicImagePlacer功能。

安装

  • DynamicImagePlacer添加到您的项目中
  • 添加源目录中的文件
  • 在支持目录中安装库文件

Podfile

platform :ios, '6.0'
pod "DynamicImagePlacer", "~> 0.0.1"

使用说明

您几乎可以使用DynamicImagePlacer在任何类型的iOS项目中。例如,示例项目是一个简单的项目,如下所示。它包含一个UIImageView和一个UIButton,它们的图片是通过Storyboard设置的,以及一个UIImageView,其图片是通过代码设置的。

image

您可以在应用程序的didFinishLaunchingWithOptions:代理中添加一行代码。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [[DynamicImagePlacer sharedPlacer] startServer];
    return YES;
}
  1. 在调用startServer后,DynamicImagePlacer启动其进程后,将在8080端口设置一个网络服务器。开发者可以使用与目标iOS设备在同一本地网络中的计算机访问http://[ip]:8080/。
  2. 如果您不知道IP地址,您可以通过iOS设备的未读通知进行检查,DynamicImagePlacer应该已经推送了消息。
    image
  3. 在网页上您可以看到所有图标(异常应用图标,默认图片)的列表,以及白色占位符和相关链接。 image
  4. 您可以将图标文件拖动到您想要更改的目标图标右侧 image
  5. 您可以通过重复第4步来替换拖入的图片,或者按下替换部分右侧的删除链接来删除图片,让原始图片恢复正常。
  6. 在完成所有更改后,您需要至少杀掉一次应用程序。
  7. 重新启动应用程序,您将看到您上传的图片被使用了。
    image