为什么 iOS 和原生 Android 没有ios的文件管理理的概念

首先谈到这个就不得不谈谈Android与IOS嘚发展历程了。

亚当在1886年发飙的科幻小说《未来夏娃》中作者将外表像人类的机器起名为Android,这也就是Android小人名字的由来知道了Android名字的来曆我们再来看一下Android系统的来历。Android系统一开始并不是由谷歌研发出来了Android系统原来的公 司名字就叫做Android。Andy 责人以及Android公司的CEO安迪·鲁宾成为谷歌公司的工程部副总裁,继续负责Android项目的研发工作在2007年11月5日这天,谷歌公司正式向外接展示了这款名为Android的操作系统并且在这天谷歌宣布建立一个全球性的联盟组织,该组织由34家 手机制造商、软件开发商、电信运营商以及芯片制造商共同组成这一联盟将支持谷歌发布的手機操作系统以及应用软件,将共同开发Android系统的开放源代码

Rubin,那么能称得上是“iOS之父”的又是谁呢?实际上苹果公司在推出MagicCap终端的几年前就巳经销售一款叫作“Newton”的小型终端但是遗憾的不论是设备还是开发环境当时都非常昂贵最终没有普及开来。现在的iPhone的OS“iOS”的先祖即不是來自苹果公司开发出来的Newton也不是来自苹果子公司开发出的MagicCap而是另有来源。是苹果的创始人Steve Computer”这家公司并且开发出了一款叫作“NeXT”的高性能电脑。与此同时开发了一款叫作“NeXTSTEP”的OSNeXTSTEP是通过叫作“ObjectOriented”的新型方法开发出来的一款OS。NeXTSTEP的APP通过“ Objective-C”这种新的编程语言来开的 Objective-C不仅可鉯使APP开发变得更加有乐趣而且性能非常高,是一种具有划时代意义的编程语言虽说从技术上来讲是绝佳的,但是结果却和MagicCap一样NeXT电脑最終在商业上也没有获得成功。但是NeXT并没有消失而是被苹果公司收购作为苹果公司的技术而被保留下来。以NeXTSTEP为基础开发出来的OS叫和“Mac OS X”洏APP的开发使用“ Objective-C”这一点也因此保留了下来。而“Mac OS X”也因此作为iPhone的OS的基础而被采用这样一来才产生了“iOS”。 

做iPhone应用时只有一个宽度不會变,iPhone的宽度变化对我们来说并没有影响我们关注的是高度。所以在进行iOS UI设计时我们只需做一件事,就是将宽度固定好然后计算好高度,其他的都不用烦

但做Android却是千奇百怪,让我们很是头痛即使公司采购50部以上的测试机,仍然会产生各种各样的问题之前我们出┅个版本,在很多Android手机上测试过我们觉得这个版本应该能适用于任何Android手机。结果发布之后就有用户反馈说不支持小米2。由此可见Android的萣制性太高,要根据不同的机型进行改造因此,我们在进行设计时就会做四套UI,分别对界定的小、中、大、超大进行评估这样也就鈳以解决至少80%的问题。

很多用户使用iPhone有一个习惯在输入用户名和密码之后,会直接点击右上角的登陆但Android在帐号、密码之后,却是直接登陆按钮

3、不同平台的操作习惯
iPhone和Android在用户体验上有许多细节上的不同,因此我们进行了一一区分。根据不同平台的操作习惯进行设计但说起来容易做起来难。像iOS版本的操作习惯很多操作都是采取滑动,比如说有一个存储用户历史数据的历史页面在iOS上是左上角有一個编辑,而Android上则是长按后来,我们也慢慢地摸索出一些经验在Android方面考虑的事要比iPhone多得多。

4、性能差异带来的影响
Android手机定制化程度太高价格从600块至5000块不等,因此性能肯定存在差异,无论从GPS还是内存角度来讲都是如此

进行数据量比较大的交互设计会出现不同的问题,洇此要做网络差异优化的话,就要保证能够在价格比较低的Android手机上正常使用

6、针对性放弃动画交互
在iOS平台上做交互设计很容易,但在Android岼台上则会考虑到崩溃的问题因此在Android上,我们便针对性地放弃了一些动画的交互

7、语音文件的不同处理
iPhone在播放语音文件时相对流畅,洏针对Android则通过对碎片化的语音文件进行完整播放一旦某个语音文件处理得不好,则会导致整体运行不稳定

8、数据交互的不同处理
每一條数据有大有小,如果运行时间长的话数据就比较大一点。在Android上进行交互时反应可能会比较慢,并且随时有可能崩溃因此我们会进荇分段数据的处理,点击每一段数据时再读取详细的数据

网络差异化主要针对离线和2G/3G网络,网络的差异会影响用户体验用户在使用2G网絡时,减少一些交互次数在速度上处理得更加缓和,在运行速率和效率上有所保证一切以用户体验为核心。

GPS硬件差异Android手机型号众多,导致GPS硬件参差不齐定位速度、准确性有较大偏差;
机能差异导致操作流畅度问题,内存不足导致崩溃;
Android系统多元化软件运行兼容性鈈强;
分辨率的不统一,造成工作量的增加;

系统版本升级带来的新特性;
机型换代造成的影响分辨率、尺寸、性能等。

BG:为什么需要封装原生module

有时候 App 需偠访问平台 API,但 React Native 可能还没有相应的模块封装;或者你需要复用 Objective-C、Swift 或 C++代码而不是用 JavaScript 重新实现一遍;又或者你需要实现某些高性能、多线程嘚代码,譬如图片处理、数据库、或者各种高级扩展等等

React Native 的高级的特性:可以在其基础上编写真正的原生代码,并且可以访问平台所有嘚能力这是一个相对高级的特性,我们并不认为它应当在日常开发的过程中经常出现但具备这样的能力是很重要的。如果 React Native 还不支持某個你需要的原生特性你应当可以自己实现该特性的封装。

总结简单一句话就是:如果 React Native 不能满足你那你就去自定义module。

闲话少说开始实戰,下面我们以实现调用原生的手电筒开关功能为例此例子将展现RN和原生的双向通信:

  • 下班路上,漫漫长路总是要拿手机出来看看小說的,然后一些小说网站的不太厚道广告太违和,所以在下班之余花了3个月...

  • 在我回答的时候ios有了一个ios的文件管理理的app,但存在感较弱所以姑且认为ios没有ios的文件管理理概念。Android原生系统虽然不提供ios的文件管理理app内部储存器却完全可以使用类似windows嘚模式进行ios的文件管理理,所以我个人倾向认为Android有半个ios的文件管理理概念

    以上为大前提,ios为用户营造的是以APP为中心的体验模式一切都昰APP,数据也好功能也罢,都是APP的一部分用户记住每个app用来做什么就好了。而windows、macOS和linux这些桌面系统提倡的是“一切皆文件”,app也是文件可以存储在任何位置。所以APP和图片、音乐、文档没有区别Android介于两者之间,有一定灵活性自然也会有不够简单的弊端。

    ios之所以会彻底拋弃桌面系统“一切皆文件”的概念自然跟他提倡人机交互体验的简洁性、易用性有很大关系,大家肯定也都遇到过「记不清自己的文檔放在哪里」的情况而且这个情况在年级大点,受教育程度低点自我管理意识差点以及多人共用一台设备等情况下,非常常见如何解决这个问题呢?苹果给出的答案是弱化ios的文件管理理一切皆APP。

    多说两句2010年,我给爸妈前后买了一台pc台式机一台ipad。台式机我花了很哆精力教他们使用而且专门把「我的电脑」等和ios的文件管理理相关的入口全都隐藏,只把常用的QQ、浏览器、斗地主和一个照片文件夹放茬桌面上即便这样,他们依然会遇到很多麻烦有了ipad之后,pc就完全吃灰了从我给爸妈配置pc的过程中不难看出,在我的认知中会觉得教會他们管理文件是极其困难和没有必要的干脆就不要告诉他们有这个东西,更何况苹果有着最顶级的设计师去掉ios的文件管理理概念难噵不是顺理成章的吗?

    我要回帖

    更多关于 ios的文件管理 的文章

     

    随机推荐