profile-pic
Vetted Talent

Surendra kumar sharma

Vetted Talent

Dynamic iOS developer with over 9.6 year experience in mobile apps. Expertise includes Swift, Objective-C, and Framework Development. I developed 50+ Apps in career, 30+ was from sketch to deploy on AppStore

  • Role

    Technical Leader (IOS)

  • Years of Experience

    11.2 years

Skillsets

  • Userdefaults
  • ClickUp
  • Cocos2D
  • Cocos2d-x
  • Figma
  • File System
  • Github
  • Jira
  • keychain
  • Objective-C
  • REST API
  • SQLite
  • Bitbucket
  • Xctestcase
  • Cocoatouch
  • code coverage
  • CoreData
  • Flutter
  • games
  • Jenkins
  • Unit Test
  • Vscode
  • widget development
  • widgets
  • MVC
  • Swift - 6 Years
  • UIkit - 9 Years
  • Payment Gateways
  • Xcode
  • iPad
  • WatchOS
  • Framework Development
  • Firebase
  • Google API
  • Memory Management
  • MVC
  • iOS - 9 Years
  • MVVM
  • SQL
  • VIDEO CONFERENCING
  • Location management
  • Social media integration
  • Itunes
  • Device authentication
  • Adobe XD
  • Agorartc
  • Asana

Vetted For

9Skills
  • Roles & Skills
  • Results
  • Details
  • icon-skill_image
    Senior iOS Engineer (Remote)AI Screening
  • 56%
    icon-arrow-down
  • Skills assessed :Dependency Injection, Reactive/Declarative programming, routing mediation, Singleton, Combine Framework, Firebase/ NoSQL, UIkit, iOS, Swift
  • Score: 50/90

Professional Summary

11.2Years
  • Oct, 2024 - Present1 yr 8 months

    Technical Leader (IOS)

    Azilen Technologies AI Development Company
  • Sep, 2022 - May, 20241 yr 8 months

    Sr. Systems Engineer - IOS

    GridLogics Technologies
  • Jan, 2022 - Sep, 2022 8 months

    Project Manager

    GTS Infosoft
  • Aug, 2014 - Aug, 20184 yr

    IOS Developer

    Square Bits
  • Sep, 2018 - Dec, 20213 yr 3 months

    Sr. IOS Developer

    GTS Infosoft

Applications & Tools Known

  • icon-tool

    Swift

  • icon-tool

    CoreData

  • icon-tool

    Android Studio

  • icon-tool

    Stripe

  • icon-tool

    Objective-C

  • icon-tool

    Stripe

  • icon-tool

    Firebase

  • icon-tool

    Sqlite

  • icon-tool

    Bitbucket

  • icon-tool

    Asana

  • icon-tool

    ClickUp

  • icon-tool

    Figma

  • icon-tool

    Adobe XD

  • icon-tool

    Xcode

  • icon-tool

    Google Play Console

  • icon-tool

    Google Cloud Platform

  • icon-tool

    AWS Cloud

  • icon-tool

    GitHub

  • icon-tool

    Slack

  • icon-tool

    Skype

  • icon-tool

    Basecamp

  • icon-tool

    Firebase Realtime Database

  • icon-tool

    HTML, CSS and JavaScript

  • icon-tool

    WebSocket

  • icon-tool

    Core database

Work History

11.2Years

Technical Leader (IOS)

Azilen Technologies AI Development Company
Oct, 2024 - Present1 yr 8 months

Sr. Systems Engineer - IOS

GridLogics Technologies
Sep, 2022 - May, 20241 yr 8 months

Project Manager

GTS Infosoft
Jan, 2022 - Sep, 2022 8 months

Sr. IOS Developer

GTS Infosoft
Sep, 2018 - Dec, 20213 yr 3 months

IOS Developer

Square Bits
Aug, 2014 - Aug, 20184 yr

Achievements

  • Phenomenal Mentor May - 2022, Project Manager at GTS infosoft LLP

Major Projects

21Projects

Collavate (iPhone/iPad)

    Business app to design and implement approval processes in Google Workspaces.

HealthNut

    App allowing users to scan food package ingredient lists.

Bitmatket (iPhone App / Watch App / Widgets)

PayPark UAE

Manadepick

Hubpreneur

Lock & Stock

ScanPix

    App for scanning and managing documents.

Whack Or Love

    Game allowing users to express themselves and interact in unique ways.

Flimbos Game/App

    Free entry game where users play to win fashion items.

Rockstar Spirit

    App to help users operate as their best selves.

Casino Game Application

    Admin iPad application for casino admins to manage patron user information in live games. Developed using Objective-C, SOAP API with XML, and Figma for design reference.

Tailored - Customer/Services

    Online marketplace for on-demand lawn service professionals.

Phlenu

    Delivery app for couriers and licensed drivers delivering orders to Phlenu customers.

QBITT - Instant Appointments

    Online scheduling tool for home service providers.

Social Trade Platform

    A community-driven social trade platform.

Meet Live

    Live video chat app for professionals, consultants, and freelancers.

Boothat - Shopping/Business

    Boothat is a marketplace connecting buyers and sellers globally.

MegaPoker

    MegaPoker delivers a unique gaming experience with real money play.

Taj Games

    Implemented Poker variant for the TajGames app.

Framework Development

    Developed a framework model as part of a container application to display promotions and their details after navigation.

Education

  • Bachelor of Computer Applications

    Lachoo Memorial College of Science & Technology (2018)
  • Master of Computer Applications

    Lachoo Memorial College of Science And Technology (2015)

AI-interview Questions & Answers

I'm excited to share my experience in mobile application development. I have 9 months of experience, but I've also worked with technologies that have 9 years of experience. So, I have experience with Objective-C, with 3 years of experience, and Swift, with 6 years of experience. During my career, I've developed over 50 applications. I've deployed over 30 applications, and most of them are available on the App Store. Recently, I worked on a poker card game using Swift UIKit features. I've also worked on other related applications, such as swapping business applications or training applications, event management applications, appointment booking applications, and grocery applications. In addition, I've worked with various features, including memory management, iOS permissions, location management, in-app assist features, iOS widgets, share extensions, iOS watch apps, and integrations with third-party payment gateways and social networking. I use Bitbucket and GitHub for code versioning and Jira, Asana, and ClickUp for tracking and development. For design development, I use Figma and Adobe XD. I follow design patterns like MVC and MVVM for clean code in development, and I also perform unit testing during development.

Excuse me, where you use design pattern to solve a problem. Nice. For iOS design patterns, normally, I'm using the MVC model view controller. And now in these days, we are using the MVVM, model view model design patterns in ASW and development. And for your design patterns, how to problematize. If we are using multiple screens and using repeated view models in our code, then it will be easier to implement the MVVM design pattern in our application. And MVC is containing all properties and API calling features in the same controller. So using MVVM, we can create a separate view model part that contains all properties and data members in the view model and also has the same responsibility in the view model for calling APIs. So this view model can be used for multiple screens in multiple view controllers, then it will be used for code reuse in development. And should you do a common view model? We can write minimum code in development. And also, we can say it's 82 implement the clean code feature in development. And suppose they have our login screen and sign up screen. So if we use MVC, then we need to create two separate controllers, and both separate controllers will contain their own properties and API calling features that are part of MVC. And if we use MVVM, then our single model view can be used for both controllers for login and sign up, and it's a best example of MVVM part that we are using reusable view model code in both screens.

To handle errors in the network layer using saved data. If the question is related to API errors that we are getting in a response, then we need to create multiple error handling in our network API class. And we can identify separate errors with their codes. And we can set a specific message related to errors when we get from API response. And if this error handling is related to our network layer, then we can use the inbuilt network handling feature provided in the iOS native network layer class. So we can inherit and use their predefined error codes, and we can set their priority, which error can be used on a priority basis.

We would manage state in a complex multithread iOS application using a combined framework that provides a synchronous implementation of asynchronously flow. Using Combine, we can set a property state in a publisher, and the subscriber will provide their current state. And when the property is changing its data in a state, then the subscriber will provide their existing state that we added in the publisher.

Using iOS animation, they have multiple techniques to implement animation in an iOS application. The first is using iOS native UIA animation and Core Animation, which provides multiple types of animation inbuilt natively. The second approach is using a third-party script file with Lottie, which offers a script animation file that can be implemented in our application. We can also use any GIF image for static animations that repeat. If we use Core Animation, it does not affect our iOS application's performance, making it easy to perform and use in iOS native code. That is the best approach.

You're approach to optimize UI response in complex sizes using size classes can optimize our UI responsive and complex application. Using size classes provides a layout view of the iOS app for every device with compatible features. And this is providing the type of component, regular, compact, and unspecified. These are the size classes that we are using in file development. And suppose our iPhone is in particular and landscape, then it will use the regular size classes. If our iPhone is, sorry, it's using the particular and horizontal size classes, which is regular and compact. And our device in landscape mode will use the compact size classes. If our device is related to plus devices, such as iPhone 7 plus, 8 plus, then in landscape mode, it will use the compact regular size classes. If size classes are working with the iPad, it's normally regular. And also for landscape mode, it's using the regular size classes. Size classes basically convert UI responses for every device commonly. If a device has a low screen size, then it reduces the size plus data and optimizes the UI according to the device's responsiveness. If a device is large in size, then it scales the UI according to the device size in landscape and portrait to both.

In this function using dispatch queue property in a method, but its error will be so dispatch queue not in scope because this is declaring below of the method. So it should be declared before use in a method. Otherwise, we can use above of the method. Means, we need to initialize and declare before it uses that error will be solved.

What each? In the singleton pattern, and in the wrong in this information, how to fix. Using this code, this is creating an object, and we can say instance, like app manager dot share manager. It's creating a let manager instance. So using the manager instance, we are calling a method, doing something. So in this single singleton pattern, protocol, we can't create any reference, any object of the class because this is the singleton class is providing a global access in all of our project. So it should be used by app manager, share manager dot their method name and property name. So we can't create any other instance of or object of the given class. That's it.

When designing a scalable app architecture for a growing user base in an iOS app, we approach this by dividing the architecture into multiple layers. The first layer is Cocoa Touch, which includes UI-related frameworks such as UIKit and game kit frameworks. For offline data storage, we can use core services to save data in a core database like SQLite. We also have many preferences in iOS, and we can use our app architecture to design a scalable application based on the usability of the project. If our app is working with core OS features like Bluetooth, we can use the core Bluetooth frameworks and also hardware-related features like user authentication with device. They have a local authentication framework. Our architecture is divided into multiple layers: the first is Cocoa Touch, the second is the media layer, and the third is core OS. Based on the usability of the project, we can design a good scalable application. If our application is using media-related features, we can also use the media layer to process images, audio, and video, and to get data from the library and camera-related features.

I'm employed through a method. I'm sure the iOS app user interface is still responsive. The method I will employ to ensure an iOS app user interface stays responsive during heavy computational tasks is to use multiple threads. You need to face the fact that we have multiple ways to implement iOS UI. We were doing different user interfaces to stay up to the way they're providing a coding part for the user interface in the app, and the UIA kit is providing a storyboard and Xcode can use XIB controls for preparing the design part and implementing every computational task in design time. And I would prefer to use the UI kit that is providing multiple ways to write heavy designs in storyboard by overriding XIB files for separate UI customized controls by XIB controls.

Majors with different disabilities. Accessibility of iOS applications is provided in multiple ways. We can use deep learning features. So, using customized URLs, we can access our iOS application. We can also use various extensions. We can access our application data both in-house and outside of the iOS application. There is also a share extension feature, so we can access our iOS application outside of iOS support. The share extension is basically used when selecting an image from the photo library. When we select an image, our app will be listed to open the image in our application. This is a part of different ways to open our iOS application for support. First, there is deep linking. Second, there is iOS widgets. Third, there is cell extension. We can also set our local post notifications and remote post notifications to access our application from outside the iOS app. We can also get real-time data without using our iOS application. Actually, deep linking has two techniques to access our application. The first is the URL scheme, and the second is the universal link. URL schemes also provide a way to open our app from outside, like opening it through Safari.