iOS与Android的对比
Android与iOS同属移动系统,两者在sdk层面,以及开发理念上都有所异同。
本文章主要是记录两者在开发中对同一个需求的各自实现方法。
1.Activity与UIViewController
这两个东西比较类似,
- Activity可以通过xml描述文件创建
- UIViewController可以通过StoryBoard(其实也是xml)创建
2.界面的切换
- iOS里,可以从一个viewcontroller里弹出一个模式界面,也可以在navigationviewcontroller里以压栈的形式跳转一个窗口。不管是哪一种,前一个页面都不会释放掉,都可以返回回来。
- android里,有两种跳转方式,startActivity和startActivityForResult,startActivityForResult有点儿类似于iOS里的navigationviewcontroller方式,而startActivity的话,是条单行道,只能前进不能后退。
- 其实这也从一方面证明了两种开发的概念不同,iOS着重于MVC,而android着重于状态。
- Android里用intent实现界面跳转,ios里使用segue。
- 对于界面间传值,前跳时,android使用intent传简单值,或者用一个Bundle类来传一些复杂的值。而ios的做法比较简单暴力,就是直接给对象viewcontroller的属性设值。
- 返回时,Android使用在前一个页面实现一个onActivityResult监听方法来捕获返回的值,读取方法和前跳时没区别。而ios同样还是用比较粗暴的形式,在unwind的delegate方法里直接读取对象viewcontroller的属性值。
3.关于webview
- ios和android都实现了内嵌web页的控件,都叫webview,使用方法也差不多。不过在捕捉webview事件时有所不同
- ios是直接实现的uiwebview的delegate方法处理各个事件。
- android是通过设定给webview一个WebViewClient监听类,通过这个类里的方法来处理各个事件。
- 比如uiwebview里的shouldstartloadwithrequest 有点类似于WebViewClient的shouldOverrideUrlLoading方法
4.关于二维码读取
- ios是自带sdk的,比较赞。在AVCaptureSession里设值输出为AVCaptureMetadataOutput,并设其metadataObjectTypes属性为[AVMetadataObjectTypeQRCode]即可,非常简单。
- android没有自带这个sdk,但是有一个开源的sdk非常有名,zxing
相关推荐
chenxiangpeng 2020-04-30
leitingdulante 2020-11-03
huangkun 2020-10-22
leitingdulante 2020-10-21
硬币0 2020-10-15
moses 2020-09-22
ZuoYanDeHuangHun 2020-09-18
chsoft 2020-09-17
fanxiaoxuan 2020-09-17
惠秀宝 2020-09-08
zhousanzhou 2020-08-26
MatrixHero 2020-08-20
xjp 2020-08-17
定格 2020-08-15
Mryiyi 2020-08-07
好好学习天天 2020-07-28
好好学习天天 2020-07-21
Mryiyi 2020-07-08