App框架搭建

本文是投稿文章,作者:衡成飞(博客


一个App,何为优秀?

产品本身是一个维度,另外一个维度,我想应该是技术层面。

App的框架,如大楼之根基,好的框架对于开发,拓展和维护可以起到事半功倍的效果,其重要性不言而喻。

今天分享一下自己在搭建框架时的经验,希望大家多提意见,一起进步成长。

以下是常见的APP框架结构,此Project中包括自定义的UITabbar、Json反序列化、网络请求异步加载、自适应cell高度以及圆角图片等等。

下图是已经搭建好的项目结构

App结构如下

常见的APP框架大多只有一个Project,包括了所有的业务功能实现。

其缺点是,对于一个稍微大型的APP,结构显得较为复杂,不利于后期的开发和维护。

以下划分,是我个人的一些理解,不足之处还请指教。

※ APP

大的层级划分

Classes---所有开发文件放在此

|-----Common----本app中常见的定义和操作

|-----Logic----所有业务功能相关文件

Third---所有第三方依赖(不支持cocoapod的)

另外依赖下面的IOSModel,IOSCommon,IOSView三个framework。

※ Model(Dynamic Framework)

所有的Http接口模型对象。

此framework作为Client和Server的桥梁,只需关注接口的数据格式。

另外包括Json反序列化为Model的过程,以后若要替换第三方,只需修改此framework即可。

※ Common(Dynamic Framework)

通用的操作,如网络请求,Extension等。

此framework,包含了和业务无关的通用的操作,并对第三方做了再次封装。

若开发其他app,只需引用此framework即可。

※ View(Dynamic Framework)

自定义的View,如圆角图片等(Storyboard可直接设置,不需要编写代码)

CocoaPods依赖的常见第三方库

关于iOS9适配问题,此工程中也已经全部解决。

1:BitCode问题

2:非Https请求

3:第三方登录问题

以上Project下载路径:http://git.oschina.net/hengchengfei/IOSTemplate

原文传送门:http://www.cocoachina.com/ios/20151126/14455.html

快速搭建一个成熟,强壮的App框架【转载】的更多相关文章

  1. 快速搭建一个“微视”类短视频 App

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云视频发表于云+社区专栏 关注公众号"腾讯云视频",一键获取 技术干货 | 优惠活动 | 视频方案 " ...

  2. 一个小时搭建一个全栈 Web 应用框架

    把想法变为现实的能力是空想家与实干家的区别.不管你是在一家跨国公司工作,还是正在为自己的创业公司而努力,那些有能力将创意转化为真正产品的人,都具有宝贵的技能并拥有明显的实力.如果你能在不到一个小时的时 ...

  3. 如何快速搭建一个 Node.JS 项目并进入开发?

    了解:如何快速搭建一个项目并进入开发? 在此不概述 Node.JS 的历史以及发展过程. 因为之前接触过通过 Java 开发语言,所以明确地知道一个服务器所需的文件,以及一个服务器所需要的操作. 那么 ...

  4. 快速搭建一个直播Demo

    缘由 最近帮朋友看一个直播网站的源码,发现这份直播源码借助 阿里云 .腾讯云这些大公司提供的SDK 可以非常方便的搭建一个直播网站.下面我们来给大家讲解下如何借助 腾讯云 我们搭建一个简易的 直播示例 ...

  5. 快速搭建一个Quartz定时任务【转载,好文 ,值得收藏,亲身试用 效果不错】

    Quartz.NET 入门 概述 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔 ...

  6. Dubbo入门介绍---搭建一个最简单的Demo框架

    Dubbo入门---搭建一个最简单的Demo框架 置顶 2017年04月17日 19:10:44 是Guava不是瓜娃 阅读数:320947 标签: dubbozookeeper 更多 个人分类: D ...

  7. 【Head First Servlets and JSP】笔记6:什么是响应首部 & 快速搭建一个简单的测试环境

    搭建简单的测试环境 什么是响应首部 最简单的响应首部——Content-Type 设置响应首部 请求重定向与响应首部 在浏览器中查看Response Headers 1.先快速搭建一个简单的测试环境, ...

  8. jquery+flask+keras+nsfw快速搭建一个简易鉴黄工具

    1. demo 地址:http://www.huchengchun.com:8127/porn_classification 接口说明: 1. http://www.huchengchun.com:8 ...

  9. NodeJS 最快速搭建一个HttpServer

    最快速搭建一个HttpServer 在目录里放一个index.html cd D:\Web\InternalWeb start http-server -i -p 8081

随机推荐

  1. bzoj2301(莫比乌斯反演)

    bzoj2301 题意 求区间 [a, b] 和 区间 [c, d] 有多少对数 (x, y) 使得 gcd(x, y) = k . 分析 参考ppt 参考blog 考虑用容斥分成四次查询, 对于每次 ...

  2. Struts的线程安全

    Servlet/JSP技术和ASP.PHP等相比,由于其多线程运行而具有很高的执行效率.由于Servlet/JSP默认是以多线程模式执行的,所以,在编写代码时需要非常细致地考虑多线程的安全性问题.然而 ...

  3. [POJ 2329] Nearest number-2

    Link: POJ 2329 传送门 Solution: 比较明显的$dp$,但爆搜好像也能过 用多个方向$dp$来解决此题,最后汇总答案即可 一开始我写了4个,但后来发现只要相反的2个方向即可,同时 ...

  4. Spring项目搭建

    1,新建web项目 2,导入jar包 3,编写配置文件 <?xml version="1.0" encoding="UTF-8"?> <bea ...

  5. CentOS 6与CentOS 7的区别收集

    说明: 1.CentOS与Ubuntu没有什么可比性,底层都是Linux,并且Ubuntu在YY广泛的使用,这些并不能说明那个强大哪个不行,只要能解决问题的都是好家伙. 2.市面上教程基本都是基于6, ...

  6. 鼠标悬浮tip 显示

    鼠标悬浮tip 显示 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...

  7. tomcat重启应用和tomcat重启是两回事。热部署就是重启应用

    tomcat重启应用和tomcat重启是两回事.热部署就是重启应用 tomcat重启应用和tomcat重启是两回事.热部署就是重启应用 tomcat可以设置检测到新的class后重启该应用(不是重启t ...

  8. Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for more details.

    在android上发布遇到 androidSDK无法找到的问题 http://www.jianshu.com/p/fe4c334ee9fe

  9. BP神经网络(手写数字识别)

    1实验环境 实验环境:CPU i7-3770@3.40GHz,内存8G,windows10 64位操作系统 实现语言:python 实验数据:Mnist数据集 程序使用的数据库是mnist手写数字数据 ...

  10. bash: /bin/bash^M: bad interpreter: No such file or directory

    在windows下编写shell脚本在linux下运行会出报错: [hadoop@master data]$ ./load_ods_table.sh -bash: ./load_ods_table.s ...