12个离子面试的基本问题 *
最优秀的Ionic开发人员和工程师可以回答的基本问题. 在我们社区的推动下,我们鼓励专家提交问题并提供反馈.
现在就雇佣一名顶尖的Ionic开发人员Interview Questions
ionic prepare
将WWW文件夹中的所有文件复制到目标平台的WWW文件夹中.
ionic build
also does this, 而且还构建了应用程序的源代码,以便它可以在模拟器/模拟器或设备上运行.
Ionic框架使用设备可用的默认web浏览器来运行其混合应用程序. 旧版本的Android设备(4).0-4.3)使用Android的默认浏览器, 它的性能和标准遵从性明显低于现代Chrome浏览器.
解决这个问题的一种方法是使用 crosswalk 以及Ionic框架. Crosswalk允许您打包一个现代Chrome webview与Ionic应用程序, 因此,应用程序不必依赖于本地Android浏览器. 最终的结果是更好的性能和现代的web API在所有Android版本.
最明显的优点是:
- Ionic框架使用web技术构建混合应用程序. 这意味着网页开发者也可以轻松构建移动应用程序. Also, 因为它使用了JavaScript, 几乎相同的代码库可以用来构建iOS和Android应用程序.
- 与原生iOS和Android应用相比,开发成本更低.
- Ionic框架非常适合快速构建应用程序的原型.
一些缺点是:
- 它不适合高端图形依赖的应用程序或游戏.
- 性能不如本机应用程序好, namely animations, scrolling, 以及网络运营.
- 如前所述,JavaScript动画的性能不如本机动画. However, 有JavaScript库, like tweenMAX, 哪些设备提供了不错的动画表现.
申请加入Toptal的发展网络
并享受可靠、稳定、远程 自由离子型开发者职位
PhoneGap是一个将原生移动电话功能作为JavaScript API公开的库. 当Adobe收购PhoneGap时, 它的开源核心以Cordova的名义捐赠给了Apache软件基金会. 一开始,Cordova和PhoneGap之间几乎没有什么区别. Although, 经过多年的发展, Adobe开始向PhoneGap添加一套专有的服务. 今天,可以说PhoneGap是Cordova加上额外的Adobe服务.
Ionic的核心工具是Cordova,而不是PhoneGap. 除了本地手机功能, Ionic通过使用AngularJS为JavaScript应用程序提供结构和代码可伸缩性. 它还提供了一组Angular指令和组件来加速应用程序的开发.
Ionic在后台构建基于HTML5的应用程序,您可以使用 localStorage
and sessionStorage
在移动电话上持久化数据的API. However, since localStorage
只能存储字符串,对象需要在保存前进行字符串化吗. 此外,重要的是要提到 localStorage
大小限制在5MB左右吗.
Ionic使用AngularJS和UI-router. 这意味着你可以使用Angular服务或UI-router的状态 resolve
将数据从一个视图传递到另一个视图. 因为Angular的服务都是单例的, 存储在服务中的数据可以跨其他Angular控制器访问.
如前所述,UI-router提供了一个 resolve
configuration. For example:
$stateProvider
.state('todos', {
url: '/todos',
控制器:“TodosCtrl”,
templateUrl: 'todos.html',
resolve: {
todos:函数(TodosService) {
return TodosService.getTodos()
}
}
})
One advantage of resolve
有状态的服务是更好的测试:as resolve
在控制器中注入依赖项,很容易测试它们.
Ionic provides a collection-repeat
指令,只呈现DOM中可见的项. 所以即使列表很大,比如我们的例子中有5000个,也只有在视口中可见的项目才会被渲染. 因此,滚动性能不受影响.
Ionic默认最多缓存10个视图, 这样既能提高性能,又能同时在视图中保持不同的状态. 例如,缓存可以保持视图中的滚动位置或按钮的活动状态.
可以在每个视图中禁用缓存 cache: false
在UI-router的状态配置中,如下例所示:
$stateProvider.state('myState', {
cache: false,
url : '/myUrl',
templateUrl: my-template.html'
})
也可以通过设置全局禁用缓存 maxCache
to 0
:
ionicConfigProvider美元.views.maxCache(0);
Ionic提供了平台类:当应用加载时,Ionic将CSS类添加到 tag. 例如,在iOS设备上,Ionic补充道
platform-ios
class to tag. Ionic还添加了OS版本类,比如
platform-ios8
(for iOS 8) and platform-android4_4
(for Android 4.4).
Ionic并没有提供现成的摄像头API. However, 因为Ionic使用插件架构, 因为它是基于Cordova的, 我们可以在我们的应用中使用Cordova插件. Ionic团队提供了一组带有Angular包装器的Cordova扩展,它们可以在 ngCordova.
要使用Cordova插件,我们需要使用Ionic命令安装插件 install
. In some cases, 我们还需要将插件的Angular模块添加到你的Angular应用中.
要在Ionic应用程序中使用手机的摄像头,我们可以使用 在GitHub上托管的cordova-plugin-camera. 这个插件定义了一个全局变量 navigator.camera
object, 它为拍照和从系统的图像库中选择图像提供了一个API.
Ionic应用是用AngularJS构建的. Angular有一组丰富的测试库和框架,比如Jasmine和Karma测试运行器. 这些框架可用于为Ionic应用程序编写单元测试. Also, ionic-CLI
provides live reload
特性,以便可以在浏览器中测试应用程序. For example, the ionic serve
命令可用于在任何浏览器中加载应用程序. Thus, 我们可以使用Chrome开发者工具或Mozilla Firefox和Firebug来调试和检查Ionic应用程序.
To run your app, 你所要做的就是在安卓设备上启用USB调试和开发者模式, then run Ionic cordova运行android——device
从命令行.
面试不仅仅是棘手的技术问题, 所以这些只是作为一个指南. 并不是每一个值得雇佣的“A”候选人都能回答所有的问题, 回答所有问题也不能保证成为A级考生. 一天结束的时候, 招聘仍然是一门艺术,一门科学,需要大量的工作.
Why Toptal
提出面试问题
提交的问题和答案将被审查和编辑, 并可能会或可能不会选择张贴, 由Toptal全权决定, LLC.
寻找Ionic开发者?
Looking for Ionic Developers? 看看Toptal的Ionic开发者吧.
Rahul Devaskar
自由离子开发员
Rahul是一名专业的软件工程师,在构建全栈React和Node方面具有领导经验和专业知识.Js应用程序和流数据分析解决方案. 他使用Node设计并开发了一个创新的上下文感知广告平台.Js和机器学习技术, 这家总部位于硅谷的数据分析公司后来收购了这家公司.
Show MoreMichal Mikolajczyk
自由离子开发员
Michal是Toptal Warsaw的高级软件工程师和社区领导者. 他善于沟通,主动帮助创业公司扩大规模. Michal writes clean, functional code, 自动化基础设施, 并且喜欢协调和确定任务范围. 作为一名前数字游民,Michal在会议上发言,并为Toptal Blog撰写文章. 他的专业兴趣包括区块链和人工智能.
Show More塞尔吉奥·安东尼奥·米里奇
自由离子开发员
Sergio是一名软件工程师,具有为复杂问题开发可扩展且高效的解决方案的才能. 他对设计流程有全面的了解,在产品的所有设计阶段都有经验, including research, development, scalability, and testing.
Show MoreToptal Connects the Top 3% 世界各地的自由职业人才.
加入Toptal社区.