Kotlin рдкрд░ Android рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП 7 рдкреБрд╕реНрддрдХрд╛рд▓рдп

Kotlin рдкрд░ Android рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП 7 рдкреБрд╕реНрддрдХрд╛рд▓рдп


рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдЯрд▓рд┐рди рд╕реАрдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдФрд░ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдордЬрд╝рд╛ рдЖрдпрд╛ред Kotlin, Swift рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдмрд╣реБрдд рд╕рдорд╛рди рд╣реИ, рдФрд░ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдореИрдВ рдПрдВрдбреНрд░реЙрдЗрдб рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЕрднреА рд╢реБрд░реБрдЖрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдХрдИ рдФрд░ рдЙрдкрдпреЛрдЧреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рдЕрднреА рддрдХ рд╕реАрдЦрдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реВрдЪреА рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреА рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдпрд╛ рдЬрд▓реНрдж рд╣реА рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реИред


1. рд╡рд╛рдЪрд╛


рдХреЛрд╡реЗрдиреНрдЯ, рдХреЛрдЯрд▓рд┐рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рджрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп (рд╕рд░рд▓реАрдХреГрдд рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП) рд╣реИред рдЕрдкрдиреА рдЕрдзрд┐рдХрд╛рдВрд╢ iOS рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдореИрдВ PromiseKit рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ , рдЗрд╕рд▓рд┐рдП рдореИрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдорд╛рди рдЦреЛрдЬрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рд╡рд╛рдЪрд╛ рдХреА рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореБрдЭреЗ рд╢рд╛рдорд┐рд▓ рд╣реИ (рдХреЗрд╡рд▓ рдЕрдВрддрд░ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рд╡рд╣ PromiseKit рдХреЗ рдмрд░рд╛рдмрд░ recover рдлрд╝рдВрдХреНрд╢рди рдХреА рдХрдореА рд╣реИ), рдЗрд╕рд▓рд┐рдП рдпрд╣ рдореБрдЭреЗ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИред


2. рдкрд┐рдХрд╛рд╕реЛ


рдпрджрд┐ рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдХрд╛рд╕реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рдХреИрд╢рд┐рдВрдЧ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдЙрдиреНрд╣реЗрдВ рднреА рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:


 Picasso.get().load(url).resize(50, 50).centerCrop().into(imageView) 

рдореИрдВ рдкрд┐рдХреИрд╕реЛ-рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдореЗрд╢рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ , рдЬреЛ рдкрд┐рдХрд╛рд╕реЛ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рд╕рд░реНрдХрд▓ рдХреЗ рдЖрдХрд╛рд░ рдореЗрдВ рдХреНрд░реЙрдкрд┐рдВрдЧред


рд╡реИрд╕реЗ, рдореБрдЭреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ Google рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд▓рд╛рдЗрдб рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рдкрд┐рдХрд╛рд╕реЛ рдХреА рдирд╣реАрдВред рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЧреНрд▓рд╛рдЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ Google рд╡реЙрд▓реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдПрдХ рдРрд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рд╡рд╕реНрддреБрддрдГ рдХреЛрдИ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рдЕрдЬреАрдм рдХреАрдбрд╝реЗ рд╣реИрдВ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдкрд░ рдХрд┐рддрдирд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реВрдВрдЧрд╛ред


3. рдбреНрд░реЗрд╕рдХреЛрдб


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


4. рдПрдХреЛ


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


рдЯреЛрд╕реНрдЯ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реБрдкрд░-рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрджреНрднреБрдд рдЪреАрдЬреЗрдВ рд╣реИрдВ:


 toast("Hi there!") 

рдФрд░ рд╕реНрдиреИрдХрдмрд╛рд░ рдХреЗ рд▓рд┐рдП:


 longSnackbar(view, "Wow, such duration") 

рдпрд╣ рдЗрд░рд╛рджреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рднреА рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ:


 startActivity<SomeOtherActivity>("id" to 5) 

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓реЛрдХрдкреНрд░рд┐рдп рдЗрдВрдЯреЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХреЗ рднреА рд╣реИрдВ
browse(url) рдФрд░ share(text, [subject]) ред


Anko layout рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдВрджрд░ DSL рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдпрд╣рд╛рдБ рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:


 verticalLayout { val name = editText() button("Say Hello") { onClick { toast("Hello, ${name.text}!") } } } 

рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдФрд░ рднреА рдмрд╣реБрдд рдХреБрдЫ рджреЗрдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред


5. рдИрдВрдзрди


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


рдИрдВрдзрди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп рд▓рдВрдмреЛрджрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдПрдХ iOS рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдореБрдЭреЗ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рд╡рд╛рджреЗ рдХреЗ рд╕рд╛рде рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рд▓рдкреЗрдЯрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рднреА рдХреЙрд╡рдиреЗрдВрдЯ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЬреЛ рдореИрдВ рд╣рдореЗрд╢рд╛ рдХрд░рддрд╛ рд╣реВрдВред


6. рдлреЛрд░реНрдЬ


рдореБрдЭреЗ рдЕрднреА рддрдХ JSON рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рддреЛ рдореИрдВ рдлреЛрд░реНрдЬ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ред рдпрд╣ рдЙрд╕реА рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдиреЗ рдлреНрдпреВрд▓ рд▓рд┐рдЦрд╛ рдерд╛, рдФрд░ рдпрд╣ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдФрд░ рдЖрд╕рд╛рди рд▓рдЧрддрд╛ рд╣реИред


7. рдкрд░рд┐рдгрд╛рдо


рдореИрдВрдиреЗ рд╢рд╛рдпрдж рдкрд░рд┐рдгрд╛рдо рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЕрдореЗрд░рд┐рдХрд╛ рдХреА рдЦреЛрдЬ рдирд╣реАрдВ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрднреА рдЙрдиреНрд╣реЗрдВ рдЖрдИрдУрдПрд╕ рдореЗрдВ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреЛрдЯрд▓рд┐рди рдХреЗ рд▓рд┐рдП рдРрд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдорд┐рд▓реАред рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА README рдХреЗ тАЛтАЛрдкрд╛рд╕ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдЖрдк рдХреЛрдб рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдЗрд╕реЗ рднреА рдкрдврд╝реЗ: тАЬрд╣рд░ Android рдбреЗрд╡рд▓рдкрд░ рдХреЛ 10 рд▓рд╛рдЗрдмреНрд░реЗрд░рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПтАЭ

Source: https://habr.com/ru/post/hi429194/


All Articles