app开发需要有那些技术,首先要了解App都有哪些类型,不同的类型适用于哪些需求,用户可以根据自己的需求选择不同的App开发。
开发不同类型的App需要用到哪些技术?
Web App:iOS/Android的内置浏览器是基于webkit内核的,所以在开发webApp时,多数使用html或html5、CSS3、JavaScript技术做UI布局,使其在网站页面上实现传统的C/S架构软件功能,服务端技术用java、php、ASP。现在也有很多一键生成webApp的平台,如百度siteApp/移动开发平台APICloud,APICloud平台提供基于腾讯x5浏览器引擎生成webApp,因为移动端的超级流量入口微信/手机qq等用的也是腾讯x5内置浏览器,所以用腾讯x5浏览器生成的App在移动页面展示时适配于微信的浏览体验,这样可以帮助webApp引流。
Native App:
开发Native App需要根据运行的手机系统采用不同的开发语言,开发Android App需要的开发语言是java,还需要熟悉Android环境和机制。主要知识点如下:
1 开发环境,Android Studio、eclipse如何搭建Android开发环境可以去百度。
2 数据结构,App的某些功能涉及到做算法,所以要有一定的数学基础
3 Android SDK,会API接口开发,包括自行开发API的能力和调用第三发API的经验。
4 熟悉tcp、IP,socket等网络协议
5 如果涉及到服务器,你还需要了解webservice相关知识和相应的开发语言,常用有PHP、JSP、ASPNet
6 除了这些功能基础,App开发还涉及到UI设计、框架、性能优化、调试适配等。
Objective-C是开发苹果系统App的主流编程语言,开发者一般用苹果公司的iOS SDK搭建开发环境,iOS SDK是开发iOS应用程序中不可少的软件开发包,提供了从创建程序,到编译、调试、运行、测试等多种开发过程中需要等工具。学习iOS开发可以去看苹果官方文档,这是最权威的ios教程。
Hybrid App:混合开发中主流的是以web为主体型的开发,即以网页语言编写,穿插Native功能的hybrid App开发类型,网页语言主要有html5、CSS3、JavaScript。Web主体型的App用户体验好坏,取决于底层中间件的交互与跨平台的能力。国内外有很多优秀的开发工具,如国外的AppmAkr、Appmobi,国内的APICloud,APICloud的底层引擎用Deep Engine,使用半翻译式原理,将运行中的web翻译成Native API,并且支持扩展API,开发时可调用用原生语言开发的功能模块,以此达到媲美原生App的用户体验,同时节省开发时间。
对企业来说,可以根据自己的需求选择不同的开发类型和开发工具,就目前来看,Hybrid App已经成为移动APP的开发的趋势,一方面Hybrid App开发时不采用或者大多数不采用原生语言,却能拥有原生应用的特点,另一方面是随着web技术的发展,Hybrid App技术已经成熟,很多大型App淘宝、微信、等都属于这种开发模式,Hybrid App给企业移动APP的开发、维护、更新都带来了很高的便捷性,从成本投入到用户体验考虑,Hybrid App都是首选。
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。
arp协议的作用:
主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;
由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。
ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。
扩展资料ARP欺骗防御措施:
1、不要把网络安全信任关系建立在IP基础上或MAC基础上(RARP同样存在欺骗的问题),理想的关系应该建立在IP+MAC基础上。
2、设置静态的MAC-->IP对应表,不要让主机刷新设定好的转换表。
3、除非很有必要,否则停止使用ARP,将ARP做为永久条目保存在对应表中。
4、使用ARP服务器。通过该服务器查找自己的ARP转换表来响应其他机器的ARP广播。确保这台ARP服务器不被黑。
5、使用“proxy”代理IP的传输。
6、使用硬件屏蔽主机。设置好路由,确保IP地址能到达合法的路径(静态配置路由ARP条目),注意,使用交换集线器和网桥无法阻止ARP欺骗。
7、管理员定期用响应的IP包中获得一个RARP请求,然后检查ARP响应的真实性。
8、管理员定期轮询,检查主机上的ARP缓存。
9、使用防火墙连续监控网络。注意有使用SNMP的情况下,ARP的欺骗有可能导致陷阱包丢失。
10、若感染ARP病毒,可以通过清空ARP缓存、指定ARP对应关系、添加路由信息、使用防病毒软件等方式解决。
NDP与ARP的区别:
IPv4中地址解析协议是独立的协议,负责IP地址到MAC地址的转换,对不同的数据链路层协议要定义不同的地址解析协议。IPv6中NDP包含了ARP的功能,且运行于因特网控制信息协议ICMPv6上,更具有一般性,包括更多的内容,而且适用于各种数据链路层协议;
地址解析协议以及ICMPv4路由器发现和ICMPv4重定向报文基于广播,而NDP的邻居发现报文基于高效的组播和单播
参考资料:
先说说Nativescript:
NativeScript前期的宣传扯了半天没用的,其实还是基于Cordova项目。什么是Cordova,就是Phonegap呀!个人感觉Nativescript做的比较好的一点就是它提供了一个在线的workspace,不需要你下载一个庞大的SDK到本地,便可以在线编写代码并进行build,甚至有一个在线的simulator模拟器可以供你调试。如果你想在真机上调试怎么办?没问题,Nativescript为你提供了一个叫做appBuilder的app,ios,Android,wp三个平台均有下载,装上之后扫一扫,就可以在这个app内调试你的app了。而且Nativescript还可以帮助你一键发布到App store,Google Play以及wp那个什么商店。感觉真真是做到了方便人民群众!
夸完了优点再来说说缺点。。。。
1、贵。。。。虽然说要干好活就不要怕花钱,但是和apicloud的免费(暂时的哦,以后弄大了不肯定就不免费了口牙)相比还是贵了不少,而且都是美刀,乘上汇率以后啧啧啧,不过有30天的free trial供你把玩,时间到了换个账号再来玩嘛。。。。
2、Cordova的限制请搜索Cordova黑发表的言论;
3、相关的package少,比如说我要支付宝的package。。嗯。。还是apicloud最懂你的心。。。
再来说说apicloud:
不知道用的什么黑科技,目测不是Cordova,不过目前还没有针对MAC的sdk,也没有在线的workspace,但是好在提供了很多package,而且目前免费。
不知道你的智能手机 *** 作系统是指安卓和ios两大原生系统这类的,还是国产以安卓为底层的智能手机 *** 作系统。
如果是原生系统的话,非常难,尤其是做到如今安卓和ios的完成度更难,成千上万的工程师、产品经理、设计师经过无数个日夜才能完成。
如果是国产定制系统,就相对容易得多,比如小米的MIUI、魅族的FLYME等都是在谷歌的安卓原生系统上进行修改,然而实际上原生安卓已经相当完善,国产定制系统的难点在于形成自己的生态和差异化。
以上。
当你用开发出了自己的app,下一步就是向app store提交应用了,这时应该如何 *** 作呢?我的app真的准备好提交了?我敢肯定这些问题将会浮现在你的脑海。基于这篇教程,我将告诉你一个完整的提交过程。
开启分步阅读模式
*** 作方法
01
1你的应用已经准备好了吗?
测试
写完最后一行代码或者执行完最后一个功能并不意味着你的app已经完成了,你是否让你的应用在多个设备上进行测试了?你的应用是否有内存泄露的问题?你的应用程序是否总是崩溃?这几年,ios设备市场规模增长迅猛,你必须保证你的应用已经在尽可能多的设备上通过测试。常见的问题比如你是否在iphone 5的4寸屏幕到ipad mini的79寸屏幕上都通过了测试。
ios模拟器非常有用,但它是在mac上运行的,内存和处理能力要比你口袋中的手机强大很多,一款iphone 3gs和iphone 5的性能差别更不用多说。作为ios开发者,你可不能冒着风险长期使用一款过时的ios设备来创建和维护app,即便app可以在老的ios设备上很好地 运行,但不代表也可以在新设备上跑的顺畅。
苹果的审核是封闭的,但能减少不完善的性能表现给用户带来的糟糕体检。如果你的应用时常崩溃,或者启动后不久运行速递变得缓慢迟滞,那在向app store提交之前你还有不少工作要做。即便苹果审核人员不能发现app存在的问题,但用户会发现。如果用户体验很差,那么用户会给你的差评或者低分,进 一步影响到应用的销售和下载。
规则和指南
就像我前面所说的,苹果为开发者提供了很多文档资料,开发者尤其要注意ios人机交互指南和app store审核指南,不过不少开发者没有精力或者难以静下心来认真研读这些文档,那么你的应用将会因为这些文档中列出的要求而被一再拒绝。
再退一步说,即便你没有研读ios人机交互指南和app store审核指南,但开发者也要知道大家常说的那些规则,如下我列出了一些你的应用应该和不应该做的事情。
你的应用
需符合APPStore审核标准
不能崩溃
不能使用私有api,
不能复制原生app的功能,
应该使用iap(应用内付费)金融交易
不能在用户不知情的情况下使用相机或者麦克风
应该使用有版权的
这些只是上边所说的文档内容中很小的一部分。ios人机交互指南和app store审核指南内容更多是非常琐碎的。但有的小地方你也许会不经意的违反。比如,在苹果使用启用自家地图之前,mapkit framework使用的是谷歌地图,用户也非常清楚谷歌的logo会放在每张地图的左下角,如果你的应用的用户界面覆盖了谷歌的logo,那么苹果就会 拒绝你的应用。虽然这非常琐碎,但也是不少开发者经常“犯错误”的地方。如果还有不懂的地方可以到APICloud 的QQ群(398827124)当中寻求帮助。(查官方论坛链接)
END
02
2预先准备
app id(应用id)
app id是识别不同应用程序的唯一标示符。每个app都需要一个app id或者app标识。目前有两种类型的app标识:一个是精确的app id(explicit app id),一个是通配符app id(wildcard app id)。 使用通配符的app id可以用来构建和安装多个程序。尽管通配符app id非常方便,但是一个精确的app id也是需要的,尤其是当app使用icloud 或者使用其他ios功能的时候,比如game center、push notifications或者iap。
如果你不确定什么样的app id适合你的项目,我推荐你读下苹果关于这一主题的文档:technical note qa1713。
distribution certificate(发布证书)
ios应用都有一个安全证书用于验证开发者身份和签名。为了可以向app store提交app,你需要创建一个ios provisioning profile 。首先需要创建一个distribution certificate(发布证书),过程类似于创建一个development certificate(开发证书)。如果你已经在实体设备上测试你的app,那么你对创建development certificate就已经很熟悉了。
如果对此不熟悉,我建议你读下苹果关于signing certificates和provisioning profiles的详细指导。
provisioning profile(配置文件)
一旦你创建了app id和distribution certificate,你可以创建一个ios provisioning profile以方便在app store中销售你的app。不过,你不能使用和ad hoc distribution相同的provisioning profile。你需要为app store分销创建一个单独的provisioning profile,如果你使用通配符app id,那么你的多个app就可以使用相同的provisioning profile。
build settings(生成设置)
配置app id、distribution certificate 和provisioning profile已经完成,是时候配置xcode中target的build settings了。在xcode project navigator的targets列表中选择一个target,打开顶部的build settings选项,然后更新一下code signing来跟之前创建的distribution provisioning profile相匹配。最近添加的provisioning profiles有时候不会立马就在build settings的code signing中看到,重启一下xcode就可以解决这个问题。
deployment target(部署目标)
非常有必要说下deployment target,xcode中每个target都有一个deployment target,它可以指出app可以运行的最小版本。不过,一旦应用在app store中生效,再去修改deployment target,你要考虑到一定后果。如果你在更新app的时候提高了deployment target,但是已经购买应用的用户并没有遇到新的deployment target,那么应用就不能在用户的移动设备上运行。如果用户通过itunes (不是设备)下载了一个更新过的app,然后替代了设备上原先的版本,最后却发现新版本不能在设备上运行,这确实是个问题。
对此我有两个方法
(1) 当你决定提高现有app的deployment target时,要在新版本的版本注释中进行说明。如果你提前告知用户,那么至少有一点,你已经尽力阻止问题的发生了。
(2) 对于一款新app,我经常会把deployment target设置为最近发布的系统版本。因为新ios版本发布后,渗透率的增长速度是令人难以置信的。很多人认为提高deployment target会失去大部分市场,这个说法并不准确,比如ios 6,ios 6发布后一个月,超过60%的设备已经进行了更新。但对android而言,就是另外一回事了,android用户并不会像ios用户那样热衷于更新 *** 作 系统版本。
END
03
3 assets(资源包)提交
icons(图标)
icon是app中不可分割的一部分,你要确保icon尺寸不会出现差错。
itunes artwork: 1024px x 1024px (required)
ipad/ipad mini: 72px x 72px and 114px x 114px (required)
iphone/ipod touch: 57px x 57px and 114px x 114px (required)
search icon: 29px x 29px and 58px x 58px (optional)
settings application: 50px x 50px and 100px x 100px (optional)
屏幕截图的作用不言而喻,你可以为每个app上传5张截图,虽然至少需要上传一张,可能很少有人会只上传一张。另外,你还需要分别为 iphone/ipod touch和ipad/ipad mini准备不同的屏幕截图。这也是不小的工作量,但却能展示应用的另一面。shiny development开发的一款售价699美元的mac软件status magic可以为你节省不少时间。status magic可以帮你把状态栏放在截图的正确位置。
屏幕截图和icon是应用给用户的第一感觉,直接关系到用户会不会购买。不过,你所上传的屏幕截图也不一定非得是实际的截图,看看where’s my water (小鳄鱼爱洗澡)截图可以通过使用此策略,更具吸引力和说服力。
元数据
在提交应用之前,要管理好app的元数据,包括1应用名称、2版本号、3主要类别,4简洁的描述,5关键词,6支持url。如果你需要更新应用,你还要提供新增加的版本内容。
如果你的应用需要注册吗,你还得向苹果提供一个测试账户或者demo账户,这样审核人员就能很快进入app,而不用再注册账号。
提交ios应用
END
04
4 提交准备
完成基本信息
出现在app store中app的名字要做到独一无二, 这个名字可以不同于主屏幕icon下边的名字,不过推荐使用相同的名字。
sku number是一个用来识别app的特殊字符串。我经常使用app的bundle identifier。最下边是app的bundle id,你可以从下来菜单中选择通配符app id或者准确的app id。
价格和有效性
下一步,确定app的价格和有效性。苹果已经确定好了价格梯度,所以你不需要分别选择各个国家中app售价,你只需要指定在哪个国家的应用商店出售 即可。 在app store显示这款应用之后,这一过程中填的信息还可以被修改,也就是说你可以更改价格,并且不需要提交或更新。
元数据
我们已经说过元数据了,不过还没有说应用评级。根据应用的内容和功能,苹果会给应用一定评级,比如很多应用是4+,500px是17+。除了告诉用户app的内容和功能,也可以让孩子的父母放心。
如果你的应用等级跟内容不符合,苹果也会拒绝你的应用。
准备上传二进制文件
提交完app的元数据后,你会看到关于app的一些摘要信息,你应该在提交之前看看app的版本。点击“view details”按钮,再点击右上角的“ready to upload binary”。然后系统会问你一个或几个关于app的问题,完成后,你会看到提示信息,告诉你准备上传二进制文件。app的状态就变成“waiting for upload”。
END
05
5 上传二进制文件
为了上传程序,需要为程序创建一个archive。你只能在一台真实设备上创建一个archive。 如果你在active scheme中选择了ios simulator,那么在xcode的product菜单中archive选项是灰色不可选的。连接一台ios设备到mac机器上,然后在active scheme中选择这台设备,然后选择xcode中product菜单里面的archive。
如果一切正常的话,现在你会获得一个archive,并且xcode的organizer会自动打开,并显示出刚刚生成的archive。在列表中 选中archive,然后点击右边的“distribute”按钮。在显示出来的画面中,选择“submit to the ios app store”。然后输入你的ios开发者账号进行认证。接着选择application 和code signing identity。
应用程序的二进制文件会上传到苹果的服务器中——在这个过程中,你的程序同样需要被验证。如果在验证过程中遇到了错误,程序的提交流程
最近公司有使用APICloud发开的需求,需要我这边提供一些模块包得封装。因为没有也是刚接触APICloud,所以也就在看官方文档 。下面讲一讲我再使用过程中得一点点东西。 首先,下载官方SDK,下载最新版本的模块开发SDK,找到里面的ModulesDevProject_iOSzip,这里面包含ModuleDemo、ModulesDevProject和说明文件。ModuleDemo是一个官方的模块包封装和静态库生成的工程。ModulesDevProject则是可以让我们自己调试的工程。模块类实现21 新建模块类新建一个UZModuleDemo类,继承于UZModule类,其中UZModule类为模块的基类。模块开发过程中文件命名时提倡加前缀,以避免和其它模块冲突。22 模块生命周期当前端js中调用模块方法时,模块首先会被初始化,引擎会调用其 - (id)initWithUZWebView:(UZWebView )webView 方法;当模块所在的页面被销毁时,引擎会调用其 - (void)dispose 方法。23 启动方法如果模块需要在应用启动的时候就执行一些 *** 作,那么首先得在modulejson里面配置launchClassMethod,例如配置的方法为launch,然后在模块里面实现该方法,当应用启动时该方法就会被执行。+ (void)launch{ //在modulejson里面配置的launchClassMethod,必须为类方法,引擎会在应用启动时调用配置的方法,模块可以在其中做一些初始化 *** 作;下面代码为注册一个实现了UIApplicationDelegate协议方法的对象,该对象中方法就会在需要的时候被调用,通过此方式可以实现第三方应用回调url解析、推送等常用功能 //UZApphandler 基础Object基类 可以做一些需要AppDelegate 实现的初始化 如初始化推送的AppKey等等 // UZAppHandler appHandler = [[UZAppHandler alloc] init]; // [theApp addAppHandle:appHandler];}24 方法调用实现 - (void)showAlert:(NSDictionary )paramDict 方法,用于显示一个对话框,该方法需要在modulejson里面配置,然后在前端js里面才可以调用该方法。如果前端调用该方法时传入了一个function,那么在这里可以通过cbId字段获取该function对应的id,然后在需要的时候把数据通过该function回调给js。- (void)showAlert:(NSDictionary )paramDict { _cbId = [paramDict integerValueForKey:@"cbId" defaultValue:-1]; NSString message = [paramDict stringValueForKey:@"msg" defaultValue:nil]; UIAlertView alert = [[UIAlertView alloc] initWithTitle:nil message:message delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil]; [alert show];}25 回调我们在这里实现UIAlertViewDelegate中的 - (void)alertView:(UIAlertView )alertView didDismissWithButtonIndex:(NSInteger)buttonIndex 方法,将用户点击的按钮index回调给js端,代码如下:- (void)alertView:(UIAlertView )alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { if (_cbId >= 0) { NSDictionary ret = @{@"index":@(buttonIndex)}; [self sendResultEventWithCallbackId:_cbId dataDict:ret errDict:nil doDelete:YES]; }}当然,也可以定义自己的方法method,同时要修改modulejson的配置 注意不要[+]以及引号的英 汉。{ "name":"moduleDemo",//模块包名一致 "class":"UZModuleDemo",//模块类名 "methods":["showAlert","method"],//自己定义的方法名 "launchClassMethod":"launch"//是否执行launc类方法}找到widget目录下html目录里面的module-conhtml,我们在这里面调用showAlert等方法,如下var param = { msg:"Hello App!"};var demo = apirequire('moduleDemo');//模块包名称 (modulejson 这里 模块包名称 三者要一致)demoshowAlert(param, callBack);//传参数调用方法 和回调function callBack(ret, err){ var msg; if (retindex == 0){ msg = "点击了第一个按钮"; } else { msg = "点击了第二个按钮"; } apitoast({ msg:msg });}调试好了之后,把添加 修改的文件 加入ModuleDemo的静态库工程(也可以自己创建),去掉没用的,选择iOS device编译,复制静态库文件。 创建文件夹名称和模块包一致,里面在创建target文件夹,把静态库文件粘贴进来,加入用到了第三方的Framework和bundle束也放进来。 target同级目录粘贴modulejson文件,返回压缩成zip文件 获取在apicloud创建的应用的Id 修改widget下configxml 顶部的id,复制压缩widget文件。在apicloud控制台,转到该应用,选择代码部分,上传widgetzip 跳转模块中自定义模块上传模块包,名称必须和模块包名称一致。保存 编译,如果没有意外,你就能扫二维码 下载安装你的应用到手机了。 这里默认的时apicloud提供的证书,加入要改自己的就看证书栏目,都有教程的。Mark!
主要就是用来加载网页的,如果你做浏览器相关的应用,肯定要使用webview还有就是,如果你访问自己的网页,可以使用Webview,通过webview能与JS互动,这样你就可以实现手机与网页的时时互动了。
扩展资料:
web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和>
起源:
1989年CERN(欧洲粒子物理研究所)中由Tim Berners-Lee领导的小组提交了一个针对Internet的新协议和一个使用该协议的文档系统,该小组将这个新系统命名为Word Wide Web,它的目的在于使全球的科学家能够利用Internet交流自己的工作文档。
这个新系统被设计为允许Internet上任意一个用户都可以从许多文档服务计算机的数据库中搜索和获取文档。1990年末,这个新系统的基本框架已经在CERN中的一台计算机中开发出来并实现了,1991年该系统移植到了其他计算机平台,并正式发布。
参考资料:
实现思路:
1、apigetPicture获取到本地的路径
2、apiajax使用post方式上传这张,
3、你的服务器接收完后返回这张在你服务器上的地址。
以上涉及到的api请到文档区域参考端api下的getPicture以及ajax的使用,服务器如何处理接收然后返回地址,请咨询相应语言服务器开发的专业人士。
以上就是关于app开发需要什么技术全部的内容,包括:app开发需要什么技术、ARP的作用、国内的apicloud和国外的nativescript有什么区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)