- swift 3.0
- xcode 9.2
- cocoapods
- iOS 10.0及以上
如果你的模拟器出现了莫名其妙的问题,比如单击操作需双击,点击穿透,push页面卡住等,此问题为mac mini某些处理器不兼容某系处理器所致,可以尝试执行以下命令解决(最后的参数1可换为2尝试):
defaults write com.apple.CoreSimulator.IndigoFramebufferServices FramebufferEmulationHint 1
整体结构
- View & Controller --- xib来对每个页面进行 autolayout 布局
- Network --- moya作为网络请求组件进行network request
- API 定义
- API Provider 网络请求实现
- Request/Response Collection
- ObjectMapper 定义返回数据与变量map
- Model --- 定义可复用的数据结构
- Manager --- 单例模式,处理每个网络请求的逻辑,返回所需格式
- MockData --- Mock json格式的数据,用作模拟网络请求数据,便于开发
- Common --- 公共组件、工具方法、公共常量、扩展等
- Localizable.string(en/zh) --- I18N国际化
- Assets.xcassets --- 静态图片资源
- AppDelegate --- 重要的app代理,包括入口页面设置,app各个生命周期事件设置等
除此之外:
- 若要实现app企业分发或者上架App Store,需要苹果账号付费之后在苹果开发者网站后台创建相应的证书文件,并在项目xcode如下界面选择此账号。
- 很多App需要用到苹果的官方推送notification service,此时需要开发者自己搭建服务器进行推送,大致流程为:
- 应用安装启动后自动生成一个 device token ,此token为识别设备的唯一ID(但每次安装会变)
- 当需要推送时,开发者的服务器利用苹果官方SDK 向苹果推送服务器发送请求,请求中包括 device token、推送内容以及推送未读数量
- 苹果服务器收到请求后即按照请求参数向指定device推送指定内容
具体实践可参考此文章,若打不开需要挂梯子。
前端开发,无外乎两个方面:页面布局(元素+事件)、网络请求(Restful+Json)