首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

App架构设计经验谈:技术选型

iOS开发,语言上是选择Objective-C还是Swift?架构模式用MVC,还是MVP,或者MVVM?下面根据我一些经验对某些方面做点总结分享。...如果人员和时间资源充足的话,那又如何选型?毫无疑问,我会以H5为主,微信和App都有的页面统一用H5,App专有的部分,比如导航栏、标题栏、登录等,用原生实现。...Objective-C/Swift 我在项目中选择了Swift,主要基于三个原因: Swift真的很简洁,生产效率很高; Swift取代Objective-C是必然趋势; 目前iOS只有我一个人开发,...再推荐几个关于Swift第三方库: Alamofire:Swift版本网络基础库,和AFNetworking是同一个作者 AlamofireImage:基于Alamofire图片加载库 ObjectMapper...:Swift版本Json和Model转换库 AlamofireObjectMapper:Alamofire扩展库,结合了ObjectMapper,自动将JSONResponse数据转换为了Swift

1.4K10

iOS最全性能优化之25个建议

性能对 iOS 应用开发尤其重要,如果你应用失去反应或者很慢,失望用户会在App Store写满差评。然而由于iOS设备限制,有时搞好性能是一件难事。...简单来说,就是用事先渲染好图片更快一些,因为如此一来iOS就免去了创建一个图片再画东西上去然后显示在屏幕上程序。...选择正确数据格式 从app和网络服务间传输数据有很多方案,最常见就是JSON和XML。你需要选择对你app来说最合适一个。 解析JSON会比XML更快一些,JSON也通常更小更便于传输。...可是,坏消息是使用这个方法也有问题… Core Animation不得不先在后台得出你图形并加好阴影然后渲染,这开销是很大。...选择正确数据存储选项 当做本地数据存储时你会怎么做

1.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

优化 iOS 程序性能 25 个方法

因为UIKit在主线程上做所有工作,渲染,管理触摸反应,回应输入等都需要在上面完成。 一直使用主线程风险就是如果你代码真的block了主线程,你app会失去反应。...创建并隐藏这个view当这个screen加载时候,当需要时显示; 2. 当需要时创建并展示。 每个方案都有其优缺点。...当然每个不同解决方法都有不同复杂程度和相应性能。 简单来说,就是用事先渲染好图片更快一些,因为如此一来iOS就免去了创建一个图片再画东西上去然后显示在屏幕上程序。...你需要选择对你app来说最合适一个。 解析JSON会比XML更快一些,JSON也通常更小更便于传输。从iOS5起有了官方内建JSON deserialization就更加方便使用了。...21.选择正确数据存储选项 当存储大块数据时你会怎么做

70040

你觉得你web应用只可以响应得更快一点吗——让上传速度加快10倍!

虽然现在网络下载速度越来越快,但是你还是主动地通过资源最小化和压缩等方法来要让你网店加载得更快。...但是如果你想通过其它方式来加快响应,那又该怎么做? 欢迎来到上传未知领域 上传文件这个过程有什么东西是还非常不了解?...我们真的使上传变得更快了吗? 事实上是的。 ? 左边是上传未经压缩文件,而右边则是经过压缩过。我们很容易在它们俩中作出选择。...在经过针对这个方法一段时间测试后,我们决定把使用到我们app项目中。在我们项目中,我们要上传一些JSON格式3D模型数据。在压缩之前,他们有时会达到5-6MB。...你不用担心它是否真的上传你所选择文件并随便发布到其它地方,只是单纯地改变进度条,以便你可以对上传这些未压缩和压缩过文件所需时间进行对比。

81110

iOS 性能优化常用技巧总结import

因为UIKit在主线程上做所有工作,渲染,管理触摸反应,回应输入等都需要在上面完成。 一直使用主线程风险就是如果你代码真的block了主线程,你app会失去反应。...当然每个不同解决方法都有不同复杂程度和相应性能。 简单来说,就是用事先渲染好图片更快一些,因为如此一来iOS就免去了创建一个图片再画东西上去然后显示在屏幕上程序。...16.选择正确数据格式 从app和网络服务间传输数据有很多方案,最常见就是JSON和XML。你需要选择对你app来说最合适一个。 解析JSON会比XML更快一些,JSON也通常更小更便于传输。...从iOS5起有了官方内建JSON deserialization就更加方便使用了。...可是,坏消息是使用这个方法也有问题… Core Animation不得不先在后台得出你图形并加好阴影然后渲染,这开销是很大

1.1K70

iOS内存和性能优化策略

创建并隐藏这个view当这个screen加载时候,当需要时显示; 2. 当需要时创建并展示。 每个方案都有其优缺点。...简单来说,就是用事先渲染好图片更快一些,因为如此一来iOS就免去了创建一个图片再画东西上去然后显示在屏幕上程序。...你需要选择对你app来说最合适一个。 解析JSON会比XML更快一些,JSON也通常更小更便于传输。从iOS5起有了官方内建JSON deserialization就更加方便使用了。...虽然很nice也很便捷,但是只适用于小数据,比如一些简单布尔型设置选项,再大点你就要考虑其它方式了 XML这种结构化档案?总体来说,你需要读取整个文件到内存里去解析,这样是很不经济。...既然有两种类似的方法来实现相同目的,那么他们之间差别是什么? `imageNamed`优点是当加载时会缓存图片

81720

iOS开发常用之网络、网页

网络相关 网络连接 AFNetworking - ASI不升级以后,最多人用网络连接开源库,iOS网络编程之AFNetworking使用,iOS开发下载文件速度计算 , AFNetworking...Pitaya.swift - Pitaya是纯SwiftiOS网络库,支持基本授权,SSL钢钉,HTTP原体/ JSON体,快速文件上传等特性,并通过内置JSONNeverDie实现了对JSON完全支持...FastImageCache - FastImageCache网络图片获取及缓存处理,iOS图片速度极限优化 - FastImageCache解析。...相比XML和JSON,protobuf解析更快,存储更小。 JSONCodable - 基于Swift 2.0新特性(协议扩展和错误处理)JSON解析类。...YYModel - 高性能iOS JSON模型框架。 TidyJSON.swift - TidyJSON.swift一款简单,易用,明了JSON解析小类库。

5.3K10

Flutter成就你产品梦——就缺一个idea了

iOS早期使用Objective-C编程语言开发,Android则是Java语言,后期,iOS支持了Swift语言,Android则支持了Kotlin语言,从此,后入坑移动开发学习者就有了一个烦恼,做...iOS开发,应该学习Objective-C还是Swift;做Android开发应该选择Java还是Kotlin?...一方面,同时掌握两大平台开发,在工作中并不能让薪水乘以2,另一方面,对于提升项目开发效率无意义。...Flutter技术比原生开发更加简单易学,开发速度更快,一个掌握Flutter开发者,就能同时开发出支持全平台App,这样就节省了大量时间成本,拥有更多时间去一个个尝试和验证你idea。...[在这里插入图片描述] [在这里插入图片描述] [在这里插入图片描述] 看到这里,你是否感觉就缺一个idea了

56410

没熬夜看苹果开发者大会 2015 WWDC直播?来这看吧!

传说中分屏,也真的来了~Safiri 能够显示标签页是否在播放声音(Chrome 已经支持) OS X El Capitan 让所有这些运行速度都大为提升。...Metal 是一种核心图像处理技术,让各种 app 都能更快捷地访问图形处理器。这将为整个系统带来更快更高效图像渲染性能。 虽然之前展示人机交互很赞,但普通用户不怎么会用到啊,性能提高才是重点。...iOS 9 将于今秋正式推出。 Siri 每一周大约会收到 10 亿个指令。而 iOS 9 上 Siri,将为你提供速度和准确度都提升了 40% 应答。如此“积极搜索”,在嘲讽谷歌吗?...Swift开源了 开发者大会响起最热烈掌声。 App Store App Store 已累计让开发人员收获超过 300 亿美金。一千亿次App下载!...时间旅行功能让你可以通过转动 Digital Crown,来查看日历上接下来事件或是晚些时候气温等等。 你可以使用 Siri 来开始或结束锻炼项目,例如单车运动或是出去跑个 30 分钟。

58130

正经分析iOS包大小优化

.html文件 .json文件 .png或者.jpg文件 示例如下,Ps:不得不说,笔者这个ipa包含内容真的是很全面了,各种资源都有,哈哈哈 <img src="https://i.loli.net...为什么会这样<em>呢</em>?还记得Frameworks文件夹里放<em>的</em>是什么内容吗?Framework中放<em>的</em>Pod中设置<em>的</em>第三方<em>的</em>动态库、以及<em>Swift</em> Support库。...无用资源<em>的</em>删除: 已定义未使用<em>的</em>代码文件 已废弃业务,代码还在 已引用<em>的</em><em>图片</em>但未使用 某些重复资源导入 已用资源<em>的</em>压缩: 项目中引入<em>图片</em>、网页、<em>json</em>、音频等文件<em>的</em>压缩 下面一步步<em>的</em>来实践: 无用资源<em>的</em>删除...被放进这张大图<em>的</em>小图会变为通过偏移量<em>的</em>引用,建议使用频率高且小<em>的</em><em>图片</em>放到Asset.car中,Asset.car能保证加载和渲染<em>速度</em>最优。但是大<em>的</em><em>图片</em>(大于100K)就不要放入Asset.car中了。...大<em>的</em><em>图片</em>可以考虑将<em>图片</em>转成WebP。WebP是Google公司<em>的</em>一个开源项目,能够把<em>图片</em>压缩到很小,但是肉眼看不出来差别,目前<em>iOS</em>常用<em>的</em><em>图片</em>显示类库都用支持该格式解析<em>的</em>拓展。

5.3K61

Android 工程师开发 iOS 是怎样体验?

同事,因为 Kotlin 和 Swift 语法真的很像,如果你有 Kotlin 开发经历的话,那么你应该可以无障碍读懂 Swift 代码。...对于我个人来说,在开发 iOS 时候,并没有去专门去花时间学习 Swift,因为真的和 Kotlin 太像了,几乎无成本迁移。...JetPack Compose 怎么样? 嗯.......据我个人感觉,iOS API 非常成熟,开发起来要比 Android 整体速度快很多,很多效果以及需求,iOS 自身都有很好解决方案,我们只要专注需求就好。...而 iOS 除了提供给你组件库之外,还严格制定了规范,并推荐你该怎么做,同时不需要很高学习成本,当然这也得益于 iOS 闭源特性,虽然没有 Android 那么自由,但是却能保障你应用质量。

1.7K30

iOS 优化 - 瘦身

如今,App 下载大小超出 200 MB 时 ,会出现两种情况: iOS 13 以下用户,无法通过蜂窝数据下载 App; iOS 13 及以上用户,需要手动设置可以使用蜂窝网络下载 App。...pngcrsuh测试效果对比图 结论:Compress PNG Files 虽然是压缩 PNG,但其最主要目的并不是为了压缩图片大小, 而是将 PNG 转换成 iOS 更容易处理、更快速度去识别的格式...,会导致图片加载速度慢一些。...编译选项改进 Xcode 支持编译器层面的一些优化选项,通过修改 Build Setting 一些相关配置,可以让我们介于更快编译速度和更小二进制大小并且更快执行速度之间自由选择想要进行优化粒度...: None[-O0]: 编译器不会优化代码,意味着更快编译速度和更多调试信息,默认在 Debug 模式下开启; Fast[-O, O1]: 编译器会优化代码性能并且最小限度影响编译时间,此选项在编译时会占用更多内存

2.4K20

Swift 4.2新特性——WWDC2018 Session401笔记

Faster Swift Debug Builds 更快Swift调试构建 自古以来,对于Swift编译慢吐槽一直没有停止过。Apple显然知道这一点,因此在最近更新里总会提到编译速度优化。...在我看来,反正开始速度足够慢,因此之后会有很大提升空间(围笑)。 官方对于这次速度提升给出数据是大约3倍,但是这是基于i7架构MacbookPro上,而且编译速度和项目文件组织有很大关系。...Synthesized Equatable and Hashable Equatable和Hashable合成 在Swift4以及之前版本,想比较两个结构体是否完全相等,要怎么做?...但是这个API名字会因平台不同而有所区别。(当然,如果你是纯iOS开发,这个问题不明显。但是别忘了我们伟大Swift是跨平台语言,人家考虑事Linux级别的问题) 例如: ?...但是现实情况是,4和5分布远远小于其它,所以并不是真的随机。

1.3K20

Swift 网络请求数据与解析

一: Swift 网络数据请求与处理最常用第三方  又有时间出来装天才了,还是在学swift,从中又发现一些问题,这两天上网找博客看问题弄真的心都累。...看看在Swift中是在怎样请求数据,解析数据加载图片这些,也使我们最基本最常见用法了,先说说这几个三方库:      第一个: Alamofire  (原作者就是AFNetworking原作者...Git地址:https://github.com/Alamofire/Alamofire     第二个: SwiftyJSON  一个解析JSON数据三方库,使用swift,中间帮你省去swift...比起那些手动导入三方真的是你强烈建议推荐  Cocoapods !...   然后,再给大家一个建议,导入时候多去 Git 上面看看原作者详细导入过程,以及可能会出现一下问题!

2.4K80

【Dev Club分享】JSPatch成长之路

实际上当时我陷入了一个思维定势,做终端久了,思维停留在 iOS OC 世界,写代码必须遵守语言规则,上述困难也是在遵守 JS 语言规则这个前提下碰到。 如果有方法不遵守语言规则?...我们一个点一个点来看对这两个问题是怎么做。 ? 首先 JSPatch 在易用性上一直坚持着一个理念,就是 keep it simple and tiny,用中文说就是保持精巧,保持好用。...例如这里新定义了一个dribbbleView类,里面有个新方法renderItem,在 JS 里调用这个新方法时,速度很慢。 分析下这个调用过程: ?...只要使用者用了自定义 RSA 密钥就可以了,只有使用者有私钥,每次发布脚本都要使用这个私钥,平台不会保存,详情可见:http://JSPatch.com/DOCs/rsa Q5: 现在 iOS 加快了审核速度...审核只是一个环节,测试/打包/发布/用户下载,这些其他环节还是不可少,并且最大问题还是是用户下载更新不可控。 Q6: Swift 属于静态编译类型,是不是可以利用类似 c函数替换方法

1.6K40

grpc-swift入门

不想看前面的屁话,要直接上代码,请跳到「iOS App端如何实现和RPC服务器通信」章节 什么是RPC、gRPC、grpc-swift 要搞清楚什么是grpc-swift, 就要先搞清楚什么是gRPC...其中,Protocol Buffers,有需要认识一下。可以把类比成XML、JSON,但是Protocol Buffers数据包更小、速度更快、实现更简单。...所以,总括来看,他们关系如下图: (对了,题外话:Bitcoin用JSON-RPC RPC关系图 为什么要用gRPC OK,上面讲了各种概念。那么,为什么要用gRPC?...比如iOSSwift、AndroidKotlin等等。 (上面说过「gRPC支持多种语言」,就是这个意思。)...,个人感觉命令行还是有点复杂,敲敲打打半天,搞明白,所以画图说明一下(以这个目录下helloworld.proto文件为例。

1.1K20

图解算法,原理逐步揭开「GitHub 热点速览」

作者:HelloGitHub-小鱼干 想必每个面过大厂小伙伴都被考过算法,那么有没有更快了解算法方式?这是一个老项目,hello-algo 用图解方式让你了解运行原理。...此外,SQL 闯关自学项目也是一个让你能好好掌握 SQL 技术仓库。说回到面试,这个一周获得近 10k star devops-exercises 定能让你好好刷一场面经。...同大多数图像编辑器一样,它也采用了图层模式,你可以在原图基础上做出更具有艺术感图片。...3.1 数据处理:cudf 主语言:C++ cudf,支持 GPU 数据库处理 Python 库。相当于支持 GPU pandas,处理数据速度直接起飞。...,该项目可以快速爬取网页上 URL 地址、JS 文件里 API 接口等信息,支持批量抓取、深入抓取、安全抓取等模式。

35510
领券