рдорд▓реНрдЯреА-рдореЙрдбреНрдпреВрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдЬреАрд╡рди рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рдПрдХ рдирдпрд╛ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреА рджрд┐рдирдЪрд░реНрдпрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдкреНрд▓рдЧ-рдЗрди рдмрдирд╛рдпрд╛ред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рд╣рдордиреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкреНрд░рд▓реЗрдЦрди рдХреА рдХрдореА рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛, рдХрдИ рддрд░реАрдХреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдХрдИ рдиреБрдХрд╕рд╛рдиреЛрдВ рдХреЛ рдЦреЛрджрд╛ред рдпрд╣ рджреЛ рд▓реЗрдЦ рдирд┐рдХрд▓рд╛: "рд╕рд┐рджреНрдзрд╛рдВрдд" рдФрд░ "рдЕрднреНрдпрд╛рд╕" ред рдореБрдЭрд╕реЗ рдорд┐рд▓реЛ!

рдореИрдВ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛?
- рдХреНрдпреЛрдВ рдПрдХ рдкреНрд▓рдЧрдЗрди? рдХреНрдпреЛрдВ рдПрдХ рдкреНрд▓рдЧрдЗрди?
- рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рддреИрдпрд╛рд░ рдХрд░рдирд╛
- рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рд╕реНрд╡рдЪрд╛рд▓рди рд╡рд┐рдХрд▓реНрдк
- рдкреНрд▓рдЧрдЗрди рд╡рд┐рдХрд╛рд╕ рдореВрд▓ рдмрд╛рддреЗрдВ
- рдХреНрд░рд┐рдпрд╛
- рдкреНрд▓рдЧрдЗрдиреНрд╕ рдореЗрдВ рдпреВрдЖрдИ рд╡рд┐рдХрд╛рд╕
- рдирд┐рд╖реНрдХрд░реНрд╖
- рдЖрдИрдбрд┐рдпрд╛ рдЗрдВрдЯрд░реНрди: рдШрдЯрдХ, рдкреАрдПрд╕рдЖрдИ
- рдЖрдИрдбрд┐рдпрд╛ рдЖрдВрддрд░рд┐рдХ рдЗрдХрд╛рдИ
- рдкреАрдПрд╕рдЖрдИ
- рдирд┐рд╖реНрдХрд░реНрд╖
рдХреНрдпреЛрдВ рдПрдХ рдкреНрд▓рдЧрдЗрди? рдХреНрдпреЛрдВ рдПрдХ рдкреНрд▓рдЧрдЗрди?
рдпрджрд┐ рдЖрдк рдПрдХ рдорд▓реНрдЯреА-рдореЙрдбреНрдпреВрд▓ рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рд░ рдмрд╛рд░ рдПрдХ рдирдпрд╛ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдирд╛ рдХрд┐рд╕ рддрд░рд╣ рдХреА рджрд┐рдирдЪрд░реНрдпрд╛ рд╣реИред рдЖрдкрдХреЛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЙрд╕рдореЗрдВ рдЧреНрд░реИрдбрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ, рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдЬреЛрдбрд╝реЗрдВ, рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХреБрдЫ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛ - рдпрд╣ рд╕рдм рдмрд╣реБрдд рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рд╣рдо рджрд┐рдирдЪрд░реНрдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рдФрд░ рд╣рдордиреЗ рдПрдХ рдирдпрд╛ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рддреЗ рд╕рдордп рд╣рдо рдЬреЛ рдХреБрдЫ рднреА рдХрд░рддреЗ рд╣реИрдВ рдЙрд╕рдХреА рдПрдХ рд╕реВрдЪреА рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ред
1. рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдореЗрдиреВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реА рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ рдлрд╝рд╛рдЗрд▓ -> рдирдпрд╛ -> рдирдпрд╛ рдореЙрдбреНрдпреВрд▓ -> рдПрдВрдбреНрд░реЙрдЗрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реАред

2. рд╣рдо рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрде рд▓рд┐рдЦрддреЗ рд╣реИрдВ редрдЧреНрд░реЗрдб рдлрд╝рд╛рдЗрд▓, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ - рдХреЛрд░-рдореЙрдбреНрдпреВрд▓ рдФрд░ рдлрд╝реАрдЪрд░-рдореЙрдбреНрдпреВрд▓, рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдореЗрдВ рд╣реИрдВред
рд╣рдо рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрде рд▓рд┐рдЦрддреЗ рд╣реИрдВ 3. рд╣рдо рд╕реНрдерд┐рд░рд╛рдВрдХ рдореЗрдВ рд╕реНрдерд┐рд░рд╛рдВрдХ compileSdk , minSdk , targetSdk рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред рдирд┐рд░реНрдорд╛рдг : рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдореВрд▓ build.gradle рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
рдирдП рдореЙрдбреНрдпреВрд▓ рдХреЗ build.gradle рдореЗрдВ рд╕реНрдерд┐рд░рд╛рдВрдХ рдмрджрд▓рдирд╛ рдиреЛрдЯ: рд╣рдордиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдЕрдкрдиреЗ рдЧреНрд░реЗрдбрд▓ рдкреНрд▓рдЧрдЗрди рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдмрд┐рд▓реНрдб.рдЧреНрд░реЗрдб рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдХрдИ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
4. рдЪреВрдВрдХрд┐ рд╣рдо рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рд╕рднреА рдирдП рдХреЛрдб рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ, рдПрдХ рдорд╛рдирдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо рджреЛ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ: рдХреЛрдЯрд▓рд┐рди-рдПрдВрдбреНрд░реЙрдЗрдб рдФрд░ рдХреЛрдЯрд▓рд┐рди-рдХрдк ред рдпрджрд┐ рдореЙрдбреНрдпреВрд▓ рдХрд┐рд╕реА рддрд░рд╣ UI рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдЯрд▓рд┐рди-рдПрдВрдбреНрд░реЙрдЗрдб-рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред
рдХреЛрдЯрд▓рд┐рди рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ 5. рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдХреЛрд░-рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдХреЛрд░-рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓рдХрдбрд╝рд╣рд╛рд░рд╛, рд╡рд┐рд╢реНрд▓реЗрд╖рд┐рдХреА, рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ, рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ - рдЖрд░рдПрдХреНрд╕рдЬрд╛рд╡, рдореЛрдХреНрд╕реА рдФрд░ рдХрдИ рдЕрдиреНрдпред
рд╣рдо рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ 6. рдЯреВрдердкрд┐рдХ рдХреЗ рд▓рд┐рдП рдХрдкреЗрдЯ рд╕реЗрдЯ рдХрд░реЗрдВред рдЯреВрдердкрд┐рдХ рд╣рдорд╛рд░рд╛ рдореБрдЦреНрдп DI рдврд╛рдВрдЪрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ: рд░рд┐рд▓реАрдЬрд╝ рдмрд┐рд▓реНрдб рдореЗрдВ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЗ рдмрдЬрд╛рдп рдХреЛрдб рдкреАрдврд╝реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдиреЛрдЯреЗрд╢рди рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рд╕рдордЭ рд╕рдХреЗ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░рдЦрд╛рдиреЗ рдХрд╣рд╛рдБ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
рдЯреВрдердкрд┐рдХ рдХреЗ рд▓рд┐рдП рдПрдиреЛрдЯреЗрд╢рди рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдиреЛрдЯ: hh.ru рдореЗрдВ рд╣рдо рдЯреВрдердкрд┐рдХ рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рджреВрд╕рд░реЗ рдореЗрдВ рд╣рдордиреЗ рдХреЛрдб рдкреАрдврд╝реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ ред
7. рд╣рдо рдмрдирд╛рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрдВрджрд░ Moxy рдХреЗ рд▓рд┐рдП kapt рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред Moxy рдПрдХ рдЖрд╡реЗрджрди рдореЗрдВ MVP рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░рд╛ рдореБрдЦреНрдп рдврд╛рдВрдЪрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдореЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдПрдХ рдорд▓реНрдЯреА-рдореЙрдбреНрдпреВрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХреЗред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, kapt рддрд░реНрдХреЛрдВ рдореЗрдВ рдмрдирд╛рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреИрдХреЗрдЬ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ:
Moxy рдХреЗ рд▓рд┐рдП kapt рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдиреЛрдЯ: рд╣рдо рдкрд╣рд▓реЗ рд╣реА рдореЛрдХреНрд╕реА рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмрджрд▓ рдЪреБрдХреЗ рд╣реИрдВ, рдФрд░ рдХреЛрдб рдкреАрдврд╝реА рдХрд╛ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рдЗрд╕рдХреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдЦреЛ рдЪреБрдХрд╛ рд╣реИред
8. рд╣рдо рдирдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдмрдирд╛рддреЗ рд╣реИрдВред рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡реЗ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВ (AndroidManifest.xml, build.gradle, .gitignore), рд▓реЗрдХрд┐рди рдирдП рдореЙрдбреНрдпреВрд▓ рдХреА рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрд░реЗрдЦрд╛: рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА, рдбреАрдЖрдИ рдореЙрдбреНрдпреВрд▓, рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛, рдЯреБрдХрдбрд╝реЗред рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рдмрд╣реБрдд рд╣реИрдВ, рдЙрдирдХреЗ рдкрд╛рд╕ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рд╣реА рд╕рдВрд░рдЪрдирд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рдирд╛ рдПрдХ рджрд┐рдирдЪрд░реНрдпрд╛ рд╣реИред

9. рд╣рдо рдЕрдкрдиреЗ рдмрдирд╛рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЗрд╕ рдЪрд░рдг рдореЗрдВ рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбреНрдпреВрд▓ рдХреА рдмрд┐рд▓реНрдб.рдЧреНрд░реЗрдб рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЯреВрдердкрд┐рдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдмрдирд╛рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреИрдХреЗрдЬ рдХреЛ рд╡рд┐рд╢реЗрд╖ рддрд░реНрдХ рдПрдиреЛрдЯреЗрд╢рди рдкреНрд░реЛрд╕реЗрд╕рд░ - рдЯреВрдердкрд┐рдХ_рдЧреНрд░рд┐рд╕реНрдЯреНрд░реА_рдЪрд┐рд▓реНрдбреНрд░реЗрди_рдкреИрдХреЗрдЬ_рдирд╛рдо рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
рдЯреНрдпреВрдирд┐рдВрдЧ рдЯреВрдердкрд┐рдХ рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдореЛрдХреНрд╕реА рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ @RegisterMoxyReflectorPackages рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рд╣реИ - рд╡рд╣рд╛рдВ рд╣рдо рдмрдирд╛рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
MoxyReflectorStub рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдФрд░, рдЕрдВрдд рдореЗрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбреНрдпреВрд▓ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ:
рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝рдирд╛ рд╣рдореЗрдВ рдиреМ рдмрд┐рдВрджреБрдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓реАред
рдЪреВрдВрдХрд┐ рдХрдИ рдмрд┐рдВрджреБ рд╣реИрдВ, рдпрд╣ рдХреБрдЫ рднреВрд▓ рдЬрд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдФрд░ рдлрд┐рд░ рдпрд╣ рд╕реЛрдЪрдХрд░ рдШрдВрдЯреЛрдВ рдмрд┐рддрд╛рдП рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЪрд▓ рд░рд╣реА рд╣реИред
рд╣рдордиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рдЖрдк рдРрд╕реЗ рдирд╣реАрдВ рд░рд╣ рд╕рдХрддреЗ рдФрд░ рдЖрдкрдХреЛ рдХреБрдЫ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред
рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рд╕реНрд╡рдЪрд╛рд▓рди рд╡рд┐рдХрд▓реНрдк
рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдЗрд╕рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рддрд▓рд╛рд╢ рд╢реБрд░реВ рдХреАред
рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк "Ctrl + C, Ctrl + V" рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдерд╛ред рд╣рдордиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" рдЙрдкрд▓рдмреНрдз рд╣реИред рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ ( MacOs рдХреЗ рд▓рд┐рдП: / рдПрдкреНрд▓реАрдХреЗрд╢рди / Android / Studio.app/Contents/plugins/android/lib/templates/gradle-projects/ ) рдЙрди рд╡рд┐рд╢реЗрд╖ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢реЗрд╖ рдлрд╝реЛрд▓реНрдбрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдлрд╝рд╛рдЗрд▓ рдЪреБрдирддреЗ рд╕рдордп рджреЗрдЦрддреЗ рд╣реИрдВ - > рдирдпрд╛ -> рдирдпрд╛ рдореЙрдбреНрдпреВрд▓ред рд╣рдордиреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ.xml.ftl рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рдЖрдИрдбреА рдмрджрд▓рдХрд░ NewAndroidModule рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдлрд┐рд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЖрдИрдбреАрдИ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛, рдПрдХ рдирдпрд╛ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдФрд░ ... рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреНрд░реИрд╢ рд╣реЛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдирдП рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдиреВ рдореЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдореЙрдбреНрдпреВрд▓ рдХреА рд╕реВрдЪреА рд╣рд╛рд░реНрдб-рдХреЛрдбрд┐рдд рд╣реИ, рдЖрдк рдЗрд╕реЗ рдПрдХ рдЖрджрд┐рдо рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗред рдЬрдм рдЖрдк рдХрд┐рд╕реА рддрддреНрд╡ рдХреЛ рд▓реЗрдиреЗ рдФрд░ рдЬреЛрдбрд╝рдиреЗ, рд╣рдЯрд╛рдиреЗ рдпрд╛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ Android Studio рдмрд╕ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдлреНрд░реАрдореЗрдХрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдерд╛ ред рдПрдХ рдЕрд╕рдлрд▓ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдореЙрдбреНрдпреВрд▓ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрд░ рдПрдХ рдХрд░реАрдм рд╕реЗ рджреЗрдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рдлреНрд░реАрдорд░реНрдХрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрд╛рдПред
рдореИрдВрдиреЗ рдЖрдкрдХреЛ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рдпрд╛ рдХрд┐ FreeMarker рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдХреНрдпрд╛ рд╣реИ - RedMadRobot рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ рд╣реИ рдФрд░ Lesha Bykov рдХреЗ MosDroid рдХрд╛ рдПрдХ рд╡реАрдбрд┐рдпреЛ рд╣реИ ред рд▓реЗрдХрд┐рди рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ - рдпрд╣ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдФрд░ рд╡рд┐рд╢реЗрд╖ рдорд╛рдирдЪрд┐рддреНрд░-рдХреА рдЬрд╛рд╡рд╛-рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЬрди рд╣реИред рдЖрдк рдЯреЗрдореНрдкреНрд▓реЗрдЯ, рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдлрд╝реАрдб рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд╝реНрд░реАрдореЗрдХрд░ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рджреЗрдЦреЗрдВ:

рдпрджрд┐ рдЖрдк рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рджреЛ рдмрдбрд╝реЗ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ:
- рдПрдХ рдирдпрд╛ рдХреЛрдб (1, 3, 4, 5, 6, 7, 8) рдФрд░ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп
- рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп (2, 7, 8, 9)
рдФрд░ рдЕрдЧрд░ FreeMarker рдкрд╣рд▓реЗ рд╕рдореВрд╣ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдзрдорд╛рдХреЗ рдХреЗ рд╕рд╛рде рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ: рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдлреНрд░реАрдорд░реНрдХрд░ рдПрдХреАрдХрд░рдг рдХреЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдЬрдм рдЖрдк рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред 'рдлрд╝рд╛рдЗрд▓' рд╢рдмреНрдж рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓, рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рдПрдЧрд╛ ред рдпрд╣рд╛рдВ рд╣рдордиреЗ рдЙрджрд╛рд╕ рдХреЛ рдкрдХрдбрд╝рд╛, рдФрд░ рдлреНрд░реАрдорд░реНрдХрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
FreeMarker рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдмрд╛рдж, рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдореЗрд░реА рдЦреБрдж рдХреА рдХрдВрд╕реЛрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ред Intellij IDEA рдХреЗ рдЕрдВрджрд░ рдЯрд░реНрдорд┐рдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рддреЛ рдХреНрдпреЛрдВ рдирд╣реАрдВ? рдЪрд▓реЛ рдмреИрд╢ рдкрд░ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреЗрдВ, рдХреБрд▓ рд╡реНрдпрд╡рд╕рд╛рдп:

рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рд╣рдо рдмрдирд╛рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЭрдВрдбреЗ рджрд░реНрдЬ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ, рдЬреЛ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рд┐рдВрдЯ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдПрдХ рдХрджрдо рдкреАрдЫреЗ рд▓рд┐рдпрд╛ рдФрд░ рдпрд╛рдж рдХрд┐рдпрд╛ рдХрд┐ рд╣рдо Intellij IDEA рдХреЗ рдЕрдВрджрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдФрд░ рдЗрд╕рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреИрд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ? рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреЛрд░ рд╣реИ, рдПрдХ рдЗрдВрдЬрди рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХрдИ рдкреНрд▓рдЧ-рдЗрди рд╕рдВрд▓рдЧреНрди рд╣реИрдВ, рдЬреЛ рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
рдЖрдк рдореЗрдВ рд╕реЗ рдХрд┐рддрдиреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рдЬреБрдбрд╝реЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рджреЗрдЦрддреЗ рд╣реИрдВ?

рдХрд╣рд╛рдБ рджреЗрдЦрдирд╛ рд╣реИ? редред рдпрд╣рд╛рдВ рд╡реЗ рдХрдо рд╕реЗ рдХрдо рддреАрди рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред рдпрджрд┐ рдЖрдк рдХреЛрдЯрд▓рд┐рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдЯрд▓рд┐рди рдкреНрд▓рдЧрдЗрди рд╕рдХреНрд╖рдо рд╣реИред рдпрджрд┐ рдЖрдк рдЧреНрд░реИрдбрд▓ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЧреНрд░реИрдбрд▓ рдкреНрд▓рдЧрдЗрди рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдЧрд┐рдЯ, рдПрд╕рд╡реАрдПрди рдпрд╛ рдХреБрдЫ рдФрд░ - рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рд╡реАрд╕реАрдПрд╕ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдкреНрд▓рдЧ-рдЗрди рд╢рд╛рдорд┐рд▓ рд╣реИред
рд╣рдордиреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ JetBrains рдкреНрд▓рдЧрдЗрди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рджреЗрдЦрд╛, рдФрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 4000 рд╕реЗ рдЕрдзрд┐рдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдкрдВрдЬреАрдХреГрдд рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╣реИрдВ! рд▓рдЧрднрдЧ рдкреВрд░реА рджреБрдирд┐рдпрд╛ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд▓рд┐рдЦрддреА рд╣реИ, рдФрд░ рдпреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЛ рдЖрдИрдбреАрдИрдП рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдИрдбреАрдИрдП рдХреЗ рднреАрддрд░ рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╣рдордиреЗ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдкреНрд▓рдЧрдЗрди рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдкреНрд▓рдЧрдЗрди рд╡рд┐рдХрд╛рд╕ рдореВрд▓ рдмрд╛рддреЗрдВ
рд╣рдо рдкреНрд▓рдЧрдЗрди рд╡рд┐рдХрд╛рд╕ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рддреАрди рдЪреАрдЬреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- IntelliJ IDEA , рдиреНрдпреВрдирддрдо рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг (рдЖрдк рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рд╡рд┐рд╢реЗрд╖ рд▓рд╛рдн рдирд╣реАрдВ рджреЗрдЧрд╛);
- рдкреНрд▓рдЧрд┐рди рджреЗрд╡рдХреИрдЯ рдЗрд╕рд╕реЗ рдЬреБрдбрд╝рд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд▓рдЧрдЗрди рд╣реИ рдЬреЛ рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ;
- рдФрд░ рдХреЛрдИ рднреА JVM рднрд╛рд╖рд╛ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдПрдХ рдкреНрд▓рдЧрдЗрди рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ рдХреЛрдЯрд▓рд┐рди, рдЬрд╛рд╡рд╛, рдЧреНрд░реВрд╡реА - рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╣рдо рдПрдХ рдкреНрд▓рдЧрдЗрди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рдЧреНрд░реЗрдб рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо IntelliJ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкреНрд▓рдЧрдЗрди рдкрд░ рдЯрд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВред

рдиреЛрдЯ: рдпрджрд┐ рдЖрдк IntelliJ Platform Plugin рдЪреЗрдХрдмреЙрдХреНрд╕ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ Plugin DevKit рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рд╣реИред
рдЖрд╡рд╢реНрдпрдХ рдлрд╝реАрд▓реНрдб рднрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдПрдХ рдЦрд╛рд▓реА рдкреНрд▓рдЧрдЗрди рд╕рдВрд░рдЪрдирд╛ рджреЗрдЦреЗрдВрдЧреЗред

рдЖрдЗрдП рдЗрд╕реЗ рдХрд░реАрдм рд╕реЗ рджреЗрдЦреЗрдВред рдЗрд╕рдореЗрдВ рдирд┐рдореНрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рдлрд╝реЛрд▓реНрдбрд░ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рднрд╡рд┐рд╖реНрдп рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд▓рд┐рдЦреЗрдВрдЧреЗ; ( рдореБрдЦреНрдп / рдЬрд╛рд╡рд╛ , рдореБрдЦреНрдп / рдХреЛрдЯрд▓рд┐рди , рдЖрджрд┐);
- build.gradle рдлрд╝рд╛рдЗрд▓, рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдХреБрдЫ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдкрд░ рдЕрдкрдиреЗ рдкреНрд▓рдЧрдЗрди рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬрд╝ рдХреЛ gradle-intellij-plugin рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗред
gradle-intellij-plugin - рдЧреНрд░реИрдбрд▓ рдкреНрд▓рдЧрдЗрди рдЬреЛ рдЖрдкрдХреЛ рдЧреНрд░реИрдбрд▓ рдХреЛ рдПрдХ рдкреНрд▓рдЧрдЗрди рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд▓рдЧрднрдЧ рд╣рд░ Android рдбреЗрд╡рд▓рдкрд░ рдЧреНрд░реИрдбрд▓ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИ рдФрд░ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, gradle-intellij-plugin рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдврд╛рд▓ рдХрд╛рд░реНрдп рдЬреЛрдбрд╝рддрд╛ рд╣реИ:
- runIde - рдпрд╣ рдХрд╛рд░реНрдп рдПрдХ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ IDEA рдЙрджрд╛рд╣рд░рдг рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рдЗрд╕реЗ рдбрд┐рдмрдЧ рдХрд░ рд╕рдХреЗрдВ;
- buildPlugin - рдЖрдкрдХреЗ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдпрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ IDEA рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░ рд╕рдХреЗрдВ;
- VerPlugin - рдпрд╣ рдХрд╛рд░реНрдп рд╕рдХрд▓ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкреНрд▓рдЧрдЗрди рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рдЖрдИрдбрд┐рдпрд╛ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИред
рдФрд░ рдХреНрдпрд╛ рд╣реИ gradle-intellij-plugin рджреЗ рд░рд╣рд╛ рд╣реИ ? рдЗрд╕рдХреА рдорджрдж рд╕реЗ, рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрдиреНрд╕ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЕрдм рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ gradle-intellij-plugin рдЖрдкрдХрд╛ рднрд╛рдИ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╡рд╛рдкрд╕ рдкреНрд▓рдЧрдЗрди рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдПред рдХрд┐рд╕реА рднреА рдкреНрд▓рдЧрдЗрди рдХреА рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдлрд╝рд╛рдЗрд▓ plugin.xml рд╣реИ ред
plugin.xml <idea-plugin> <id>com.experiment.simple.plugin</id> <name>Hello, world</name> <vendor email="myemail@yourcompany.com" url="http://www.mycompany.com"> My company </vendor> <description><![CDATA[ My first ever plugin - try to open Hello world dialog<br> ]]></description> <depends>com.intellij.modules.lang</depends> <depends>org.jetbrains.kotlin</depends> <depends>org.intellij.groovy</depends> <idea-version since-build="163"/> <actions> <group description="My actions" id="MyActionGroup" text="My actions"> <separator/> <action id="com.experiment.actions.OpenHelloWorldAction" class="com.experiment.actions.OpenHelloWorldAction" text="Show Hello world" description="Open dialog"> <add-to-group group-id="NewGroup" anchor="last"/> </action> </group> </actions> <idea-plugin>
рдпрд╣ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ:
- рдЖрдкрдХрд╛ рдкреНрд▓рдЧрдЗрди рдореЗрдЯрд╛рдбреЗрдЯрд╛: рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛, рдирд╛рдо, рд╡рд┐рд╡рд░рдг, рд╡рд┐рдХреНрд░реЗрддрд╛ рдЬрд╛рдирдХрд╛рд░реА, рдкрд░рд┐рд╡рд░реНрддрди рд▓реЙрдЧ
- рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрдиреНрд╕ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг;
- рдпрд╣рд╛рдВ рдЖрдк рдЖрдИрдбреАрдИрдП рд╕рдВрд╕реНрдХрд░рдг рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдкрдХрд╛ рдкреНрд▓рдЧрдЗрди рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛
- рдпрд╣рд╛рдВ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рднреА рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдХреНрд░рд┐рдпрд╛
рдХреНрд░рд┐рдпрд╛ рдХреНрдпрд╛ рд╣реИ? рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЗрдиреВ рдЦреЛрд▓рддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рдореЗрдиреВ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЛ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд▓рдЧрдЗрди рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ:

рдХреНрд░рд┐рдпрд╛рдПрдБ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкреНрд▓рдЧрдЗрди рдХреЗ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рд╣реИрдВред рд╣рд░ рдмрд╛рд░ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЗрдиреВ рдЖрдЗрдЯрдо рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдкреНрд▓рдЧрдЗрди рдХреЗ рдЕрдВрджрд░ рдирд┐рдпрдВрддреНрд░рдг рдорд┐рд▓рддрд╛ рд╣реИ, рдЖрдк рдЗрд╕ рдХреНрд▓рд┐рдХ рдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЙрд╕реЗ рдХрд░рддреЗ рд╣реИрдВред
рдПрдХреНрдЯ рдХреИрд╕реЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ? рдЖрдЗрдП рдПрдХ рд╕рд░рд▓ рдПрдХреНрд╢рди рд▓рд┐рдЦреЗрдВ рдЬреЛ рд╕рдВрджреЗрд╢ "рд╣реИрд▓реЛ, рд╡рд░реНрд▓реНрдб" рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрд╡рд╛рдж рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред
OpenHelloWorldAction class OpenHelloWorldAction : AnAction() { override fun actionPerformed(actionEvent: AnActionEvent) { val project = actionEvent.project Messages.showMessageDialog( project, "Hello world!", "Greeting", Messages.getInformationIcon() ) } override fun update(e: AnActionEvent) { super.update(e)
рдПрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдирд╛рд╢рди рдХреНрд▓рд╛рд╕ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рдПрдХ рдХреНрд▓рд╛рд╕ рдмрдирд╛рдПрдБред рджреВрд╕рд░реЗ, рд╣рдореЗрдВ рдПрдХреНрд╢рдирдкрд░реНрдлрд╝ рдкрджреНрдзрддрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд╣рд╛рдВ рдПрдирд╛рдПрд╡реЗрдВрдЯ рдХреНрд▓рд╛рд╕ рдХрд╛ рд╡рд┐рд╢реЗрд╖ рдкреИрд░рд╛рдореАрдЯрд░ рдЖрддрд╛ рд╣реИ ред рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдЖрдкрдХреЗ рдПрдХреНрд╢рди рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдВрджрд░реНрдн рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рд╕рдВрджрд░реНрдн рдЙрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдлрд╝рд╛рдЗрд▓ рдЬреЛ рдЕрдм рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЦреБрд▓реА рд╣реИ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреНрд░реА рдореЗрдВ рдЪрдпрдирд┐рдд рддрддреНрд╡ рдФрд░ рдЕрдиреНрдп рдбреЗрдЯрд╛ рдЬреЛ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
"рд╣реИрд▓реЛ, рджреБрдирд┐рдпрд╛" рд╕рдВрд╡рд╛рдж рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╣рд▓реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ (рдмрд╕ AnActionEvent рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ) рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡рд░реНрдЧ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдПрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ? рд╣рдо рджреЛ рддрд░реАрдХреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдЕрдкрдбреЗрдЯ рдФрд░ рдкрд╣рд▓реЗ AAPPerformedUpdate ред
рд╣рд░ рдмрд╛рд░ рдЕрдкрдбреЗрдЯ рд╡рд┐рдзрд┐ рдХреЛ рдЖрдкрдХреЗ рдПрдХреНрд╢рди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдВрджрд░реНрдн рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдкреНрд▓рдЧрдЗрди рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝реЗ рдЧрдП рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдорд╛рди рд▓реАрдЬрд┐рдП рдЖрдкрдиреЗ рдПрдХ рдПрдХреНрд╢рди рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдХреЛрдЯрд▓рд┐рди рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЕрдм рдЧреНрд░реВрд╡реА рдлрд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓рд╛ рд╣реИред рдлрд┐рд░ рдЕрдкрдбреЗрдЯ рд╡рд┐рдзрд┐ рдореЗрдВ рдЖрдк рдЕрдкрдиреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рджреБрд░реНрдЧрдо рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдкрд╣рд▓реЗ AActionPerformedUpdate рд╡рд┐рдзрд┐ рдЕрджреНрдпрддрди рд╡рд┐рдзрд┐ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕реЗ рдкрд╣рд▓реЗ рд╕рд╣реА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдкрдиреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рдЕрдВрддрд┐рдо рдЕрд╡рд╕рд░ рд╣реИред рдкреНрд░рд▓реЗрдЦрди рдХреА рд╕рд▓рд╛рд╣ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ "рднрд╛рд░реА" рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рдЪрд▓реЗред
рдЖрдк IDEA рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХреБрдЫ рддрддреНрд╡реЛрдВ рдореЗрдВ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рднреА рдмрд╛рдВрдз рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреБрдВрдЬреА рд╕рдВрдпреЛрдЬрди рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдореИрдВ рдпрд╣рд╛рдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред
рдкреНрд▓рдЧрдЗрдиреНрд╕ рдореЗрдВ рдпреВрдЖрдИ рд╡рд┐рдХрд╛рд╕
рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рдВрд╡рд╛рдж рдбрд┐рдЬрд╛рдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХрдбрд╝реА рдореЗрд╣рдирдд рдХрд░рдиреА рд╣реЛрдЧреАред рд╣рдордиреЗ рдЕрдкрдирд╛ UI рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЪрд┐рддреНрд░рдордп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЪрд╛рд╣рддреЗ рдереЗ рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рдЯрд┐рдХреЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдПрдирдо рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрдпрдирдХрд░реНрддрд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕реА рддрд░рд╣ред
рдпреВрдЖрдИ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рджреЗрд╡рдХреАрдЯ рдореЗрдВ рдХреБрдЫ рдХреНрд░рд┐рдпрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдЬреАрдпреВрдЖрдИ рдлреЙрд░реНрдо рдФрд░ рдбрд╛рдпрд▓реЙрдЧ ред рдкрд╣рд▓рд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдЦрд╛рд▓реА рдлреЙрд░реНрдо рдмрдирд╛рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ - рджреЛ рдмрдЯрди рд╡рд╛рд▓рд╛ рдПрдХ рдлреЙрд░реНрдо: рдареАрдХ рд╣реИ рдФрд░ рд░рджреНрдж рдХрд░реЗрдВ ред

рдареАрдХ рд╣реИ, рдПрдХ рдлреЙрд░реНрдо рдбрд┐рдЬрд╛рдЗрдирд░ рд╣реИ , рд▓реЗрдХрд┐рди рд╡рд╣ рд╣реИ ... рд╕реЛ-рд╕реЛред рддреБрд▓рдирд╛ рдореЗрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рд▓реЗрдЖрдЙрдЯ рдбрд┐рдЬрд╛рдЗрдирд░ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рдЕрдЪреНрдЫрд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдкреВрд░реЗ рдпреВрдЖрдИ рдХреЛ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреИрд╕реЗ рдЬрд╛рд╡рд╛ рд╕реНрд╡рд┐рдВрдЧ рдкрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдлрд╝реЙрд░реНрдо рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдорд╛рдирд╡-рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп XML рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдлреЙрд░реНрдо рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг: рдПрдХ рд╣реА рдЧреНрд░рд┐рдб рд╕реЗрд▓ рдореЗрдВ рдХрдИ рдирд┐рдпрдВрддреНрд░рдг рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ рдФрд░ рд╕рднреА рдХреЛ рдЫрд┐рдкрд╛рдПрдВ рд▓реЗрдХрд┐рди рдПрдХ рдирд┐рдпрдВрддреНрд░рдг), рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдкрд░ рдЬрд╛рдиреЗ рдФрд░ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - IDEA рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЙрдард╛рдПрдЧрд╛ред
рд▓рдЧрднрдЧ рд╣рд░ рдлреЙрд░реНрдо рдореЗрдВ рджреЛ рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВ: рдкрд╣рд▓реА рдореЗрдВ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИред рд╕реБрдзрд╛рд░ , рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХреНрд╕рдПрдордПрд▓ рдлрд╛рдЗрд▓ рд╣реИ, рджреВрд╕рд░рд╛ рддрдерд╛рдХрдерд┐рдд рдмрд╛рдЙрдВрдб рдХреНрд▓рд╛рд╕ рд╣реИ , рдЬрд┐рд╕реЗ рдЬрд╛рд╡рд╛, рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЬреЛ рднреА рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ рдкреНрд░рдкрддреНрд░ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ, рд▓реЗрдХрд┐рди рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рдХреНрдпреЛрдВрдХрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдЯрд▓рд┐рди рдХреЗ рд▓рд┐рдП рдЯреНрдпреВрдирд┐рдВрдЧ рдЕрднреА рддрдХ рд╕рд╣реА рдирд╣реАрдВ рд╣реИред рдЬрдм рдЖрдк рдЬрд╛рд╡рд╛ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдирдП рдШрдЯрдХ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдЗрди рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрдХреНрд╖рд╛ рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЬрдм рдЖрдк рдбрд┐рдЬрд╛рдЗрдирд░ рдореЗрдВ рдШрдЯрдХ рдХрд╛ рдирд╛рдо рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреЛрдЯрд▓рд┐рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдШрдЯрдХреЛрдВ рдХреЛ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ - рдХреЛрдИ рдПрдХреАрдХрд░рдг рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЖрдк рдХреБрдЫ рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ рднреА рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рд╣рдо рдореВрд▓ рдмрд╛рддреЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ
- рдПрдХ рдкреНрд▓рдЧрдЗрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА: IDEA рдХрдореНрдпреБрдирд┐рдЯреА рдПрдбрд┐рд╢рди, рдкреНрд▓рдЧрдЗрди рджреЗрд╡рдХрд┐рдд рдФрд░ рдЬрд╛рд╡рд╛ рдЗрд╕рд╕реЗ рдЬреБрдбрд╝рд╛ред
- gradle-intellij-plugin рдЖрдкрдХрд╛ рднрд╛рдИ рд╣реИ, рдпрд╣ рдЖрдкрдХреЗ рдЬреАрд╡рди рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░реЗрдЧрд╛, рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред
- рдЬрдм рддрдХ рдЖрд╡рд╢реНрдпрдХ рди рд╣реЛ, рдЕрдкрдирд╛ рдпреВрдЖрдИ рди рд▓рд┐рдЦреЗрдВред рдЖрдИрдбреАрдИрдП рдореЗрдВ рдХрдИ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡рд░реНрдЧ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдЕрдкрдирд╛ рдпреВрдЖрдИ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рдЬрдЯрд┐рд▓ рдЪрд╛рд╣рд┐рдП - рдХрдбрд╝реА рдореЗрд╣рдирдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдУред
- рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдХреНрд░рд┐рдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдПрдХ рд╣реА рдкреНрд▓рдЧрдЗрди рдЖрдкрдХреЗ рдЖрдИрдбрд┐рдпрд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред
рдЖрдИрдбрд┐рдпрд╛ рдЗрдВрдЯрд░реНрди: рдШрдЯрдХ, рдкреАрдПрд╕рдЖрдИ
рдЖрдЗрдП рдЖрдЗрдбрд┐рдП рдХреА рдЖрдВрддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдХреИрд╕реЗ рдЕрдВрджрд░ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕рд▓рд┐рдП рдмрддрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЬрдм рдореИрдВ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рднрд╛рдЧ рд╕рдордЭрд╛рддрд╛ рд╣реВрдВ, рддреЛ рдЖрдкрдХреЗ рд╕рд┐рд░ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдлрдЯреЗрдЧрд╛, рдФрд░ рддрд╛рдХрд┐ рдЖрдк рд╕рдордЭ рд╕рдХреЗрдВ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рд╕реЗ рдЖрддрд╛ рд╣реИред
IDEA рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреИрд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ? рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдкрд╣рд▓реЗ рд╕реНрддрд░ рдкрд░ рдПрдХ рд╡рд░реНрдЧ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧ ред рдпрд╣ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ IDEA рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд░реНрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ AppCode, Intellij IDEA, Android Studio рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд░реНрдЧ рдХреЗ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрджрд╛рд╣рд░рдг рдорд┐рд▓реЗрдВрдЧреЗред рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЖрд╡реЗрджрди рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рд░рдЦреЗрдВ рдЕрдЧрд▓рд╛ рд╕реНрддрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреНрд▓рд╛рд╕ рд╣реИред IDEA рдореЗрдВ рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЦреЛрд▓рддреЗ рд╕рдордп рдЖрдк рдЬреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рд╡рд╣ рдпрд╣ рдирд┐рдХрдЯрддрдо рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИред IDEA рдХреЗ рдЕрдВрджрд░ рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ: рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡рд░реНрдЧ, рдкреНрд░рдмрдВрдзрдХ рдФрд░ рдмрд╣реБрдд рдХреБрдЫред
рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд▓реЗрд╕ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ рдЕрдЧрд▓рд╛ рд╕реНрддрд░ рдореЙрдбреНрдпреВрд▓ рд╡рд░реНрдЧ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдХ рдореЙрдбреНрдпреВрд▓ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╡рд░реНрдЧреАрдХреГрдд рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╣рдорд╛рд░рд╛ рдорддрд▓рдм рд╣реИ рдорд╛рд╡реЗрди рдореЙрдбреНрдпреВрд▓, рдЧреНрд░реИрдб рдореЙрдбреНрдпреВрд▓ред рдЗрд╕ рд╡рд░реНрдЧ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмреАрдЪ рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдЗрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрдВрджрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдореЙрдбреНрдпреВрд▓ рдХреЛ рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рд░рдЦреЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ рдЕрдЧрд▓рд╛ рд╕реНрддрд░ VirtualFile рд╡рд░реНрдЧ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдлрд╝рд╛рдЗрд▓ рдкрд░ рдПрдХ рдЕрдореВрд░реНрддрддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреА рдбрд┐рд╕реНрдХ рдкрд░ рд╣реИред рдХрдИ VirtualFile рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА рд╕рдорд╛рди рд╣реИрдВред рдЙрд╕реА рд╕рдордп, рдпрджрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдлрд╝рд╛рдЗрд▓ рд╣рдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИ, рддреЛ VirtualFile рдХреЛ рдЕрдкрдиреЗ рдЖрдк рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдмрд╕ рдЕрдорд╛рдиреНрдп рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
VirtualFile рдкрджрд╛рдиреБрдХреНрд░рдо рдкреНрд▓реЗрд╕ рдПрдХ рдЗрдХрд╛рдИ рдЬреИрд╕реЗ рдХрд┐ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рдкреНрд░рддреНрдпреЗрдХ VirtualFile рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдпрд╣ рдЖрдкрдХреА рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкрд╛рда рдкрд░ рдЕрдореВрд░реНрддрддрд╛ рд╣реИред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкрд╛рда рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХреЗрдВ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдПрдХ рдкрдВрдХреНрддрд┐ рдбрд╛рд▓реА, рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рдЖрджрд┐, рдЖрджрд┐ред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рд░рдЦреЗрдВ рдЗрд╕ рдкрджрд╛рдиреБрдХреНрд░рдо рдХрд╛ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╕рдВрдкрд╛рджрдХ рд╡рд░реНрдЧ рд╣реИ - рдпрд╣ рдПрдХ рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рд╕рдВрдкрд╛рджрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХреЗрдВ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЙрд╕ рд░реЗрдЦрд╛ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдХреИрд░реЗрдЯ рд╣реИ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред
рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рд╕рдВрдкрд╛рджрдХ рдХрд╛ рд╕реНрдерд╛рди рдЖрдЦрд┐рд░реА рдмрд╛рдд рдЬреЛ рдореИрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рд╡рд╣ рд╣реИ PsiFile ред рдпрд╣ рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рдПрдХ рдЕрдореВрд░реНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдб рддрддреНрд╡реЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗред PSI рдХрд╛ рдорддрд▓рдм рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рд╣реИред
рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ PsiFile рдкреНрд▓реЗрд╕ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ? рдПрдХ рдирд┐рдпрдорд┐рдд рдЬрд╛рд╡рд╛ рд╡рд░реНрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рд╕рд╛рджрд╛ рдЬрд╛рд╡рд╛ рд╡рд░реНрдЧ package com.experiment; import javax.inject.Inject; class SomeClass { @Inject String injectedString; public void someMethod() { System.out.println(injectedString); } }
рдЗрд╕рдореЗрдВ рдПрдХ рдкреИрдХреЗрдЬ, рдЖрдпрд╛рдд, рд╡рд░реНрдЧ, рдлрд╝реАрд▓реНрдб, рд╡рд┐рдзрд┐рдпрд╛рдБ, рдПрдиреЛрдЯреЗрд╢рди, рдХреАрд╡рд░реНрдб, рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░, рд╕рдВрд╢реЛрдзрдХ, рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛, рд╡рд┐рдзрд┐ рд╕рдВрджрд░реНрдн, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдФрд░ рдЯреЛрдХрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВред рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП PsiElement рдХрд╛ рдЕрдореВрд░реНрддрди рд╣реИ ред рдЕрд░реНрдерд╛рддреН, рдЖрдкрдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ PsiElements рд╣реЛрддреЗ рд╣реИрдВред

PsiFile , рдмрджрд▓реЗ рдореЗрдВ, рдПрдХ рдкреЗрдбрд╝ рдХреА рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдореЗрдВ рдПрдХ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдФрд░ рдХрдИ рд╡рдВрд╢рдЬ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдкреАрдПрд╕рдЖрдИ рдПрдХ рд╕рд╛рд░ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдкреЗрдбрд╝ рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИред рдПрдХ рд╕рд╛рд░ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╡реГрдХреНрд╖ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкреЗрдбрд╝ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкрд╛рд░реНрд╕рд░ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рдЪреБрдХрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╕реЗ рдЕрд▓рдЧ рд╣реИред рдкреАрдПрд╕рдЖрдИ, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╕реЗ рдмрдВрдзрд╛ рд╣реБрдЖ рд╣реИред рдЬрдм рдЖрдк рдПрдХ рдЬрд╛рд╡рд╛ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк Java PsiElements рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЬрдм рдПрдХ рдЧреНрд░реВрд╡реА рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ - рдЧреНрд░реВрд╡реА рд╕рд╛рдЗрд▓реАрд╕ рдХреЗ рд╕рд╛рде, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рдЕрдВрджрд░ рдЧрд▓рдд PSI рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд▓рдЧрдЗрди рдЖрдкрдХреЗ рдЗрдЪреНрдЫрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдпрд╣ рд╢реВрдЯ рдФрд░ рдХреНрд░реИрд╢ рдХрд░реЗрдЧрд╛ред
PSI рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рдЕрднреА рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрдпреЛрдВ рд╣реИ - рдХреНрдпреЛрдВрдХрд┐ рдкреВрд░реЗ IDEA рдХреЛ PSI рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдЕрдиреБрдорддрд┐ рджреА рдЧрдИ рд╣реИред рдпрджрд┐ рдореМрдЬреВрджрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЖрдк рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдлрд┐рд░ рдЖрдкрдХрд╛ рдкреНрд▓рдЧрдЗрди рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рднрд╛рдЧ рдореЗрдВ рдЗрд╕рдХрд╛ рдЕрд▓рдЧ рд╕реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реВрдВрдЧрд╛ред
рд╣рдо IDEA рдХреЗ рдЖрдВрддрд░рд┐рдХ рднрд╛рдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рддреЗ рд╣реИрдВ
- IDEA рдХреЗ рдЕрдВрджрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PSI рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ;
- рдкреВрд░реЗ рдЖрдИрдбреАрдИрдП рдХреЛ рдкреАрдПрд╕рдЖрдИ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдЕрдиреБрдорддрд┐ рджреА рдЧрдИ рд╣реИ, рд╕рднреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдП;
- рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ PsiElements рдХрд╛ рдЕрдкрдирд╛ рд╕рдВрдЧреНрд░рд╣ рд╣реИред
, . .
- рд╕рдордп рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
- рдкреНрд▓рдЧрдЗрди рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдкреВрд░рдХ рд▓реЗрдЦ рдХреА рдПрдХ рдмрдбрд╝реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рд╢реБрд░реБрдЖрдд
- рдЕрдкрдиреА рдЦреБрдж рдХреА рдЯреВрд▓ рд╡рд┐рдВрдбреЛ рдмрдирд╛рдирд╛
- рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
- рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдкреНрд▓рдЧрдЗрди рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг
- IntelliJ IDEA
- IDEA
- IntelliJ IDEA
- , , . , .
- Droidcon Italy 2017 , , , , FreeMarker- . , .
- KotlinConf , Square SQLDelight, Java, Kotlin.