Saturday, June 9, 2018

Ionic interview questions | interview questions for hybrid mobile app developers

Ionic Interview Questions :-



1. What are hybrid mobile apps?

Ans : Hybrid apps are actually developed using a combination of the native and HTML5-based web features. An HTML5 mobile app is basically a web page, or chain of web pages, that are developed to run on a small screen. Hybrid development unites the best and leaves the worst points of both the native and HTML5 platforms. Hybrid app can also be called as a web app, which is initially developed using HTML5 and JavaScript and then it is wrapped in a lean native container that makes it accessible to native platform features as well. Apart, from being a bit slow platform in accessing NFC, Bluetooth, etc and requires a third party plug-in, hybrid platform has handful of advantages. A hybrid application has a potential to develop applications using Android, Windows and Blackberry in spite of the factor that each of the platform requires different development environment, language and framework. To get a prominent presence in the app store without spending significant effort for developing a different app, companies develop hybrid apps as wrappers for an existing web page. Moreover, hybrid apps are also popular because they allow cross-platform development. That means, developers can reuse the same HTML code components on different mobile operating systems, which in turn, reduces significantly the development costs. Tools like PhoneGap and Sencha Touch allow users to design and code across platforms, using the power of HTML.


2. What are the most prominent advantages and disadvantages of building applications using the Ionic framework?

Ans : The most obvious advantages are:

Ionic framework builds hybrid applications using web technologies. It means web developers can easily build mobile applications too. Also, because it uses JavaScript, almost the same codebase can be used to build both iOS and Android applications.
Development cost is less compared to native iOS and Android applications.
Ionic framework is excellent for quick application ideas prototyping.
Some of the disadvantages are:

It is not suited for high-end graphics dependent applications or games.
Performances are not as good as native applications, namely animations, scrolling, and network operations.
As mentioned, JavaScript animations are not as performant as native animations. However, there are JavaScript libraries, like tweenMAX, which provide decent animation performance on the devices.


3. Why build native apps, when hybrid apps development frameworks are there?

Ans : Some of the following could not be achieved effectively using web frameworks:
Access to platform-specific UI components, like maps, date pickers, switches, and navigation stacks.
Native mobile gesture recognizers
Complex and sophisticated threading models that help parallelize work onto multiple threads.


4. What is the difference between PhoneGap, Cordova, and Ionic?

Ans : PhoneGap is a library that exposes native mobile phone functionalities as JavaScript API. When Adobe purchased PhoneGap, its open source core was donated to the Apache Software Foundation under the name Cordova. In the beginning, there was almost no difference between Cordova and PhoneGap. Although, over the years of development, Adobe started adding a proprietary set of the services to PhoneGap. Today, it is safe to say PhoneGap is Cordova plus extra Adobe services.

Ionic uses Cordova, not PhoneGap for its core tools. Beside native mobile phone functionalities, Ionic gives structure and code scalability to JavaScript applications by using AngularJS. It also provides a set of Angular directives and components to speed up application development.


5. What are some of the disadvantages of building native apps?

Ans : Even a small change needs a recompile that slows up the developers. This become a nightmare when the codebase is very large.
Testing new functionality is cumbersome.
Calls between native and interpreted environment could end up blocking UI thread.


6. How do you persist data between application launches using Ionic framework?

Ans : As Ionic behind the scene builds HTML5 based applications, you can use localStorage and sessionStorage API to persist data on the mobile phone. However, since localStorage can only store strings, objects need to be stringified before saving. Also, it is important to mention localStorage has size limit around 5MB.


7. How do you pass data from one view to another in Ionic applications?

Ans : Ionic uses AngularJS and UI-router. It means you can use Angular services or UI-router’s state resolve to pass data from one view to another. Since Angular services are singletons, data stored in services can be accessed across other Angular controllers.

As mentioned, UI-router provides a resolve configuration. For example:

$stateProvider
.state(‘todos’, {
url: ‘/todos’,
controller: ‘TodosCtrl’,
templateUrl: ‘todos.html’,
resolve: {
todos: function(TodosService) {
return TodosService.getTodos()
}
}
})
One advantage of resolve over stateful services is better testing: as resolve injects dependencies in the controller, it is easy to test them.
8. How can you render a 5000 item list in Ionic, without affecting scroll performance?
Ans :- Ionic provides a collection-repeat directive that renders only visible items in the DOM. So even if the list is huge, like 5000 in our example, only items visible in a viewport are rendered. Thus, scroll performance is not affected.


9. Give some examples of Hybrid Mobile App Frameworks?

Ans :
Ionic
Mobile Angular UI
Intel XDX
Appcelerator Titanium
PhoneGap
Kendo UI


10. What is the advantage of caching the views in Ionic apps? Provide examples.

Ans : Ionic by default caches up to ten views, which improves performance and also maintains different states in the views at the same time. For example, the cache can maintain scroll position in the views or active state of buttons.

Caching can be disabled per view by using cache: false in UI-router’s state config, like in the following example:

$stateProvider.state(‘myState’, {
cache: false,
url : ‘/myUrl’,
templateUrl : ‘my-template.html’
})
Caching can be also disabled globally, by setting maxCache to 0:

$ionicConfigProvider.views.maxCache(0);


11. How can you detect a platform (Android or iOS) at runtime in Ionic application?

Ans : Ionic provides platform classes: when the application is loaded, Ionic adds CSS classes to the <body> tag. For example, on iOS devices, Ionic adds platform-ios class to <body> tag. Ionic also adds OS version classes such as platform-ios8 (for iOS 8) and platform-android4_4 (for Android 4.4).


12. How can you access mobile phone native functionality in Ionic applications, for example the camera?

Ans : Ionic does not provide a camera API out of the box. However, since Ionic uses plugins architecture, and because it is based on Cordova, we can use Cordova plugins in our application. Ionic team provides a set of Cordova extensions with Angular wrappers, and they can be found at ngCordova.

To use Cordova plugins, we need to install the plugin using Ionic command install <plugin name>. In some cases, we will additionally need to add the plugin’s Angular module to your Angular application too.

To use a mobile phone’s camera in the Ionic application, we can call the camera API by using cordova-plugin-camera that is hosted on GitHub. This plugin defines a global navigator.camera object, which provides an API for taking pictures and for choosing images from the system’s image library.
13. How can you test Ionic applications?
Ans :- Ionic applications are built using AngularJS. Angular has a rich set of test libraries and frameworks such as Jasmine and Karma test runner. These frameworks can be used to write unit tests for Ionic applications. Also, ionic-CLI provides live reload feature so the application can be tested in the browser. For example, the ionic serve command can be used to load the application in any browser. Thus, we can use Chrome Developer Tools or Mozilla Firefox with Firebug to debug and inspect Ionic applications.


14. Performance of Ionic application is bad on older Android devices. Why is this, and what can be done to improve it?

Ans : Ionic framework uses the default web browser available for the device to run its hybrid application. Older versions of Android devices (4.0-4.3) use Android’s default browser, which has significantly less performance and standards compliance than the modern Chrome browser.

One way to resolve this issue is to use crosswalk along with Ionic framework. Crosswalk allows you to package a modern Chrome webview along with Ionic application, so an application does not have to rely on native Android browser. The end results are much better performances and modern web API across all Android versions.


15. What’s the difference between “ionic build” and “ionic prepare”?

Ans : ionic prepare <platform> copies all files from the www folder into the target platform’s www folder.

ionic build <platform> also does this, but also builds the app’s source code so that it can be run on a simulator/emulator or a device.


16. How are hybrid apps different from building native apps and mobile websites?

Ans : 

Native Mobile Apps:
An application program developed for use on a specific platform or device is basically a Native mobile application. Since native apps are developed by using a particular platform, they can take advantage of the device specific software and hardware. That means- they can use inbuilt software and programs like – global positioning system (GPS) and camera. One of the best parts of native applications is that they are faster and specific to platforms like Android and iOS etc. They are usually developed by the use of integrated development environment (IDE). IDEs are best known tools for providing services like- project development, building debugging, version control and many others. However, iOS and Android applications are generated by using different languages and IDEs, there’s a lot of similarity in the techniques and the development environment. So, exploring the differences of the two languages is not a pre requisite. By simply using the tools required by the devices, programmers can develop native apps, which are at times difficult to develop.

Mobile Web Apps:
Web apps are actually not real applications; they are really websites. Their look and feel is like native applications, but they are not implemented in a similar way as native apps are implemented. They run through a browser and are typically written in HTML5. Mobile web apps can be accessed normally as users access any web page. To install the app, users are needed to navigate to a special URL and there they get the option of “installing” the app on their home screen by creating a bookmark to that page.

Basically, web apps became popular when HTML5 came and people realized that they can get native like functionality in the browser. Nowadays, when more and more websites use HTML5, the difference between web apps and regular web pages has become blurry.

Hybrid Mobile Apps:
Hybrid apps are actually developed using a combination of the native and HTML5-based web features. An HTML5 mobile app is basically a web page, or chain of web pages, that are developed to run on a small screen. Hybrid development unites the best and leaves the worst points of both the native and HTML5 platforms. Hybrid app can also be called as a web app, which is initially developed using HTML5 and JavaScript and then it is wrapped in a lean native container that makes it accessible to native platform features as well. Apart, from being a bit slow platform in accessing NFC, Bluetooth, etc and requires a third party plug-in, hybrid platform has handful of advantages. A hybrid application has a potential to develop applications using Android, Windows and Blackberry in spite of the factor that each of the platform requires different development environment, language and framework. To get a prominent presence in the app store without spending significant effort for developing a different app, companies develop hybrid apps as wrappers for an existing web page. Moreover, hybrid apps are also popular because they allow cross-platform development. That means, developers can reuse the same HTML code components on different mobile operating systems, which in turn, reduces significantly the development costs. Tools like PhoneGap and Sencha Touch allow users to design and code across platforms, using the power of HTML.

10 comments:

  1. Thank you for sharing valid information about software ionic frame work



    ionic frame work
    Training in Hyderabad

    ReplyDelete
  2. Thank you for sharing valid information about software ionic frame work

    ionic frame work
    Training in Hyderabad

    ReplyDelete
  3. This comment has been removed by a blog administrator.

    ReplyDelete
  4. This comment has been removed by a blog administrator.

    ReplyDelete
  5. This is really helpful and informative, as this gave me more insight to create more

    ideas and solutions for my plan.keep update with your blog post.

    Website Design Company in Bangalore
    Website Development Company in Bangalore

    ReplyDelete
  6. Nice Post. Thanks for sharing an informative and extremely helpful post.

    Top Mobile App Development Company

    ReplyDelete