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. jcl sort comp3 to 表示型

    Lets say your packed data is at 10th column and is of length 6, S9(4)V99 You could try the following ...

  2. ASP.NET基础题(1-10)

    1.简述 private. protected. public. internal 修饰符的访问权限. private : 私有成员, 在类的内部才可以访问. protected : 保护成员,该类内 ...

  3. [BZOJ 1800] 飞行棋

    Link: BZOJ 1800 传送门 Solution: $O(n^4)$…… Code: #include <bits/stdc++.h> using namespace std; ] ...

  4. jqgrid postData setGridParam 调用多次时查询条件累加的问题--详情页查询导致的无法在新的页面中查询

    $("#btn_search").click(function () { url = "/AMEvents/GetGridJson?evtype=1"; var ...

  5. Proxy server got bad address from remote server

    在ArcMap中,在GIS Servrvers中,打开已经设置好的服务器时,出现下面的弹窗问题. Proxy server got bad address from remote server(ver ...

  6. android 代码覆盖率

    背景 项目使用的是small插件.一个app分为main和多个插件,为了统计插件的代码覆盖率. 1 修改插件 修改插件build.gradle buildTypes { release { ... } ...

  7. leetcode 题解:Merge Sorted Array(两个已排序数组归并)

    题目: Given two sorted integer arrays A and B, merge B into A as one sorted array. Note:You may assume ...

  8. 修改PHP上传文件的大小限制(post)

    在PHP的默认配置情况下,当上传的文件大小超出一定的限制时,我们将得到如下的错误提示信息: Warning: POST Content-Length of 625523488 bytes exceed ...

  9. [Angular] ngPlural

    The usecase is very simple: <div [ngPlural]="items.length"> <ng-template ngPlural ...

  10. AutoWare 使用

      1.安装readme当中的要求,安装依赖库   52 sudo apt-get install ros-indigo-desktop-full ros-indigo-nmea-msgs ros-i ...