I am a beginner iOS Developer. I started my thorough training and introduction to the features of the iOS platform and the Apple ecosystem, tasks iOS developers do on a daily basis with the help of courses on iOS development from Yandex Practicum in 2023.
π‘ The skills I have acquired during this time:
SwiftUI, UIKit (Auto Layout and storyboards), Combine, UserDefaults, Keychain, CoreData,
MVC, MVP, MVVM design patterns,
SOLID, DRY, YAGNI, KISS,
REST API requests, working with Postman, pagination; Unit and UI testing,
Multithreading: preventing race condition (Dispatch Queue, blocking UI),
Git, conducting code review.
π 2024 Goals: Find a dream job and contribute to projects!
During the training period, I implemented the following projects:
iOS-FakeNFT-StarterProject-Public
Graduation thesis project. The goal was to learn to interact with the external API (FakeNFT) and get to know various types of servers in the context of developing mobile applications for iOS, as well as to use development tools to test and validate functionality. This experience also demonstrates the importance of properly documenting and controlling data types when dealing with network requests.
Here are the main skills I learned from this project:
- Types of servers: Understanding the differences between production and test servers.
- Using external APIs: Working with the FakeNFT API, including using authorization tokens, sending GET and PUT requests to receive and update data, as well as processing data sorting.
- Documenting the API: Familiarization with the API documentation provided in the file API.html , including endpoints, query types, and response data structure.
- Using Developer Tools: Familiarization with tools such as Postman for sending test requests and verifying API operation. Mastering ways to save query collections and share them.
- Data type control: Understanding the importance of correctly describing data types in network models in order to avoid errors and inconsistencies in the transmitted data.
- Teamwork and API recovery: The ability to work with the team when changing code fragments and understanding the process of creating branches for new tasks. Awareness of the need to restore the API in case of "broken" changes and the use of tools such as Postman for this purpose.
Tracker
The third important fully independent project, the aim of which was mainly to teach me how to implement the business logic of the project. I was introducced to an important entity for development β databases and learned about different types of databases, how to make SQL queries and view the contents of database files using third-party tools like the Core Data framework, which provides an interface for working with databases.
ImageFeed
The second full-fledged application. The aim of the project was to explore new topics that occur in real projects and affect important aspects of mobile development:
- Sourcetree
- Launch screen
- Authorization using the OAuth 2.0
- UITableView Table
- Advanced tests with files/network. Unit testing
- Code layout using Auto Layout
- Navigation
- UIScrollView
- Swift Package Manager (SPM)
- Multithreading
- Pagination when working with the network
- Keychain: Data Security
- Animation
MovieQuiz-ios
The first fully functional attractive and user-friendly mobile application.
The main goals and objectives of the project included:
- Creation of a user interface (UI).
- Organization of the project structure: Separation of files and resources into appropriate folders (Presentation, Models, Services, Helpers, Resources) in order to conveniently and logically manage the code.
- Handling application states, errors and improving the user experience: working with different scenarios and providing a satisfactory user experience in various situations, preventing negative impact on the user experience.
- Network and data maintenance: Using the Services folder to implement functionality related to network requests and data processing.
- Usage of auxiliary tools: Integration of files in the Helpers folder to ensure convenience in working on specific aspects of the application.
- Project Resource Management: Use the Resources folder to store various resources, such as fonts, colors and icons, in order to easily manage and maintain the project.
- Ensuring compliance with TK requirements: Attention to details such as iOS version restrictions, Bundle Id settings, and compliance with screen mode restrictions.
- Learning how to work with Git.
Counter
The first project in swift - an introduction to the basis iOS development. The goal was get the first experience with the user interface, to create interactive elements and see the results of their work, to know the idea how to connect interface elements with application logic, creating the first bridge between idea and reality, as well as gain the confidence to create own projects later.