Course "iOS developer" - course 140,000 rubles. from Yandex Workshop, training 10 months, Date: December 7, 2023.
Miscellaneous / / November 27, 2023
At any time convenient for you
The training will be divided into sprints, and you can study at any time, the main thing is to meet the deadline
Using examples from life and constant practice
You will study online on the Workshop platform with clear theory in simple language. Afterwards, we will put the theory into practice: you will learn the syntax in a special simulator from Apple - Playground, and you will write projects in the Xcode development environment.
With educational projects
You will be able to solve the daily tasks of an iOS developer, complete several projects and look for a job after the course with a ready-made portfolio
With additional lessons for those new to programming
At the beginning of the paid program we made “Swimming pool”. This is a short 6-8 hour unit that will introduce you to basic programming concepts. Before the “Pool” we will ask a few questions so that you can decide for yourself whether to take it or not.
Introductory part 15 hours - Free introductory part
Before you dive in and start practicing, you'll learn:
— what are the features of the iOS platform and the Apple ecosystem?
— what do iOS developers and developers do?
- what blocks does the program consist of?
- what projects you have to complete
— How is training generally conducted at the Workshop?
- who will help you study
- how to find a job after studying
Immediately after onboarding, the free part of the course will begin. On it you:
— get acquainted with the Swift language
— complete and launch your first application (you don’t need to relearn math for this)
- but you need an Apple computer with macOS Monterey or later)
— see the results of your labors and understand whether you are interested in doing iOS development in the future
Optional module 6-8 hours - Pool
After purchasing the course, we will offer you a “Swimming Pool”.
These are several additional lessons that will become available along with the first sprint. Thanks to them, you will become familiar with the basic concepts of programming. Simple and fun tasks on basic logic and algorithms will help you better assimilate further material, especially if you are encountering programming for the first time in your life.
Important: you don’t have to go through the “Swimming Pool” and go straight to exploring the iOS galaxy. To decide whether you need this stage or not, we will ask you to answer several questions.
Topic 1. Basic logic
— Truthfulness
- Twice no
- And or Not
Topic 2. Algorithmics
— Basis (sequence of actions), concept of algorithm
— Following
— The concept of a variable
— Arrays and loops
Topic 3. Programming
— How programming languages work, syntax, expression
Module 1 40 hours - Introduction to iOS development and Swift basics
Let's study the basic constructs of the Swift programming language, in which most iOS applications are written, in a special simulator from Apple - Playground. Let's get acquainted with the development environment and how mobile applications are structured
Sprint 1
Topic 1. Swift Basics
Topic 2. Working with Xcode
Topic 3. Types
Topic 4. Arrays, loops
Topic 5. Functions
Topic 6. Transfers
Sprint 2
Topic 1. Data structures
Topic 2. Options
Topic 3. Classes
Topic 4. Protocols
Topic 5. Extensions
Module 2 121 hours - Basics of layout, networking and data storage
The project for this module is a quiz on popular films. You have to work with the IMDb film service: get a list of the 250 most popular films, and for each film create a quiz question. The user will need to guess which character the actor played in the photo.
For users, an application is primarily about working with the interface, which you create for them. As part of working on the application, you will create a quiz screen, master HTTP and REST for working with the IMDb API, and learn how to store user data.
The tasks and project in this module will first go through autotests in Github or self-review using a checklist, and then sent to a code reviewer.
Sprint 3
- Topic 1. Basics of layout and basic UI elements. Lay out a simple screen for an application with tickets based on the layout in Figma, add and remove elements to the screen.
- Topic 2. Connection of layout with code, processing of user actions. Add event and control processing.
- Topic 3. Git
- Topic 4. Mobile application layers
Sprint 4
- Topic 1. Simple layout, AutoLayout conflicts. We are finalizing the screen layout, learning how to resolve AutoLayout conflicts.
- Topic 2. Communication with code, data display. You will finalize the interface logic and describe the structure of the screen data.
Sprint 5
- Topic 1. Data storage. What types of data are there and how to store them. In memory. Create your own data structure, learn to store results in user defaults.
- Topic 2. Net. Client-server interaction. HTTP and REST. Learn the basics of client-server communication and learn how to work with the IMDb service API.
- Topic 3. URLSession, URLRequest. Write a simple request to receive data, and if you feel strong enough to solve the problem with an asterisk, add a loading indicator (UIActivityIndicatorView).
- Topic 4. Encoding/Decoding. You will create Codable structures for use in requesting and processing the network response.
Sprint 6
- Topic 1. Architecture. Introduction
- Topic 2. Architecture. SOLID, KISS, DRY, YAGNI. Learn basic object-oriented programming (OOP) principles and design patterns.
- Topic 3. Architecture. MVC. Do some personal refactoring and get your code in order.
- Topic 4. Assembly and deployment. Dependency management. Connect CocoaPods/Swift Package Manager and SwiftLint.
- Topic 5. Tests. Unit tests, XCTest. Write a test based on the functional specification.
- Topic 6. Tests. UI Testing. Write a UI test for one or more scenarios.
Module 3 106 hours - Navigation, working with tables, authorization
In this module, you will master transitions between screens, scrolling layout elements, and improve your client-server interaction skills. The project of this module will be a client for a stock photo service (analogous to Unsplash).
The tasks and project in this module will first go through autotests in Github or self-review using a checklist, and then sent to a code reviewer.
Sprint 7
- Topic 1. UI Complex layout. Make a Tab Bar (UITabBarController).
- Topic 2. UI Navigation. Lay out the main screens of the application according to the layout.
Sprint 8
- Topic 1. UI UIScrollView and UITableView. Lay out the main screens according to the layout using the scroll components (UIScrollView) and table (UITableView).
- Topic 2. Data storage. UserDefaults. Load the data from the JSON file stored in UderDefaults.
Sprint 9
- Topic 1. Basic multithreading, authorization. Learn to work with multi-threaded code to perform multiple tasks in parallel. Add authorization to the Unsplash service to the application.
- Topic 2. Data storage. Keychain. Learn to store data in Keychain and retrieve it from there.
Sprint 10
- Topic 1. Network. Multithreading. Explore Grand Central Dispatch (GCD), a library that allows you to efficiently manage task flows. Implement several network requests.
- Topic 2. Tests. Test-driven development (TDD), Mock, Stub. Write network request tests (Mock, Stub).
Sprint 11
- Topic 1. Architecture. MVP+C. Immersion in the architecture of iOS applications. MVP architecture overview.
- Topic 2. Architecture. MVVM. Refactor the project: move from MVC to MVVM
- Topic 3. Architecture. Coordinators. Implement coordinators for the login screen and main screens.
Sprint 12
- Topic 1. Assembly and deployment. Advanced Xcode. On a deeper level, dive into the project settings. Learn how to work with project configurations (you will be able to change the data source for the application).
Module 4 91 hours - Collections, built-in controllers, databases and multithreading basics
In this module you will make a tracker application for various events. You will master complex layout - working with collections. This time, all data will be stored locally in the database, and information will be processed on a background thread.
The tasks and project in this module will first go through autotests in Github or self-review using a checklist, and then sent to a code reviewer.
Sprint 13
- Topic 1. UI UICollectionView and ChildVCs. You create the list and domain models of the tracker, the tracker creation screen, and implement the business logic.
Sprint 14
- Topic 1. Clean Architecture. Synchronize data updates between several screens (creating a new cracker and the main screen).
- Topic 2. UICollectionView and ChildVCs. Master the work of displaying data in multiple columns and dividing the controller into children.
Sprint 15
- Topic 1. Data storage. Database. Embed databases into the project. Teach the application to save and read information from the database.
Sprint 16
- Topic 1. Multithreading. GCD, Operations
- Topic 2. Multithreading. Thread-safety. Implement a search by trackers on the tracker list screen with Debounce.
- Topic 3. Multithreading. DispatchGroup, queue Learn how to group asynchronous tasks in your application.
Sprint 17
- Topic 1. Data storage.. Master working with the domain model and implement migration.
Module 5 12 hours - Product and team development
Sprint 18
- Topic 1. Product life cycle, MVP
- Topic 2. Agile
- Topic 3. Teamwork Tools
- Topic 4. Mobile development in real life. You will understand how teams are structured, who is who, how to communicate with different roles.
- Topic 5. Git for giants
- Topic 6. Task decomposition
Finish line 40 hours - Team graduation project
Divide into teams of 3-5 people and together create an eCommerce application - a small NFT marketplace. This is an application with a catalog of NFT images that you can view, select, add to your cart, check out, and make a purchase.
You will have a technical assignment from the manager and a design - you will need to decompose all the work, divide it into sprints and make the product in 1 month.
Sprint 19
- 1 Week
Call a mentor who will help you decompose the main tasks of the project, and the team will distribute them among themselves. - 2 week
Conduct a retrospective and draw conclusions based on a two-week period of work.
Sprint 20
- 3 week
Together with your mentor, you will plan the remaining tasks. - 4 week
Share your work with other teams in a demo.
Conduct a retrospective and draw conclusions about the entire team project.
Career track 30 hours - Employment program
This part of the course is for those who have decided to find a job in the development field. It becomes available after completing module 4.
The career track is organized in the same way as the previous topics: theory and practice. But instead of programming skills, you will learn job search strategies and learn about the intricacies of choosing employer company, and as an internship you will write not code, but a resume and accompanying letter.
During the course, you will prepare a portfolio for an employer's visit and conduct employment market research, as well as practice technical interviews at public meetings.
Sprint 1
— Profession and goal setting
- Job search
- Labor market
- Dream job
— Preparing a resume
— Good portfolio
Sprint 2
— Informal job search
- Covering letter
— Communication with HR
— Analysis of your own results
Sprint 3
— Preparing for an interview
— Soft and hard skills
- Money
— Company selection
— Office, remote work or freelance?
— How not to make a mistake when choosing a company
- Probation
— Public technical interview
Acceleration
Support program: you are looking for a job, we advise and help. Those who have completed the employment program and are actively looking for work can participate in the program. Participants practice the skills they learned in the job program, adapt those skills to their own job search strategy, and report their results each week.
The main format of participation is individual consultations and public interviews.