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

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

рд╣рдореЗрдВ рдПрдХ рдмрд╛рд░ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдбреЛрдбреЛ рдкрд┐рдЬрд╝реНрдЬрд╝рд╛ рдРрдк рдХреЛ рд▓реЙрдиреНрдЪ рд╣реЛрдиреЗ рдореЗрдВ рдФрд╕рддрди 3 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВ, рдФрд░ рдХреБрдЫ "рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд▓реЛрдЧреЛрдВ" рдХреЛ 15-20 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред

рдХрдЯ рдХреЗ рдиреАрдЪреЗ рдПрдХ рд╕реБрдЦрдж рдЕрдВрдд рд╡рд╛рд▓реА рдПрдХ рдХрд╣рд╛рдиреА рд╣реИ: рд░реАрдпрд▓рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдПрдХ рдореЗрдореЛрд░реА рд▓реАрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдХреИрд╕реЗ рд╣рдордиреЗ рдиреЗрд╕реНрдЯреЗрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрдорд╛ рдХрд┐рдП, рдФрд░ рдлрд┐рд░ рдЦреБрдж рдХреЛ рдПрдХ рд╕рд╛рде рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рдХрд░ рд▓рд┐рдпрд╛ред

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

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

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдЗрдХрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рд▓реЗрдХрд░ рдкрд╣рд▓реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ onResume() рддрдХ рдХреЗ рддреАрди рд╕реЗрдХрдВрдб рдЕрдирдВрдд рд╣реИрдВред рдФрд░ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп 15-20 рд╕реЗрдХрдВрдб рддрдХ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реА рдХреИрд╕реЗ рд╣реИ?

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рд╛рд░рд╛рдВрд╢ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдкрдврд╝рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ
рд╣рдорд╛рд░рд╛ рд░реАрдпрд▓рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрдВрддрд╣реАрди рд░реВрдк рд╕реЗ рдмрдврд╝рд╛ред рдХреБрдЫ рдиреЗрд╕реНрдЯреЗрдб рдСрдмреНрдЬреЗрдХреНрдЯ рд╣рдЯрд╛рдП рдирд╣реАрдВ рдЧрдП рдереЗ, рд▓реЗрдХрд┐рди рд▓рдЧрд╛рддрд╛рд░ рдЬрдорд╛ рд╣реБрдП рдереЗред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рдзреАрд░реЗ-рдзреАрд░реЗ рдмрдврд╝рддрд╛ рдЧрдпрд╛ред рдлрд┐рд░ рд╣рдордиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛, рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХрд╛ рд╕рдордп рд▓рдХреНрд╖реНрдп рдкрд░ рдЖ рдЧрдпрд╛ - рдпрд╣ 1 рд╕реЗрдХрдВрдб рд╕реЗ рднреА рдХрдо рд╣реЛ рдЧрдпрд╛ рдФрд░ рдЕрдм рдирд╣реАрдВ рдмрдврд╝рд╛ред рд▓реЗрдЦ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рджреЛ рд╕рдорд╛рдзрд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ - рдПрдХ рддреНрд╡рд░рд┐рдд рдФрд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдпред

рд╕рдорд╕реНрдпрд╛ рдХреА рдЦреЛрдЬ рдПрд╡рдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

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

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

рдпрд╣ рдХрд┐рддрдирд╛ рд▓рдВрдмрд╛ рд╣реИ? рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЧреВрдЧрд▓ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг, рдпрджрд┐ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдХреЛрд▓реНрдб рд╕реНрдЯрд╛рд░реНрдЯ рдореЗрдВ 5 рд╕реЗрдХрдВрдб рд╕реЗ рдХрдо рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ "рдорд╛рдиреЛ рд╕рд╛рдорд╛рдиреНрдп" рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдбреЛрдбреЛ рдкрд┐рдЬрд╝реНрдЬрд╝рд╛ рдПрдВрдбреНрд░реЙрдЗрдб рдРрдк рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ (рдлрд╛рдпрд░рдмреЗрд╕ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░)ред _рдРрдк_рд╕реНрдЯрд╛рд░реНрдЯ) рдкрд░ рдардВрдбреА рд╢реБрд░реБрдЖрдд рдФрд╕рддрди 3 рд╕реЗрдХрдВрдб рдореЗрдВ - "рдорд╣рд╛рди рдирд╣реАрдВ, рднрдпрд╛рдирдХ рдирд╣реАрдВ," рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╢рд┐рдХрд╛рдпрддреЗрдВ рд╕рд╛рдордиреЗ рдЖрдиреЗ рд▓рдЧреАрдВ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓реЙрдиреНрдЪ рд╣реЛрдиреЗ рдореЗрдВ рдмрд╣реБрдд, рдмрд╣реБрдд, рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧрд╛! рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдпрд╣ рдорд╛рдкрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХрд┐ "рдмрд╣реБрдд, рдмрд╣реБрдд, рдмрд╣реБрдд рд▓рдВрдмрд╛" рдХреНрдпрд╛ рд╣реИред рдФрд░ рд╣рдордиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдлрд╛рдпрд░рдмреЗрд╕ рдЯреНрд░реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдРрдк рдкреНрд░рд╛рд░рдВрдн рдЯреНрд░реЗрд╕.

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

рдпрд╣ рдорд╛рдирдХ рдЯреНрд░реЗрд╕ рдЙрд╕ рдХреНрд╖рдг рдХреЗ рдмреАрдЪ рдХреЗ рд╕рдордп рдХреЛ рдорд╛рдкрддрд╛ рд╣реИ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЦреЛрд▓рддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдХреНрд╖рдг рдХреЗ рдмреАрдЪ рдЬрдм рдкрд╣рд▓реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ onResume() рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдлрд╛рдпрд░рдмреЗрд╕ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЗрд╕ рдореАрдЯреНрд░рд┐рдХ рдХреЛ _app_start рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐:

  • рдФрд╕рдд рдХреЛрд▓реНрдб рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп 95 рд╕реЗрдХрдВрдб рд╕реЗ рдХрдо рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж, 20рд╡реЗрдВ рдкреНрд░рддрд┐рд╢рдд рд╕реЗ рдКрдкрд░ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рд▓рдЧрднрдЧ 5 рд╕реЗрдХрдВрдб (рдХреБрдЫ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ) рд╣реИред
  • рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рдХреЛрдИ рд╕реНрдерд┐рд░ рдорд╛рди рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕рдордп рдХреЗ рд╕рд╛рде рдмрдврд╝рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдмреВрдВрджреЗрдВ рднреА рдЖ рдЬрд╛рддреА рд╣реИрдВ. рд╣рдореЗрдВ рдпрд╣ рдкреИрдЯрд░реНрди рддрдм рдорд┐рд▓рд╛ рдЬрдм рд╣рдордиреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рдкреИрдорд╛рдирд╛ рдмрдврд╝рд╛рдХрд░ 90 рджрд┐рди рдХрд░ рджрд┐рдпрд╛ред

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

рдорди рдореЗрдВ рджреЛ рд╡рд┐рдЪрд╛рд░ рдЖрдпреЗ:

  1. рдХреБрдЫ рд▓реАрдХ рд╣реЛ рд░рд╣рд╛ рд╣реИ.
  2. рдпрд╣ "рдХреБрдЫ" рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рдмрд╛рдж рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд▓реАрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

"рд╕рдВрднрд╡рддрдГ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╣реИ," рд╣рдордиреЗ рд╕реЛрдЪрд╛, рдФрд░ рд╣рдо рд╕рд╣реА рдереЗред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХреИрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ; рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рд╣рдо рдЗрд╕реЗ рд╕рд╛рдлрд╝ рдХрд░рддреЗ рд╣реИрдВред рджреВрд╕рд░реЗ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд▓реЛрдб рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рдПрдХ рд╕рд╛рде рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ.

рджрд╛рдпрд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреНрдпрд╛ рдЦрд░рд╛рдмреА рд╣реИ?

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

adb exec-out run-as ${PACKAGE_NAME} cat files/${DB_NAME}

рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдордп рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рджреЗрдЦрдиреЗ рдкрд░ рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓рдЧрд╛рддрд╛рд░ рдмрдврд╝ рд░рд╣реА рд╣реИред

рджрд╛рдпрд░реЗ рдореЗрдВ рдХреИрд╕реНрдХреЗрдб рд╡рд┐рд▓реЛрдкрди рдиреЗ рдПрдХ рд▓рдВрдмреЗ рд▓реЙрдиреНрдЪ рдкрд░ рдХреИрд╕реЗ рдЬреАрдд рд╣рд╛рд╕рд┐рд▓ рдХреА, рдЗрд╕рдХреА рдХрд╣рд╛рдиреА
рдЪрд┐рддреНрд░ рджреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд░реАрдпрд▓рдо рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ: рдмрд╛рдИрдВ рдУрд░ - рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рдХреБрдЫ рд╕рдордп рдмрд╛рдж рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмреЗрд╕, рджрд╛рдИрдВ рдУрд░ - рд╕рдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рджред рдЗрд╕рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ ImageEntity ╨╕ MoneyType рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдк рд╕реЗ рдмрдврд╝ рдЧрдпрд╛ рд╣реИ (рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ)ред

рдбреЗрдЯрд╛рдмреЗрд╕ рд╡реГрджреНрдзрд┐ рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз

рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рд╡реГрджреНрдзрд┐ рдмрд╣реБрдд рдЦрд░рд╛рдм рд╣реИ. рд▓реЗрдХрд┐рди рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ? рдПрдХреНрдЯрд┐рд╡рд┐рдЯреА рдореИрдиреЗрдЬрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕реЗ рдорд╛рдкрдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИред рдПрдВрдбреНрд░реЙрдЗрдб 4.4 рдХреЗ рдмрд╛рдж рд╕реЗ, рд▓реЙрдЧрдХреИрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рд╕рдордп рдХреЗ рд╕рд╛рде рд▓реЙрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рдордп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рд╣реЛрдиреЗ рд╕реЗ рд▓реЗрдХрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рдЕрдВрдд рддрдХ рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдЗрд╕ рджреМрд░рд╛рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдШрдЯрдирд╛рдПрдБ рдШрдЯрд┐рдд рд╣реЛрддреА рд╣реИрдВ:

  • рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ.
  • рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЖрд░рдВрднреАрдХрд░рдг.
  • рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЖрд░рдВрднреАрдХрд░рдг.
  • рдПрдХ рд▓реЗрдЖрдЙрдЯ рдмрдирд╛рдирд╛.
  • рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░рддрд┐рдкрд╛рджрди.

рд╣рдореЗрдВ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк ADB рдХреЛ -S рдФрд░ -W рдЭрдВрдбреЗ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рдХреЗ рд╕рд╛рде рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

adb shell am start -S -W ru.dodopizza.app/.MainActivity -c android.intent.category.LAUNCHER -a android.intent.action.MAIN

рдЕрдЧрд░ рдЖрдк рдЗрд╕реЗ рд╡рд╣рд╛рдВ рд╕реЗ рдкрдХрдбрд╝ рд▓реЗрдВрдЧреЗ grep -i WaitTime рд╕рдордп, рдЖрдк рдЗрд╕ рдореАрдЯреНрд░рд┐рдХ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рджреГрд╖реНрдЯрд┐рдЧрдд рд░реВрдк рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЧреНрд░рд╛рдлрд╝ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреЛрд▓реНрдб рд╕реНрдЯрд╛рд░реНрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

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

рдЗрд╕реА рд╕рдордп, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдЖрдХрд╛рд░ рдФрд░ рд╡реГрджреНрдзрд┐ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдХреА рд╕рдорд╛рди рдкреНрд░рдХреГрддрд┐ рдереА, рдЬреЛ 4 рдПрдордмреА рд╕реЗ рдмрдврд╝рдХрд░ 15 рдПрдордмреА рд╣реЛ рдЧрдИред рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╕рдордп рдХреЗ рд╕рд╛рде (рдардВрдб рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд╕рд╛рде), рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рд╕рдордп рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЖрдХрд╛рд░ рджреЛрдиреЛрдВ рдмрдврд╝ рдЧрдПред рд╣рдорд╛рд░реЗ рд╣рд╛рде рдореЗрдВ рдПрдХ рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рд╣реИред рдЕрдм рдХреЗрд╡рд▓ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдирд╛ рдмрд╛рдХреА рд░рд╣ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ "рд▓реАрдХ" рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рджреЗрдЦрд╛ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рд▓реЙрдиреНрдЪ рдореЗрдВ рддреЗрдЬреА рдЖрдПрдЧреАред

рдЕрдВрддрд╣реАрди рдбреЗрдЯрд╛рдмреЗрд╕ рд╡реГрджреНрдзрд┐ рдХреЗ рдХрд╛рд░рдг

"рд▓реАрдХ" рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рд╕рдордЭрдиреЗ рд▓рд╛рдпрдХ рд╣реИ рдХрд┐ рд╡реЗ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдХреНрдпреЛрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдХреНрд╖реЗрддреНрд░ рдХреНрдпрд╛ рд╣реИред

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

(рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡рд┐рд╡рд░рдг рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдЖрдк рдХреВрд▓ рдореЗрдВ рджрд╛рдпрд░реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдкреНрд░рд▓реЗрдЦрди рдпрд╛ рдЙрдирдХреЗ рдореЗрдВ рдЕрдХрд╛рджрдореА).

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

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

рд╡реНрдпрд╛рдкрдХ рд╡рд┐рд▓реЛрдкрди рдХреЗ рдмрд┐рдирд╛ рдбреЗрдЯрд╛ рд▓реАрдХ

рдпрджрд┐ рдЖрдк рдЧреИрд░-рдореМрдЬреВрдж рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдбрд┐рд▓реАрдЯ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдбреЗрдЯрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕реЗ рд▓реАрдХ рд╣реЛрддрд╛ рд╣реИ? рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдиреЗрд╕реНрдЯреЗрдб рд░реАрдпрд▓рдо рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЖрдЗрдП рдПрдХ (рд▓рдЧрднрдЧ) рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд╕реНрддреБ рд╣реИ CartItemEntity:

@RealmClass
class CartItemEntity(
 @PrimaryKey
 override var id: String? = null,
 ...
 var name: String = "",
 var description: String = "",
 var image: ImageEntity? = null,
 var category: String = MENU_CATEGORY_UNKNOWN_ID,
 var customizationEntity: CustomizationEntity? = null,
 var cartComboProducts: RealmList<CartProductEntity> = RealmList(),
 ...
) : RealmObject()

рдХрд╛рд░реНрдЯ рдореЗрдВ рдЙрддреНрдкрд╛рдж рдореЗрдВ рдЪрд┐рддреНрд░ рд╕рд╣рд┐рдд рд╡рд┐рднрд┐рдиреНрди рдлрд╝реАрд▓реНрдб рд╣реИрдВ ImageEntity, рдЕрдиреБрдХреВрд▓рд┐рдд рд╕рд╛рдордЧреНрд░реА CustomizationEntity. рд╕рд╛рде рд╣реА, рдХрд╛рд░реНрдЯ рдореЗрдВ рдореМрдЬреВрдж рдЙрддреНрдкрд╛рдж рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдХреЙрдореНрдмреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ RealmList (CartProductEntity). рд╕рднреА рд╕реВрдЪреАрдмрджреНрдз рдлрд╝реАрд▓реНрдб рджрд╛рдпрд░реЗ рдХреА рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдПрдХ рд╣реА рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ (copyToRealm() / CopyToRealmOrUpdate()) рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рд╕рднреА рдЖрдВрддрд░рд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ (рдЫрд╡рд┐, рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝реЗрд╢рдирдПрдВрдЯрд┐рдЯреА рдФрд░ рдХрд╛рд░реНрдЯрдХреЙрдореНрдмреЛрдкреНрд░реЛрдбрдХреНрдЯреНрд╕) рдкреИрд░реЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рдЦреЛ рджреЗрдВрдЧреЗ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдмрдиреЗ рд░рд╣реЗрдВрдЧреЗред

рдЪреВрдВрдХрд┐ рдЙрдирдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рдЯреВрдЯ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдЕрдм рдЙрдиреНрд╣реЗрдВ рдирд╣реАрдВ рдкрдврд╝рддреЗ рд╣реИрдВ рдпрд╛ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ (рдЬрдм рддрдХ рдХрд┐ рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрди рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ рдпрд╛ рд╕рдВрдкреВрд░реНрдг "рддрд╛рд▓рд┐рдХрд╛" рдХреЛ рд╕рд╛рдлрд╝ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ)ред рд╣рдордиреЗ рдЗрд╕реЗ "рдореЗрдореЛрд░реА рд▓реАрдХ" рдХрд╣рд╛ред

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

val entity = realm.where(CartItemEntity::class.java).equalTo("id", id).findFirst()
if (first != null) {
 deleteFromRealm(first.image)
 deleteFromRealm(first.customizationEntity)
 for(cartProductEntity in first.cartComboProducts) {
   deleteFromRealm(cartProductEntity)
 }
 first.deleteFromRealm()
}
// ╨╕ ╨┐╨╛╤В╨╛╨╝ ╤Г╨╢╨╡ ╤Б╨╛╤Е╤А╨░╨╜╤П╨╡╨╝

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

"рддреНрд╡рд░рд┐рдд" рд╕рдорд╛рдзрд╛рди

рдкрд╣рд▓реА рдЪреАрдЬрд╝ рдЬреЛ рд╣рдордиреЗ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╡рд╣ рд╕рдмрд╕реЗ рддреЗрдЬрд╝реА рд╕реЗ рдмрдврд╝рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдирд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рд╣рдорд╛рд░реА рдореВрд▓ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдЧреАред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рдмрд╕реЗ рд╕рд░рд▓ рдФрд░ рд╕рдмрд╕реЗ рд╕рд╣рдЬ рд╕рдорд╛рдзрд╛рди рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЕрд░реНрдерд╛рддреН: рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдХреЛ рдЕрдкрдиреЗ рдмрдЪреНрдЪреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬреЛ рдЗрд╕рдХреЗ рдиреЗрд╕реНрдЯреЗрдб рджрд╛рдпрд░реЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рд▓реМрдЯрд╛рддрд╛ рд╣реИ:

interface NestedEntityAware {
 fun getNestedEntities(): Collection<RealmObject?>
}

рдФрд░ рд╣рдордиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рджрд╛рдпрд░реЗ рдХреА рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛:

@RealmClass
class DataPizzeriaEntity(
 @PrimaryKey
 var id: String? = null,
 var name: String? = null,
 var coordinates: CoordinatesEntity? = null,
 var deliverySchedule: ScheduleEntity? = null,
 var restaurantSchedule: ScheduleEntity? = null,
 ...
) : RealmObject(), NestedEntityAware {

 override fun getNestedEntities(): Collection<RealmObject?> {
   return listOf(
       coordinates,
       deliverySchedule,
       restaurantSchedule
   )
 }
}

╨Т getNestedEntities рд╣рдо рд╕рднреА рдмрдЪреНрдЪреЛрдВ рдХреЛ рдПрдХ рдлреНрд▓реИрдЯ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЪрд╛рдЗрд▓реНрдб рдСрдмреНрдЬреЗрдХреНрдЯ NestedEntityAware рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рджрд╛рдпрд░реЗ рдХреА рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП ScheduleEntity:

@RealmClass
class ScheduleEntity(
 var monday: DayOfWeekEntity? = null,
 var tuesday: DayOfWeekEntity? = null,
 var wednesday: DayOfWeekEntity? = null,
 var thursday: DayOfWeekEntity? = null,
 var friday: DayOfWeekEntity? = null,
 var saturday: DayOfWeekEntity? = null,
 var sunday: DayOfWeekEntity? = null
) : RealmObject(), NestedEntityAware {

 override fun getNestedEntities(): Collection<RealmObject?> {
   return listOf(
       monday, tuesday, wednesday, thursday, friday, saturday, sunday
   )
 }
}

рдФрд░ рдЗрд╕реА рддрд░рд╣, рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдШреЛрдВрд╕рд▓реЗ рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдлрд┐рд░ рд╣рдо рдПрдХ рдРрд╕реА рд╡рд┐рдзрд┐ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рд╕рднреА рдиреЗрд╕реНрдЯреЗрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджреЗрддреА рд╣реИред рд╡рд┐рдзрд┐ (рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ) deleteAllNestedEntities рд╕рднреА рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рд╡рд┐рдзрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ deleteNestedRecursively NestedEntityAware рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рдиреЗрд╕реНрдЯреЗрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ:

fun <T> Realm.deleteAllNestedEntities(entities: Collection<T>,
 entityClass: Class<out RealmObject>,
 idMapper: (T) -> String,
 idFieldName : String = "id"
 ) {

 val existedObjects = where(entityClass)
     .`in`(idFieldName, entities.map(idMapper).toTypedArray())
     .findAll()

 deleteNestedRecursively(existedObjects)
}

private fun Realm.deleteNestedRecursively(entities: Collection<RealmObject?>) {
 for(entity in entities) {
   entity?.let { realmObject ->
     if (realmObject is NestedEntityAware) {
       deleteNestedRecursively((realmObject as NestedEntityAware).getNestedEntities())
     }
     realmObject.deleteFromRealm()
   }
 }
}

рд╣рдордиреЗ рдЗрд╕реЗ рд╕рдмрд╕реЗ рддреЗрдЬреА рд╕реЗ рдмрдврд╝рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдФрд░ рдЬрд╛рдБрдЪ рдХреА рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖред

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

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЬрд┐рди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╣рдордиреЗ рдЗрд╕ рдШреЛрд▓ рд╕реЗ рдврдХ рджрд┐рдпрд╛ рдерд╛, рдЙрдирдХрд╛ рдмрдврд╝рдирд╛ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ред рдФрд░ рдЖрдзрд╛рд░ рдХреА рд╕рдордЧреНрд░ рд╡реГрджреНрдзрд┐ рдзреАрдореА рд╣реЛ рдЧрдИ, рд▓реЗрдХрд┐рди рд░реБрдХреА рдирд╣реАрдВред

"рд╕рд╛рдорд╛рдиреНрдп" рд╕рдорд╛рдзрд╛рди

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЖрдзрд╛рд░ рдзреАрд░реЗ-рдзреАрд░реЗ рдмрдврд╝рдиреЗ рд▓рдЧрд╛, рдлрд┐рд░ рднреА рдпрд╣ рдмрдврд╝рддрд╛ рдЧрдпрд╛ред рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЖрдЧреЗ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рд╣рдорд╛рд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рджрд╛рдпрд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рдмрд╣реБрдд рд╕рдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕рднреА рдиреЗрд╕реНрдЯреЗрдб рдСрдмреНрдЬреЗрдХреНрдЯ рд▓рд┐рдЦрдирд╛ рд╢реНрд░рдо-рдЧрд╣рди рд╣реИ, рд╕рд╛рде рд╣реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдЬреЛрдЦрд┐рдо рднреА рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдмрджрд▓рддреЗ рд╕рдордп рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдореИрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реВрдВ, рдмрд▓реНрдХрд┐ рдпрд╣ рдХрд┐ рд╕рдм рдХреБрдЫ рдЕрдкрдиреЗ рдЖрдк рдХрд╛рдо рдХрд░реЗред

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

RealmModel::class.java.isAssignableFrom(field.type)

RealmList::class.java.isAssignableFrom(field.type)

рдпрджрд┐ рдлрд╝реАрд▓реНрдб рдПрдХ RealmModel рдпрд╛ RealmList рд╣реИ, рддреЛ рдЗрд╕ рдлрд╝реАрд▓реНрдб рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдиреЗрд╕реНрдЯреЗрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рд╕рдм рдХреБрдЫ рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рд╣рдордиреЗ рдКрдкрд░ рдХрд┐рдпрд╛ рдерд╛, рдХреЗрд╡рд▓ рдпрд╣рд╛рдВ рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдХреИрд╕реНрдХреЗрдб рд╣рдЯрд╛рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ рдФрд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

fun <T : Any> Realm.cascadeDelete(entities: Collection<T?>) {
 if(entities.isEmpty()) {
   return
 }

 entities.filterNotNull().let { notNullEntities ->
   notNullEntities
       .filterRealmObject()
       .flatMap { realmObject -> getNestedRealmObjects(realmObject) }
       .also { realmObjects -> cascadeDelete(realmObjects) }

   notNullEntities
       .forEach { entity ->
         if((entity is RealmObject) && entity.isValid) {
           entity.deleteFromRealm()
         }
       }
 }
}

рд╡рд┐рд╕реНрддрд╛рд░ filterRealmObject рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рджрд╛рдпрд░реЗ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рддрд░реАрдХрд╛ getNestedRealmObjects рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдпрд╣ рд╕рднреА рдиреЗрд╕реНрдЯреЗрдб рджрд╛рдпрд░реЗ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдвреВрдВрдврддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд░реИрдЦрд┐рдХ рд╕реВрдЪреА рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдо рд╡рд╣реА рдХрд╛рд░реНрдп рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдХрд░рддреЗ рд╣реИрдВред рд╣рдЯрд╛рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╡реИрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реЛрдЧреА isValid, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореВрд▓ рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд╕рдорд╛рди рд╡рд╕реНрддреБрдПрдВ рдиреЗрд╕реНрдЯреЗрдб рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЗрд╕рд╕реЗ рдмрдЪрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдФрд░ рдирдП рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп рдЖрдИрдбреА рдХреЗ рдСрдЯреЛ-рдЬрдирд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

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

GetNestedRealmObjects рдкрджреНрдзрддрд┐ рдХрд╛ рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

private fun getNestedRealmObjects(realmObject: RealmObject) : List<RealmObject> {
 val nestedObjects = mutableListOf<RealmObject>()
 val fields = realmObject.javaClass.superclass.declaredFields

// ╨Я╤А╨╛╨▓╨╡╤А╤П╨╡╨╝ ╨║╨░╨╢╨┤╨╛╨╡ ╨┐╨╛╨╗╨╡, ╨╜╨╡ ╤П╨▓╨╗╤П╨╡╤В╤Б╤П ╨╗╨╕ ╨╛╨╜╨╛ RealmModel ╨╕╨╗╨╕ ╤Б╨┐╨╕╤Б╨║╨╛╨╝ RealmList
 fields.forEach { field ->
   when {
     RealmModel::class.java.isAssignableFrom(field.type) -> {
       try {
         val child = getChildObjectByField(realmObject, field)
         child?.let {
           if (isInstanceOfRealmObject(it)) {
             nestedObjects.add(child as RealmObject)
           }
         }
       } catch (e: Exception) { ... }
     }

     RealmList::class.java.isAssignableFrom(field.type) -> {
       try {
         val childList = getChildObjectByField(realmObject, field)
         childList?.let { list ->
           (list as RealmList<*>).forEach {
             if (isInstanceOfRealmObject(it)) {
               nestedObjects.add(it as RealmObject)
             }
           }
         }
       } catch (e: Exception) { ... }
     }
   }
 }

 return nestedObjects
}

private fun getChildObjectByField(realmObject: RealmObject, field: Field): Any? {
 val methodName = "get${field.name.capitalize()}"
 val method = realmObject.javaClass.getMethod(methodName)
 return method.invoke(realmObject)
}

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдорд╛рд░реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдореЗрдВ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛ рд╕рдВрд╢реЛрдзрди рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП "рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдбрд┐рд▓реАрдЯ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЗрдиреНрд╕рд░реНрдЯ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

override fun <T : Entity> insert(
 entityInformation: EntityInformation,
 entities: Collection<T>): Collection<T> = entities.apply {
 realmInstance.cascadeDelete(getManagedEntities(entityInformation, this))
 realmInstance.copyFromRealm(
     realmInstance
         .copyToRealmOrUpdate(this.map { entity -> entity as RealmModel }
 ))
}

рд╡рд┐рдзрд┐ рдкрд╣рд▓реЗ getManagedEntities рд╕рднреА рдЬреЛрдбрд╝реЗ рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╡рд┐рдзрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ cascadeDelete рдирдП рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рднреА рдПрдХрддреНрд░рд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рд╣рдо рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рджрд╛рдпрд░реЗ рдореЗрдВ рдореЗрдореЛрд░реА рд▓реАрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦрд╝рддреНрдо рд╣реЛ рдЧрдП рд╣реИрдВред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреЛрд▓реНрдб рд╕реНрдЯрд╛рд░реНрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╕рдорд╛рди рдорд╛рдк рдХрд░рдиреЗ рдкрд░, рд╣рдо рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрддреЗ рд╣реИрдВред

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

рд╣рд░реА рд░реЗрдЦрд╛ рдиреЗрд╕реНрдЯреЗрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреИрд╕реНрдХреЗрдб рд╡рд┐рд▓реЛрдкрди рдХреЗ рджреМрд░рд╛рди рдХреЛрд▓реНрдб рд╕реНрдЯрд╛рд░реНрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рджрд░реНрд╢рд╛рддреА рд╣реИред

рдкрд░рд┐рдгрд╛рдо рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖

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

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

рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП, рд╣рдо 90 рджрд┐рдиреЛрдВ рдХреА рд╕рдордпрд╛рд╡рдзрд┐ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ: рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рд╕рдордп, рджреЛрдиреЛрдВ рдорд╛рдзреНрдпрд┐рдХрд╛ рдФрд░ рд╡рд╣ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ 95рд╡реЗрдВ рдкреНрд░рддрд┐рд╢рддрдХ рдкрд░ рдкрдбрд╝рддрд╛ рд╣реИ, рдШрдЯрдиреЗ рд▓рдЧрд╛ рдФрд░ рдЕрдм рдирд╣реАрдВ рдмрдврд╝рддрд╛ рд╣реИред

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

рдпрджрд┐ рдЖрдк рд╕рд╛рдд-рджрд┐рд╡рд╕реАрдп рдЪрд╛рд░реНрдЯ рдХреЛ рджреЗрдЦреЗрдВ, рддреЛ _app_start рдореАрдЯреНрд░рд┐рдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рджрд┐рдЦрддреА рд╣реИ рдФрд░ 1 рд╕реЗрдХрдВрдб рд╕реЗ рднреА рдХрдо рд╣реИред

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

рд░реАрдпрд▓рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдЦрд╛рд╕ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдиреЙрди-рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИред рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА, рдУрдЖрд░рдПрдо рд╕рдорд╛рдзрд╛рдиреЛрдВ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓рд┐рдВрдХрд┐рдВрдЧ рдХреА рд╕рдорд╛рдирддрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЗрд╕рдореЗрдВ рдХреИрд╕реНрдХреЗрдб рд╡рд┐рд▓реЛрдкрди рдирд╣реАрдВ рд╣реИред

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

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

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

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ