i
HCLTech
Filter interviews by
MVVM is an architectural design pattern that separates the user interface code from the business logic and data model.
MVVM stands for Model-View-ViewModel
Model represents the data and business logic
View displays the UI elements and interacts with the user
ViewModel acts as a mediator between the Model and View, handling user inputs and updating the Model
MVVM helps in achieving separation of concerns and making the ...
Classes are reference types, while structs are value types in Swift.
Classes are reference types, meaning they point to the same instance in memory when assigned to a new variable.
Structs are value types, meaning they create a new copy when assigned to a new variable.
Classes support inheritance, while structs do not.
Classes can have deinitializers, while structs cannot.
Example: class Person { var name: String } vs ...
Codable is a protocol in Swift that allows for easy encoding and decoding of data types to and from external representations.
Codable protocol is used to convert custom data types to and from external representations such as JSON, plist, etc.
It requires the types to conform to Encodable and Decodable protocols.
Codable protocol provides default implementations for encoding and decoding.
Example: struct Person: Codabl...
Serialisation in API is the process of converting data into a format that can be easily transmitted over a network.
Serialisation is used to convert complex data structures into a format that can be easily transmitted over a network.
It involves converting objects or data structures into a stream of bytes that can be sent over a network.
JSON and XML are commonly used formats for serialising data in APIs.
Serialisatio...
What people are saying about HCLTech
Guard let and if let are both used for optional binding in Swift, but they have different scopes and control flow behaviors.
guard let is used for early exits; if the condition fails, it exits the current scope.
if let allows you to safely unwrap optionals, but does not require an early exit.
Example of guard let: guard let value = optionalValue else { return } // exits if optionalValue is nil.
Example of if let: if l...
Singletons can be thread-safe, but it depends on the implementation. Proper techniques must be used to ensure safety.
Use dispatch_once in Objective-C for thread-safe singleton creation.
In Swift, use a static constant to ensure thread safety.
Example in Objective-C: + (instancetype)sharedInstance { static MyClass *sharedInstance; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ sharedInstance = [[s...
The Identifiable protocol in Swift provides a way to uniquely identify instances of a type.
Conforms to Identifiable by implementing a 'var id: UUID { get }' property.
Useful in SwiftUI for lists and dynamic views to track changes.
Example: struct User: Identifiable { var id = UUID(); var name: String }
Helps in differentiating between items in a collection.
diff is used to compare two collections and return the differences, while guard is used for early exit in a function if a condition is not met.
diff is a method used in Swift to compare two collections and return the differences.
guard is a keyword used in Swift to provide an early exit from a function if a condition is not met.
Example: let array1 = [1, 2, 3, 4], array2 = [3, 4, 5, 6]; let result = array1.diff(array...
GCD stands for Grand Central Dispatch, a technology used in iOS for managing concurrent operations. Multithreading is the ability of a CPU to execute multiple threads concurrently.
GCD is used for managing tasks asynchronously and efficiently utilizing system resources.
Multithreading allows multiple tasks to run concurrently, improving performance and responsiveness of an application.
Example: Using GCD to download ...
diff is used to compare two collections and return the differences, while guard is used for early exit in a function if a condition is not met.
diff is a method used in Swift to compare two collections and return the differences.
guard is a keyword used in Swift to provide an early exit from a function if a condition is not met.
Example: let array1 = [1, 2, 3, 4], array2 = [3, 4, 5, 6]; let result = array1.diff(array2) //...
GCD stands for Grand Central Dispatch, a technology used in iOS for managing concurrent operations. Multithreading is the ability of a CPU to execute multiple threads concurrently.
GCD is used for managing tasks asynchronously and efficiently utilizing system resources.
Multithreading allows multiple tasks to run concurrently, improving performance and responsiveness of an application.
Example: Using GCD to download image...
I applied via Walk-in and was interviewed before Sep 2023. There were 2 interview rounds.
Serialisation in API is the process of converting data into a format that can be easily transmitted over a network.
Serialisation is used to convert complex data structures into a format that can be easily transmitted over a network.
It involves converting objects or data structures into a stream of bytes that can be sent over a network.
JSON and XML are commonly used formats for serialising data in APIs.
Serialisation is ...
Codable is a protocol in Swift that allows for easy encoding and decoding of data types to and from external representations.
Codable protocol is used to convert custom data types to and from external representations such as JSON, plist, etc.
It requires the types to conform to Encodable and Decodable protocols.
Codable protocol provides default implementations for encoding and decoding.
Example: struct Person: Codable { v...
MVVM is an architectural design pattern that separates the user interface code from the business logic and data model.
MVVM stands for Model-View-ViewModel
Model represents the data and business logic
View displays the UI elements and interacts with the user
ViewModel acts as a mediator between the Model and View, handling user inputs and updating the Model
MVVM helps in achieving separation of concerns and making the code ...
Singletons can be thread-safe, but it depends on the implementation. Proper techniques must be used to ensure safety.
Use dispatch_once in Objective-C for thread-safe singleton creation.
In Swift, use a static constant to ensure thread safety.
Example in Objective-C: + (instancetype)sharedInstance { static MyClass *sharedInstance; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ sharedInstance = [[self a...
Guard let and if let are both used for optional binding in Swift, but they have different scopes and control flow behaviors.
guard let is used for early exits; if the condition fails, it exits the current scope.
if let allows you to safely unwrap optionals, but does not require an early exit.
Example of guard let: guard let value = optionalValue else { return } // exits if optionalValue is nil.
Example of if let: if let va...
Classes are reference types, while structs are value types in Swift.
Classes are reference types, meaning they point to the same instance in memory when assigned to a new variable.
Structs are value types, meaning they create a new copy when assigned to a new variable.
Classes support inheritance, while structs do not.
Classes can have deinitializers, while structs cannot.
Example: class Person { var name: String } vs struc...
The Identifiable protocol in Swift provides a way to uniquely identify instances of a type.
Conforms to Identifiable by implementing a 'var id: UUID { get }' property.
Useful in SwiftUI for lists and dynamic views to track changes.
Example: struct User: Identifiable { var id = UUID(); var name: String }
Helps in differentiating between items in a collection.
I can join within 2 weeks of receiving an offer.
I can start within 2 weeks of receiving an offer
I need to give notice at my current job before starting
I have some personal commitments that I need to wrap up before joining
Classes and structures are both used to define custom data types, but they have some key differences.
Classes are reference types, while structures are value types.
Classes support inheritance, while structures do not.
Classes have deinitializers, while structures do not.
Classes have reference counting for memory management, while structures do not.
Classes can have optional property types, while structures cannot.
Retain cycle is a memory management issue where objects reference each other and cannot be released. It can be avoided by using weak or unowned references.
Retain cycle occurs when two or more objects hold strong references to each other.
To avoid retain cycle, use weak or unowned references instead of strong references.
Weak references do not increase the reference count of an object and automatically become nil when the...
Opinion binding is a legal doctrine that requires judges to follow the decisions of higher courts in similar cases.
Opinion binding is also known as stare decisis.
It helps to ensure consistency and predictability in the legal system.
For example, if a higher court has already ruled that a certain law is unconstitutional, lower courts must follow that ruling in similar cases.
Opinion binding can be controversial, as it can...
GCD and Operation Queues are both used for concurrent programming in iOS, but differ in their approach.
GCD is a C-based API that uses a thread pool model for concurrency.
Operation Queues are built on top of GCD and provide a higher-level abstraction for concurrency.
GCD is best for simple, lightweight tasks, while Operation Queues are better for more complex tasks with dependencies.
GCD uses blocks for task execution, wh...
The life cycle of iOS applications refers to the stages an app goes through from launch to termination.
The app is launched by the user or system
The app enters the foreground and becomes active
The app can be sent to the background or suspended
The app can be terminated by the user or system
The app can be resumed from the background or suspended state
The app can receive memory warnings and handle them appropriately
The UIViewController life cycle consists of several stages that occur when the view controller is loaded and unloaded.
viewDidLoad() - called when the view controller's view is loaded into memory
viewWillAppear() - called just before the view appears on the screen
viewDidAppear() - called just after the view appears on the screen
viewWillDisappear() - called just before the view disappears from the screen
viewDidDisappear()...
What people are saying about HCLTech
I applied via Naukri.com and was interviewed in Sep 2020. There were 4 interview rounds.
I applied via Recruitment Consulltant and was interviewed before Feb 2021. There was 1 interview round.
Optional is a type in Swift that can hold a value or be nil. Struct and class are both used to define custom data types.
Optional is denoted by a question mark (?) and is used to handle nil values.
Structs are value types and are passed by value, while classes are reference types and are passed by reference.
Structs have a default memberwise initializer, while classes do not.
Classes can inherit from other classes, while s...
I applied via Naukri.com and was interviewed in Aug 2021. There was 1 interview round.
I applied via Approached by Company and was interviewed in Feb 2024. There was 1 interview round.
Find second greatest number from an array of duplicate items.
Struct is a value type, Class is a reference type in Swift.
Structs are passed by value, Classes are passed by reference.
Structs are immutable by default, Classes are mutable.
Use Structs for simple data types, Classes for more complex objects.
I applied via Recruitment Consulltant and was interviewed before Aug 2023. There were 3 interview rounds.
Classes are reference types, while structs are value types in Swift.
Classes are reference types, meaning they point to the same memory location when assigned to a new variable.
Structs are value types, meaning they create a new copy when assigned to a new variable.
Classes support inheritance, while structs do not.
Classes can have deinitializers, while structs cannot.
Classes can be typecasted, while structs cannot.
Find the index of the first occurrence in string
I expect a competitive salary based on my skills, experience, and industry standards for an iOS Developer.
Based on my research, the average salary for an iOS Developer in this region is between $80,000 and $120,000.
I have over 5 years of experience, which positions me towards the higher end of that range.
I am also open to discussing benefits and bonuses that could be part of the overall compensation package.
For example...
Yes, I have planned a vacation in the next six months.
I have scheduled a week-long trip to Europe in September.
I also plan to take a few days off around Christmas to visit family.
I have informed my team in advance and ensured that my work will not be affected.
based on 2 interview experiences
Difficulty level
Duration
based on 4 reviews
Rating in categories
Software Engineer
24.9k
salaries
| ₹2.7 L/yr - ₹8.1 L/yr |
Technical Lead
22.9k
salaries
| ₹10.9 L/yr - ₹21 L/yr |
Senior Software Engineer
16.8k
salaries
| ₹5.4 L/yr - ₹15.8 L/yr |
Lead Engineer
16.4k
salaries
| ₹5.3 L/yr - ₹12.4 L/yr |
Analyst
15.9k
salaries
| ₹2.3 L/yr - ₹6.5 L/yr |
TCS
Wipro
Accenture
Cognizant