Seasoned iOS Developer with 7+ years of extensive experience in designing and developing large-scale applications with complex user interfaces. Proficient in Swift and SwiftUI, I have a proven track record of delivering rich, interactive, and high-performance applications using the latest iOS technologies. Develop My expertise spans the entire development lifecycle, from conceptualization and design to implementation, testing, and deployment. Proficient in User Authentication frameworks like Firebase, Facebook, Google etc. In Previous roles developed 10+ iOS apps for brands like FabIndia, PwC, Nike, BlackJack Pizza & Heathrow Airport etc. Extensively worked on MVC, MVVM design architecture, Cocoa design patterns and concepts like delegation, protocol and categories. Experience in working with data parsing forms such as JSON and XML to dynamicall ydisplay data on iOS Application. Design applications using Storyboards, XIB files, SwiftUI View and Programmatic UI building. Experience with GIT code repositories, and Git flow workflow. Familiarity with Agile methodologies and continuous integration/continuous deployment (CI/CD). Highly experienced working directly with clients, as a programmer and also as a leader of software implementation. Establish and maintain a productive working relationship with management, Clients, external teams and team members.
Senior iOS Engineer
DMISenior iOS Developer
UplersSenior iOS Developer
Good Works LabiOS Engineer
Subcodevs IT ConsultingiOS Software Engineer
Customer AnalyticsSwiftUI
Swift Package Manager
Xcode
Objective-C
CocoaPods
Android Studio
Cocoa Touch
SQLite
Git
Microsoft Word
Engaged in code reviews with team to brainstorm areas requiring improvement, validate design and
implementation of features.
Designed prototype applications to reduce developments costs and establish more clarity of user perception and
needs.
Planned storyboards for clients to guarantee designs and ideas met client requirements and expectations.
Translated basic design plans into full iOS app frameworks, delegating project
components to appropriate team members.
Applied Agile software development methodology to elevate final products and
streamline development efforts.
Researched and selected APIs for integration into development projects.
Hi, my name is Irshad Ahmed and I have completed my graduation in 2016 and then I have started working as a junior iOS developer and initially I started working with Objective-C and there I have worked around like 3-4 months in the Objective-C then I have started working in the SIFT technology and there I have and since then I am continuously working in the SIFT technology and if we talk about my complete experience technology wise, so I have around like 8 years of experience in the SIFT and the 1 year of experience in the SIFT UI and around 6 months of experience in the Objective-C and in my recent experience I was working with Uplers and the client was the Leica Digital and I have worked around 1 year with them and my roles and the responsibility were to develop an end-to-end functionality of the assigned feature with the proper event testing and the working environment were quite simple. So, we do have the daily scrum meetings and we frequently communicate with each other with the backend team as well and in the daily scrum meetings we basically discuss with the deadline and any blocker if we have and we work on the blocker if we have any blocker in the current task and majorly I work with the e-commerce industry and the telecom industry. Majorly I work with the telecom industry and the e-commerce industry and initially I worked with the ad industry as well.
So, to test the, to write the unit test cases for the asynchronous code, we basically use the expectations. So, first we have to create the expectations, then we will call our asynchronous code and once we will receive the response from the asynchronous code, we will fulfill our expectations, okay. And then we will wait for the expectations. So, once we will fulfill, then we will write a condition accordingly, whether we get the desired result or not. If we get the desired result, then accordingly we will write our assertion, okay, like xct assert not nil or maybe if we are getting like success response, then we will write like xct assert true or xct assert false. So, accordingly based on the asynchronous response, we can write our assertions and yes, and there is a like API available, like expectation, which we use basically to write the unit test cases for the asynchronous code.
how would you implement a custom animation between two views controller to create a custom animation between two view controller basically we need to define the navigation delegate and the transition delegate and then in the delegate when the controller is moved from one controller to another controller or maybe it's coming like back from the second view controller to first view controller we will receive the delegate in this delegate in this transition delegate we have to define the transition context and the animation which we need to apply between those two view controllers
Can you showcase how to use Error Handling in SIFT and handle different error cases? So Error Handling in SIFT is quite simple, it's not complex. So we already have an enum available in the SIFT called Error and on the top of that we can define our own custom enum like API error or some specific error. And we can define another use case like invalid response format or internal server errors and like that or maybe custom error. So we can define different use case and once we get that kind of error from the APIs then we can accordingly, according to the cases defined in the enum, we can simply handle our cases inside the application. So this is the standard way. So first we need to define the enum with the error cases like invalid JSON format, invalid request, invalid data or like no internet connection and all. So we can define all the cases and according to that case we can handle the error inside the application.
So, network layer abstraction is basically what we do, we need to create a protocol oriented base the network layer, so let's suppose we are working with the authentication and we have to create the authentication network layer, so first we will define a protocol for the authentication network layer and on the top of that protocol we will create a service and if any API, oh sorry, if any class is consuming that particular network layer then we will simply tell them to use the protocol, not the actual service.
That's fine.
Yes, so in this code, basically, this view, a specific view, is a random view. It is a list of items, but initially, the items is basically, it's an empty, okay. So item is basically empty, so it is not going to render anything. Eventually, it is going to crash the application because the item does not have any object in it. It's just a nil initially. So that is the problem with it.
Take care.
So, I have used MVVM besides MVC, so MVVM, the benefit of using MVVM over the MVC is that, so MVVM basically increase the separation of concern and also increase the testability and separate the basically business logic from the view. The problem with the MVC is that you have to write every logic and everything inside the controller itself that become very huge and messy and by using MVVM, we can clearly separate our business logic from the views and basically the logic layer is clearly separate from the view itself, so that define basically the separation of concern and improve the testability and improve the reusability and yes, so that is the most of the benefit by using like using MVVM over the MVC.
So, we can, so there are like couple of ways to debug an application which basically crashing intermittently. So, in the Xcode, in the Xcode breakpoint navigator, there is a tool available in the Xcode called breakpoint navigator in that there is a specific type of breakpoint that is called exceptional breakpoint and we will hit that breakpoint, we will add this breakpoint and we will run the application and as soon as the crash is going to happen, it will automatically stop it at the specific line of code where exactly causing the crash. So, in that way, we can debug this intermittent crash issue in the iOS application and this is the easiest way of debugging it.
So, to implement a biometric authentication, we already have the framework available from the Apple and in that there are two kinds of biometric authentication available for the older devices, it's a Touch ID and for the newer devices like iPhone 10, 11, 12 it's a Face ID. So, there are two types of biometric authentication available and we already have the native library available from the Apple and we can implement those in order to implement the authentication feature, biometric authentication, either it's a Face ID or Touch ID, it's quite simple and straightforward.