Swift Programming Language:
Proficiency in Swift, including its syntax, data types, operators, control structures, and error handling.
iOS Development Fundamentals:
Understanding of iOS app architecture, components, and development patterns (MVC, MVVM, etc.).
Experience with Interface Builder and programmatic UI layout.
Xcode:
Familiarity with Xcode IDE, its features, and tools for debugging, profiling, and building iOS apps.
UIKit and SwiftUI:
Proficiency in building user interfaces using UIKit (for traditional apps) or SwiftUI (for declarative UI).
Auto Layout and UI Design:
Understanding of Auto Layout for creating responsive and adaptable user interfaces.
Basic design principles to create visually appealing and user-friendly interfaces.
View Controllers:
Knowledge of view controllers, their life cycle, and how to manage navigation between them.
Networking and APIs:
Experience in working with RESTful APIs and handling network requests using URLSession or third-party libraries.
JSON parsing and data serialization.
Core Data and Persistence:
Understanding of Core Data framework for local data storage and management.
Grand Central Dispatch (GCD) and Concurrency:
Proficiency in using GCD to manage concurrent and asynchronous tasks.
Memory Management:
Understanding of ARC (Automatic Reference Counting) and managing memory effectively to prevent memory leaks.
Version Control:
Proficiency in using Git for version control and collaborative development.
App Architecture:
Knowledge of different app architecture patterns like MVC, MVVM, VIPER, and their pros and cons.
Unit Testing and Test-Driven Development (TDD):
Writing unit tests using XCTest or other testing frameworks and practicing TDD.
Debugging and Profiling:
Effective use of debugging tools and Instruments for performance analysis.
Push Notifications and Background Execution:
Implementing push notifications and handling background tasks.
App Store Submission:
Knowledge of the app submission process, provisioning profiles, and App Store guidelines.
Security:
Implementing security best practices, such as secure data storage and encryption.
Localization and Internationalization:
Adding support for multiple languages and regions in your app.
Core Animation and Graphics:
Understanding of Core Animation for creating fluid animations and visual effects.
Continuous Integration and Deployment (CI/CD):
Integrating apps with CI/CD pipelines for automated testing and deployment.
Third-Party Libraries and APIs:
Familiarity with common third-party libraries and SDKs to enhance app functionality.
Keeping Up with Updates:
Staying updated with the latest iOS SDK releases, best practices, and community trends.
Problem-Solving:
Strong problem-solving skills to debug issues and find efficient solutions.
Requirements
Bachelor in Computer science or any relevant field.
Proficiency in written and verbal Arabic & English language.
Experience with full-cycle mobile app development in iOS.
Ability to integrate APIs and RESTful web services for mobile apps.
Fluency in Objective-C, Swift, Cocoa Touch and C-based library fundamentals.
Programming language expertise (Objective-C, Swift).
Experience using IDEs (AppCode, CodeRunner, Xcode).
Experience with app development frameworks (AVFoundation, RxSwift, UIKit, XCTest, XCUITest).
Familiarity with Apple OS frameworks (Core Animation, Core Data, Core Graphics, Core Text).
Understanding of CI/CD pipelines and tools (Azure, Jenkins, GitLab).
Knowledge of UI and UX design principles.