Course "Android developer" - course 168,000 rubles. from Yandex Workshop, training 12 months, Date: December 7, 2023.
Miscellaneous / / November 29, 2023
With gradually increasing difficulty
We'll start with the basics of Java, continue with Kotlin, and gradually move on to more complex topics using these languages. 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: we will explain the theory in simple language, and you will practice it in the simulator and in the real Android Studio development environment
With educational projects - large and small
There will be tasks to add code and one large project, the complexity of which is gradually increasing. You will create a full-fledged application from scratch and fully prepare the product for launch.
You can try it for free
A short introductory part will immediately immerse you in practice. This is not just an introduction where we will talk about the Workshop, but a full-fledged training module, at the end of which you will be able to complete and launch your first application.
Free introduction
Let's look at how the program works, what are the features of Android development and what its specialists do every day.
Then we dive into Java and carry out a practical task - we independently add and launch the “Currency Converter” application.
Topic 1. How everything works
Topic 2. Let's dive into Android development:
- Java Basics;
- Introduction to IDE;
- Laboratory work.
Module 1 - Introduction to Java
We study the basic constructs of the Java programming language in theory and practice: we declare variables, functions, properties, fields and methods. We learn to work with strings and loops and the main Android development tools - Android Studio and Git.
This is the first time we are submitting a task for review by a reviewer.
Sprint 1
- Topic 1. Start of paid training
- Topic 2. History of Java
- Topic 3. Declaring Variables
- Topic 4. Working with Strings
- Topic 5. Comparison Operators
- Topic 6. Boolean algebra
- Topic 7. Cycles
- Topic 8. End of Sprint #1
Sprint 2
- Topic 1. Methods
- Topic 2. Classes and objects
- Topic 3. Git for the little ones
- Topic 4. Running the code
- Topic 5. Project work No. 1
- Topic 6. End of sprint #2
Module 2 - Project work in Java
We continue to study the basic constructs of Java and work on the project: we use iterators, create anonymous classes. Let's get acquainted with interfaces and generics.
We consolidate our knowledge by adding application code for sorting, viewing and making calls to all contacts on the phone, taking into account the connection to instant messengers and mail.
We submit the work for review by a reviewer.
Sprint 3
- Topic 1. Arrays, lists, iterators
- Topic 2. Access modifiers
- Topic 3. Inheritance and overriding
- Topic 4. End of sprint #3
Sprint 4
- Topic 1. Interfaces
- Topic 2. Anonymous classes and lambda expressions
- Topic 3. Generics
- Topic 4. Project work No. 2
- Topic 5. End of sprint #4
Module 3 - Introduction to Kotlin
We study the basic constructs of the Kotlin programming language in theory and practice. We work in Kotlin throughout the main part of the program.
Sprint 5
- Topic 1. Start of sprint #5
- Topic 2. History of Kotlin
- Topic 3. Variables
- Topic 4. String patterns
- Topic 5. if and when statements
- Topic 6. Cycles
- Topic 7. Classes
- Topic 8. Access Modifiers 3.0
- Topic 9. End of sprint #5
Module 4 - Project work on Kotlin
In this module, we rewrite part of the Contacts application, analyze the difference between Kotlin and Java, and work with filters and lists.
We submit the work for review by a reviewer.
Sprint 6
- Topic 1. Classes and objects
- Topic 2. Inheritance and overriding
- Topic 3. Arrays, lists, iterators
- Topic 4. Top-level functions
- Topic 5. End of sprint #6
Sprint 7
- Topic 1. Generics
- Topic 2. Advanced IDE
- Topic 3. Advanced Git and Git ignore
- Topic 4. Project work No. 3
- Topic 5. End of sprint #7
Module 5 - Introduction to UI and Data Storage
We are starting work on a large end-to-end project. We study simple layout, working with resources, simple UI and basic navigation. We are solving the first series of problems for the project.
Basic work with the UI includes xml layout, basic View elements and interaction with them from application code, creating an Activity and using Intent.
At the end of each sprint, we submit our homework for review by a reviewer.
Sprint 8
- Topic 1. Beginning of the main stage of training
- Topic 2. Screen layout
- Topic 3. Working in code
- Topic 4. Navigation
- Topic 5. End of sprint #8
Homework for the sprint:
- Layout the main screen and settings screen.
- Implement clicks on home screen buttons with placeholders in the form of a Toast with any text in two ways: through the implementation of an anonymous class or using a lambda expression.
- Replace Toast output on button click with code for transitions to real screens.
Sprint 9
- Topic 1. Styles and themes
- Topic 2. Context and Intent
- Topic 3. EditText and TextWatcher
- Topic 4. Data storage. In memory
- Topic 5. End of sprint #9
Homework for the sprint:
- Create a general style for attributes on the “Home Screen” and in “Settings”.
- Insert new fonts into screens.
- Add shadows to buttons.
- Adapt the interface to “Night mode”.
- Transfer all strings from the Home Screen and Settings screens to strings.xml.
- Implement buttons “Share application”, “Write to developers”, “User agreement”.
- Implement a “Search” screen without performing a search query and displaying a list of results.
- The screen should contain a title, a “Back” button and a search query input field with a “Clear” button, the logic of which corresponds to the text of the task.
- Implement saving the search query text in the SearchActivity life cycle.
Module 6 - Advanced UI
Sprint 10
- Topic 1. Introduction to Lists
- Topic 2. RecyclerView
- Topic 3. ViewHolder
- Topic 4. Adapter
- Topic 5. Practice on the topic
Homework for the sprint:
- Implement a transition to an existing screen from an existing screen.
- Make a splash screen.
- Add Send feedback or Contact us function.
- Implement navigation from the main screen through the Settings and Playlists screens.
- On the Settings screen, implement the Share app, Contact support, Rate us features.
Strengthen your knowledge and skills in a live coding session with a mentor.
Module 7 - Network
Let's get acquainted with HTTP, REST API and Retrofit.
Sprint 11
- Topic 1. HTTP + REST API
- Topic 2. Retrofit sublayer
Homework for the sprint:
- Create screens with song search results.
- Implement a request for a list of songs.
Module 8 - Data Storage
Learning to work with data storage. We look at the main ways to store data in Android and perform practical tasks on using SharedPreferences.
Sprint 12
- Topic 1. SharedPreferences
Homework for the sprint:
- Create a search history.
- Configure dark theme switching manually.
Module 9 - Advanced UI
Sprint 13
- Topic 1. Complex UI – code and layout (ConstraintLayout)
Homework for the sprint:
- Create an Audio Player screen.
Module 10 - Multithreading
Let's get acquainted with multithreading.
Sprint 14
- Topic 1. Java reference sublayer multithreading (theory)
- Topic 2. Android multithreading (theory, work on a design task)
Homework for the sprint on the topic:
- Implement debounce.
Module 11- Architecture
Let's begin to understand application architecture. Let's get acquainted with the concept of Clean architecture, MVP and refactor the project to MVVM.
Sprint 15
- Topic 1. Architecture introduction (theory, work on a design task)
- Topic 2. OOP + SOLID (theory)
- Topic 3. Clean architecture (theory)
- Topic 4. Description of architectures (theory, work on a design task)
Sprint 16
- Topic 1. Refactoring and rewriting the project on MVVM (theory, work on the design task)
Homework for the sprint:
- Refactor the code.
- Rewrite the code of the end-to-end project in MVVM.
- Write ViewModel.
- Use LiveData.
Sprint 17
- Topic 1. DI, principles and libraries (theory, work on a design task)
Homework for the sprint:
- Remake presenters on Koin.
Module 12 - Advanced UI
Sprint 18
- Topic 1. Fragments
Homework for the sprint:
- Implement a media library screen.
Module 13 - Advanced Networking and Storage
Let's start working with SQLite and Room, get acquainted with the plugin system, serializers and how to use them in OkHttp.
Sprint 19
- Topic 1. Room
- Topic 2. Plugin system and serializers
Connect various serializers, CallAdapters, delegate parsing to custom serializers.
- Topic 3. OkHttp
Add a header to the request and request logging. Learn from your mentor how you can do custom serialization.
Home building for sprint:
- We will implement the functions of adding tracks to favorites.
Module 14 - Advanced Multithreading and Complex UI
Let's implement a playlist screen and work with images (playlist and track covers) using Coroutines.
Sprint 20
- Topic 1. Coroutines
Home building for sprint:
- Implement functions for creating playlists and adding songs to playlists.
- Set up work with the image (playlist cover) using Coroutines.
Sprint 21
- Design Sprint
Home building for sprint:
- Implement all functions of the playlist screen.
Sprint 22
- Design Sprint
Home building for sprint:
- Implement all functions of the playlist screen.
Module 15 - Advanced Navigation
Sprint 23
- Topic 1. RxJava
- Topic 2. Fragments
Home building for sprint:
- Rework the navigation between the search screen, media library and settings into fragments.
Module 16 - Product and Team Development
Sprint 24
- Topic 1. Product life cycle (MVP etc)
- Topic 2. Agile
- Topic 3. Teamwork Tools
- Topic 4. Mobile development in reality (how teams are structured, who is who, how to communicate with everyone)
- Topic 5. Git for giants
- Topic 6. Task decomposition
Diploma project - Diploma team project stage
Let's split into teams of 3-5 people and together create an event poster application - just like in life. Using the application, you can find out what concerts, exhibitions, and movies will be near you.
Let's get acquainted with the processes and tools:
- Gradle,
- Testing,
- Firebase
- Crashlytics,
- Basic analytics.
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 25
- 1 meeting
The mentor will help you decompose the main tasks of the project, and the team will distribute them among themselves. - 2 meeting
We conduct a retrospective and draw conclusions based on a two-week period of work.
Sprint 26
- 3rd meeting.
Together with your mentor, you will plan the remaining tasks. - 4th meeting.
Share your work with other teams in a demo. - 5th meeting.
Conduct a retrospective and draw conclusions about the entire team project.
Career track - Career track and Acceleration
Career track
This part of the course is for those who have decided to find a job in the development field.
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 research on the employment market.
You will practice passing 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.