рд╕рдмреИ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдореЛрдмрд╛рдЗрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдорд╛ рдЫрд┐рдЯреЛ рдкреНрд░рдХреНрд╖реЗрдкрдг рд░ рдЙрддреНрддрд░рджрд╛рдпреА UI рд▓рд┐рдиреНрдЫрдиреНред рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рд╕реБрд░реБ рд╣реБрди рд▓рд╛рдореЛ рд╕рдордп рд▓рд╛рдЧреНрдЫ рднрдиреЗ, рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЙрджрд╛рд╕ рд░ рд░рд┐рд╕рд╛рдЙрди рдерд╛рд▓реНрдЫред рддрдкрд╛рдИрд▓реЗ рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рдЧреНрд░рд╛рд╣рдХрдХреЛ рдЕрдиреБрднрд╡ рдмрд┐рдЧрд╛рд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд╡рд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЧреБрдорд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЙрд╕рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕реБрд░реБ рдЧрд░реНрдиреБ рдЕрдШрд┐ рдиреИред
рд╣рд╛рдореАрд▓реЗ рдПрдХ рдкрдЯрдХ рдкрддреНрддрд╛ рд▓рдЧрд╛рдпреМрдВ рдХрд┐ рдбреЛрдбреЛ рдкрд┐рдЬреНрдЬрд╛ рдПрдк рдФрд╕рддрдорд╛ рд╕реБрд░реБ рд╣реБрди рей рд╕реЗрдХреЗрдиреНрдб рд▓рд╛рдЧреНрдЫ, рд░ рдХреЗрд╣реА "рднрд╛рдЧреНрдпрд╡рд╛рдирд╣рд░реВ" рдХреЛ рд▓рд╛рдЧрд┐ рдпрд╕рд▓реЗ резрел-реиреж рд╕реЗрдХреЗрдиреНрдб рд▓рд┐рдиреНрдЫред
рдХрдЯрдХреЛ рддрд▓ рдПрдХ рд╕реБрдЦрдж рдЕрдиреНрддреНрдпрдХреЛ рд╕рд╛рде рдПрдЙрдЯрд╛ рдХрдерд╛ рдЫ: рдХреНрд╖реЗрддреНрд░ рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рд╡реГрджреНрдзрд┐рдХреЛ рдмрд╛рд░реЗрдорд╛, рдореЗрдореЛрд░реА рдЪреБрд╣рд╛рд╡рдЯ, рд╣рд╛рдореАрд▓реЗ рдХрд╕рд░реА рдиреЗрд╕реНрдЯреЗрдб рд╡рд╕реНрддреБрд╣рд░реВ рдЬрдореНрдорд╛ рдЧрд░реНрдпреМрдВ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдЖрдлреВрд▓рд╛рдИ рд╕рдБрдЧреИ рддрд╛рдиреНрдпреМрдВ рд░ рд╕рдмреИ рдХреБрд░рд╛ рдареАрдХ рдЧрд░реНрдпреМрдВред
рд▓реЗрдЦ рд▓реЗрдЦрдХ:рдореНрдпрд╛рдХреНрд╕рд┐рдо рдХрд╛рдЪрд┐рдирдХрд┐рди тАФ рдбреЛрдбреЛ рдкрд┐рдЬреНрдЬрд╛рдорд╛ рдПрдиреНрдбреНрд░реЛрдЗрдб рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ред
рдкрд╣рд┐рд▓реЛ рдЧрддрд┐рд╡рд┐рдзрд┐рдХреЛ onResume() рдорд╛ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдЖрдЗрдХрдирдорд╛ рдХреНрд▓рд┐рдХ рдЧрд░реЗрдХреЛ рддреАрди рд╕реЗрдХреЗрдиреНрдб рдЕрдирдиреНрддрддрд╛ рд╣реЛред рд░ рдХреЗрд╣рд┐ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп 15-20 рд╕реЗрдХреЗрдиреНрдб рдкреБрдЧреНрдпреЛред рдпреЛ рдкрдирд┐ рдХрд╕рд░реА рд╕рдореНрднрд╡ рдЫ ?
рдкрдвреНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдордп рдирднрдПрдХрд╛рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рдЫреЛрдЯреЛ рд╕рд╛рд░рд╛рдВрд╢
рд╣рд╛рдореНрд░реЛ рджрд╛рдпрд░рд╛ рдбрд╛рдЯрд╛рдмреЗрд╕ рдЕрдирдиреНрдд рд░реВрдкрдорд╛ рдмрдвреНрдпреЛред рдХреЗрд╣реА рдиреЗрд╕реНрдЯреЗрдб рд╡рд╕реНрддреБрд╣рд░реВ рдореЗрдЯрд┐рдПрдХрд╛ рдерд┐рдПрдирдиреН, рддрд░ рдирд┐рд░рдиреНрддрд░ рд╕рдВрдЪрд┐рдд рдерд┐рдПред рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рдмрд┐рд╕реНрддрд╛рд░реИ рдмрдвреНрдпреЛред рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореАрд▓реЗ рдпрд╕рд▓рд╛рдИ рдареАрдХ рдЧрд░реНрдпреМрдВ, рд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рд▓рдХреНрд╖реНрдпрдорд╛ рдЖрдпреЛ - рдпреЛ 1 рд╕реЗрдХреЗрдиреНрдб рднрдиреНрджрд╛ рдХрдо рднрдпреЛ рд░ рдЕрдм рдмрдвреЗрдХреЛ рдЫреИрдиред рд▓реЗрдЦрдорд╛ рд╕реНрдерд┐рддрд┐рдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд░ рджреБрдИ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рдЫрдиреН - рджреНрд░реБрдд рд░ рд╕рд╛рдорд╛рдиреНрдпред
рд╕рдорд╕реНрдпрд╛рдХреЛ рдЦреЛрдЬ рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
рдЖрдЬ, рдХреБрдиреИ рдкрдирд┐ рдореЛрдмрд╛рдЗрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд╛рдБрдбреИ рд▓рдиреНрдЪ рдЧрд░реНрдиреБрдкрд░реНрдЫ рд░ рдЙрддреНрддрд░рджрд╛рдпреА рд╣реБрдиреБрдкрд░реНрдЫред рддрд░ рдпреЛ рдореЛрдмрд╛рдЗрд▓ рдПрдкрдХреЛ рдмрд╛рд░реЗрдорд╛ рдорд╛рддреНрд░ рд╣реЛрдЗрдиред рд╕реЗрд╡рд╛ рд░ рдХрдореНрдкрдиреА рд╕рдВрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдПрдХ рдЬрдЯрд┐рд▓ рдХреБрд░рд╛ рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рд╣рд╛рдореНрд░реЛ рдорд╛рдорд▓рд╛ рдорд╛, рд╡рд┐рддрд░рдг рдЧрддрд┐ рдкрд┐рдЬреНрдЬрд╛ рд╕реЗрд╡рд╛ рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдореБрдЦ рд╕реВрдЪрдХрд╣рд░реБ рдордзреНрдпреЗ рдПрдХ рд╣реЛред рдпрджрд┐ рдбреЗрд▓рд┐рднрд░реА рдЫрд┐рдЯреЛ рднрдпреЛ рднрдиреЗ, рдкрд┐рдЬреНрдЬрд╛ рддрд╛рддреЛ рд╣реБрдиреЗрдЫ, рд░ рдЕрдм рдЦрд╛рди рдЪрд╛рд╣рдиреЗ рдЧреНрд░рд╛рд╣рдХрд▓реЗ рд▓рд╛рдореЛ рд╕рдордп рдХреБрд░реНрдиреБ рдкрд░реНрджреИрдиред рдПрдкреНрд▓рд┐рдХреЗрд╕рдирдХреЛ рд▓рд╛рдЧрд┐, рдмрд╛рд░реАрдорд╛, рдЫрд┐рдЯреЛ рд╕реЗрд╡рд╛рдХреЛ рднрд╛рд╡рдирд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ, рдХрд┐рдирдХрд┐ рдпрджрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрд░реБ рд╣реБрди 20 рд╕реЗрдХреЗрдиреНрдб рдорд╛рддреНрд░ рд▓рд╛рдЧреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдкрд┐рдЬреНрдЬрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдХрддрд┐ рд▓рд╛рдореЛ рдкрд░реНрдЦрдиреБ рдкрд░реНрдЫ?
рд╕реБрд░реБрдорд╛, рд╣рд╛рдореА рдЖрдлреИрдВрд▓реЗ рдпрд╕ рддрдереНрдпрдХреЛ рд╕рд╛рдордирд╛ рдЧрд░реЗрдХрд╛ рдерд┐рдпреМрдВ рдХрд┐ рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрд░реБ рд╣реБрди рдХреЗрд╣реА рд╕реЗрдХреЗрдиреНрдб рд▓рд╛рдЧреНрдереНрдпреЛ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореАрд▓реЗ рдЕрдиреНрдп рд╕рд╣рдХрд░реНрдореАрд╣рд░реВрдмрд╛рдЯ рдХрддрд┐ рд╕рдордп рд▓рд╛рдЧреНрдпреЛ рднрдиреЗрд░ рдЧреБрдирд╛рд╕реЛрд╣рд░реВ рд╕реБрдиреНрди рдерд╛рд▓реНрдпреМрдВред рддрд░ рд╣рд╛рдореАрд▓реЗ рдпреЛ рдЕрд╡рд╕реНрдерд╛рд▓рд╛рдИ рдирд┐рд░рдиреНрддрд░ рджреЛрд╣реЛрд░реНрдпрд╛рдЙрди рд╕рдХреЗрдиреМрдВред
рдпреЛ рдХрддрд┐ рд▓рд╛рдореЛ рдЫ? рдпрд╕ рдЕрдиреБрд╕рд╛рд░
рддрд░ рддреНрдпрд╕рдкрдЫрд┐ рдЧреБрдирд╛рд╕реЛрд╣рд░реВ рджреЗрдЦрд╛ рдкрд░реНрди рдерд╛рд▓реЗ рдХрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрд░реБ рдЧрд░реНрди рдзреЗрд░реИ, рдзреЗрд░реИ, рдзреЗрд░реИ рд▓рд╛рдореЛ рд╕рдордп рд▓рд╛рдЧреНрдпреЛ! рд╕реБрд░реБрдорд╛, рд╣рд╛рдореАрд▓реЗ "рдзреЗрд░реИ, рдзреЗрд░реИ, рдзреЗрд░реИ рд▓рд╛рдореЛ" рдХреЗ рд╣реЛ рдорд╛рдкрди рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдпреМрдВред рд░ рд╣рд╛рдореАрд▓реЗ рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдлрд╛рдпрд░рдмреЗрд╕ рдЯреНрд░реЗрд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдпреМрдВ
рдпреЛ рдорд╛рдирдХ рдЯреНрд░реЗрд╕рд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓реЗ рдПрдк рдЦреЛрд▓реНрдиреЗ рдХреНрд╖рдг рд░ рдкрд╣рд┐рд▓реЛ рдЧрддрд┐рд╡рд┐рдзрд┐рдХреЛ onResume() рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднрдПрдХреЛ рдХреНрд╖рдг рдмреАрдЪрдХреЛ рд╕рдордпрд▓рд╛рдИ рдирд╛рдкреНрдЫред рдлрд╛рдпрд░рдмреЗрд╕ рдХрдиреНрд╕реЛрд▓рдорд╛ рдпреЛ рдореЗрдЯреНрд░рд┐рдХрд▓рд╛рдИ _app_start рднрдирд┐рдиреНрдЫред рдпреЛ рдмрд╛рд╣рд┐рд░ рднрдпреЛ рдХрд┐:
- 95 рдФрдВ рдкреНрд░рддрд┐рд╢рдд рднрдиреНрджрд╛ рдорд╛рдерд┐рдХрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рд▓рдЧрднрдЧ 20 рд╕реЗрдХреЗрдиреНрдб (рдХреЗрд╣реА рд▓рд╛рдореЛ) рд╣реЛ, рдФрд╕рдд рдЪрд┐рд╕реЛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп 5 рд╕реЗрдХреЗрдиреНрдб рднрдиреНрджрд╛ рдХрдо рднрдП рддрд╛рдкрдирд┐ред
- рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рдПрдХ рд╕реНрдерд┐рд░ рдореВрд▓реНрдп рд╣реЛрдЗрди, рддрд░ рд╕рдордп рд╕рдВрдЧ рдмрдвреНрдЫред рддрд░ рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рддреНрдпрд╣рд╛рдБ рдереЛрдкрд╛рд╣рд░реВ рдЫрдиреНред рд╣рд╛рдореАрд▓реЗ рдпреЛ рдврд╛рдБрдЪрд╛ рднреЗрдЯреНрдЯрд╛рдпреМрдВ рдЬрдм рд╣рд╛рдореАрд▓реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рд╕реНрдХреЗрд▓рд▓рд╛рдИ 90 рджрд┐рдирдорд╛ рдмрдврд╛рдПрдХрд╛ рдерд┐рдпреМрдВред
рдордирдорд╛ рджреБрдИрд╡рдЯрд╛ рд╡рд┐рдЪрд╛рд░ рдЖрдпреЛ:
- рдХреЗрд╣реА рдЪреБрд╣рд┐рд░рд╣реЗрдХреЛ рдЫред
- рдпреЛ "рдХреЗрд╣рд┐" рд░рд┐рд▓реАрдЬ рдкрдЫрд┐ рд░рд┐рд╕реЗрдЯ рд╣реБрдиреНрдЫ рд░ рддреНрдпрд╕рдкрдЫрд┐ рдлреЗрд░рд┐ рд▓реАрдХ рд╣реБрдиреНрдЫред
"рд╕рд╛рдпрдж рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рд╕рд╛рде рдХреЗрд╣рд┐," рд╣рд╛рдореАрд▓реЗ рд╕реЛрдЪреНрдпреМрдВ, рд░ рд╣рд╛рдореА рд╕рд╣реА рдерд┐рдпреМрдВред рд╕рд░реНрд╡рдкреНрд░рдердо, рд╣рд╛рдореА рдбрд╛рдЯрд╛рдмреЗрд╕рд▓рд╛рдИ рдХреНрдпрд╛рд╕рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ; рдорд╛рдЗрдЧреНрд░реЗрд╕рдирдХреЛ рдХреНрд░рдордорд╛ рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдЦрд╛рд▓реА рдЧрд░реНрдЫреМрдВред рджреЛрд╕реНрд░реЛ, рдбрд╛рдЯрд╛рдмреЗрд╕ рд▓реЛрдб рд╣реБрдиреНрдЫ рдЬрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрд░реБ рд╣реБрдиреНрдЫред рд╕рдмреИ рдХреБрд░рд╛ рдорд┐рд▓реНрдЫред
Realm рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдХреЗ рдЧрд▓рдд рдЫ
рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЛ рд╕реНрдерд╛рдкрдирд╛рджреЗрдЦрд┐ рд░ рд╕рдХреНрд░рд┐рдп рдкреНрд░рдпреЛрдЧрдХреЛ рдмрдЦрдд рдердк рдбрд╛рдЯрд╛рдмреЗрд╕рдХрд╛ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рдЬреАрд╡рдирдорд╛ рдХрд╕рд░реА рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреНрдЫ рднрдиреЗрд░ рдЬрд╛рдБрдЪ рдЧрд░реНрди рдерд╛рд▓реНрдпреМрдВред рддрдкрд╛рдИрдВ рдорд╛рд░реНрдлрдд рдХреНрд╖реЗрддреНрд░ рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
adb exec-out run-as ${PACKAGE_NAME} cat files/${DB_NAME}
рд╡рд┐рднрд┐рдиреНрди рд╕рдордпрдорд╛ рдбрд╛рдЯрд╛рдмреЗрд╕рдХрд╛ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рд╣реЗрд░реЗрдкрдЫрд┐, рд╣рд╛рдореАрд▓реЗ рдкрддреНрддрд╛ рд▓рдЧрд╛рдпреМрдВ рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░рдХрд╛ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░рдиреНрддрд░ рдмрдврд┐рд░рд╣реЗрдХреЛ рдЫред
рддрд╕реНрд╡рд┐рд░рд▓реЗ рджреБрдИ рдлрд╛рдИрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд░рд┐рдпрд▓рдо рд╕реНрдЯреБрдбрд┐рдпреЛрдХреЛ рдЯреБрдХреНрд░рд╛ рджреЗрдЦрд╛рдЙрдБрджрдЫ: рдмрд╛рдпрд╛рдБрдорд╛ - рд╕реНрдерд╛рдкрдирд╛ рдкрдЫрд┐ рдХреЗрд╣реА рд╕рдордп рдкрдЫрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЖрдзрд╛рд░, рджрд╛рдпрд╛рдБ - рд╕рдХреНрд░рд┐рдп рдкреНрд░рдпреЛрдЧ рдкрдЫрд┐ред рдпреЛ рджреЗрдЦреНрди рд╕рдХрд┐рдиреНрдЫ рдХрд┐ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ ImageEntity
╨╕ MoneyType
рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рдмрдвреЗрдХреЛ рдЫ (рд╕реНрдХреНрд░рд┐рдирд╕рдЯрд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░рдХрд╛ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рджреЗрдЦрд╛рдЙрдБрдЫ)ред
рдбрд╛рдЯрд╛рдмреЗрд╕ рд╡реГрджреНрдзрд┐ рд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рдмреАрдЪ рд╕рдореНрдмрдиреНрдз
рдЕрдирд┐рдпрдиреНрддреНрд░рд┐рдд рдбрд╛рдЯрд╛рдмреЗрд╕ рд╡реГрджреНрдзрд┐ рдзреЗрд░реИ рдЦрд░рд╛рдм рдЫред рддрд░ рдпрд╕рд▓реЗ рдХрд╕рд░реА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордпрд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрдЫ? ActivityManager рдорд╛рд░реНрдлрдд рдпреЛ рдорд╛рдкрди рдЧрд░реНрди рдПрдХрджрдо рд╕рдЬрд┐рд▓реЛ рдЫред рдПрдиреНрдбреНрд░реЛрдЗрдб 4.4 рджреЗрдЦрд┐, logcat рд▓реЗ рд╕реНрдЯреНрд░рд┐рдЩ рдкреНрд░рджрд░реНрд╢рди рд░ рд╕рдордп рд╕рдВрдЧ рд▓рдЧ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫред рдпреЛ рд╕рдордп рд╕рдХреНрд░рд┐рдпрддрд╛ рд░реЗрдиреНрдбрд░рд┐рдЩрдХреЛ рдЕрдиреНрддреНрдп рд╕рдореНрдо рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрд░реБ рднрдПрдХреЛ рдХреНрд╖рдг рджреЗрдЦрд┐ рдЕрдиреНрддрд░рд╛рд▓ рдмрд░рд╛рдмрд░ рдЫред рдпрд╕ рдЕрд╡рдзрд┐рдорд╛ рдирд┐рдореНрди рдШрдЯрдирд╛рд╣рд░реВ рд╣реБрдиреНрдЫрдиреН:
- рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
- рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХрд░рдгред
- рдЧрддрд┐рд╡рд┐рдзрд┐рд╣рд░реВрдХреЛ рд╕рд┐рд░реНрдЬрдирд╛ рд░ рдкреНрд░рд╛рд░рдореНрднрд┐рдХрд░рдгред
- рд▓реЗрдЖрдЙрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИред
- рдЖрд╡реЗрджрди рдкреНрд░рддрд┐рдкрд╛рджрдиред
рд╣рд╛рдореАрд▓рд╛рдИ рд╕реБрд╣рд╛рдЙрдБрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ -S рд░ -W рдлреНрд▓реНрдпрд╛рдЧрд╣рд░реВрд╕рдБрдЧ ADB рдЪрд▓рд╛рдЙрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордпрдХреЛ рд╕рд╛рде рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:
adb shell am start -S -W ru.dodopizza.app/.MainActivity -c android.intent.category.LAUNCHER -a android.intent.action.MAIN
рдпрджрд┐ рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рддреНрдпрд╣рд╛рдБрдмрд╛рдЯ рд▓рд┐рдиреБрд╣реЛрд╕реН grep -i WaitTime
рд╕рдордп, рддрдкрд╛рдИрдВ рдпрд╕ рдореЗрдЯреНрд░рд┐рдХрдХреЛ рд╕рдЩреНрдХрд▓рди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рджреГрд╢реНрдпрд╛рддреНрдордХ рд░реВрдкрдорд╛ рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рддрд▓рдХреЛ рдЧреНрд░рд╛рдлрд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╕рдирдХреЛ рдЪрд┐рд╕реЛ рд╕реБрд░реБрд╡рд╛рддрдХреЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордпрдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рджреЗрдЦрд╛рдЙрдБрдЫред
рдПрдХреИ рд╕рдордпрдорд╛, рддреНрдпрд╣рд╛рдБ рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рдЖрдХрд╛рд░ рд░ рд╡реГрджреНрдзрд┐ рдмреАрдЪрдХреЛ рд╕рдореНрдмрдиреНрдзрдХреЛ рд╕рдорд╛рди рдкреНрд░рдХреГрддрд┐ рдерд┐рдпреЛ, рдЬреБрди 4 MB рдмрд╛рдЯ 15 MB рдорд╛ рдмрдвреНрдпреЛред рдХреБрд▓рдорд╛, рдпреЛ рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреНрдЫ рдХрд┐ рд╕рдордпрдХреЛ рд╕рд╛рде (рдЪрд┐рд╕реЛ рд╕реБрд░реБрдХреЛ рд╡реГрджреНрдзрд┐ рд╕рдВрдЧ), рджреБрдмреИ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓рдиреНрдЪ рд╕рдордп рд░ рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рдЖрдХрд╛рд░ рдмрдвреНрдпреЛред рд╣рд╛рдореНрд░реЛ рд╣рд╛рддрдорд╛ рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рдЫред рдЕрдм рдХреЗрд╡рд▓ рдирд┐рд░реНрднрд░рддрд╛ рдкреБрд╖реНрдЯрд┐ рдЧрд░реНрди рдмрд╛рдБрдХреА рдерд┐рдпреЛред рддреНрдпрд╕рдХрд╛рд░рдг, рд╣рд╛рдореАрд▓реЗ "рд▓реАрдХ" рд╣рдЯрд╛рдЙрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдпреМрдВ рд░ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рдпрд╕рд▓реЗ рдкреНрд░рдХреНрд╖реЗрдкрдгрд▓рд╛рдИ рдЧрддрд┐ рджрд┐рдиреНрдЫред
рдЕрдирдиреНрдд рдбрд╛рдЯрд╛рдмреЗрд╕ рд╡реГрджреНрдзрд┐ рдХреЛ рдХрд╛рд░рдг
"рд▓реАрдХ" рд╣рдЯрд╛рдЙрдиреБ рдЕрдШрд┐, рдпреЛ рдмреБрдЭреНрди рд▓рд╛рдпрдХ рдЫ рдХрд┐рди рддрд┐рдиреАрд╣рд░реВ рдкрд╣рд┐рд▓реЛ рд╕реНрдерд╛рдирдорд╛ рджреЗрдЦрд╛ рдкрд░реНрдпреЛред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╣реЛ рд╕рдореНрдЭреМрдВред
рдХреНрд╖реЗрддреНрд░ рдПрдХ рдЧреИрд░-рд░рд┐рд▓реЗрд╢рдирд▓ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╣реЛред рдпрд╕рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдПрдиреНрдбреНрд░реЛрдЗрдбрдорд╛ рдХрддрд┐рд╡рдЯрд╛ ORM рд░рд┐рд▓реЗрд╢рдирд▓ рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫ рд╕рдорд╛рди рд░реВрдкрдорд╛ рд╡рд╕реНрддреБрд╣рд░реВ рдмреАрдЪрдХреЛ рд╕рдореНрдмрдиреНрдзрд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдПрдХреИ рд╕рдордпрдорд╛, Realm рд▓реЗ рдХрдо рд╕реЗ рдХрдо рд░реВрдкрд╛рдиреНрддрд░рдг рд░ рдореНрдпрд╛рдкрд┐рдЩрдХреЛ рд╕рд╛рде рдореЗрдореЛрд░реАрдорд╛ рд╡рд╕реНрддреБрд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрджрдЫред рдпрд╕рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдбрд┐рд╕реНрдХрдмрд╛рдЯ рдзреЗрд░реИ рдЪрд╛рдБрдбреИ рдбрд╛рдЯрд╛ рдкрдвреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдЬреБрди рд░рд┐рдпрд▓реНрдордХреЛ рдмрд▓ рд╣реЛ рд░ рдХрд┐рди рдпрд╕рд▓рд╛рдИ рдорд╛рдпрд╛ рдЧрд░рд┐рдиреНрдЫред
(рдпрд╕ рд▓реЗрдЦрдХреЛ рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рд▓рд╛рдЧрд┐, рдпреЛ рд╡рд┐рд╡рд░рдг рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдпрд╛рдкреНрдд рд╣реБрдиреЗрдЫред рддрдкрд╛рдИрдВ рдХреВрд▓рдорд╛ рдХреНрд╖реЗрддреНрд░рдХреЛ рдмрд╛рд░реЗрдорд╛ рдердк рдкрдвреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
рдзреЗрд░реИ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рд░рд┐рд▓реЗрд╢рдирд▓ рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╣реБрдб рдЕрдиреНрддрд░реНрдЧрдд SQL рд╕рдБрдЧ 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()) рд╕рдореНрдорд┐рд▓рд┐рдд рдЧрд░реНрдЫреМрдВ рднрдиреЗ, рдпреЛ рд╡рд╕реНрддреБ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдУрднрд░рд░рд╛рдЗрдЯ рд╣реБрдиреЗрдЫред рддрд░ рд╕рдмреИ рдЖрдиреНрддрд░рд┐рдХ рд╡рд╕реНрддреБрд╣рд░реВ (рдЫрд╡рд┐, рдЕрдиреБрдХреВрд▓рдиEntity рд░ cartComboProducts) рдЕрднрд┐рднрд╛рд╡рдХрд╕рдБрдЧрдХреЛ рд╕рдореНрдмрдиреНрдз рдЧреБрдорд╛рдЙрдиреЗрдЫрдиреН рд░ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рд░рд╣рдиреЗрдЫрдиреНред
рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧрдХреЛ рдЬрдбрд╛рди рд╣рд░рд╛рдПрдХреЛ рд╣реБрдирд╛рд▓реЗ, рд╣рд╛рдореА рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЕрдм рдкрдвреНрджреИрдиреМрдВ рд╡рд╛ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдореЗрдЯрд╛рдЙрдБрджреИрдиреМрдВ (рдЬрдмрд╕рдореНрдо рд╣рд╛рдореА рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдкрд╣реБрдБрдЪ рдЧрд░реНрджреИрдиреМрдВ рд╡рд╛ рд╕рдореНрдкреВрд░реНрдг "рддрд╛рд▓рд┐рдХрд╛" рдЦрд╛рд▓реА рдЧрд░реНрджреИрдиреМрдВ)ред рд╣рд╛рдореАрд▓реЗ рдпрд╕рд▓рд╛рдИ "рдореЗрдореЛрд░реА рд▓реАрдХ" рднрдиреНрдпреМрдВред
рдЬрдм рд╣рд╛рдореА рдХреНрд╖реЗрддреНрд░рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдЫреМрдВ, рд╣рд╛рдореАрд▓реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рд╕рдмреИ рддрддреНрд╡рд╣рд░реВ рдорд╛рд░реНрдлрдд рдЬрд╛рдиреБрдкрд░реНрдЫ рд░ рддреНрдпрд╕реНрддрд╛ рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рдЕрдШрд┐ рд╕рдмреИ рдХреБрд░рд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдореЗрдЯрд╛рдЙрдиреБрдкрд░реНрджрдЫред рдпреЛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рдпреЛ рдЬрд╕реНрддреИ:
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()
}
// ╨╕ ╨┐╨╛╤В╨╛╨╝ ╤Г╨╢╨╡ ╤Б╨╛╤Е╤А╨░╨╜╤П╨╡╨╝
рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕реЛ рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рд╕рдмреИ рдХреБрд░рд╛рд▓реЗ рдЬрд╕реНрддреИ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫред рдпрд╕ рдЙрджрд╛рд╣рд░рдгрдорд╛, рд╣рд╛рдореА рдЫрд╡рд┐, рдЕрдиреБрдХреВрд▓рдиEntity, рд░ cartComboProducts рднрд┐рддреНрд░ рдХреБрдиреИ рдЕрдиреНрдп рдиреЗрд╕реНрдЯреЗрдб рд░рд┐рдпрд▓реНрдо рд╡рд╕реНрддреБрд╣рд░реВ рдЫреИрдирдиреН рднрдиреНрдиреЗ рдЕрдиреБрдорд╛рди рдЧрд░реНрдЫреМрдВ, рддреНрдпрд╕реИрд▓реЗ рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рдЕрдиреНрдп рдиреЗрд╕реНрдЯреЗрдб рд▓реВрдкрд╣рд░реВ рд░ рдореЗрдЯрд╛рдЗрдПрдХрд╛ рдЫреИрдирдиреНред
"рдЫрд┐рдЯреЛ" рд╕рдорд╛рдзрд╛рди
рд╣рд╛рдореАрд▓реЗ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реЗрдХреЛ рдкрд╣рд┐рд▓реЛ рдХреБрд░рд╛ рд╕рдмреИрднрдиреНрджрд╛ рдЫрд┐рдЯреЛ рдмрдвреНрджреЛ рд╡рд╕реНрддреБрд╣рд░реВ рд╕рдлрд╛ рдЧрд░реНрдиреЗ рд░ рдпрд╕рд▓реЗ рд╣рд╛рдореНрд░реЛ рдореВрд▓ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдЫ рдХрд┐ рднрдиреЗрд░ рдирддрд┐рдЬрд╛рд╣рд░реВ рдЬрд╛рдБрдЪ рдЧрд░реНрдпреМрдВред рдкрд╣рд┐рд▓реЛ, рд╕рд░рд▓ рд░ рд╕рдмреИ рднрдиреНрджрд╛ рд╕рд╣рдЬ рд╕рдорд╛рдзрд╛рди рдмрдирд╛рдЗрдПрдХреЛ рдерд┐рдпреЛ, рдЕрд░реНрдерд╛рддреН: рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдЖрдлреНрдирд╛ рдмрдЪреНрдЪрд╛рд╣рд░реВрд▓рд╛рдИ рд╣рдЯрд╛рдЙрди рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рд╣реБрдиреБрдкрд░реНрдЫред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкреНрд░рд╕реНрддреБрдд рдЧрд░реНрдпреМрдВ рдЬрд╕рд▓реЗ рдпрд╕рдХреЛ рдиреЗрд╕реНрдЯреЗрдб рдХреНрд╖реЗрддреНрд░ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдлрд┐рд░реНрддрд╛ рдЧрд░реНтАНрдпреЛ:
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
рдирдпрд╛рдБ рд▓реЗрдЦреНрдиреБ рдЕрдШрд┐ рд╕рдмреИ рд╕рдЩреНрдХрд▓рди рд╡рд╕реНрддреБрд╣рд░реВ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдореЗрдЯрд╛рдЙрдБрдЫред рд╣рд╛рдореА рд╕рдореНрдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧрдорд╛ рдпреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЕрдиреНрддреНрдп рдЧрд░реНрдЫреМрдВред Realm рдорд╛ рдореЗрдореЛрд░реА рд▓реАрдХ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЧрдПрдХреЛ рдЫред рдПрдкреНрд▓рд┐рдХреЗрд╕рдирдХреЛ рдЪрд┐рд╕реЛ рд╕реБрд░реБрд╡рд╛рддрдХреЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордпрдХреЛ рдирд┐рд░реНрднрд░рддрд╛рдХреЛ рд╕рдорд╛рди рдорд╛рдкрди рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐, рд╣рд╛рдореА рдкрд░рд┐рдгрд╛рдо рджреЗрдЦреНрдЫреМрдВред
рд╣рд░рд┐рдпреЛ рд░реЗрдЦрд╛рд▓реЗ рдиреЗрд╕реНрдЯреЗрдб рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреНрдпрд╛рд╕реНрдХреЗрдб рдореЗрдЯрд╛рдЙрдиреЗ рдХреНрд░рдордорд╛ рдХреЛрд▓реНрдб рд╕реНрдЯрд╛рд░реНрдЯрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордпрдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рджреЗрдЦрд╛рдЙрдБрджрдЫред
рдкрд░рд┐рдгрд╛рдо рд░ рдирд┐рд╖реНрдХрд░реНрд╖
рд╕рдБрдзреИ рдмрдвреНрджреЛ рд░рд┐рдпрд▓рдо рдбрд╛рдЯрд╛рдмреЗрд╕рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓рд╛рдИ рдзреЗрд░реИ рдврд┐рд▓реЛ рд╕реБрд░реБ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рд░рдг рдмрдирд╛рдЙрдБрджреИ рдерд┐рдпреЛред рд╣рд╛рдореАрд▓реЗ рдиреЗрд╕реНрдЯреЗрдб рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдЖрдлреНрдиреИ "рдХреНрдпрд╛рд╕реНрдХреЗрдбрд┐рдЩ рдбрд┐рд▓рд┐рдЯ" рд╕рдБрдЧ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЬрд╛рд░реА рдЧрд░реНрдпреМрдВред рд░ рдЕрдм рд╣рд╛рдореА _app_start рдореЗрдЯреНрд░рд┐рдХ рдорд╛рд░реНрдлрдд рд╣рд╛рдореНрд░реЛ рдирд┐рд░реНрдгрдпрд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордпрд▓рд╛рдИ рдХрд╕рд░реА рдЕрд╕рд░ рдЧрд░реНрдЫ рднрдиреЗрд░ рдирд┐рдЧрд░рд╛рдиреА рд░ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реНрдЫреМрдВред
рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА 90 рджрд┐рдирдХреЛ рд╕рдордпрд╛рд╡рдзрд┐ рд▓рд┐рдиреНрдЫреМрдВ рд░ рд╣реЗрд░реНрдЫреМрдВ: рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрд░реБ рд╣реБрдиреЗ рд╕рдордп, рджреБрдмреИ рдордзреНрдп рд░ рдЬреБрди рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ 95 рдФрдВ рдкреНрд░рддрд┐рд╢рддрдорд╛ рдкрд░реНрджрдЫ, рдШрдЯреНрди рдерд╛рд▓реНрдпреЛ рд░ рдЕрдм рдмрдвреНрджреИрдиред
рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕рд╛рдд-рджрд┐рдирдХреЛ рдЪрд╛рд░реНрдЯ рд╣реЗрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, _app_start рдореЗрдЯреНрд░рд┐рдХ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдкрд░реНрдпрд╛рдкреНрдд рджреЗрдЦрд┐рдиреНрдЫ рд░ 1 рд╕реЗрдХреЗрдиреНрдб рднрдиреНрджрд╛ рдХрдо рдЫред
рдпреЛ рдкрдирд┐ рдердкреНрди рд▓рд╛рдпрдХ рдЫ рдХрд┐ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, рдпрджрд┐ _app_start рдХреЛ рдордзреНрдп рдорд╛рди 5 рд╕реЗрдХреЗрдиреНрдб рднрдиреНрджрд╛ рдмрдвреА рдЫ рднрдиреЗ Firebase рд▓реЗ рд╕реВрдЪрдирд╛рд╣рд░реВ рдкрдард╛рдЙрдБрдЫред рдпрджреНрдпрдкрд┐, рд╣рд╛рдореА рджреЗрдЦреНрди рд╕рдХреНрдЫреМрдВ, рддрдкрд╛рдИрд▓реЗ рдпрд╕рдорд╛ рднрд░ рдкрд░реНрдиреБ рд╣реБрдБрджреИрди, рдмрд░реБ рднрд┐рддреНрд░ рдЬрд╛рдиреБрд╣реЛрд╕реН рд░ рдпрд╕рд▓рд╛рдИ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
Realm рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╡рд┐рд╢реЗрд╖ рдХреБрд░рд╛ рдпреЛ рд╣реЛ рдХрд┐ рдпреЛ рдПрдХ рдЧреИрд░-рд░рд┐рд▓реЗрд╢рдирд▓ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╣реЛред рдпрд╕рдХреЛ рдкреНрд░рдпреЛрдЧрдХреЛ рд╕рд╣рдЬрддрд╛, ORM рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рд░ рд╡рд╕реНрддреБ рд▓рд┐рдЩреНрдХрд┐рдЩрд╕рдБрдЧ рд╕рдорд╛рдирддрд╛ рднрдП рддрд╛рдкрдирд┐, рдпрд╕рдорд╛ рдХреНрдпрд╛рд╕реНрдХреЗрдб рдореЗрдЯрд╛рдЙрдиреЗ рдЫреИрдиред
рдпрджрд┐ рдпрд╕рд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦрд┐рдПрдХреЛ рдЫреИрди рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рдиреЗрд╕реНрдЯреЗрдб рд╡рд╕реНрддреБрд╣рд░реВ рдЬрдореНрдорд╛ рд╣реБрдиреЗрдЫрдиреН рд░ "рд▓рд┐рдХ" рд╣реБрдиреЗрдЫрдиреНред рдбрд╛рдЯрд╛рдмреЗрд╕ рдирд┐рд░рдиреНрддрд░ рдмрдвреНрдиреЗрдЫ, рдЬрд╕рд▓реЗ рдмрд╛рд░реАрдорд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рдврд┐рд▓реЛ рд╡рд╛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдкрд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрдиреЗрдЫред
рдореИрд▓реЗ Realm рдорд╛ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдХреНрдпрд╛рд╕реНрдХреЗрдб рдореЗрдЯрд╛рдЙрдиреЗ рдХрд╕рд░реА рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рд╣рд╛рдореНрд░реЛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдЧрд░реЗрдВ, рдЬреБрди рдЕрдЭреИ рдмрдХреНрд╕ рдмрд╛рд╣рд┐рд░ рдЫреИрди, рддрд░ рд▓рд╛рдореЛ рд╕рдордпрджреЗрдЦрд┐ рдХреБрд░рд╛ рдЧрд░рд┐рдПрдХреЛ рдЫред
рдпрд╕ рд╕реБрд╡рд┐рдзрд╛рдХреЛ рдЖрд╕рдиреНрди рдЙрдкрд╕реНрдерд┐рддрд┐рдХреЛ рдмрд╛рд░реЗрдорд╛ рдЫрд▓рдлрд▓рдХреЛ рдмрд╛рд╡рдЬреБрдж, рджрд╛рдпрд░рд╛рдорд╛ рдХреНрдпрд╛рд╕реНрдХреЗрдб рдореЗрдЯрд╛рдЙрдиреЗ рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдбрд┐рдЬрд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рдЧрд░рд┐рдиреНрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдирдпрд╛рдБ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдбрд┐рдЬрд╛рдЗрди рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рдпреЛ рдЦрд╛рддрд╛рдорд╛ рд▓рд┐рдиреБрд╣реЛрд╕реНред рд░ рдпрджрд┐ рддрдкрд╛рдЗрдБ рдкрд╣рд┐рд▓реЗ рдиреИ Realm рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдпрджрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рддреНрдпрд╕реНрддрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдЫрдиреН рднрдиреЗ рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рд╕реНрд░реЛрдд: www.habr.com