рдорд╣рдд्рд╡рдкूрд░्рдг рдкूрд░्рд╡рдкिрдаिрдХा (Overview)
рдбिрдЬिрдЯрд▓ рдпुрдЧाрдд, рд╕्рдоाрд░्рдЯрдлोрди рдЖрдкрд▓्рдпा рдЬीрд╡рдиाрдЪा рдЕрд╡िрднाрдЬ्рдп рднाрдЧ рдмрдирд▓े рдЖрд╣ेрдд рдЖрдгि рдд्рдпाрд╕ोрдмрддрдЪ рдЕँрдб्рд░ॉрдЗрдб ре▓рдк्рд▓िрдХेрд╢рди्рд╕рдЪी рдоाрдЧрдгी рдЧрдЧрдиाрд▓ा рднिрдбрд▓ी рдЖрд╣े. реирежреирем рдкрд░्рдпंрдд, рд╣ा рдЯ्рд░ेंрдб рдЕрдзिрдХ рддीрд╡्рд░ рд╣ोрдгाрд░ рдЖрд╣े, рдЬिрдеे рдк्рд░рдд्рдпेрдХ рд╡्рдпрд╡рд╕ाрдпाрд▓ा, рдк्рд░рдд्рдпेрдХ рд╕ेрд╡ा рдк्рд░рджाрдд्рдпाрд▓ा рдЖрдгि рдк्рд░рдд्рдпेрдХ рдХрд▓्рдкрдиेрд▓ा рдоोрдмाрдЗрд▓ рдЙрдкрд╕्рдеिрддीрдЪी рдЧрд░рдЬ рднाрд╕ेрд▓. рдЕрд╢ा рдкрд░िрд╕्рдеिрддीрдд, рдЕँрдб्рд░ॉрдЗрдб ре▓рдк рдбेрд╡्рд╣рд▓рдкрдоेंрдЯрдордзीрд▓ рдХौрд╢рд▓्рдпे рд╣ी рдХेрд╡рд│ рдПрдХ рдЕрддिрд░िрдХ्рдд рдХ्рд╖рдорддा рдирд╕ूрди, рддी рдПрдХ рдЕрдд्рдпाрд╡рд╢्рдпрдХ рдЧрд░рдЬ рдмрдирд▓ी рдЖрд╣े. рдХोрдЯрд▓िрди рд╣ी рднाрд╖ा рдЕँрдб्рд░ॉрдЗрдб рдбेрд╡्рд╣рд▓рдкрдоेंрдЯрд╕ाрдаी рдЧुрдЧрд▓рдиे рдЕрдзिрдХृрддрдкрдгे рд╕्рд╡ीрдХाрд░рд▓्рдпाрдкाрд╕ूрди, рддिрдЪे рдорд╣рдд्рдд्рд╡ рдЕрднूрддрдкूрд░्рд╡ рд╡ाрдврд▓े рдЖрд╣े. рдЬाрд╡ाрдЪ्рдпा рддुрд▓рдиेрдд рдЕрдзिрдХ рд╕ंрдХ्рд╖िрдк्рдд, рд╕ुрд░рдХ्рд╖िрдд рдЖрдгि рдЖрдзुрдиिрдХ рдЕрд╕рд▓्рдпाрдиे, рдХोрдЯрд▓िрдирдиे рдбेрд╡्рд╣рд▓рдкрд░ рд╕рдоुрджाрдпाрдд рдЖрдкрд▓े рд╕्рдеाрди рднрдХ्рдХрдо рдХेрд▓े рдЖрд╣े.
рдЖрдЬрдЪ्рдпा рдШрдбीрд▓ा, рдмाрдЬाрд░ाрдд рдХोрдЯрд▓िрди рдбेрд╡्рд╣рд▓рдкрд░्рд╕рдЪी рдоाрдЧрдгी рдк्рд░рдЪंрдб рдЖрд╣े рдЖрдгि рд╣ी рдоाрдЧрдгी реирежреирем рдкрд░्рдпंрдд рдЖрдгрдЦी рд╡ाрдврдгाрд░ рдЖрд╣े. рдХंрдкрди्рдпांрдиा рдЕрд╢ा рдбेрд╡्рд╣рд▓рдкрд░्рд╕рдЪी рдЧрд░рдЬ рдЖрд╣े рдЬे рдХाрд░्рдпрдХ्рд╖рдо, рдмрдЧ-рдл्рд░ी рдЖрдгि рдЙрдд्рдХृрд╖्рдЯ рд╡ाрдкрд░рдХрд░्рддा рдЕрдиुрднрд╡ рджेрдгाрд░े ре▓рдк्рд▓िрдХेрд╢рди्рд╕ рддрдпाрд░ рдХрд░ू рд╢рдХрддीрд▓. рдХोрдЯрд▓िрдирдЪे рдЕрдиेрдХ рдлाрдпрджे рдЖрд╣ेрдд, рдЬрд╕े рдХी рдХрдоी рдХोрдбрдордз्рдпे рдЕрдзिрдХ рдХाрд░्рдпрдХ्рд╖рдорддा, рдЬाрд╡ाрд╕ोрдмрдд рдЕрдЦंрдбрдкрдгे рдХाрд░्рдп рдХрд░рдг्рдпाрдЪी рдХ्рд╖рдорддा (Interoperability) рдЖрдгि рдирд▓्рд╕ (nulls) рд╣ाрддाрд│рдг्рдпाрд╕ाрдаी рдЙрдд्рддрдо рд╕ुрд░рдХ्рд╖ा рдпंрдд्рд░рдгा. рдпाрдоुрд│े рдбेрд╡्рд╣рд▓рдкрдоेंрдЯ рдк्рд░рдХ्рд░िрдпा рд╡ेрдЧрд╡ाрди рд╣ोрддे рдЖрдгि ре▓рдк्рд╕ рдЕрдзिрдХ рд╕्рдеिрд░ рдмрдирддाрдд. рдд्рдпाрдоुрд│े, рдЬрд░ рддुрдо्рд╣ी реирежреирем рдордз्рдпे рдЕँрдб्рд░ॉрдЗрдб ре▓рдк рдбेрд╡्рд╣рд▓рдкрдоेंрдЯрдордз्рдпे рдХрд░िрдЕрд░ рд╕ुрд░ू рдХрд░рдг्рдпाрдЪा рд╡िрдЪाрд░ рдХрд░рдд рдЕрд╕ाрд▓, рддрд░ рдХोрдЯрд▓िрди рд╢िрдХрдгे рд╣ी рддुрдордЪी рд╕рд░्рд╡ोрдд्рддрдо рдЧुंрддрд╡рдгूрдХ рдард░ेрд▓.
рд╣ा рд▓ेрдЦ 'рд╢ुрднрдо рд╕्рдЯрдбी рдСрдирд▓ाрдЗрди' рдЪ्рдпा рд╡рддीрдиे рддुрдо्рд╣ाрд▓ा реирежреирем рдордз्рдпे рдХोрдЯрд▓िрди рд╡ाрдкрд░ूрди рдЕँрдб्рд░ॉрдЗрдб ре▓рдк рдбेрд╡्рд╣рд▓рдкрдоेंрдЯ рдХрд╕े рд╕ुрд░ू рдХрд░ाрд╡े, рдпाрдмрдж्рджрд▓ рдПрдХ рд╕рдЦोрд▓ рдЖрдгि рд╡्рдпाрд╡рд╣ाрд░िрдХ рдоाрд░्рдЧрджрд░्рд╢рди рджेрдИрд▓. рдЖрдо्рд╣ी рдХेрд╡рд│ рдоूрд▓рднूрдд рдЧोрд╖्рдЯींрд╡рд░рдЪ рд▓рдХ्рд╖ рдХेंрдж्рд░िрдд рдХрд░рдгाрд░ рдиाрд╣ी, рддрд░ рдЖрдзुрдиिрдХ рдбेрд╡्рд╣рд▓рдкрдоेंрдЯ рдкрдж्рдзрддी, рд╕рд░्рд╡ोрдд्рддрдо рд╕рд░ाрд╡ (best practices) рдЖрдгि рднрд╡िрд╖्рдпाрддीрд▓ рдЯ्рд░ेंрдб्рд╕рдЪाрд╣ी рдЖрдвाрд╡ा рдШेрдК. рдпा рдоाрд░्рдЧрджрд░्рд╢рдХाрдоुрд│े рддुрдо्рд╣ाрд▓ा рдХेрд╡рд│ ре▓рдк्рд╕ рдмрдирд╡рдг्рдпाрд╕ाрдаीрдЪ рдирд╡्рд╣े, рддрд░ рдпा рдХ्рд╖ेрдд्рд░ाрдд рдпрд╢рд╕्рд╡ी рд╣ोрдг्рдпाрд╕ाрдаी рдЖрд╡рд╢्рдпрдХ рдЕрд╕рд▓ेрд▓े рдЬ्рдЮाрди рдЖрдгि рдЖрдд्рдорд╡िрд╢्рд╡ाрд╕ рдоिрд│ेрд▓. рдк्рд░рдд्рдпेрдХ рд╡िрднाрдЧाрд▓ा рдЕрдд्рдпंрдд рддрдкрд╢ीрд▓рд╡ाрд░ рдЖрдгि рдХृрддी рдХрд░рдг्рдпाрдпोрдЧ्рдп рдоाрд╣िрддीрд╕рд╣ рд╕ाрджрд░ рдХेрд▓े рдЖрд╣े, рдЬेрдгेрдХрд░ूрди рддुрдо्рд╣ी рдк्рд░рдд्рдпेрдХ рдЯрдк्рдк्рдпाрд╡рд░ рд╕рд╣рдЬрддेрдиे рдкुрдвे рдЬाрдК рд╢рдХाрд▓.
рдпेрдд्рдпा рдХाрд╣ी рд╡рд░्рд╖ांрдд, рдЕँрдб्рд░ॉрдЗрдб рдЗрдХोрд╕िрд╕्рдЯрдордордз्рдпे рдоोрдаे рдмрджрд▓ рдЕрдкेрдХ्рд╖िрдд рдЖрд╣ेрдд, рд╡िрд╢ेрд╖рддः Jetpack Compose рд╕ाрд░рдЦ्рдпा UI рдЯूрд▓рдХिрдЯрдЪ्рдпा рд╡ाрдврдд्рдпा рд╡ाрдкрд░ाрдоुрд│े. рдХोрдЯрд▓िрди рдпा рдмрджрд▓ांрдиा рдЖрдд्рдорд╕ाрдд рдХрд░рдг्рдпाрд╕ाрдаी рдкूрд░्рдгрдкрдгे рддрдпाрд░ рдЖрд╣े. рдд्рдпाрдоुрд│े, рддुрдо्рд╣ी рдЖрддाрдкाрд╕ूрдирдЪ рдХोрдЯрд▓िрди рд╢िрдХрдг्рдпाрд╕ рд╕ुрд░ुрд╡ाрдд рдХेрд▓्рдпाрд╕, рддुрдо्рд╣ी рдпा рдмрджрд▓ांрд╕ाрдаी рд╕рдЬ्рдЬ рдЕрд╕ाрд▓ рдЖрдгि рднрд╡िрд╖्рдпाрддीрд▓ рддंрдд्рд░рдЬ्рдЮाрдиाрд╕ोрдмрдд рд╕рд╣рдЬ рдЬुрд│рд╡ूрди рдШेрдК рд╢рдХाрд▓. рд╣ा рд▓ेрдЦ рддुрдо्рд╣ाрд▓ा рдПрдХ рдордЬрдмूрдд рдкाрдпा рджेрдИрд▓, рдЬ्рдпाрд╡рд░ рддुрдо्рд╣ी рддुрдордЪ्рдпा ре▓рдк рдбेрд╡्рд╣рд▓рдкрдоेंрдЯрдЪे рд╕्рд╡рдк्рди рдЙрднे рдХрд░ू рд╢рдХрддा. рдЪрд▓ा рддрд░ рдордЧ, рдпा рд░ोрдоांрдЪрдХ рдк्рд░рд╡ाрд╕ाрд▓ा рд╕ुрд░ुрд╡ाрдд рдХрд░ूрдпा!
рдХोрдЯрд▓िрди рдЖрдгि рдЕँрдб्рд░ॉрдЗрдб: реирежреирем рдордзीрд▓ рдЕрдкрд░िрд╣ाрд░्рдп рдиिрд╡рдб
реирежреирем рдкрд░्рдпंрдд, рдХोрдЯрд▓िрди рд╣े рдЕँрдб्рд░ॉрдЗрдб ре▓рдк рдбेрд╡्рд╣рд▓рдкрдоेंрдЯрд╕ाрдаी рдХेрд╡рд│ рдПрдХ рдкрд░्рдпाрдп рдирд╕ूрди, рддी рдПрдХ рдЕрдкрд░िрд╣ाрд░्рдп рдиिрд╡рдб рдмрдирд▓ी рдЖрд╣े. рдЧुрдЧрд▓рдиे реирежрезрен рдордз्рдпे рдХोрдЯрд▓िрдирд▓ा рдЕँрдб्рд░ॉрдЗрдбрд╕ाрдаी рдЕрдзिрдХृрдд рднाрд╖ा рдо्рд╣рдгूрди рдШोрд╖िрдд рдХेрд▓े рдЖрдгि реирежрезреп рдордз्рдпे 'Kotlin-first' рдзोрд░рдг рд╕्рд╡ीрдХाрд░рд▓े. рдпाрдЪा рдЕрд░्рде рдЕрд╕ा рдХी, рдЧुрдЧрд▓рдЪे рд╕्рд╡рддःрдЪे рдбेрд╡्рд╣рд▓рдкрдоेंрдЯ рд╕ंрдШ рдЖрдгि рдд्рдпांрдиी рддрдпाрд░ рдХेрд▓ेрд▓ी рдирд╡ीрди рд▓ाрдпрдм्рд░рд░ीрдЬ рдХोрдЯрд▓िрдирд▓ा рдк्рд░ाрдзाрди्рдп рджेрддाрдд. рдпा рдзोрд░рдгाрдоुрд│े, рдирд╡ीрди рдк्рд░ोрдЬेрдХ्рдЯ्рд╕рд╕ाрдаी рдХोрдЯрд▓िрди рд╡ाрдкрд░рдгे рд╣ा рдПрдХ рдЙрдж्рдпोрдЧ рдоाрдирдХ рдмрдирд▓ा рдЖрд╣े. рдХोрдЯрд▓िрди рдЬाрд╡ाрдЪ्рдпा рддुрд▓рдиेрдд рдЕрдзिрдХ рд╕ंрдХ्рд╖िрдк्рдд (concise) рдЖрд╣े, рдЬ्рдпाрдоुрд│े рдХрдоी рдХोрдбрдордз्рдпे рдЕрдзिрдХ рдХाрд░्рдпрдХ्рд╖рдорддा рд╕ाрдз्рдп рд╣ोрддे. рдпाрдоुрд│े рдбेрд╡्рд╣рд▓рдкрд░्рд╕рдЪा рд╡ेрд│ рд╡ाрдЪрддो рдЖрдгि рдХोрдб рд╡ाрдЪрдгे рд╡ рд╕рдордЬूрди рдШेрдгे рд╕ोрдкे рд╣ोрддे, рдЬे рдоोрда्рдпा рдк्рд░ोрдЬेрдХ्рдЯ्рд╕рдордз्рдпे рдЕрдд्рдпंрдд рдорд╣рдд्рдд्рд╡ाрдЪे рдард░рддे.
рдХोрдЯрд▓िрдирдЪी рд╕ुрд░рдХ्рд╖ा рд╡ैрд╢िрд╖्рдЯ्рдпे (safety features) рд╣ी рддिрдЪ्рдпा рд▓ोрдХрдк्рд░िрдпрддेрдЪे рдЖрдгрдЦी рдПрдХ рдоोрдаे рдХाрд░рдг рдЖрд╣े. рд╡िрд╢ेрд╖рддः, 'рдирд▓्рд▓िрдлाрдИрдб' (nullability) рд╣ाрддाрд│рдг्рдпाрдЪी рддिрдЪी рдХ्рд╖рдорддा ре▓рдк рдХ्рд░ॅрд╢ рд╣ोрдг्рдпाрдЪे рдк्рд░рдоाрдг рд▓рдХ्рд╖рдгीрдпрд░िрдд्рдпा рдХрдоी рдХрд░рддे. рдЬाрд╡ाрдордз्рдпे 'NullPointerException' рд╣ी рдПрдХ рд╕ाрдоाрди्рдп рд╕рдорд╕्рдпा рдЖрд╣े, рдЬी рдХोрдЯрд▓िрдирдордз्рдпे 'рдирд▓्рд▓िрдлाрдИрдб' рдк्рд░рдХाрд░ рдк्рд░рдгाрд▓ीрдоुрд│े (null-safe type system) рдоोрда्рдпा рдк्рд░рдоाрдгाрдд рдЯाрд│рддा рдпेрддे. рдпाрд╡्рдпрддिрд░िрдХ्рдд, рдХोрдЯрд▓िрди рдЬाрд╡ा рд╡्рд╣рд░्рдЪ्рдпुрдЕрд▓ рдорд╢ीрди (JVM) рд╡рд░ рдЪाрд▓рддे рдЖрдгि рдЬाрд╡ा рдХोрдбрд╕ोрдмрдд резрежреж% рдЗंрдЯрд░рдСрдкрд░ेрдмрд▓ рдЖрд╣े. рдпाрдЪा рдЕрд░्рде рдЕрд╕ा рдХी, рддुрдо्рд╣ी рддुрдордЪ्рдпा рдЬुрди्рдпा рдЬाрд╡ा рдк्рд░ोрдЬेрдХ्рдЯ्рд╕рдордз्рдпे рдХोрдЯрд▓िрди рдХोрдб рд╡ाрдкрд░ू рд╢рдХрддा рдХिंрд╡ा рдпाрдЙрд▓рдЯ, рдЬ्рдпाрдоुрд│े рдЬुрди्рдпा рдк्рд░ोрдЬेрдХ्рдЯ्рд╕рдЪे рдЖрдзुрдиिрдХीрдХрд░рдг рдХрд░рдгे рд╕ोрдкे рд╣ोрддे. рд╣ी рд▓рд╡рдЪिрдХрддा рдбेрд╡्рд╣рд▓рдкрд░्рд╕рдиा рдЬुрди्рдпा рдЧुंрддрд╡рдгुрдХीрдЪे рд░рдХ्рд╖рдг рдХрд░рдд рдирд╡ीрди рддंрдд्рд░рдЬ्рдЮाрдиाрдЪा рд▓ाрдн рдШेрдг्рдпाрд╕ рдорджрдд рдХрд░рддे.
рдмाрдЬाрд░ाрддीрд▓ рдоाрдЧрдгीрдЪ्рдпा рджृрд╖्рдЯिрдХोрдиाрддूрди рдкाрд╣िрд▓्рдпाрд╕, реирежреирем рдордз्рдпे рдХोрдЯрд▓िрди рдбेрд╡्рд╣рд▓рдкрд░्рд╕рдЪी рдоाрдЧрдгी рдЙрдЪ्рдЪ рдкाрддрд│ीрд╡рд░ рдкोрд╣ोрдЪेрд▓. рдЕрдиेрдХ рдХंрдкрди्рдпा рдд्рдпांрдЪ्рдпा рдирд╡ीрди ре▓рдк्рд╕рд╕ाрдаी рдХोрдЯрд▓िрдирдЪा рд╡ाрдкрд░ рдХрд░рдд рдЖрд╣ेрдд рдЖрдгि рдЬुрдиे ре▓рдк्рд╕ рдХोрдЯрд▓िрдирдордз्рдпे рд╕्рдерд▓ांрддрд░िрдд рдХрд░рдд рдЖрд╣ेрдд. рдпाрдоुрд│े рдХोрдЯрд▓िрди рдбेрд╡्рд╣рд▓рдкрд░्рд╕рдиा рдЙрдд्рддрдо рдХрд░िрдЕрд░ рд╕ंрдзी рдЙрдкрд▓рдм्рдз рд╣ोрдд рдЖрд╣ेрдд. рдХोрдЯрд▓िрдирдЪी рд╕рдХ्рд░िрдп рдЖрдгि рд╡ाрдврддी рд╕рдоुрджाрдп (community) рджेрдЦीрд▓ рдПрдХ рдоोрдаा рдлाрдпрджा рдЖрд╣े. рддुрдо्рд╣ाрд▓ा рдХोрдбрдЪी рд╕рдорд╕्рдпा рдЖрд▓्рдпाрд╕ рдХिंрд╡ा рдирд╡ीрди рдХाрд╣ी рд╢िрдХाрдпрдЪे рдЕрд╕рд▓्рдпाрд╕, рдСрдирд▓ाрдЗрди рд╕ंрд╕ाрдзрдиे, рдлोрд░рдо्рд╕ рдЖрдгि рд╕рдоुрджाрдпाрдХрдбूрди рдд्рд╡рд░िрдд рдорджрдд рдоिрд│рддे. рд╣ी рд╕рд░्рд╡ рдХाрд░рдгे рдПрдХрдд्рд░िрддрдкрдгे рдкाрд╣рддा, реирежреирем рдордз्рдпे рдЕँрдб्рд░ॉрдЗрдб ре▓рдк рдбेрд╡्рд╣рд▓рдкрдоेंрдЯрд╕ाрдаी рдХोрдЯрд▓िрди рд╢िрдХрдгे рд╣ी рдХेрд╡рд│ рдПрдХ рд╢िрдлाрд░рд╕ рдирд╕ूрди, рддी рдПрдХ рдЖрд╡рд╢्рдпрдХ рдмाрдм рдмрдирд▓ी рдЖрд╣े, рдЬी рддुрдо्рд╣ाрд▓ा рдпा рд╕्рдкрд░्рдзाрдд्рдордХ рдХ्рд╖ेрдд्рд░ाрдд рдЖрдШाрдбीрд╡рд░ рдаेрд╡ेрд▓.
рддुрдордЪे рд╡िрдХाрд╕ рд╡ाрддाрд╡рд░рдг рд╕ेрдЯ рдХрд░рдгे: рдЪрд░рдг-рджрд░-рдЪрд░рдг рдоाрд░्рдЧрджрд░्рд╢рдХ
рдЕँрдб्рд░ॉрдЗрдб ре▓рдк рдбेрд╡्рд╣рд▓рдкрдоेंрдЯ рд╕ुрд░ू рдХрд░рдг्рдпाрд╕ाрдаी, рддुрдо्рд╣ाрд▓ा рдПрдХ рдордЬрдмूрдд рдЖрдгि рдХाрд░्рдпрдХ्рд╖рдо рд╡िрдХाрд╕ рд╡ाрддाрд╡рд░рдг (development environment) рд╕ेрдЯ рдХрд░рдгे рдЖрд╡рд╢्рдпрдХ рдЖрд╣े. рдпाрдЪे рдХेंрдж्рд░рд╕्рдеाрди рдо्рд╣рдгрдЬे Android Studio, рдЧुрдЧрд▓рдиे рдЕँрдб्рд░ॉрдЗрдб рдбेрд╡्рд╣рд▓рдкрдоेंрдЯрд╕ाрдаी рддрдпाрд░ рдХेрд▓ेрд▓ी рдЕрдзिрдХृрдд рдЗंрдЯिрдЧ्рд░ेрдЯेрдб рдбेрд╡्рд╣рд▓рдкрдоेंрдЯ рдПрди्рд╡्рд╣ाрдпрд░рдирдоेंрдЯ (IDE). реирежреирем рдкрд░्рдпंрдд, Android Studio рдЪ्рдпा рдЖрд╡ृрдд्рдд्рдпा рдЕрдзिрдХ рдк्рд░рдЧрдд рдЖрдгि рд╕ंрд╕ाрдзрдиांрдЪी рдоाрдЧрдгी рдХрд░рдгाрд▒्рдпा рдЕрд╕рддीрд▓, рдд्рдпाрдоुрд│े рддुрдордЪ्рдпा рд╕िрд╕्рдЯрдордордз्рдпे рдХिрдоाрди резрем GB RAM, рдПрдХ SSD рдЖрдгि рдПрдХ рдЖрдзुрдиिрдХ рдорд▓्рдЯी-рдХोрд░ рдк्рд░ोрд╕ेрд╕рд░ (рдЙрджा. Intel Core i5/i7 рдХिंрд╡ा AMD Ryzen 5/7) рдЕрд╕рдгे рдорд╣рдд्рдд्рд╡ाрдЪे рдЖрд╣े. Android Studio рдбाрдЙрдирд▓ोрдб рдЖрдгि рдЗрди्рд╕्рдЯॉрд▓ рдХрд░рдг्рдпाрд╕ाрдаी, рдд्рдпाрдЪ्рдпा рдЕрдзिрдХृрдд рд╡ेрдмрд╕ाрдЗрдЯрд▓ा рднेрдЯ рдж्рдпा. рдЗрди्рд╕्рдЯॉрд▓ेрд╢рди рдк्рд░рдХ्рд░िрдпा рд╕ोрдкी рдЖрд╣े, рдлрдХ्рдд рдСрди-рд╕्рдХ्рд░ीрди рд╕ूрдЪрдиांрдЪे рдкाрд▓рди рдХрд░ा. рдЗрди्рд╕्рдЯॉрд▓ेрд╢рдирдиंрддрд░, рддुрдо्рд╣ाрд▓ा Android SDK (Software Development Kit) рдЪे рдЖрд╡рд╢्рдпрдХ рдШрдЯрдХ рдбाрдЙрдирд▓ोрдб рдХрд░ाрд╡े рд▓ाрдЧрддीрд▓, рдЬ्рдпाрдд рдЕँрдб्рд░ॉрдЗрдб рдк्рд▓ॅрдЯрдлॉрд░्рдо рдЯूрд▓्рд╕, рдмिрд▓्рдб рдЯूрд▓्рд╕ рдЖрдгि рдЗрдо्рдпुрд▓ेрдЯрд░ (emulator) рдпांрдЪा рд╕рдоाрд╡ेрд╢ рдЕрд╕рддो. рд╣े рд╕рд░्рд╡ Android Studio рдЪ्рдпा 'SDK Manager' рдордзूрди рд╡्рдпрд╡рд╕्рдеाрдкिрдд рдХрд░рддा рдпेрддे.
рдПрдХрджा Android Studio рдЖрдгि SDK рд╕ेрдЯ рдЭाрд▓े рдХी, рддुрдо्рд╣ाрд▓ा рддुрдордЪे рдкрд╣िрд▓े рдк्рд░ोрдЬेрдХ्рдЯ рддрдпाрд░ рдХрд░ाрд╡े рд▓ाрдЧेрд▓. Android Studio рдЙрдШрдбрд▓्рдпाрд╡рд░, 'New Project' рдкрд░्рдпाрдп рдиिрд╡рдбा. рддुрдо्рд╣ाрд▓ा рд╡िрд╡िрдз 'рдЯेрдо्рдкрд▓ेрдЯ्рд╕' (templates) рджिрд╕рддीрд▓, рдЬрд╕े рдХी 'Empty Activity', 'Basic Activity' рдЗрдд्рдпाрджी. рд╕ुрд░ुрд╡ाрддीрд╕ाрдаी, 'Empty Activity' рдиिрд╡рдбрдгे рд╕рд░्рд╡ोрдд्рддрдо рдЖрд╣े, рдХाрд░рдг рддे рддुрдо्рд╣ाрд▓ा рдХрдоीрдд рдХрдоी рдЕрддिрд░िрдХ्рдд рдХोрдбрд╕рд╣ рдПрдХ рд╕्рд╡рдЪ्рдЫ рдк्рд░ोрдЬेрдХ्рдЯ рджेрддे. рдк्рд░ोрдЬेрдХ्рдЯ рддрдпाрд░ рдХрд░рддाрдиा, рддुрдо्рд╣ाрд▓ा ре▓рдкрдЪे рдиाрд╡, рдкॅрдХेрдЬрдЪे рдиाрд╡ рдЖрдгि 'рдоिрдиिрдордо SDK рд╡्рд╣рд░्рдЬрди' (Minimum SDK Version) рдиिрд╡рдбрдг्рдпाрд╕ рд╕ांрдЧिрддрд▓े рдЬाрдИрд▓. рдоिрдиिрдордо SDK рд╡्рд╣рд░्рдЬрди рдо्рд╣рдгрдЬे рддुрдордЪे ре▓рдк рдЬ्рдпा рдЕँрдб्рд░ॉрдЗрдб рд╡्рд╣рд░्рдЬрдирд╡рд░ рдЪाрд▓ेрд▓ рдд्рдпाрдЪी рд╕рд░्рд╡ाрдд рдХрдоी рдЖрд╡ृрдд्рддी. реирежреирем рд╕ाрдаी, рдХिрдоाрди рдЕँрдб्рд░ॉрдЗрдб резрез (API 30) рдХिंрд╡ा резреи (API 31) рдиिрд╡рдбрдгे рдпोрдЧ्рдп рдард░ू рд╢рдХрддे, рдХाрд░рдг рдЬुрди्рдпा рдЖрд╡ृрдд्рдд्рдпांрдЪा рд╡ाрдкрд░ рдХрдоी рд╣ोрдд рдЬाрдИрд▓. рднाрд╖ा рдо्рд╣рдгूрди 'Kotlin' рдиिрд╡рдбрдг्рдпाрдЪी рдЦाрдд्рд░ी рдХрд░ा. рдпाрдиंрддрд░, Android Studio рддुрдордЪ्рдпाрд╕ाрдаी рдк्рд░ोрдЬेрдХ्рдЯрдЪी рд░рдЪрдиा (structure) рддрдпाрд░ рдХрд░ेрд▓, рдЬ्рдпाрдд `app` рдлोрд▓्рдбрд░, `src` рдлोрд▓्рдбрд░, `res` рдлोрд▓्рдбрд░ рдЖрдгि `build.gradle` рдлाрдЗрд▓्рд╕ рдЕрд╕рддीрд▓.
рдк्рд░ोрдЬेрдХ्рдЯ рд╕ेрдЯ рдЭाрд▓्рдпाрд╡рд░, рддुрдо्рд╣ी рддुрдордЪे ре▓рдк рдЗрдо्рдпुрд▓ेрдЯрд░рд╡рд░ (emulator) рдХिंрд╡ा рдк्рд░рдд्рдпрдХ्рд╖ рдбिрд╡्рд╣ाрдЗрд╕рд╡рд░ (physical device) рдЪाрд▓рд╡ूрди рдкाрд╣ू рд╢рдХрддा. рдЗрдо्рдпुрд▓ेрдЯрд░ рд╡ाрдкрд░рдг्рдпाрд╕ाрдаी, Android Studio рдордз्рдпे 'AVD Manager' (Android Virtual Device Manager) рдордзूрди рдПрдХ рдирд╡ीрди рд╡्рд╣рд░्рдЪ्рдпुрдЕрд▓ рдбिрд╡्рд╣ाрдЗрд╕ рддрдпाрд░ рдХрд░ा. рддुрдо्рд╣ी рд╡ेрдЧрд╡ेрдЧрд│्рдпा рд╕्рдХ्рд░ीрди рдЖрдХाрд░ рдЖрдгि рдЕँрдб्рд░ॉрдЗрдб рд╡्рд╣рд░्рдЬрдирд╕рд╣ рдбिрд╡्рд╣ाрдЗрд╕ рдиिрд╡рдбू рд╢рдХрддा. рдк्рд░рдд्рдпрдХ्рд╖ рдбिрд╡्рд╣ाрдЗрд╕ рд╡ाрдкрд░рдд рдЕрд╕рд▓्рдпाрд╕, рддुрдо्рд╣ाрд▓ा рддुрдордЪ्рдпा рдлोрдирд╡рд░ 'рдбेрд╡्рд╣рд▓рдкрд░ рдСрдк्рд╢рди्рд╕' (Developer Options) рдЖрдгि 'USB рдбीрдмрдЧिंрдЧ' (USB Debugging) рд╕рдХ्рд╖рдо рдХрд░ाрд╡े рд▓ाрдЧेрд▓. рдПрдХрджा рдбिрд╡्рд╣ाрдЗрд╕ рдХрдиेрдХ्рдЯ рдЭाрд▓्рдпाрд╡рд░, Android Studio рдЪ्рдпा рдЯूрд▓рдмाрд░рдордзीрд▓ 'Run' рдмрдЯрдгाрд╡рд░ рдХ्рд▓िрдХ рдХрд░ा. Gradle рдмिрд▓्рдб рдк्рд░рдХ्рд░िрдпा рд╕ुрд░ू рд╣ोрдИрд▓ рдЖрдгि рддुрдордЪे ре▓рдк рдиिрд╡рдбрд▓ेрд▓्рдпा рдбिрд╡्рд╣ाрдЗрд╕рд╡рд░ рдЗрди्рд╕्рдЯॉрд▓ рд╣ोрдКрди рдЪाрд▓ेрд▓. рдпा рдЯрдк्рдк्рдпाрд╡рд░, рддुрдо्рд╣ाрд▓ा рддुрдордЪ्рдпा ре▓рдкрдордз्рдпे 'Hello World!' рдЕрд╕े рд▓िрд╣िрд▓ेрд▓े рджिрд╕ेрд▓, рдЬे рддुрдордЪ्рдпा рд╡िрдХाрд╕ рд╡ाрддाрд╡рд░рдгाрдЪी рдпрд╢рд╕्рд╡ी рд╕्рдеाрдкрдиा рджрд░्рд╢рд╡рддे. рдпाрдиंрддрд░, рддुрдо्рд╣ी рдХोрдЯрд▓िрди рдХोрдб рд▓िрд╣ाрдпрд▓ा рдЖрдгि ре▓рдкрдЪी рд░рдЪрдиा рдХрд░ाрдпрд▓ा рд╕ुрд░ुрд╡ाрдд рдХрд░ू рд╢рдХрддा.
рдХोрдЯрд▓िрдирдЪे рдоूрд▓рднूрдд рд╕िрдж्рдзांрдд рдЖрдгि рдЕँрдб्рд░ॉрдЗрдбрд╕ाрдаी рдд्рдпाрдЪा рд╡ाрдкрд░
рдЕँрдб्рд░ॉрдЗрдб ре▓рдк рдбेрд╡्рд╣рд▓рдкрдоेंрдЯрдордз्рдпे рдк्рд░рднुрдд्рд╡ рдоिрд│рд╡рдг्рдпाрд╕ाрдаी, рдХोрдЯрд▓िрдирдЪ्рдпा рдоूрд▓рднूрдд рд╕िрдж्рдзांрддांрд╡рд░ рдордЬрдмूрдд рдкрдХрдб рдЕрд╕рдгे рдЕрдд्рдпंрдд рдЖрд╡рд╢्рдпрдХ рдЖрд╣े. рдХोрдЯрд▓िрди рд╣ी рдПрдХ рдЖрдзुрдиिрдХ, рдСрдм्рдЬेрдХ्рдЯ-рдУрд░िрдПंрдЯेрдб рдЖрдгि рдлंрдХ्рд╢рдирд▓ рдк्рд░ोрдЧ्рд░ाрдоिंрдЧ рднाрд╖ा рдЖрд╣े. рдпाрдордз्рдпे рд╡्рд╣ेрд░िрдПрдмрд▓्рд╕ (variables) рджोрди рдк्рд░рдХाрд░рдЪे рдЕрд╕рддाрдд: `val` (immutable, рдо्рд╣рдгрдЬे рдПрдХрджा рд╡्рд╣ॅрд▓्рдпू рджिрд▓ी рдХी рдмрджрд▓рддा рдпेрдд рдиाрд╣ी) рдЖрдгि `var` (mutable, рдо्рд╣рдгрдЬे рд╡्рд╣ॅрд▓्рдпू рдмрджрд▓рддा рдпेрддे). рдбेрдЯा рдк्рд░рдХाрд░ (data types) рдЬрд╕े рдХी `Int`, `Double`, `Boolean`, `String` рд╣े рдЬाрд╡ाрдк्рд░рдоाрдгेрдЪ рдЖрд╣ेрдд, рдкрд░ंрддु рдХोрдЯрд▓िрдирдордз्рдпे рддे рдСрдм्рдЬेрдХ्рдЯ्рд╕ рдо्рд╣рдгूрди рд╣ाрддाрд│рд▓े рдЬाрддाрдд. рдХंрдЯ्рд░ोрд▓ рдл्рд▓ो (control flow) рд╕्рдЯेрдЯрдоेंрдЯ्рд╕ рдЬрд╕े рдХी `if/else`, `when` (рдЬाрд╡ाрдЪ्рдпा `switch` рд╕ाрд░рдЦे), `for` рд▓ूрдк рдЖрдгि `while` рд▓ूрдк рд╣े рдХोрдбрдЪ्рдпा рдк्рд░рд╡ाрд╣ाрд╡рд░ рдиिрдпंрдд्рд░рдг рдаेрд╡рдг्рдпाрд╕ाрдаी рд╡ाрдкрд░рд▓े рдЬाрддाрдд. `when` рдПрдХ्рд╕рдк्рд░ेрд╢рди рд╡िрд╢ेрд╖рддः рд╢рдХ्рддिрд╢ाрд▓ी рдЖрд╣े, рдХाрд░рдг рддे рдХेрд╡рд│ рд╡्рд╣ॅрд▓्рдпूрдЬрдЪी рддुрд▓рдиा рдХрд░рдд рдиाрд╣ी, рддрд░ рдХंрдбिрд╢рди्рд╕ (conditions) рджेрдЦीрд▓ рддрдкाрд╕ू рд╢рдХрддे рдЖрдгि рдПрдХ्рд╕рдк्рд░ेрд╢рди рдо्рд╣рдгूрди рд╡्рд╣ॅрд▓्рдпू рдкрд░рдд рдХрд░ू рд╢рдХрддे, рдЬ्рдпाрдоुрд│े рдХोрдб рдЕрдзिрдХ рд╕ंрдХ्рд╖िрдк्рдд рд╣ोрддो.
рдлंрдХ्рд╢рди (functions) рд╣े рдХोрдЯрд▓िрдирдордзीрд▓ рдХोрдб рдм्рд▓ॉрдХ рдЖрд╣ेрдд рдЬे рд╡िрд╢िрд╖्рдЯ рдХाрд░्рдп рдХрд░рддाрдд. рдлंрдХ्рд╢рди `fun` рдХीрд╡рд░्рдбрдиे рдкрд░िрднाрд╖िрдд рдХेрд▓े рдЬाрддाрдд рдЖрдгि рддे рдкॅрд░ाрдоीрдЯрд░्рд╕ (parameters) рдШेрдК рд╢рдХрддाрдд рддрд╕ेрдЪ рд╡्рд╣ॅрд▓्рдпू рдкрд░рдд рдХрд░ू рд╢рдХрддाрдд. рдСрдм्рдЬेрдХ्рдЯ-рдУрд░िрдПंрдЯेрдб рдк्рд░ोрдЧ्рд░ाрдоिंрдЧ (OOP) рд╕ंрдХрд▓्рдкрдиा, рдЬрд╕े рдХी рдХ्рд▓ाрд╕ेрд╕ (classes), рдСрдм्рдЬेрдХ्рдЯ्рд╕ (objects), рдЗрдирд╣ेрд░िрдЯрди्рд╕ (inheritance) рдЖрдгि рдЗंрдЯрд░рдлेрд╕ेрд╕ (interfaces), рдХोрдЯрд▓िрдирдордз्рдпे рдЕрдзिрдХ рд╕ोрдк्рдпा рдЖрдгि рд╕ुрд░рдХ्рд╖िрдд рдоाрд░्рдЧाрдиे рд▓ाрдЧू рдХेрд▓्рдпा рдЬाрддाрдд. рдЙрджाрд╣рд░рдгाрд░्рде, рдХोрдЯрд▓िрдирдордз्рдпे 'рдбेрдЯा рдХ्рд▓ाрд╕ेрд╕' (data classes) рдЖрд╣ेрдд, рдЬे рдбेрдЯा рд╕्рдЯोрд░ेрдЬрд╕ाрдаी рдЙрдкрдпुрдХ्рдд рдЕрд╕рддाрдд рдЖрдгि `equals()`, `hashCode()`, `toString()` рдпांрд╕ाрд░рдЦे рдоेрдердб्рд╕ рдЖрдкोрдЖрдк рдЬрдирд░ेрдЯ рдХрд░рддाрдд. 'рдирд▓्рд▓िрдлाрдИрдб' (nullability) рд╣ाрддाрд│рдг्рдпाрдЪी рдХोрдЯрд▓िрдирдЪी рдХ्рд╖рдорддा рд╣ी рдПрдХ рдЧेрдо-рдЪेंрдЬрд░ рдЖрд╣े. `?` рдСрдкрд░ेрдЯрд░ рд╡ाрдкрд░ूрди рддुрдо्рд╣ी рд╡्рд╣ेрд░िрдПрдмрд▓ рдирд▓ (null) рдЕрд╕ू рд╢рдХрддे рдХी рдиाрд╣ी рд╣े рд╕्рдкрд╖्рдЯрдкрдгे рджрд░्рд╢рд╡ू рд╢рдХрддा рдЖрдгि `?.` (рд╕ेрдл рдХॉрд▓ рдСрдкрд░ेрдЯрд░) рдХिंрд╡ा `!!` (рдиॉрди-рдирд▓ рдЕрд╕рд░्рд╢рди рдСрдкрд░ेрдЯрд░) рд╡ाрдкрд░ूрди рдирд▓्рд╕ рд╕ुрд░рдХ्рд╖िрддрдкрдгे рд╣ाрддाрд│ू рд╢рдХрддा, рдЬ्рдпाрдоुрд│े 'NullPointerException' рдЯाрд│рддा рдпेрддाрдд.
рдЕँрдб्рд░ॉрдЗрдб рдбेрд╡्рд╣рд▓рдкрдоेंрдЯрдордз्рдпे, рдХोрдЯрд▓िрдирдЪे рд╣े рдоूрд▓рднूрдд рд╕िрдж्рдзांрдд рдеेрдЯ рд▓ाрдЧू рд╣ोрддाрдд. рдЙрджाрд╣рд░рдгाрд░्рде, рддुрдо्рд╣ी ре▓рдХ्рдЯिрд╡्рд╣िрдЯी (Activity) рдордз्рдпे UI рдШрдЯрдХ (UI elements) рд╣ाрддाрд│рдг्рдпाрд╕ाрдаी рдлंрдХ्рд╢рди рд▓िрд╣िрддा, рдбेрдЯा рдоॉрдбेрд▓рд╕ाрдаी рдбेрдЯा рдХ्рд▓ाрд╕ेрд╕ рд╡ाрдкрд░рддा рдЖрдгि рд╡ाрдкрд░рдХрд░्рдд्рдпाрдЪ्рдпा рдЗрдирдкुрдЯрд╡рд░ рдЖрдзाрд░िрдд рд▓ॉрдЬिрдХрд╕ाрдаी рдХंрдЯ्рд░ोрд▓ рдл्рд▓ो рд╕्рдЯेрдЯрдоेंрдЯ्рд╕ рд╡ाрдкрд░рддा. 'рдПрдХ्рд╕рдЯेंрд╢рди рдлंрдХ्рд╢рди्рд╕' (extension functions) рд╣े рдХोрдЯрд▓िрдирдЪे рдПрдХ рд╢рдХ्рддिрд╢ाрд▓ी рд╡ैрд╢िрд╖्рдЯ्рдп рдЖрд╣े, рдЬे рддुрдо्рд╣ाрд▓ा рдХोрдгрдд्рдпाрд╣ी рдХ्рд▓ाрд╕рдордз्рдпे рдирд╡ीрди рдлंрдХ्рд╢рди्рд╕ рдЬोрдбрдг्рдпाрдЪी рдкрд░рд╡ाрдирдЧी рджेрддे, рдХ्рд▓ाрд╕рдЪा рд╕ोрд░्рд╕ рдХोрдб рди рдмрджрд▓рддा. рд╣े рдЕँрдб्рд░ॉрдЗрдбрдордз्рдпे UI рдШрдЯрдХांрд╕ोрдмрдд рдХाрдо рдХрд░рддाрдиा рдХोрдб рдЕрдзिрдХ рд╡ाрдЪрдиीрдп рдЖрдгि рд╕ंрдХ्рд╖िрдк्рдд рдмрдирд╡рдг्рдпाрд╕ाрдаी рдЦूрдк рдЙрдкрдпुрдХ्рдд рдард░рддे. рдпाрд╡्рдпрддिрд░िрдХ्рдд, рдХोрдЯрд▓िрди 'рдХोрд░ूрдЯीрди्рд╕' (Coroutines) рд╕рд╣ рдЕрд╕िंрдХ्рд░ोрдирд╕ рдк्рд░ोрдЧ्рд░ाрдоिंрдЧрд╕ाрдаी (asynchronous programming) рдЙрдд्рдХृрд╖्рдЯ рд╕рдорд░्рдерди рджेрддे, рдЬे UI рде्рд░ेрдб рдм्рд▓ॉрдХ рди рдХрд░рддा рд▓ाँрдЧ-рд░рдиिंрдЧ рдСрдкрд░ेрд╢рди्рд╕ (рдЙрджा. рдиेрдЯрд╡рд░्рдХ рдХॉрд▓्рд╕, рдбेрдЯाрдмेрд╕ рдСрдкрд░ेрд╢рди्рд╕) рд╣ाрддाрд│рдг्рдпाрд╕ाрдаी рдорд╣рдд्рдд्рд╡ाрдЪे рдЖрд╣े. рдХोрдЯрд▓िрдирдЪ्рдпा рдпा рдоूрд▓рднूрдд рд╕ंрдХрд▓्рдкрдиा рд╕рдордЬूрди рдШेрддрд▓्рдпाрд╕, рддुрдо्рд╣ी рдХाрд░्рдпрдХ्рд╖рдо, рд╕ुрд░рдХ्рд╖िрдд рдЖрдгि рдЖрдзुрдиिрдХ рдЕँрдб्рд░ॉрдЗрдб ре▓рдк्рд╕ рддрдпाрд░ рдХрд░рдг्рдпाрд╕ рд╕рдХ्рд╖рдо рд╡्рд╣ाрд▓.
рдЕँрдб्рд░ॉрдЗрдб ре▓рдк рд╡िрдХाрд╕ाрдЪ्рдпा рдоूрд▓рднूрдд рд╕ंрдХрд▓्рдкрдиा
рдХोрдЯрд▓िрдирдЪ्рдпा рдоूрд▓рднूрдд рдЧोрд╖्рдЯींрд╡рд░ рдк्рд░рднुрдд्рд╡ рдоिрд│рд╡рд▓्рдпाрдиंрддрд░, рддुрдо्рд╣ाрд▓ा рдЕँрдб्рд░ॉрдЗрдб ре▓рдк рдбेрд╡्рд╣рд▓рдкрдоेंрдЯрдЪ्рдпा рд╡िрд╢िрд╖्рдЯ рд╕ंрдХрд▓्рдкрдиा рд╕рдордЬूрди рдШेрдгे рдЖрд╡рд╢्рдпрдХ рдЖрд╣े. рдЕँрдб्рд░ॉрдЗрдб ре▓рдк्рд╕ 'рдХंрдкोрдиंрдЯ्рд╕' (components) рдкाрд╕ूрди рдмрдирд╡рд▓ेрд▓े рдЕрд╕рддाрдд, рдЬ्рдпाрдд ре▓рдХ्рдЯिрд╡्рд╣िрдЯी (Activities), рд╕рд░्рд╡िрд╕ेрд╕ (Services), рдм्рд░ॉрдбрдХाрд╕्рдЯ рд░िрд╕ीрд╡्рд╣рд░्рд╕ (Broadcast Receivers) рдЖрдгि рдХंрдЯेंрдЯ рдк्рд░ोрд╡्рд╣ाрдпрдбрд░्рд╕ (Content Providers) рдпांрдЪा рд╕рдоाрд╡ेрд╢ рд╣ोрддो. ре▓рдХ्рдЯिрд╡्рд╣िрдЯी рд╣ा рд╕рд░्рд╡ाрдд рдорд╣рдд्рдд्рд╡ाрдЪा рдШрдЯрдХ рдЖрд╣े, рдХाрд░рдг рддो рд╕्рдХ्рд░ीрдирд╡рд░ीрд▓ рд╡ाрдкрд░рдХрд░्рдд्рдпाрдЪ्рдпा рдЗंрдЯрд░рдлेрд╕рдЪे (UI) рдк्рд░рддिрдиिрдзिрдд्рд╡ рдХрд░рддो. рдк्рд░рдд्рдпेрдХ ре▓рдХ्рдЯिрд╡्рд╣िрдЯीрдЪे рд╕्рд╡рддःрдЪे рд▓ाрдЗрдлрд╕ाрдпрдХрд▓ (Lifecycle) рдЕрд╕рддे, рдЬ्рдпाрдд `onCreate()`, `onStart()`, `onResume()`, `onPause()`, `onStop()`, `onDestroy()` рдпांрд╕ाрд░рдЦ्рдпा рдоेрдердб्рд╕ рдЕрд╕рддाрдд. рдпा рдоेрдердб्рд╕рдордз्рдпे рдпोрдЧ्рдп рдХोрдб рд▓िрд╣ूрди, рддुрдо्рд╣ी ре▓рдкрдЪ्рдпा рд╡ेрдЧрд╡ेрдЧрд│्рдпा рд╕्рдеिрддींрдордз्рдпे (states) рдпोрдЧ्рдп рд╡рд░्рддрди рд╕ुрдиिрд╢्рдЪिрдд рдХрд░ू рд╢рдХрддा. реирежреирем рдордз्рдпे, 'рдл्рд░ॅрдЧрдоेंрдЯ' (Fragments) рджेрдЦीрд▓ ре▓рдк्рд╕рдЪ्рдпा рдоॉрдб्рдпूрд▓рд░ рдбिрдЭाрдЗрдирд╕ाрдаी рдЖрдгि рд╡ेрдЧрд╡ेрдЧрд│्рдпा рд╕्рдХ्рд░ीрди рдЖрдХाрд░ांрд╢ी рдЬुрд│рд╡ूрди рдШेрдг्рдпाрд╕ाрдаी рдЕрдд्рдпंрдд рдорд╣рдд्рдд्рд╡ाрдЪे рд░ाрд╣рддीрд▓. рдл्рд░ॅрдЧрдоेंрдЯ рд╣े ре▓рдХ्рдЯिрд╡्рд╣िрдЯीрдордз्рдпे рдкुрди्рд╣ा рд╡ाрдкрд░рддा рдпेрдг्рдпाрдЬोрдЧे UI рдШрдЯрдХ рдЖрд╣ेрдд, рдЬे рдПрдХाрдЪ ре▓рдХ्рдЯिрд╡्рд╣िрдЯीрдордз्рдпे рдЕрдиेрдХ UI рд╕्рдХ्рд░ीрди рд╡्рдпрд╡рд╕्рдеाрдкिрдд рдХрд░рдг्рдпाрд╕ рдорджрдд рдХрд░рддाрдд.
ре▓рдкрдЪा рд╡ाрдкрд░рдХрд░्рддा рдЗंрдЯрд░рдлेрд╕ (UI) рдбिрдЭाрдЗрди рдХрд░рдг्рдпाрд╕ाрдаी, рддुрдо्рд╣ाрд▓ा рд▓ेрдЖрдЙрдЯ्рд╕ (layouts) рдЖрдгि рд╡्рд╣्рдпूрдЬ (views) рд╕рдордЬूрди рдШेрдгे рдЖрд╡рд╢्рдпрдХ рдЖрд╣े. рдкाрд░ंрдкाрд░िрдХрдкрдгे, рдЕँрдб्рд░ॉрдЗрдбрдордз्рдпे UI XML рдлाрдЗрд▓्рд╕ рд╡ाрдкрд░ूрди рдбिрдЭाрдЗрди рдХेрд▓े рдЬाрддे, рдЬे `res/layout` рдлोрд▓्рдбрд░рдордз्рдпे рдЕрд╕рддाрдд. `LinearLayout`, `RelativeLayout`, `ConstraintLayout` рд╣े рд╕ाрдоाрди्рдпрддः рд╡ाрдкрд░рд▓े рдЬाрдгाрд░े рд▓ेрдЖрдЙрдЯ рдХंрдЯेрдирд░्рд╕ рдЖрд╣ेрдд рдЬे рд╡्рд╣्рдпूрдЬ (рдЙрджा. `TextView`, `Button`, `EditText`, `ImageView`) рдХрд╕े рдоांрдбрд▓े рдЬाрддाрдд рд╣े рдард░рд╡рддाрдд. реирежреирем рдордз्рдпे, Jetpack Compose рд╣े рдЖрдзुрдиिрдХ, рдбिрдХ्рд▓ेрд░ेрдЯिрд╡्рд╣ UI рдЯूрд▓рдХिрдЯ рдЕрдзिрдХ рдк्рд░рдЪрд▓िрдд рд╣ोрдИрд▓. рд╣े рдХोрдЯрд▓िрдирдордз्рдпे рдеेрдЯ UI рддрдпाрд░ рдХрд░рдг्рдпाрдЪी рдкрд░рд╡ाрдирдЧी рджेрддे, XML рдЪी рдЧрд░рдЬ рдХрдоी рдХрд░рддे рдЖрдгि UI рдбेрд╡्рд╣рд▓рдкрдоेंрдЯ рдк्рд░рдХ्рд░िрдпा рд╡ेрдЧрд╡ाрди рдХрд░рддे. Compose рд╢िрдХрдгे рд╣े рднрд╡िрд╖्рдпाрддीрд▓ рдЕँрдб्рд░ॉрдЗрдб рдбेрд╡्рд╣рд▓рдкрд░्рд╕рд╕ाрдаी рдПрдХ рдЖрд╡рд╢्рдпрдХ рдХौрд╢рд▓्рдп рдмрдирд▓े рдЖрд╣े, рдХाрд░рдг рддे UI рдХोрдб рдЕрдзिрдХ рд╕ंрдХ्рд╖िрдк्рдд рдЖрдгि рдк्рд░рддिрдХ्рд░िрдпाрд╢ीрд▓ (reactive) рдмрдирд╡рддे.
рдЕँрдб्рд░ॉрдЗрдб ре▓рдк्рд╕рдиा рдЕрдиेрдХрджा рд╡ेрдЧрд╡ेрдЧрд│्рдпा ре▓рдХ्рдЯिрд╡्рд╣िрдЯींрдордз्рдпे рдХिंрд╡ा рдЗрддрд░ ре▓рдк्рд╕рд╕ोрдмрдд рд╕ंрд╡ाрдж рд╕ाрдзрдг्рдпाрдЪी рдЧрд░рдЬ рдЕрд╕рддे. рдпाрд╕ाрдаी 'рдЗंрдЯेंрдЯ्рд╕' (Intents) рд╡ाрдкрд░рд▓े рдЬाрддाрдд. рдЗंрдЯेंрдЯ्рд╕ ре▓рдХ्рдЯिрд╡्рд╣िрдЯी рд╕ुрд░ू рдХрд░рдг्рдпाрд╕ाрдаी, рд╕ेрд╡ा рд╕ुрд░ू рдХрд░рдг्рдпाрд╕ाрдаी рдХिंрд╡ा рдм्рд░ॉрдбрдХाрд╕्рдЯ рд╕ंрджेрд╢ рдкाрдард╡рдг्рдпाрд╕ाрдаी рд╡ाрдкрд░рд▓े рдЬाрддाрдд. 'рдкрд░рд╡ाрдирдЧ्рдпा' (Permissions) рд╣ी рдЕँрдб्рд░ॉрдЗрдбрдЪी рдПрдХ рдорд╣рдд्рдд्рд╡ाрдЪी рд╕ुрд░рдХ्рд╖ा рд╕ंрдХрд▓्рдкрдиा рдЖрд╣े. рддुрдордЪ्рдпा ре▓рдкрд▓ा рд╡ाрдкрд░рдХрд░्рдд्рдпाрдЪ्рдпा рдХॅрдоेрд░ा, рд▓ोрдХेрд╢рди рдХिंрд╡ा рд╕ंрдкрд░्рдХांрд╕ाрд░рдЦ्рдпा рд╕ंрд╡ेрджрдирд╢ीрд▓ рдбेрдЯाрдордз्рдпे рдк्рд░рд╡ेрд╢ рд╣рд╡ा рдЕрд╕рд▓्рдпाрд╕, рддुрдо्рд╣ाрд▓ा рд╡ाрдкрд░рдХрд░्рдд्рдпाрдХрдбूрди рдкрд░рд╡ाрдирдЧी рдШ्рдпाрд╡ी рд▓ाрдЧрддे. рдбेрдЯा рд╕्рдЯोрд░ेрдЬрд╕ाрдаी, рдЕँрдб्рд░ॉрдЗрдб рдЕрдиेрдХ рдкрд░्рдпाрдп рдкुрд░рд╡рддे: 'рд╢ेрдЕрд░्рдб рдк्рд░ेрдлрд░рди्рд╕ेрд╕' (Shared Preferences) рд▓рд╣ाрди, рдЦाрд╕рдЧी рдбेрдЯाрд╕ाрдаी, 'рд░ूрдо рдбेрдЯाрдмेрд╕' (Room Database) рд╕ंрд░рдЪिрдд рдЖрдгि рдоोрда्рдпा рдбेрдЯाрд╕ाрдаी (SQL рдбेрдЯाрдмेрд╕рдЪा рдПрдХ ре▓рдм्рд╕्рдЯ्рд░ॅрдХ्рд╢рди рд▓ेрдпрд░) рдЖрдгि 'рдлाрдЗрд▓ рд╕्рдЯोрд░ेрдЬ' (File Storage) рдоोрда्рдпा рдлाрдЗрд▓्рд╕рд╕ाрдаी. рдпा рдоूрд▓рднूрдд рд╕ंрдХрд▓्рдкрдиांрд╡рд░ рдордЬрдмूрдд рдкрдХрдб рдаेрд╡рд▓्рдпाрд╕, рддुрдо्рд╣ी рдХेрд╡рд│ ре▓рдк्рд╕ рддрдпाрд░ рдХрд░ू рд╢рдХрдгाрд░ рдиाрд╣ी, рддрд░ рддे рд╕ुрд░рдХ्рд╖िрдд, рдХाрд░्рдпрдХ्рд╖рдо рдЖрдгि рд╡ाрдкрд░рдХрд░्рдд्рдпांрд╕ाрдаी рдЕрдиुрдХूрд▓ рдмрдирд╡ू рд╢рдХाрд▓, рдЬे реирежреирем рдЪ्рдпा рдЕँрдб्рд░ॉрдЗрдб рдЗрдХोрд╕िрд╕्рдЯрдордордз्рдпे рдпрд╢рд╕्рд╡ी рд╣ोрдг्рдпाрд╕ाрдаी рдорд╣рдд्рдд्рд╡ाрдЪे рдЖрд╣े.
рддुрдордЪे рдкрд╣िрд▓े ре▓рдк рддрдпाрд░ рдХрд░рдгे: рдПрдХ рд╡्рдпाрд╡рд╣ाрд░िрдХ рджृрд╖्рдЯिрдХोрди
рдЖрддाрдкрд░्рдпंрдд рддुрдо्рд╣ी рдХोрдЯрд▓िрди рдЖрдгि рдЕँрдб्рд░ॉрдЗрдбрдЪ्рдпा рдоूрд▓рднूрдд рд╕ंрдХрд▓्рдкрдиा рд╕рдордЬूрди рдШेрддрд▓्рдпा рдЖрд╣ेрдд. рдЖрддा рд╡ेрд│ рдЖрд▓ी рдЖрд╣े рддुрдордЪे рдкрд╣िрд▓े ре▓рдк рддрдпाрд░ рдХрд░рдг्рдпाрдЪी! рдПрдХ рд╕ाрдзे ре▓рдк рдмрдирд╡ूрди рд╕ुрд░ुрд╡ाрдд рдХрд░рдгे рд╣ा рд╕рд░्рд╡ोрдд्рддрдо рдоाрд░्рдЧ рдЖрд╣े. рдЙрджाрд╣рд░рдгाрд░्рде, рддुрдо्рд╣ी рдПрдХ рд╕ाрдзा рдХाрдЙंрдЯрд░ ре▓рдк (рдЬे рдмрдЯрдг рджाрдмрд▓्рдпाрд╡рд░ рд╕ंрдЦ्рдпा рд╡ाрдврд╡рддे), рдПрдХ рдЯू-рдбू рд▓िрд╕्рдЯ ре▓рдк (рдЬिрдеे рддुрдо्рд╣ी рдХाрд░्рдпे рдЬोрдбू рдЖрдгि рдХाрдвू рд╢рдХрддा) рдХिंрд╡ा рдПрдХ рдХॅрд▓्рдХ्рдпुрд▓ेрдЯрд░ ре▓рдк рдмрдирд╡ू рд╢рдХрддा. рдпाрд╕ाрд░рдЦ्рдпा рдк्рд░ोрдЬेрдХ्рдЯ्рд╕рдоुрд│े рддुрдо्рд╣ाрд▓ा UI рдбिрдЭाрдЗрди, рдЗрд╡्рд╣ेंрдЯ рд╣ाрддाрд│рдгी рдЖрдгि рдоूрд▓рднूрдд рд▓ॉрдЬिрдХ рдХрд╕े рд▓ाрдЧू рдХрд░ाрд╡े рд╣े рд╢िрдХाрдпрд▓ा рдоिрд│ेрд▓. ре▓рдкрдЪी рдХрд▓्рдкрдиा рдиिрд╢्рдЪिрдд рдХेрд▓्рдпाрд╡рд░, рд╕рд░्рд╡рдк्рд░рдердо UI рдбिрдЭाрдЗрдирд╡рд░ рд▓рдХ्рд╖ рдХेंрдж्рд░िрдд рдХрд░ा. рддुрдо्рд╣ी XML рд▓ेрдЖрдЙрдЯ्рд╕ рд╡ाрдкрд░рдд рдЕрд╕ाрд▓, рддрд░ `activity_main.xml` рдлाрдЗрд▓рдордз्рдпे `TextView` (рд╕ंрдЦ्рдпा рджрд░्рд╢рд╡рдг्рдпाрд╕ाрдаी), `Button` (рд╕ंрдЦ्рдпा рд╡ाрдврд╡рдг्рдпाрд╕ाрдаी) рдЖрдгि `ConstraintLayout` (рдШрдЯрдХ рд╡्рдпрд╡рд╕्рдеिрдд рдоांрдбрдг्рдпाрд╕ाрдаी) рдпांрд╕ाрд░рдЦे рдШрдЯрдХ рдЬोрдбा. рдЬрд░ рддुрдо्рд╣ी Jetpack Compose рд╡ाрдкрд░рдд рдЕрд╕ाрд▓, рддрд░ `MainActivity.kt` рдлाрдЗрд▓рдордз्рдпे `@Composable` рдлंрдХ्рд╢рди्рд╕ рд╡ाрдкрд░ूрди UI рдШрдЯрдХ (рдЙрджा. `Text`, `Button`, `Column`) рддрдпाрд░ рдХрд░ा. рдбिрдЭाрдЗрди рдХрд░рддाрдиा, рд╡ाрдкрд░рдХрд░्рддा рдЕрдиुрднрд╡ (User Experience - UX) рдЖрдгि рд╡ाрдкрд░рдХрд░्рддा рдЗंрдЯрд░рдлेрд╕ (User Interface - UI) рд╕ाрдзे рдЖрдгि рдЕंрддрд░्рдЬ्рдЮाрдиी (intuitive) рдХрд╕े рдЕрд╕рддीрд▓ рдпाрдЪा рд╡िрдЪाрд░ рдХрд░ा.
UI рдбिрдЭाрдЗрди рдкूрд░्рдг рдЭाрд▓्рдпाрд╡рд░, ре▓рдкрдЪे рд▓ॉрдЬिрдХ (logic) рд▓िрд╣िрдг्рдпाрдЪी рд╡ेрд│ рдпेрддे. `MainActivity.kt` рдлाрдЗрд▓рдордз्рдпे, `onCreate()` рдоेрдердбрдордз्рдпे UI рдШрдЯрдХांрдиा рдХोрдбрд╢ी рдЬोрдбा. XML рд▓ेрдЖрдЙрдЯ्рд╕рд╕ाрдаी, рддुрдо्рд╣ी `findViewById()` рд╡ाрдкрд░ू рд╢рдХрддा (рдХिंрд╡ा рдЕрдзिрдХ рдЖрдзुрдиिрдХ рдЖрдгि рд╕ुрд░рдХ्рд╖िрдд рдкрд░्рдпाрдп рдо्рд╣рдгूрди рд╡्рд╣्рдпू рдмाрдЗंрдбिंрдЧ - View Binding рд╡ाрдкрд░ू рд╢рдХрддा). Jetpack Compose рдордз्рдпे, `@Composable` рдлंрдХ्рд╢рдирдордз्рдпेрдЪ рд╕्рдЯेрдЯ (state) рд╡्рдпрд╡рд╕्рдеाрдкिрдд рдХेрд▓ी рдЬाрддे. рдЙрджाрд╣рд░рдгाрд░्рде, рдХाрдЙंрдЯрд░ ре▓рдкрдордз्рдпे, рддुрдо्рд╣ी рдПрдХ рд╡्рд╣ेрд░िрдПрдмрд▓ (`var count = 0`) рдШोрд╖िрдд рдХрд░ाрд▓ рдЖрдгि рдмрдЯрдгाрд╡рд░ рдХ्рд▓िрдХ рдХेрд▓्рдпाрд╡рд░ (`setOnClickListener` рдХिंрд╡ा Compose рдордз्рдпे `onClick` рд▓ॅрдо्рдбा) рд╣े рд╡्рд╣ेрд░िрдПрдмрд▓ рд╡ाрдврд╡ाрд▓ (`count++`). рдиंрддрд░, рд╡ाрдврд▓ेрд▓ी рд╕ंрдЦ्рдпा `TextView` (XML) рдХिंрд╡ा `Text` рдХंрдкोрдЬेрдмрд▓ (Compose) рдордз्рдпे рдЕрдкрдбेрдЯ рдХрд░ाрд▓. рдпेрдеेрдЪ рдХोрдЯрд▓िрдирдЪे рдоूрд▓рднूрдд рд╕िрдж्рдзांрдд рдЬрд╕े рдХी рд╡्рд╣ेрд░िрдПрдмрд▓्рд╕, рдлंрдХ्рд╢рди्рд╕ рдЖрдгि рдХंрдЯ्рд░ोрд▓ рдл्рд▓ो рд╕्рдЯेрдЯрдоेंрдЯ्рд╕ рдк्рд░рдд्рдпрдХ्рд╖ाрдд рдпेрддाрдд. рдХोрдб рд╕्рд╡рдЪ्рдЫ, рд╡ाрдЪрдиीрдп рдЖрдгि рдоॉрдб्рдпूрд▓рд░ рдаेрд╡рдг्рдпाрдЪा рдк्рд░рдпрдд्рди рдХрд░ा.
ре▓рдкрдЪे рд▓ॉрдЬिрдХ рд▓िрд╣िрд▓्рдпाрдиंрддрд░, рддे рдЗрдо्рдпुрд▓ेрдЯрд░рд╡рд░ рдХिंрд╡ा рддुрдордЪ्рдпा рдк्рд░рдд्рдпрдХ्рд╖ рдбिрд╡्рд╣ाрдЗрд╕рд╡рд░ рдЪाрд▓рд╡ूрди рдд्рдпाрдЪी рдЪाрдЪрдгी (testing) рдХрд░ा. рддुрдо्рд╣ाрд▓ा рдХाрд╣ी рд╕рдорд╕्рдпा рдЖрд▓्рдпाрд╕, рдбीрдмрдЧिंрдЧ (debugging) рд╣े рдПрдХ рдорд╣рдд्рдд्рд╡ाрдЪे рдХौрд╢рд▓्рдп рдЖрд╣े. Android Studio рдордз्рдпे рдбीрдмрдЧрд░ (debugger) рдЕрд╕рддो, рдЬो рддुрдо्рд╣ाрд▓ा рддुрдордЪ्рдпा рдХोрдбрдордз्рдпे рдм्рд░ेрдХрдкॉрдЗंрдЯ्рд╕ (breakpoints) рд╕ेрдЯ рдХрд░рдг्рдпाрдЪी рдЖрдгि рдХोрдбрдЪी рдЕंрдорд▓рдмрдЬाрд╡рдгी (execution) рд╕्рдЯेрдк-рдмाрдп-рд╕्рдЯेрдк рддрдкाрд╕рдг्рдпाрдЪी рдкрд░рд╡ाрдирдЧी рджेрддो. рд╡्рд╣ेрд░िрдПрдмрд▓्рд╕рдЪ्рдпा рд╡्рд╣ॅрд▓्рдпूрдЬ рдХाрдп рдЖрд╣ेрдд, рдХोрдб рдХोрдгрдд्рдпा рдХ्рд░рдоाрдиे рдЪाрд▓рдд рдЖрд╣े, рд╣े рдбीрдмрдЧрд░рдоुрд│े рд╕्рдкрд╖्рдЯ рд╣ोрддे. рд▓ॉрдЧрд░ (Logger) рд╡ाрдкрд░рдгे (рдЙрджा. `Log.d("TAG", "рд╕ंрджेрд╢")`) рджेрдЦीрд▓ рдбीрдмрдЧिंрдЧрд╕ाрдаी рдЙрдкрдпुрдХ्рдд рдЖрд╣े, рдХाрд░рдг рддे рддुрдо्рд╣ाрд▓ा ре▓рдк рдЪाрд▓рдд рдЕрд╕рддाрдиा рд╡िрд╢िрд╖्рдЯ рд╕ंрджेрд╢ рд▓ॉрдЧрдХॅрдЯ (Logcat) рд╡िंрдбोрдордз्рдпे рджрд░्рд╢рд╡рдг्рдпाрдЪी рдкрд░рд╡ाрдирдЧी рджेрддे. рддुрдордЪ्рдпा ре▓рдкрдЪी рд╡ेрдЧрд╡ेрдЧрд│्рдпा рдкрд░िрд╕्рдеिрддींрдордз्рдпे (рдЙрджा. рд╕्рдХ्рд░ीрди рд░ोрдЯेрд╢рди, рдмॅрдЯрд░ी рдХрдоी рдЕрд╕рддाрдиा) рдЪाрдЪрдгी рдХрд░ा. рддुрдордЪे рдкрд╣िрд▓े ре▓рдк рдпрд╢рд╕्рд╡ीрд░िрдд्рдпा рддрдпाрд░ рдХрд░рдгे рдЖрдгि рдбीрдмрдЧ рдХрд░рдгे рд╣ा рдПрдХ рдоोрдаा рдЯрдк्рдкा рдЖрд╣े, рдЬो рддुрдо्рд╣ाрд▓ा рдкुрдвीрд▓ рдк्рд░рдЧрдд рд╕ंрдХрд▓्рдкрдиा рд╢िрдХрдг्рдпाрд╕ाрдаी рдЖрдд्рдорд╡िрд╢्рд╡ाрд╕ рджेрдИрд▓.
рд╡िрдж्рдпाрд░्рде्рдпांрдЪ्рдпा рдк्рд░рддिрдХ्рд░िрдпा