APP下载

基于iOS 的JSON 在线编辑工具的设计与实现

2020-11-05申凡

科学技术创新 2020年32期
关键词:数据源字体工具

申凡

(天津科技大学 人工智能学院,天津300450)

1 概述

Firebase 实时数据库是基于云存储的数据库。数据的存储格式是JSON 文件。在实际的开发中,负责数据信息顺序、属性的操作通常更适用于运营团队,他们的任务是在开发者完成之后进行数据的增删改。本系统面向运营部门开发,开发语言是Objective-C,开发平台为Xcode,采用的结构是典型的MVC(Model-View-Controller)设计者模式,布局方式有xib 布局和纯代码布局。使用Firebase 实时获取数据,在APP 中实现多个代理和函数回调。对JSON 文件进行编辑,编辑结束后可以使用文件协调工具来得到新的文件地址,从而实现文件的保护和上传功能。

2 相关技术

Firebase:本项目的数据库放置在Firebase Realtime Database 中,不需要实时链接数据库,只需要将JSON 文件导出,导出之后在本地进行操作,不用一直处于vpn 打开的状态。

第三方库管理工具:为了更好的管理第三方依赖库,使用CocoPods 管理工具集中管理第三方库。在更新gem 的时候,切换Ruby 源来安装。首先需要移除国外的源再添加国内的源。替换成功则可以安装CocoaPods。在安装之后可以更新索引仓库。如本系统使用该App 进行字典和模型之间的互相转换。如表1所示。

表1 MHExtension 框架转换表

3 系统设计

本系统开发和测试过程如下,首先需要将数据上传至服务器,接着导入到开发工具端即可实现对JSON 文件数据源的操作,如搜索欲修改品名,可视化设置其属性;根据url 链接直接添加新的json 文件;对数据进行删除;修改当前字体或者表情包的属性。将数据保存之后上传到Firebase,可以在Firebase 上查看新的JSON 数据源,由于Firebase 是实时数据库,因此可以在测试平台直接显示和使用字体或者表情包。

3.1 工具端设计

首先需要在Firebase 上导出JSON 文件,把该文件导入到iPhone。其次导入成功后,可以对当前JSON 文件添加新的表情或者字体,对其执行修改属性,删除,移动,保存等操作。服务器端存储数据,涉及到的操作是导入/导出JSON 文件。工具端主要完成的工作是:导入JSON 文件、添加cell、修改属性、控制vip权限、删除表情包/字体、模糊搜索、移动表情包/字体、显示轮播图、保存文件。

3.2 Firebase 服务器设计

在Firebase 上主要分为两个部分,font 和stickersfont 包含的属性有installisNEw、lowercase、name、uppercase、vip 等。在sticker中主要包含contents_json_url,另外包含key 和value 值。

3.3 测试端模块设计

需要一个成熟的测试端,如键盘输入法平台,包含多款皮肤、字体等。在此平台上,开发一款基于该平台的一个JSON 工具。JSON 工具可以对平台数据进行操控,同时使用Firebase 进行数据存储。多个界面和功能来进行JSON 编辑工具的测试和核准操作,并且经过工具测试之后可以直接使用于手机所有APP 的输入操作。

4 系统实现

4.1 工具端实现

(1)获取json 文件:创建实时数据库,在开发者选项中,选择数据库输入相应的字段信息,使用export 功能导出JSON 文件,此时无法在Firebase 上直接对其进行编辑,仅在本地进行操作。

(2)导入json 文件:懒加载数据“获取模型数据,如果当前的数据不为空,则返回该数据源,如果为空,则初始化一个数据对象”,遍历其中所有的数据,将其添加到Model 模型中。创建单元格,给当前的单元格设置一个ID,布局并赋值后返回单元格,最后将控制流程返回给UI 框架去进行处理。

(3)添加sticker/Foot:获取添加表情包或者字体的文件链接。一个表情包涉及到很多表情,每个表情对应着一个链接,需要把该JSON 文件的内容解析,添加主要的字段到表情包的JSON 文件。为了方便用户的对新添加的元素进行管理,在用户添加的时候,可以对主要的两个属性更改Boolean 值,这个Boolean 值设置为可变数组,以TableView的形式展示。

(4)修改属性:当所有的字体都加入到当前的TableView 之后,每个单元格均显示出序号、名字和两个可以更改的属性值("isNew" : true 和"lock_type" : true), 在每一行的上面有两个UIswtich 可以改这两个值。这两个值修改之后上传服务器。当用户更新APP 再次进行下载的时候,就可以被相应的属性控制下载的权限,如图1 所示。

图1 可视化修改Font 属性

(5)删除:在tableview 上实现删除操作,需要启动表格的编辑模式。

a.视图:View 打开ViewController.xib,打开ViewController.m,在viewDidLoad 方法添加布局代码。在删除操作中,首先需要启动的是表格的编辑模式,在编辑模式打开之后,每行的左边会默认出现红色的删除按钮。

操作的值主要是,将editingStyleForRowAtIndexPath 方法中的UITableViewCellEditingStyleNone 进行编辑,即可完成操作。

b.控制器Controller:删除操作实现:将方法加入之后,APP无法对每行进行标记,即不会执行didSelectRowAtIndexPath 这个方法。删除的具体操作是执行editingStyleForRowAtIndexPath方法。

(6)搜索:在ViewController 中创建一个搜索函数,在函数中,首先需要创建一个UISearchController 控制器,在self 的基础上初始化一个搜索对象,这个searchController 主要是声明为UISearchController 类型,可以直接使用UISearchController 的委托方法。

(7)移动:移动数据可以直接拖动每行的移动按钮,拖拽实现移动效果。实现的逻辑为当用户拖拽x 行至y 行,则需要先移除x 行,再将数据插入到y 行,这样就能实现了移动操作。移动数据主要使用的方式是当用户点击移动按钮即可以触发LXAlertView 调用它的代理方法,代理方法中包含@property(nonatomic, copy) void (^changeBlock) (NSString * oldNumber,NSString * changeNumber);方法。可以直接输入两个行号进行移动。移动结束之后,可以直接进行保存。

(8)保存:当用户对该JSON 文件操作结束之后,就可以进行保存操作,可以选择保存至iCloud Drive 或者是保存到iphone本地。登入Firebase 服务器,打开Database 导入JSON 文件。

4.2 服务器端实现

第一步是配置服务器端bundle ID,在Xcode 上创建项目之后,需要查看生成的ID,将其配置到服务器Firebase 上,其中包含Project name,Project ID,Web API Key。

第二步是下载plist 文件,将其导入到项目之中,导入FirebaseSDK。

4.3 测试端实现

(1)Emoji Keyboard

获取数据:在该页面,在当前的TableView 中首先需要获取到Firebase 实时数据库中的数据,将其添加到本地数据源中,请求实时数据库使用的是回调函数。

使用url 链接下载回调,由于JSON 文件仍然会存一个表情包的icon,需要设置URL 链接来下载图片的回调;id 下载回调,使用id 来下载表情包;返回添加反馈值:若添加成功,addendLocalResourceSticker:(NSDictionary *)model 函数将返回一个Boolean 值。

在下载过程中,在控制器中使用UITableView 来获取数据源显示信息。其中包含购买vip 按钮,积分按钮,TableDataSource数据源,积分模型、轮播图的view等。

(2)判断是否为vip

在用户下载的时候,有一个重要的属性是判断当(转下页)前用户是否处于VIP 状态,涉及到一个权限问题。具体需要判断是否处于VIP 的逻辑。

首先需要在Analysis 里面新建一个User Explorer 类型的表格,在filter 里将revenue >0 的用户筛选出来。点击任意一个用户,会新建一个Tab,包括了该用户全生命周期的详细操作;同样在左侧有筛选,可以过滤埋点;也可以点击埋点,查看这个埋点的详细信息。

以应用的埋点,创建一个购买用户的Segment,应用到表格上;可以按照需求筛选任意类型的用户;筛选payment_finish 埋点title 为Cool Font 的用户,只需要点击+号创建一个Segment然后选择相应的埋点与参数;右侧会有人数与会话预估;应用Segment 后会将对应的用户筛选出来。

5 系统总结

工作成果是设计并实现了一个基于iOS 和Firebase 开发的JSON 在线编辑工具。

该APP 具备良好的前景,作为json 文件的操作工具所服务的便是用户的边界操作体验,无论是选择品牌管理、商品管理、营销、还是资源列表等服务,对JSON 文件的等操作体验直接决定了用户的工作效率。用户可以根据市场的下载量等信息,对产品的价格、类别进行多次更改,不借助于程序员完成日常的更新需求。

测试端和工具端得到了完美的契合,互相配合完日常的工作。

猜你喜欢

数据源字体工具
波比的工具
波比的工具
字体的产生
利用属性集相关性与源误差的多真值发现方法研究
准备工具:步骤:
Web 大数据系统数据源选择*
“巧用”工具
数据有增加 图表自适应
组合字体
异构数据源集成系统查询优化