|
|
|
|
每当想换工作的时候就去到处扒一扒面试题,然后就虐心了。反复的看问题还是理解的不是很清。扎心
iOS面试题大全-点亮你iOS技能树 别人收集整理的问题集
很靠谱很正的一种认识:
招聘一个靠谱的 iOS
clang -rewrite-objc main.m
将Objective-C的源码改写成C++语言
苹果返回手势的操作是提升体验的重要一步
FDFullscreenPopGesture 无需添加额外代码就可以实现所有界面的返回手势
系统导航栏手势返回后就涉及到透明度问题 WRNavigationBar
ios某些系统(如9.0会出现妖孽的position位置偏移)
建议:
1、设置CGRectZero从导航栏下开始计算
self.edgesForExtendedLayout = UIRectEdgeNone;
2、自定义导航栏(隐藏系统导航栏)
iPhoneX 导航的高度有所变化 安全区域的边缘距离
最近一直在翻稀土掘金的老黄历,错过了很多技术文章。
最近接到外包任务,需要模仿一些app,就尝试着抓取相应类的APP数据。
推荐一篇文章十分钟学会Charles抓包(iOS的http/https请求)
步骤就是按照这个完成的,没什么难度。
1、安装Charles
2、设置手机http代理,IP地址和电脑同步 端口:8888
3、安装SSL证书 Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device 打开手机浏览器chls.pro/ssl
亲测要(1)设置好手机HTTP代理 (2)电脑上Charles要开着
注意:iOS 10.3系统,需要在 设置→通用→关于本机→证书信任设置 里面启用完全信任Charles证书
4、浏览手机APP开始抓取数据
抓取数据 可以发现很多APP数据上的处理除了HTTPS加密一层,还会有个ID随机标示符进行加密处理,每一次的请求这个唯一参数是不同的。
抓取了几个APP后,无奈的举措是得到的数据json串放到本地进行处理。
有个难点是获取到的web网址会带有相应APP的标示,需要我们通过webView与JavaScript 对相应的标签类型进行隐藏。
http://www.imlifengfeng.com/ 没事多看看博客,常回味基础的概念。
Objc Runtime其实是一个Runtime库,它基本上是用C和汇编写的,这个库使得C语言有了面向对象的能力。
Objective-C 封装:隐藏属性方法、继承:点语法、多态:动态类型、动态加载、动态绑定
动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。
指针 和 数据结构(struct)
SEL方法选择器 id参数指针 Class类 Method方法 Ivar变量
IMP函数指针 Cache为方法调用的性能进行优化 Property属性
消息传递 在方法的运行时实现被调用后才会返回数据。
关键字 self -> receiver
APP生命周期
打开程序 -> 入口:main函数 -> UIApplicationMain -> 创建app对象,设置代理 -> 开启主线程RunLoop(事件循环) -> 结束程序
UIApplicationDelegate 可以处理的事件包括应用程序的生命周期事件(比如程序启动和关闭)、系统事件(比如来电、记事项警 告)
每条线程都有唯一的一个与之对应的RunLoop对象
CFRunLoopModeRef 保证界面滑动时不受其他Mode影响
界面刷新并不一定是在setNeedsLayout相关的代码执行后立刻进行的
在loadView之前,是没有view的(容器)-> viewDidLoad
在学习react-native时虽然搭建了android studio环境,但是对于安卓开发的认知少之又少。最近转而学习一下,在gank上android的干货更多一些。iOS与Android的功能设计效果是相互促进的,web应用的语言特性也是在不断影响交错。
基于react-native搭建的android studio
android studio官网
环境初步搭建后,从github上寻到一些demo资源,运行起来,当然新建空项目运行也是必要的。 android studio会友好的提示运行结果,并会给予便利的插件工具修复提示。更多的针对版本兼容。多多尝试使项目跑起来,可以更加完善编辑器的内容。
根据开发者文档对语言和编辑器环境的熟悉。跟随着搭建简单的界面。
类对比ios的认识。应用的生命周期。
Android开发的经典入门教材和学习路线?
这篇文章推荐的内容值得我们去深入参考。
通过brew安装gradle 学习android要着重认识一下gradle! 打包和链接第三方库
打包apk测试 Perfect
AndroidManifest.xml 主函数 权限配置 多渠道配置
Activity.java 活动界面 对应一个layout.xml
Adapter.java 类VM 绑定数据
Intent 数据传递
build.gradle 第三方库 签名
PullDownMenu 下拉菜单 独立性 可调控自定义View
TYPagerController
PageMenu 体验性和嵌入独立性最好
1、创建单个主控制器+多个自控制器 根据自控制器tag切换
2、直接切换控制器、或切换控制器的view、或者添加在scrollview上