iOS APP 架构漫谈(一)
最近看了一些有关server的东西,一些很简单的东西,不外乎是一些文档规范,另外结合最近看的wwdc的一些video,觉得对软件架构(software architecture)认识又清楚了一些,这里记录下来。 software architecture 听上去是一个很大的概念,实际上也包括很多东西,里面的争议也很多。在我看来软件架构最好放在小的场景中理解。问
本文是对我在知乎一个回答的整理,其中的内容大多是对我平时的阅读和实践的总结,希望对Android的开发者有所帮助。但毕竟是个人的一些思考,难免有疏漏,也欢迎对本文的内容提出建议。1. 架构设计的目的对程序进行架构设计的原因,归根到底是为了提高生产力。通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合。这样做的好处是使得程序在开发的过程中,开发人员只需要专注于一点,提高程序开发的效率,并且
转载
2023-09-30 17:45:21
163阅读
一、概念 没有最好的架构,只有适合自己的业务的架构才是最好的架构,并且它是逐步地变强变大。 架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。 二、iOS的系统架构分为四个层
转载
2023-06-14 15:56:04
1002阅读
App架构是软件设计的一个分支,它关心的是如何设计一个 App 的结构。我的理解结构设计分水平和垂直两个方向。垂直方向分:基础层、核心层、业务层、界面层。水平方向可以理解为对界面的的设计模式,目前比较通用的有MVC、MVP、MVVM三种,具体见下图:1、MVC - Apple版是 Cocoa app 中最为常⻅的架构,同时也是在 Cocoa 中讨论架构时所采用的基准线。1、实线部分代表编译期间的引
转载
2023-07-12 10:25:54
70阅读
苹果官方推荐的 APP 架构是 MVC 架构,实际上它并不是传统的三层架构,而是两层架构,即整个 APP 由“模型”和“视图控制器”两层构成。因此视图控制器显得尤其重要,它的重要体现在两个方面:ViewController 是 iOS APP 中最重要的“基石”,没有 ViewController 就没有 APP——iOS 9 以后,要求 UIWindow 必须要有一个 rootViewContr
转载
2023-09-08 10:22:38
176阅读
IOS里面几乎所有的可视化类都封装在UIKit.framework里面; 和Mac os系统一样,都是基于Unix内核;一、iOS系统框架Cocoa Touch层 主要包含了大部分使用Objective-C的API,主要由Foundation和UIKit框架组成,Foundation提供了面向对象的文件访问,网络操作,数据,和集合类型;Media层 Media层主要提供了一些基本的绘图、声音和
转载
2023-08-15 12:57:16
74阅读
点赞
实现过程 一、界面框架设计思路 我们发现对于APP的四个tab页面来说,每个页面都是由三个部分组成的:顶部的固定部分,用来显示自己APP的名字;中间部分的主页面,用来显示不同页面的主内容;底部的导航页面,用来帮助使用者清晰的切换页面。同时由于要实现页面之间的交互(中间的主内容随底部导航切换而切换),因此我们的设计思路为设计三个框架进行拼接:顶部的top、底部的bottom、中间的分段以
转载
2024-01-16 19:05:46
219阅读
该指南针的目标人群是已经知道如何建构简单的app,并且希望了解构建健壮的产品级app的最佳实践和推荐架构。app开发者面临的难题不同于大部分的传统桌面应用只有一个入口,并且作为一个整体的进程运行,Android app有更加复杂的结构。一个典型的app由多种组件构成,包括activity,fragment,service,content provider和broadcast receiver。几乎
转载
2023-07-14 17:15:21
108阅读
iOS客户端应用架构看似简单,但实际上要考虑的事情不少。本文作者将以系列文章的形式来讨论iOS应用架构中的种种问题,本文是其中的第三篇,主要讲网络层设计以及安全机制和优化方案。前言网络层在一个App中也是一个不可缺少的部分,工程师们在网络层能够发挥的空间也比较大。另外,苹果对网络请求部分已经做了很好的封装,业界的AFNetworking也被广泛使用。其它的ASIHttpRequest,MKNetw
转载
2024-05-28 11:22:23
56阅读
对于 Android 客户端的架构设计,可以从分层化和模块化来考虑。 目录:分层化模块化业务逻辑层设计 1. 分层化在 Android 客户端开发中,通常可以分成以下几层:SDK层:主要是 Android SDK 及第三方的 SDK (可能基于 Android SDK 或为独立的 SDK),这些 SDK 为上层框架提供核心功能的支持。基础框架层:这里所谓的基础框架,
转载
2023-07-13 12:22:40
112阅读
先说一下为什么要讲框架的设计。 第一、IM应用一般是基于长连接的,也就是后台一直在收发数据,那这里就有一个后台的概念; 第二、如果用户是一个人群里面的中心人物的话,那么他的的数据量就会很大。页面的显示及数据库的处理就需要关注了; 第三、分解app有利于我们降低耦合,在后期维护和升级时,稍微容易一点。 我觉得框架就是先拆解部件再建立联系。框架有很多种,我借鉴的是依赖注入。依赖
转载
2023-07-19 23:24:48
164阅读
App架构设计经验之谈1.接口的设计1.1安全机制的设计由于App的接口大部分采用RESTful架构,而RESTFul最重要的一个设计原则-客户端与服务器的交互的无状态性,所以,当涉及到用户状态时,每次请求都要带上身份验证信息。实现上,大部分都采用token的认证方式,一般流程:(1)用户用密码登录成功后,服务器返回token给客户端; (2)客户端将token保存在本地,发
转载
2023-07-07 09:30:51
344阅读
一、如何理解架构?架构分为三个阶段:规划、设计、构建。在规划阶段,考虑的是产品的需求、质量的需求,技术的可行性分析以及预研。在设计阶段,考虑的如何将一个复杂的系统拆分,并设计如何进行组织这些拆分的模块。在构建阶段,考虑的就是具体的实施问题,并且要保证一定的伸缩扩展性,因为架构是不断演进的。 架构的设计可以从两个维度来考虑,一是架构思维,二是架构原则。思维是我们的思
转载
2023-09-25 19:20:51
188阅读
本文目的:对app设计架构有一个初步的了解; **为什么需要架构设计(代码在10万行以上) 1,使我们的程序模块化(分工协同开发的需要),模块内部的高内聚和模块之间的低耦合; 2,提高开发效率,后期的测试以及定位会变得更容易 **android中MVC设计架构 1,android中的设计架构都是来源于javaweb当中一些思想和模式 2,android中界面部分就是采用当前比较流行的M
转载
2023-07-24 12:38:55
60阅读
今天回头看看设计文档,回头复习一下,然后对比自己的App,发现有好些条在开发阶段都贯彻得不彻底。iphone 三种设计方案:效率型:社交、银行、企业应用应用型:天气预报,地图、打车侵入型:音频、视频等设计观念关注:移动应用的本质就是帮助用户以最高的效率完成特定的应用,少即是多。不要用多多益善的观念来打造移动应用。独特:与同类产品需要有独特之处。使用环境:无聊忙碌异地通用的设计规范: 响应
转载
2023-07-29 23:46:32
66阅读
一、结构介绍 Android Studio的工程创建分两个层级:第一个层级通过菜单File→New→New Project创建,这里的新项目是指新的工作空间,对应Eclipse的workspace。 2.第二个层级通过菜单File→New→New Module创建,
转载
2023-07-27 00:16:51
47阅读
互联网分层架构的本质,是数据的移动。 互联网分层架构演进的核心原则:让上游更高效的获取与处理数据(复用),让下游能屏蔽数据的获取细节(封装)。 不管数据怎么移动,最终都会汇聚到客户端。服务端的分层架构设计已经讲了很多,客户端的分层架构设计应该怎么玩呢,服务端的分层架构设计是否有能够借鉴的地方呢,今天和大家简单聊一聊。 先来看小诗一首:《Android猿》曾
转载
2024-07-27 13:46:44
17阅读
一、概述① 应用架构App 架构是软件设计的一个分支,它关心的是如何设计一个 App 的结构。具体来说,它关注于两个方面:如何将 App 分解为不同的接口和概念层次部件,以及这些部件之间和自身的不同操作中 所使用的控制流和数据流路径。通常使用简单的框图来解释 App 的架构,比如,Apple 的 MVC 模式可以通过 model、 view 和 controller 三层结构来描述,如下所示:在一
转载
2023-08-16 19:56:27
158阅读
其实对于iOS客户端应用的架构来说,复杂度不亚于服务端,但侧重点和入手点却跟服务端不太一样。比如客户端应用就不需要考虑类似C10K的问题,正常的app就根本不需要考虑。 这系列文章我会主要专注在iOS应用架构方面,很多方案也是基于iOS技术栈的特点而建立的。因为我个人不是很喜欢写Java,所以Android这边的我就不太了解了。如果你是Android开发者,你可以侧重看我提出的一些架构思想,毕竟
转载
2023-11-30 22:07:22
37阅读
Android中的MVC Android中界面部分也采用了当前比较流行的MVC框架,在Android中:视图层(View)一般采用XML文件进行界面的描述,这些XML可以理解为AndroidApp的View。使用的时候可以非常方便的引入。同时便于后期界面的修改。逻辑中与界面对应的id不变化则代码不用修改,大大增强了代码的可维护性。控制层(Controller)Android的