苹果MAC教程:Mac配置iOS开发环境的步骤_帮考新闻网

苹果MAC教程:Mac配置iOS开发环境的步骤

2018-01-19 05:33 来源:帮考新闻网

Andreas是一位非常聪明的工程师,他的博士论文主题恰好是高级编程语言的即时编译,他在2008年加入Mozilla,负责开发了TraceMonkey,有史以来第一个JavaScript即时编译器。他最近还完成了PDF.js的开发,这是一种使用JavaScript编写的PDF渲染器,此举是为了证明JavaScript的强大之处。

Mike是1998年Mozilla成立时的创始成员,当时担任工程副总裁和技术战略副总裁职务,但在B2G项目公布后不久从Mozilla离职。

作为一个非盈利,以“推动Web世界的开放、创新和机遇”为使命的项目,Mozilla实际上是在贩卖一个独特的愿景:不是让我们自己的应用平台成为移动领域的“第三平台”,而是要将开放的Web推向这个地位。与桌面端类似,Web的普遍性和规模性使其有望成为唯一可与现有应用平台竞争的对手,当然,这得是在Mozilla的领导下。

工程?—从零开始打造了一个完全开放的移动操作系统,并在不到两年时间里成功上市。据我所知,能实现这种速度的团队仅此一家。借助足够精益的技术栈,我们在渲染Web内容时可以实现非常近似于移动设备裸机运行的性能,很多情况下甚至胜过了相同配置硬件上运行原生代码的性能。同时还通过30个实验性的全新WebAPI推动了Web技术进步,创造了一种全新的Web应用发展趋势。

FirefoxOS1.0接下来的一年里,Mozilla与合作伙伴密切合作开发了整套达到可投产质量的移动操作系统。

待到周末时,AndreasGal宣布“Zarroboogs”和FirefoxOS1.0版正式诞生(另外,前端团队赢了!)。

合作伙伴得到新合作伙伴的支持后,Mozilla承诺在第二年提供可上市销售的商业化设备。

2011年12月,台北

共同创始人该项目的四位共同创始人分别是AndreasGal、ChrisJones、BrendanEich以及MikeShaver。

Mozilla公布B2G后我就申请了该项目的工作,但我的申请当时并未立刻获批,不过我明白这事情造成了一些人的困扰。部分原因在于这则消息未经任何正式的内部讨论就通过一个公开邮件列表发布了,另外部分原因是因为大部分人(包括公司高管)对这个项目并无太多了解,甚至没想过这则消息会公布出去。

德意志电信是另一家很早就投身该项目的合作伙伴,随着移动运营商的加入,想要获得OEM厂商的兴趣就更简单了。最初的两家OEM厂商是来自中国的生产商中兴通讯和TCL。

启动整个Web“BoottoGecko”(B2G)开源项目最初在2011年7月,该项目的目标是打造“一个适用于开放式Web的完整、独立的操作系统。”

2012年7月在西班牙电信位于巴塞罗那的办公室举办的工作周活动中,我们决定先选择打包应用作为一种临时解决方案,直到能有其他更好的办法。我认为这个决策是另一个重大失误,因为随着技术债越欠越多,我们已经逐渐走上了一条不归路。

工程?—为了尽快上市,我们通过应用打包机制模仿了应用商店这种做法,但这为我们制造了大量困难。我们忽略了使得Web技术大获成功的关键特性(即URL),过多专注于Web栈的客户端,而非服务器端。

这一举措的重点在于:

这些合作关系之所以如此重要,原因之一在于高通。高通是与我们合作的第一家芯片制造商,但他们不能直接将自己的固件和设备驱动授权给我们,必需绕道运营商或OEM厂商。这意味着我们无法以合法的方式将操作系统完工后的版本或更新直接分发给用户,移动操作系统更新方面的经济因素为我们造成了严峻的问题。

启动:为兼容Android的设备构造一个底层基板(Substrate)原型。

ZTEOpen和AlcatelOneTouch智能手机

在 Build2015大会上,微软除了发布了MicrosoftEdge浏览器和新的Windows10 系统外,最大的惊喜莫过于宣布推出免费跨平台的 VisualStudioCode编辑器了!VisualStudioCode(简称VSCode/VSC)是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比Diff、GIT等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。软件跨平台支持Win、Mac以及Linux,运行流畅,可谓是微软的良心之作……

B2G项目的共同创始人(从左至右:Andreas、Chris、Brendan、Mike)

最大的失误设计?—?从模仿已有技术着手,而非从更简单,更独特,并且更专注于Web的技术着手。我们本来以为稍后可以随时调转方向,但实际上这样做远非我们想象的那么容易。

工程?—?在“外壳”和Web内容之间建立明确的划分,而非试图迫使Web去做那些本就不适合的工作。使用REST和WebSockets在Web栈的服务器端创建设备API,不要在客户端为JavaScriptDOMAPI提供任何特殊待遇。围绕网上丰富的Web应用打造一个社区,而非提供一个供大家提交打包应用的应用商店。

设计#p#分页标题#e#在第一次迭代过程中,提供给UX团队的想法极为有限,基本上不可能产生让人惊艳的成果。当时依然沿用了类似于Android和iOS的应用图标网格设计方式,但尽可能进行了简化,下文还将介绍这个用户体验的独特之处。首先我们需要证明使用现有的Web技术是可以构建出这种类型的UI的。

实现在工程这一块,我们证明了使用开放的Web技术是可以打造智能手机的,并且整个用户界面都可以用HTML、CSS和JavaScript来创建。

ArchSummit深圳2017,7月7-8日,深圳·华侨城洲际酒店,精彩内容抢先看

为了能按时发布1.0版B2G,我们认为能同时满足脱机使用和安全需求的最简单方法是为Gecko引入打包应用的概念。打包的资源可以“安装”到设备上,进而可以脱机运行,并通过密码学签名验证代码是否可信。

合作?—?赢得移动通信行业史无前例的支持。多次在全球最大移动通信行业活动MWC中大出风头,让大型电信公司认可Mozilla的使命,与竞争对手公司就共同的目标展开合作。

我叫Ben,是一位Mozilla人。我是一名软件工程师,过去五年来一直全职从事着“BoottoGecko”项目,今天我想给你们讲个故事。

打包应用的做法虽然解决了当时最迫切的问题,但并不是真正的Web应用,因为这种应用并不具备Web的一大特征:真正的URL,并且最终需要由一个中央的权威机构(例如Mozilla)进行签名才能证明其安全性。当时我就打包应用的方法“并不Web”这个问题提出了自己的意见,但大家找不到其他能确保如期实现并交付的更可行的办法。

微信Android模块化架构重构实践蘑菇街分布式消息中间件Corgi的架构演进Serverless架构:一条SQL到一个服务有多远?对抗复杂性,架构设计中可借鉴复用这些手段阿里:风控场景的模型平台架构设计

放在今天我会怎么做#p#分页标题#e#设计?—?会以一个极为简单的,基于浏览器的设计着手,专注于Web内容本身,而非试图重建其他操作系统已经具备的每个功能。非必要功能可以狠心放弃,根本不要想着追赶对手。

特权模型:确保这些新的能力可以用安全的方式暴露给网页和应用程序。

西班牙电信和Mozilla各自开发的B2G前端

新的WebAPI:能将设备和操作系统能力(电话通话、短信、USB、蓝牙、NFC等)暴露给内容的原型API。

产品?—?不要试着生产最廉价的智能手机。而是要生产中端级别的平板(甚至可以考虑生产智能电视棒),让所有产品专注于Web内容、游戏,以及娱乐。首先在发达市场赢得立足之地,而不是一头扎进新兴市场。

Chris在伯克利大学获得计算机科学的博士学位,于2009年加入Mozilla,和Andreas一起负责PDF.js的开发。

总结最大的成就设计?—设计了一套操作简单、界面新颖、包含一些创新式功能的移动操作系统,例如用于切换窗口的边缘手势。尽管我们的愿景并未完全实现,但至少在基于浏览器的操作系统到底该如何实现这方面获得了一些不错的成果。

这个故事很长,如果你不想完整阅读,可以从下面的总结中了解相关重点。希望你不会认为这些仅仅是我的个人观点。

2013年世界移动通信大会我还记得在一次团队晚宴上,Mozilla的女董事长兼“首席蜥蜴斗士(ChiefLizardWrangler)”MitchellBaker曾谈到讲故事(Storytelling)的重要性。她谈了在开源软件社区中,如何通过讲故事帮助我们反思彼此分享的经验并从中学习。

UX团队的这个设计非常流畅,但现在回想起来,一开始就模仿现有产品,并假设随后如果必要可以调转方向,这是一个极大的错误。

所以我想以自己的视角讲讲FirefoxOS。从BoottoGecko开源软件项目在2011年通过邮件列表中发布的一封邮件,以一个空的GitHub代码库闪亮登场,到后来以FirefoxOS移动操作系统的形式商用发布,再到2016年将数百万行代码“转移”给社区,这个故事的跨度很大。

在互联网连接不可靠或不可用时,所有内置的Gaia应用都必需能脱机使用,对我们来说这是个必需实现的条件,这样用户才可以继续接打电话,拍照,听音乐,或执行其他操作。一开始我们针对这个需求使用了,这是Web技术领域首次试图让Web应用能够脱机使用而做的尝试。然而我们很快开始面临该技术的一些常见问题和局限,发现这个技术并不能完全满足我们的所有需求。

合作?—?将运营商和OEM厂商视作自己的客户,在功能优先级划分方面采取了“有坑必填”(Tickbox)的方法使得我们错失对最终用户需求及自己最初使命的深入理解。同时也未能守住直接向最终用户分发更新的“权力”。

五年时间,Mozilla社区的数百位成员因为一个共同目标走到一起,希望借助开放网络的力量颠覆应用生态。我希望借助本文对我们基于开源浏览器打造移动操作系统过程中所收获的成功、失败,以及学到的经验教训进行反思。

此举吸引了其他移动运营商的目光,他们当时正在寻找有望挑战Android的平台,希望借此在移动操作系统领域提供更丰富的选择,从处于支配地位的Google和Apple处夺回一些控制权。

2012年2月,巴黎

作为一名工程师,我对这个项目高层决策、财务情况,以及业务合作的认识可能并不完善。但我参与这个项目的时间已经足够长了,甚至比该项目任何共同创始人资历更老,在工程、设计,以及产品层面获得了很多见解。

我们不仅圆满完成了最初B2G新闻中所公布的组件,而且基于现有Android硬件提供了可实际运行的概念验证演示机。我们带着运行该原型系统的三星GalaxyII智能手机参加了MWC。这则消息是与我们的第一个合作伙伴西班牙电信联合公布的,此外还得到了Adobe、高通,以及德意志电信公司的支持。西班牙电信在媒体大会上演示了高通参考架构上运行的B2G软件。

“Mozilla相信,Web可以取代各种专有技术,以及应用开发过程中使用的单一供应商技术栈。为了让开放的Web技术为以后在移动设备和桌面等处运行的应用程序奠定一个更好的基础,我们需要推动Web技术持续发展,容纳并最终超越现有计算栈所具备的能力。”

应用程序:挑选并移植或构建应用,借此证明该系统的强大之处并据此划分工作优先级。

Brendan是JavaScript的发明人,与MitchellBaker一起在1998年创立了Mozilla。B2G项目公布时Brendan担任Mozilla的CTO,因而成为该项目的主要负责人。

对于Mozilla这样的开源技术公司来说,与西班牙电信这种规模的通信巨头合作还是头一遭,不得不说,一开始还遇到了企业文化方面的冲突。双方在几个方面有些冲突,甚至Mozilla和西班牙电信一度曾各自开发自己的前端。

当时消息是在MWC召开前一天通过媒体大会公布的。我们本来估计会有大约250名与会者,结果当天来了超过700家媒体、传媒、分析师嘉宾。

感觉上这更像是很多初创公司进行的实验性项目,某种程度上甚至是在Mozilla公司的日常运作之外进行的。

向着终点狂奔无论如何,所有这些努力让我们于2013年1月在柏林度过了一个忙碌的工作周,Mozilla与芯片制造商高通、移动运营商西班牙电信和德意志电信,以及设备制造商中兴通讯和TCL一起,向着1.0版的顺利发布共同努力着。

产品?—?在意识到“开放”本身不足以成为一个卖点后,最终我们选择主要以价格取胜的战略,而这只是一种逐底竞争(Racetothebottom),导致首发后的产品缺乏领先优势和后续发展方向。

搭建完成从一个空白的GitHub代码库开始,共同创始人们组建了一个小规模的初始团队,开始着手“Gonk”(一种基于Linux内核和Android硬件抽象层的“底层基板”)、“Gecko”(一种在Firefox的Web引擎基础上建立的应用运行时和设备API)以及“Gaia”(一种使用HTML、CSS,以及JavaScript等Web技术构建的智能手机用户界面)的相关工作。

产品?—在超过30个国家和地区成功发布了20款设备,并动员Mozilla社区协助举办发布会,顺利举办了很多品牌和营销活动。尽管最终未能成功,但成功塑造了“Web即平台”这一理念。

2013年世界移动通信大会我们发布的第一个商业化版本FirefoxOS实际上是1.0.1版,所有必要的测试和认证均已完成。2013年2月,我们在巴塞罗那世界移动通信大会(全球最大规模的移动通信技术大会)上公布了首个商业化设备,首发设备包括ZTEOpen和AlcatelOneTouch,这两款机型会通过西班牙电信和德意志电信在巴西、哥伦比亚、匈牙利、墨西哥、黑山共和国、波兰、塞尔维亚,以及委内瑞拉销售。同时LG和华为也承诺会发布相关设备。

B2G原型机,MWC2012,巴塞罗那

大家很快发现将手头资源聚集在一起,共同开发一个移动前端是一种更合理的做法。很快,Mozilla和西班牙电信的工程师开始并肩工作。两个团队的工程师对这种方式很适应,很快就变得亲如一家。

柏林工作周,2013年1月

为了通过JavaScript与智能手机的底层硬件通信,我们还需要在新API方面进行大量投入,并要研究一种可行的特权模型。Web技术的现有安全模型可以通过沙箱限制让浏览器安全地执行不可信代码,为了让Web内容能够访问更多高特权功能,例如接打电话以及发送短信,还需要具备一套新的安全系统。

#p#分页标题#e#一些代码重用了Android开源项目的代码,但这个架构的独特之处在于彻底去除了Android中的整个Java层,取而代之的是通过Gecko渲染Web内容,借此实现近乎裸机运行的性能表现。这种设计使得B2G在性能方面具备了非常先进的优势,可以让Web内容获得类似原生代码的运行表现。

作为我们的第一个合作伙伴,西班牙电信一直也在从事着自己的“OpenWebDevice”项目。他们最初的想法是由Mozilla提供基于Gecko的底层平台,西班牙电信自行添加自己的OpenWebDevice前端,借助自己的经验为设备提供认证并投放市场。

首个(非官方的)B2G项目徽标,作者SeanMartell

此时还没有考虑商业化智能手机或移动设备的市场份额,因为这一阶段的目标主要是“推动Web技术的进化”,并证明该系统的能力。

由德意志电信举办的这场活动是B2G开发过程中最令人难忘的回忆之一。大家在一个有着超快网速的大房间里亲密合作,前端与后端团队之间还进行了一场友好的竞赛,大家在比谁能首先修复自己的所有Bug。竞赛结果会实时显示在投影屏上,大家可以一起监督整个过程。整整一周里大家都干劲十足,共修复了超过200个Bug。

这个成员分散各处的小团队开始快速成长,并于2011年12月,Mozilla位于台湾地区,能俯瞰标志性的台北101大楼的办公室筹备过程中,在台北进行了首次线下面对面工作周活动。当时的工作周活动地点位于君悦酒店内,我们首次在不使用浏览器插件的情况下,通过网页拨打了有史以来的第一通电话通话。手机最基本的必要功能已经逐渐具备了。

合作?—?围绕Mozilla制定的产品方向线路图,在合作伙伴面前表现出更有力的坚持,有勇气拒绝和发展战略不符的机会。直接向最终用户提供软件更新,远离所有妨碍我们分发自有操作系统的芯片供应商(当时要这样做非常困难,但现在已经容易多了)。

原型机随后我们还于2012年2月在巴黎举办了工作周活动,当时整个团队(包含来自高通公司的MichaelVines以及我们的“单枪匹马”UX团队成员JoshCarpenter)一直奋战到最后一分钟,组装了用于在那个月的巴塞罗那世界移动通信大会上展示的原型机。

责编: