i
NTT Data
Filter interviews by
I applied via Naukri.com and was interviewed in Jan 2024. There was 1 interview round.
Protocols in Swift define a blueprint of methods, properties, and other requirements that a class, struct, or enum must adopt.
Protocols are used to define a set of rules or capabilities that a type must conform to.
They allow for code reuse and provide a way to define common behavior across different types.
A type can adopt multiple protocols, enabling it to conform to multiple sets of rules.
Protocols can require propert...
Dependency Injection is a design pattern where the dependencies of an object are provided externally rather than being created internally.
Dependency Injection helps in achieving loose coupling between classes.
It allows for easier testing and maintenance of code.
There are three types of Dependency Injection: Constructor Injection, Setter Injection, and Interface Injection.
Example: In iOS development, we can use Dependen...
Generics in Swift allow you to write flexible and reusable code by creating functions, classes, and structures that can work with any type.
Generics enable you to write code that can be used with different types, without duplicating code.
You can define generic functions, types, and protocols to work with a wide range of types.
Generics are particularly useful when working with collections, such as arrays and dictionaries...
Associate types are a way to create a relationship between two types in Swift.
Associate types are defined using the 'associatedtype' keyword.
They are used in protocols to define a placeholder type that will be specified by the conforming type.
The conforming type can provide its own concrete type for the associated type.
This allows protocols to be more flexible and reusable.
For example, a protocol for a container type c...
Top trending discussions
I applied via LinkedIn and was interviewed in Sep 2024. There were 3 interview rounds.
Basic interview on question like aptitude, javascript, typescript and react-native question
Function currying is a technique in functional programming where a function with multiple arguments is transformed into a sequence of nested functions, each taking a single argument.
Currying allows you to partially apply a function by fixing a number of arguments, which creates a new function.
It helps in creating reusable functions and improves code readability.
Example: const add = (a) => (b) => a + b; const add5 = add
IIFE stands for Immediately Invoked Function Expression, used for creating a function that is executed immediately after it is defined.
IIFE is used to create a private scope for variables to avoid polluting the global scope.
It is commonly used in React Native development to encapsulate code and prevent naming conflicts.
Example: (function() { console.log('IIFE executed'); })();
Call stack is used to keep track of function calls, while event loop manages asynchronous operations in JavaScript.
Call stack is a data structure that keeps track of function calls in a program.
When a function is called, it is added to the top of the call stack. When the function completes, it is removed from the stack.
Event loop is responsible for managing asynchronous operations in JavaScript, ensuring that they are ...
I applied via Approached by Company and was interviewed in Nov 2024. There were 2 interview rounds.
posted on 12 Nov 2024
I applied via Company Website and was interviewed in Aug 2024. There was 1 interview round.
MVVM is a design pattern that separates the UI, business logic, and data layers in an iOS application.
Model: Represents the data and business logic of the application.
View: Represents the UI components of the application.
ViewModel: Acts as a mediator between the Model and View, handling the presentation logic and data binding.
Pros: Separation of concerns, easier to maintain and test, promotes reusability.
Cons: Increase...
Multithreading in Swift allows for concurrent execution of tasks to improve performance and responsiveness.
Use Grand Central Dispatch (GCD) for managing concurrent tasks
Avoid blocking the main thread to prevent UI freezes
Consider using Operation and OperationQueue for more complex task management
App Life Cycle refers to the sequence of events that occur from the time an app is launched until it is terminated.
App is launched by user or system
App enters foreground and becomes active
App enters background when user switches to another app or locks the device
App may be terminated by the system to free up resources
App can be brought back to foreground by user or system events
Extension of enum allows adding new cases, computed properties, and methods to an existing enum type.
Extensions can be used to add new functionality to existing enum types without modifying their original implementation.
New cases, computed properties, and methods can be added to an enum using extensions.
Extensions can also be used to conform an enum to a protocol.
Delegate methods of URL session are used to handle various events during network requests.
Delegate methods are used to handle authentication challenges, background session events, and data tasks.
Examples include URLSessionDelegate, URLSessionDataDelegate, URLSessionTaskDelegate.
Delegate methods can be used to handle redirects, caching policies, and response validation.
SSL pinning is a security measure used to prevent man-in-the-middle attacks by validating the server's SSL certificate.
Implement SSL pinning by embedding the server's SSL certificate within the app's code.
During the SSL handshake, compare the server's certificate with the embedded certificate to ensure they match.
If the certificates match, the connection is considered secure and the data exchange can proceed.
SSL pinnin...
posted on 9 Jan 2024
I applied via Recruitment Consulltant and was interviewed in Dec 2023. There were 3 interview rounds.
Higher Order and Lambda Functions in Kotlin
Higher order functions are functions that take other functions as parameters or return functions
Lambda functions are anonymous functions that can be used as arguments or return values in higher order functions
They provide a concise way to write code and enable functional programming in Kotlin
Multi Modular Project structure is an architectural approach that divides an application into multiple modules for better organization and scalability.
Divide the application into separate modules based on functionality or features.
Each module should have its own set of code, resources, and dependencies.
Modules can communicate with each other through defined interfaces or APIs.
Modularization helps in code reusability, e...
Null pointer prevention and type safety in Kotlin
Kotlin uses nullable and non-nullable types to prevent null pointer exceptions
The safe call operator '?' can be used to safely access nullable variables
The '!!' operator can be used to explicitly throw a null pointer exception
Kotlin's type system ensures type safety by checking types at compile-time
Easy aptitude english and logical reasoning.
Swift is a powerful and modern programming language for iOS development, but it has its own set of advantages and disadvantages.
Advantages: faster performance, safer code with optionals, easier to read and write code, interoperability with Objective-C
Disadvantages: steep learning curve for beginners, limited community support compared to other languages like Java or Python
based on 1 interview
Interview experience
Software Engineer
935
salaries
| ₹2.8 L/yr - ₹11 L/yr |
Senior Associate
773
salaries
| ₹1.2 L/yr - ₹7.5 L/yr |
Network Engineer
664
salaries
| ₹1.8 L/yr - ₹10 L/yr |
Software Developer
641
salaries
| ₹3.1 L/yr - ₹12 L/yr |
Senior Software Engineer
574
salaries
| ₹6.5 L/yr - ₹26 L/yr |
Tata Communications
Bharti Airtel
Reliance Communications
Vodafone Idea