转载请联系AirPython公众号.一、前言大家好,我是安国!用Python写完爬虫后,有时候我们需要在手机端实时调度爬虫,或者实时展示爬虫的结果。在这种场景下,我们可以将爬虫逻辑写成一个APIDeploy到服务端,然后在移动端编写App,通过界面元素控件直接调用界面。在这篇文章中,我将和你谈谈如何快速编写一个iOS原生App。使用Xcode编写编译首先,设置Xcode的开发者账号打开Xcode,选择左上角的Xcode-Preferences-Accounts,点击左下角的+号,添加开发者账号,然后使用Xcode创建一个projectHeretemplate选择iOSApp,输入项目名称,编程语言选择“Swift”,点击Next完成项目创建。PS:与OC相比,Swift的语法更加简洁明了。最后,为新建的项目指定Sign签名。如有疑问,可点击文末。阅读原文了解3.实战,我们用一个简单的登陆页面来说明3-1安装依赖库由于项目是用Swift开发的,所以推荐使用SPM(SwiftPackageManager)安装依赖。例如网络请求库“Alamofire”项目地址:https://github.com/Alamofire/Alamofire安装方法:文件-SwiftPackages-添加包依赖-输入项目地址(Github/Gitee)-选择安装版本3-2页面布局打开项目根目录在“ContentView.swift”文件中,在body下写一个具体的视图。首先用VStack定义一个垂直布局框,定义子控件居中水平显示。PS:SwiftUI常用的三种布局方式是VStack、HStack、ZStack。分别表示垂直布局、水平布局、深度布局importSwiftUIimportCombinestructContentView:View{...//构建页面Viewvarbody:someView{VStack(alignment:Horizo??ntalAlignment.center){...}}}然后,添加局部地图到子元素依次切片,两个输入框,一个选择框,一个按钮,图片控件Image文本输入框控件TextField选择框控件Toggle按钮控件ButtonimportSwiftUIimportCombinestructContentView:View{//构建页面Viewvarbody:someView{VStack(alignment:Horizo??ntalAlignment.center){Image("WechatIMG5")TextField("用户名",text:$username).textFieldStyle(RoundedBorderTextFieldStyle()).keyboardType(.numberPad).padding()TextField("密码",text:$pwd).textFieldStyle(RoundedBorderTextFieldStyle()).keyboardType(.numberPad).padding()//是否测试Toggle(isOn:$isFavorited){Text("测试环境")}.padding(.leading,0.0).frame(width:140,height:40)Button(action:{//具体操作}structContentView_Previews:PreviewProvider{staticvarpreviews:someView{ContentView()}}}最后为双向绑定定义变量和控制数据structContentView:View{@Statevarusername:String="用户名"@Statevarpwd:String="密码"@Statevarresult:String="结果"@StatevarisFavorited:Bool=false}3-3网络k请求及结果显示为Button控件设置点击事件,使用Alamofire进行网络请求,最后将显示结果写入结果控件并绑定数据。按钮(动作:{//具体操作print("start")varurl=""if(self.isFavorited){url="...?username="+self.username+"&password="+self.pwd}else{url="...?username="+self.username+"&password="+self.pwd}print("请求URL:"+url)AF.request(url).responseJSON{responseinswitchresponse.result{case.success(letjson)://转换为Dictionaryletpost_paramsValue=jsonas!Dictionary
