āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻŽā§āĻŦāĻžāĻāĻ˛ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ¤ā§ āĻĻā§āĻ°ā§āĻ¤ āĻ˛āĻā§āĻ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻļā§āĻ˛ UI āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻāĻžāĻ˛ā§ āĻšāĻ¤ā§ āĻĻā§āĻ°ā§āĻ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§āĻ¯āĻŧ āĻ¤āĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻĻā§āĻāĻāĻŋāĻ¤ āĻāĻŦāĻ āĻ°āĻžāĻāĻžāĻ¨ā§āĻŦāĻŋāĻ¤ āĻŦā§āĻ§ āĻāĻ°āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¸āĻšāĻā§āĻ āĻā§āĻ°āĻžāĻšāĻā§āĻ° āĻ āĻāĻŋāĻā§āĻāĻ¤āĻž āĻ˛ā§āĻŖā§āĻ āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻŦāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻšāĻžāĻ°āĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŽāĻ¨āĻāĻŋ āĻ¤āĻŋāĻ¨āĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻā§āĻā§ˇ
āĻāĻŽāĻ°āĻž āĻāĻāĻŦāĻžāĻ° āĻāĻŦāĻŋāĻˇā§āĻāĻžāĻ° āĻāĻ°ā§āĻāĻŋ āĻ¯ā§ Dodo Pizza āĻ ā§āĻ¯āĻžāĻĒāĻāĻŋ āĻāĻžāĻ˛ā§ āĻšāĻ¤ā§ āĻāĻĄāĻŧā§ 3 āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§āĻ¯āĻŧ āĻāĻŦāĻ āĻāĻŋāĻā§ "āĻāĻžāĻā§āĻ¯āĻŦāĻžāĻ¨āĻĻā§āĻ°" āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ 15-20 āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§āĻ¯āĻŧāĨ¤
āĻāĻžāĻā§āĻ° āĻ¨ā§āĻā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§ āĻ¸āĻŽāĻžāĻĒā§āĻ¤āĻŋ āĻ¸āĻš āĻāĻāĻāĻŋ āĻāĻ˛ā§āĻĒ āĻ°āĻ¯āĻŧā§āĻā§: āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻŽ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻŦā§āĻĻā§āĻ§āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§, āĻāĻāĻāĻŋ āĻŽā§āĻŽāĻ°āĻŋ āĻ˛āĻŋāĻ, āĻā§āĻāĻžāĻŦā§ āĻāĻŽāĻ°āĻž āĻ¨ā§āĻ¸ā§āĻā§āĻĄ āĻ āĻŦāĻā§āĻā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°ā§āĻāĻŋ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻ¨āĻŋāĻā§āĻĻā§āĻ°āĻā§ āĻāĻāĻ¸āĻžāĻĨā§ āĻā§āĻ¨ā§ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ āĻāĻŦāĻ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ āĻŋāĻ āĻāĻ°ā§āĻāĻŋāĨ¤
āĻĒā§āĻ°āĻŦāĻ¨ā§āĻ§ āĻ˛ā§āĻāĻ:āĻŽā§āĻ¯āĻžāĻā§āĻ¸āĻŋāĻŽ āĻāĻžāĻāĻŋāĻ¨āĻāĻŋāĻ¨ â āĻĄā§āĻĄā§ āĻĒāĻŋāĻā§āĻāĻžāĻ¤ā§ āĻ ā§āĻ¯āĻžāĻ¨ā§āĻĄā§āĻ°āĻ¯āĻŧā§āĻĄ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĨ¤
āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻžāĻ¨ āĻāĻāĻāĻ¨ā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°āĻžāĻ° āĻ¤āĻŋāĻ¨ āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻ°āĻĨāĻŽ āĻ ā§āĻ¯āĻžāĻā§āĻāĻŋāĻāĻŋāĻāĻŋāĻ° āĻ āĻ¨āĻ°āĻŋāĻā§āĻŽ() āĻāĻ¨āĻĢāĻŋāĻ¨āĻŋāĻāĻŋāĨ¤ āĻāĻŦāĻ āĻāĻŋāĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯, āĻ¸ā§āĻāĻžāĻ°ā§āĻāĻāĻĒ āĻ¸āĻŽāĻ¯āĻŧ 15-20 āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻĒā§āĻāĻā§āĻā§āĨ¤ āĻāĻāĻž āĻāĻŋāĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻāĻŦ?
āĻ¯āĻžāĻĻā§āĻ° āĻĒāĻĄāĻŧāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§āĻ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻā§āĻŦ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ¸āĻžāĻ°āĻžāĻāĻļ
āĻāĻŽāĻžāĻĻā§āĻ° āĻ°āĻžāĻā§āĻ¯ā§āĻ° āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ
āĻŦāĻŋāĻ°āĻžāĻŽ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒā§āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻŋāĻā§ āĻ¨ā§āĻ¸ā§āĻā§āĻĄ āĻ
āĻŦāĻā§āĻā§āĻ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻāĻŽāĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻļā§āĻ°ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ§ā§āĻ°ā§ āĻ§ā§āĻ°ā§ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒāĻžāĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻŋ āĻ āĻŋāĻ āĻāĻ°ā§āĻāĻŋ, āĻāĻŦāĻ āĻ¸ā§āĻāĻžāĻ°ā§āĻāĻāĻĒā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻžāĻ°ā§āĻā§āĻā§ āĻāĻ¸ā§āĻā§ - āĻāĻāĻŋ 1 āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§āĻ° āĻāĻŽ āĻšāĻ¯āĻŧā§ āĻā§āĻā§ āĻāĻŦāĻ āĻāĻ° āĻŦāĻžāĻĄāĻŧā§āĻ¨āĻŋāĨ¤ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋāĻ¤ā§ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻāĻŦāĻ āĻĻā§āĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§ - āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĨ¤
āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻŦāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ
āĻāĻ, āĻ¯ā§ āĻā§āĻ¨ā§ āĻŽā§āĻŦāĻžāĻāĻ˛ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĻā§āĻ°ā§āĻ¤ āĻ˛āĻā§āĻ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻļā§āĻ˛ āĻšāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻž āĻļā§āĻ§ā§ āĻŽā§āĻŦāĻžāĻāĻ˛ āĻ ā§āĻ¯āĻžāĻĒā§āĻ° āĻāĻĨāĻž āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻā§āĻŽā§āĻĒāĻžāĻ¨āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ āĻāĻŋāĻā§āĻāĻ¤āĻž āĻāĻāĻāĻŋ āĻāĻāĻŋāĻ˛ āĻāĻŋāĻ¨āĻŋāĻ¸āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻĄā§āĻ˛āĻŋāĻāĻžāĻ°āĻŋāĻ° āĻāĻ¤āĻŋ āĻšāĻ˛ āĻĒāĻŋā§āĻāĻž āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻ āĻ¨ā§āĻ¯āĻ¤āĻŽ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸ā§āĻāĻāĨ¤ āĻ¯āĻĻāĻŋ āĻĄā§āĻ˛āĻŋāĻāĻžāĻ°āĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻĒāĻŋāĻā§āĻāĻž āĻāĻ°āĻŽ āĻšāĻŦā§, āĻāĻŦāĻ āĻ¯ā§ āĻā§āĻ°āĻžāĻšāĻ āĻāĻāĻ¨ āĻā§āĻ¤ā§ āĻāĻžāĻ¨ āĻ¤āĻžāĻĻā§āĻ° āĻŦā§āĻļāĻŋāĻā§āĻˇāĻŖ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻžāĨ¤ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯, āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§, āĻĻā§āĻ°ā§āĻ¤ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻ āĻ¨ā§āĻā§āĻ¤āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ, āĻāĻžāĻ°āĻŖ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻāĻžāĻ˛ā§ āĻšāĻ¤ā§ āĻ¯āĻĻāĻŋ āĻŽāĻžāĻ¤ā§āĻ° 20 āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻ¸āĻŽāĻ¯āĻŧ āĻ˛āĻžāĻā§, āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻĒāĻŋāĻā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¤āĻā§āĻˇāĻŖ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§?
āĻĒā§āĻ°āĻĨāĻŽā§, āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻā§āĻ°āĻžāĻ āĻāĻ āĻ¸āĻ¤ā§āĻ¯āĻāĻŋāĻ° āĻŽā§āĻā§āĻŽā§āĻāĻŋ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĻžāĻŽ āĻ¯ā§ āĻāĻāĻ¨āĻ āĻāĻāĻ¨āĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻāĻžāĻ˛ā§ āĻšāĻ¤ā§ āĻāĻ¯āĻŧā§āĻ āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§āĻ¯āĻŧ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻšāĻāĻ°ā§āĻŽā§āĻĻā§āĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻ āĻāĻŋāĻ¯ā§āĻ āĻļā§āĻ¨āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻŋ āĻ¯ā§ āĻāĻāĻŋ āĻāĻ¤ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§āĻ¯āĻŧāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻāĻāĻžāĻŦā§ āĻāĻ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĻ¨āĻŋāĨ¤
āĻāĻāĻž āĻāĻ¤āĻā§āĻˇāĻŖ? āĻ
āĻ¨ā§āĻ¸āĻžāĻ°ā§
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻ
āĻāĻŋāĻ¯ā§āĻ āĻāĻ¸āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§ āĻ¯ā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻāĻžāĻ˛ā§ āĻšāĻ¤ā§ āĻā§āĻŦ, āĻā§āĻŦ, āĻā§āĻŦ āĻĻā§āĻ°ā§āĻ āĻ¸āĻŽāĻ¯āĻŧ āĻ˛ā§āĻā§āĻā§! āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž "āĻā§āĻŦ, āĻā§āĻŦ, āĻā§āĻŦ āĻĻā§āĻ°ā§āĻ" āĻā§ āĻ¤āĻž āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋāĨ¤ āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻŦā§āĻ¸ āĻā§āĻ°ā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻāĻŋ
āĻāĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻā§āĻ°ā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻā§āĻ˛āĻžāĻ° āĻŽā§āĻšā§āĻ°ā§āĻ¤ āĻāĻŦāĻ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻžāĻ°ā§āĻ¯āĻāĻ˛āĻžāĻĒā§āĻ° onResume() āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻŋāĻ¤ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻāĻ°ā§āĨ¤ Firebase āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻāĻ āĻŽā§āĻā§āĻ°āĻŋāĻāĻāĻŋāĻā§ _app_start āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻž āĻĒā§āĻ°āĻŽāĻžāĻŖāĻŋāĻ¤ āĻ¯ā§:
- 95 āĻ¤āĻŽ āĻĒāĻžāĻ°ā§āĻ¸ā§āĻ¨ā§āĻāĻžāĻāĻ˛ā§āĻ° āĻāĻĒāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻāĻžāĻ°ā§āĻāĻāĻĒ āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻžāĻ¯āĻŧ 20 āĻ¸ā§āĻā§āĻ¨ā§āĻĄ (āĻāĻŋāĻā§ āĻāĻ°āĻ āĻŦā§āĻļāĻŋ), āĻ¯āĻĻāĻŋāĻ āĻŽāĻžāĻāĻžāĻ°āĻŋ āĻā§āĻ˛ā§āĻĄ āĻ¸ā§āĻāĻžāĻ°ā§āĻāĻāĻĒ āĻ¸āĻŽāĻ¯āĻŧ 5 āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§āĻ° āĻāĻŽāĨ¤
- āĻ¸ā§āĻāĻžāĻ°ā§āĻāĻāĻĒ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻ§ā§āĻ°ā§āĻŦāĻ āĻŽāĻžāĻ¨ āĻ¨āĻ¯āĻŧ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒāĻžāĻ¯āĻŧāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻ¨āĻ āĻāĻāĻ¨āĻ āĻĢā§āĻāĻāĻž āĻāĻā§āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨āĻāĻŋ āĻā§āĻāĻā§ āĻĒā§āĻ¯āĻŧā§āĻāĻŋ āĻ¯āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§āĻ° āĻ¸ā§āĻā§āĻ˛ 90 āĻĻāĻŋāĻ¨ā§ āĻŦāĻžāĻĄāĻŧāĻŋāĻ¯āĻŧā§āĻāĻŋāĨ¤
āĻĻā§āĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻŽāĻžāĻĨāĻžāĻ¯āĻŧ āĻāĻ˛:
- āĻāĻŋāĻā§ āĻ˛āĻŋāĻ āĻšāĻā§āĻā§.
- āĻāĻ "āĻāĻŋāĻā§" āĻ°āĻŋāĻ˛āĻŋāĻā§āĻ° āĻĒāĻ°ā§ āĻ°āĻŋāĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻŦāĻžāĻ° āĻ˛āĻŋāĻ āĻšāĻ¯āĻŧāĨ¤
"āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻŋāĻā§," āĻāĻŽāĻ°āĻž āĻā§āĻŦā§āĻāĻŋāĻ˛āĻžāĻŽ, āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻ āĻŋāĻ āĻāĻŋāĻ˛āĻžāĻŽāĨ¤ āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻāĻŽāĻ°āĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸āĻā§ āĻā§āĻ¯āĻžāĻļā§ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ; āĻŽāĻžāĻāĻā§āĻ°ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŽāĻ°āĻž āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻāĻ°āĻŋāĨ¤ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻ¤, āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻļā§āĻ°ā§ āĻšāĻ˛ā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ˛ā§āĻĄ āĻšāĻ¯āĻŧāĨ¤ āĻ¸āĻŦāĻāĻŋāĻā§ āĻŽāĻŋāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤
āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻŽ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻŋ āĻā§āĻ˛
āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ āĻĨā§āĻā§ āĻāĻŦāĻ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻā§āĻŦāĻ¨ā§ āĻā§āĻāĻžāĻŦā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻŋāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻŽ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
adb exec-out run-as ${PACKAGE_NAME} cat files/${DB_NAME}
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻŽāĻ¯āĻŧā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĻā§āĻā§ āĻāĻŽāĻ°āĻž āĻāĻžāĻ¨āĻ¤ā§ āĻĒā§āĻ°ā§āĻāĻŋ āĻ¯ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ§āĻ°āĻŖā§āĻ° āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻŦāĻžāĻĄāĻŧāĻā§āĨ¤
āĻāĻŦāĻŋāĻāĻŋ āĻĻā§āĻāĻŋ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻŽ āĻ¸ā§āĻā§āĻĄāĻŋāĻāĻ° āĻāĻāĻāĻŋ āĻāĻŖā§āĻĄ āĻĻā§āĻāĻžāĻ¯āĻŧ: āĻŦāĻžāĻŽāĻĻāĻŋāĻā§ - āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ā§āĻ° āĻāĻŋāĻā§ āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°ā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻŦā§āĻ¸, āĻĄāĻžāĻ¨āĻĻāĻŋāĻā§ - āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻĒāĻ°ā§āĨ¤ āĻāĻ¤ā§ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻĻā§āĻāĻž āĻ¯āĻžāĻ¯āĻŧ ImageEntity
и MoneyType
āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒā§āĻ¯āĻŧā§āĻā§ (āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ§āĻ°āĻŖā§āĻ° āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻĻā§āĻāĻžāĻ¯āĻŧ)āĨ¤
āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻŦā§āĻĻā§āĻ§āĻŋ āĻāĻŦāĻ āĻ¸ā§āĻāĻžāĻ°ā§āĻāĻāĻĒ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ
āĻ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŋāĻ¤ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻŦā§āĻĻā§āĻ§āĻŋ āĻā§āĻŦāĻ āĻāĻžāĻ°āĻžāĻĒāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻ°ā§? ActivityManager āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻāĻ°āĻž āĻŦā§āĻļ āĻ¸āĻšāĻāĨ¤ Android 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 āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒā§āĻ¯āĻŧā§āĻā§āĨ¤ āĻ¸āĻžāĻŽāĻā§āĻ°āĻŋāĻāĻāĻžāĻŦā§, āĻāĻāĻŋ āĻĻā§āĻāĻž āĻ¯āĻžāĻā§āĻā§ āĻ¯ā§ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĨā§ (āĻ āĻžāĻ¨ā§āĻĄāĻž āĻļā§āĻ°ā§āĻ° āĻŦā§āĻĻā§āĻ§āĻŋāĻ° āĻ¸āĻžāĻĨā§), āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ˛āĻā§āĻā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŦāĻ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻāĻāĻžāĻ° āĻāĻāĻ¯āĻŧāĻ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒā§āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻšāĻžāĻ¤ā§ āĻāĻāĻāĻž āĻšāĻžāĻāĻĒā§āĻĨāĻŋāĻ¸āĻŋāĻ¸ āĻāĻā§āĨ¤ āĻāĻāĻ¨ āĻ¯āĻž āĻŦāĻžāĻāĻŋ āĻāĻŋāĻ˛ āĻ¤āĻž āĻāĻŋāĻ˛ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĨ¤ āĻ
āĻ¤āĻāĻŦ, āĻāĻŽāĻ°āĻž "āĻ˛āĻŋāĻ" āĻ
āĻĒāĻ¸āĻžāĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ āĻāĻŦāĻ āĻāĻāĻŋ āĻ˛āĻā§āĻā§āĻ° āĻāĻ¤āĻŋ āĻŦāĻžāĻĄāĻŧāĻŦā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĻā§āĻā§āĻ¨āĨ¤
āĻ āĻ¨ā§āĻ¤āĻšā§āĻ¨ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻŦā§āĻĻā§āĻ§āĻŋāĻ° āĻāĻžāĻ°āĻŖ
"āĻ˛āĻŋāĻ" āĻ āĻĒāĻ¸āĻžāĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻāĻā§, āĻ¤āĻžāĻ°āĻž āĻā§āĻ¨ āĻĒā§āĻ°āĻĨāĻŽ āĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¤āĻž āĻŦā§āĻāĻžāĻ° āĻŽāĻ¤ā§āĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻ¸ā§āĻ¨ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŋ āĻ°āĻžāĻā§āĻ¯ āĻāĻŋāĨ¤
āĻ°āĻŋāĻ˛ā§āĻŽ āĻāĻāĻāĻŋ āĻ -āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻšā§āĻ¨ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸āĨ¤ āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻŦāĻā§āĻā§āĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ āĻ¯ā§āĻāĻžāĻŦā§ Android-āĻ āĻāĻ¤āĻā§āĻ˛āĻŋ ORM āĻ°āĻŋāĻ˛ā§āĻļāĻ¨āĻžāĻ˛ āĻĄā§āĻāĻžāĻŦā§āĻ¸ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻŽ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻŦāĻ āĻŽā§āĻ¯āĻžāĻĒāĻŋāĻāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻŦ āĻĻā§āĻ°ā§āĻ¤ āĻĄāĻŋāĻ¸ā§āĻ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻĒāĻĄāĻŧāĻ¤ā§ āĻĻā§āĻ¯āĻŧ, āĻ¯āĻž āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻŽā§āĻ° āĻļāĻā§āĻ¤āĻŋ āĻāĻŦāĻ āĻā§āĻ¨ āĻāĻāĻŋ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
(āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋāĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§, āĻāĻ āĻŦāĻŋāĻŦāĻ°āĻŖāĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻĨā§āĻˇā§āĻ āĻšāĻŦā§āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻļāĻžāĻ¨ā§āĻ¤ āĻ
āĻā§āĻāĻ˛ā§ āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻŽ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ āĻ¨ā§āĻ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ° āĻ°āĻŋāĻ˛ā§āĻļāĻ¨āĻžāĻ˛ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¨āĻŋāĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻ āĻā§āĻ¯āĻ¸ā§āĻ¤ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻšā§āĻĄā§āĻ° āĻ¨āĻŋāĻā§ SQL āĻ¸āĻš ORM āĻĄāĻžāĻāĻžāĻŦā§āĻ¸)āĨ¤ āĻāĻŦāĻ āĻā§āĻ¯āĻžāĻ¸āĻā§āĻĄāĻŋāĻ āĻĄā§āĻāĻž āĻŽā§āĻā§ āĻĢā§āĻ˛āĻžāĻ° āĻŽāĻ¤ā§ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻŦāĻ˛ā§ āĻŽāĻ¨ā§ āĻšāĻ¯āĻŧāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ°āĻžāĻā§āĻ¯ā§ āĻ¨āĻ¯āĻŧāĨ¤
āĻ¯āĻžāĻāĻšā§āĻ, āĻā§āĻ¯āĻžāĻ¸āĻā§āĻĄ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻžāĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻāĻŋ āĻĻā§āĻ°ā§āĻ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ
āĻā§āĻ¯āĻžāĻ¸āĻā§āĻĄāĻŋāĻ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž āĻāĻžāĻĄāĻŧāĻžāĻ āĻĄā§āĻāĻž āĻ˛āĻŋāĻ
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ
āĻ¸ā§āĻ¤āĻŋāĻ¤ā§āĻŦāĻšā§āĻ¨ āĻā§āĻ¯āĻžāĻ¸āĻā§āĻĄāĻŋāĻ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°āĻ˛ā§ āĻ āĻŋāĻ āĻā§āĻāĻžāĻŦā§ āĻĄā§āĻāĻž āĻĢāĻžāĻāĻ¸ āĻšāĻ¯āĻŧ? āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ Realm āĻ
āĻŦāĻā§āĻā§āĻ āĻ¨ā§āĻ¸ā§āĻ āĻāĻ°ā§ āĻĨāĻžāĻā§āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ
āĻŦāĻļā§āĻ¯āĻ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻ¸ā§āĻ¨ āĻāĻāĻāĻŋ (āĻĒā§āĻ°āĻžāĻ¯āĻŧ) āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻāĻŋāĨ¤ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻā§ 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)
. āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻā§āĻˇā§āĻ¤ā§āĻ° āĻšāĻ˛ Realm āĻ
āĻŦāĻā§āĻā§āĻāĨ¤ āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻāĻāĻ āĻāĻāĻĄāĻŋ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ
āĻŦāĻā§āĻā§āĻ (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
āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻāĻāĻ āĻāĻŦāĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° Realm āĻŦāĻ¸ā§āĻ¤ā§ āĻĒāĻžāĻ¸. āĻĒāĻĻā§āĻ§āĻ¤āĻŋ getNestedRealmObjects
āĻĒā§āĻ°āĻ¤āĻŋāĻĢāĻ˛āĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§, āĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¨ā§āĻ¸ā§āĻā§āĻĄ āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻŽ āĻ
āĻŦāĻā§āĻā§āĻ āĻā§āĻāĻā§ āĻĒāĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻ°ā§āĻāĻŋāĻ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ āĻ°āĻžāĻā§āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻŽāĻ°āĻž āĻāĻāĻ āĻāĻŋāĻ¨āĻŋāĻ¸ recursively āĻ¨āĻž. āĻŽā§āĻā§ āĻĢā§āĻ˛āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻžāĻā§ āĻŦā§āĻ§āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻ¸ā§āĻ¤ā§āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ 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 āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§āĻ° āĻŦā§āĻļāĻŋ āĻšāĻ˛ā§ Firebase āĻŦāĻŋāĻā§āĻāĻĒā§āĻ¤āĻŋ āĻĒāĻžāĻ āĻžāĻ¯āĻŧāĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻāĻŋ, āĻāĻĒāĻ¨āĻžāĻ° āĻāĻāĻŋāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ, āĻŦāĻ°āĻ āĻāĻŋāĻ¤āĻ°ā§ āĻ¯āĻžāĻ¨ āĻāĻŦāĻ āĻāĻāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨āĨ¤
Realm āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŦāĻŋāĻļā§āĻˇ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻšāĻ˛ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ -āĻ°āĻŋāĻ˛ā§āĻļāĻ¨āĻžāĻ˛ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸āĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻ¸āĻšāĻāĻ¤āĻž, ORM āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻŦāĻ āĻ āĻŦāĻā§āĻā§āĻ āĻ˛āĻŋāĻā§āĻāĻŋāĻāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĻā§āĻļā§āĻ¯ āĻĨāĻžāĻāĻž āĻ¸āĻ¤ā§āĻ¤ā§āĻŦā§āĻ, āĻāĻāĻŋāĻ¤ā§ āĻā§āĻ¯āĻžāĻ¸āĻā§āĻĄ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž āĻ¨ā§āĻāĨ¤
āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻžāĻ¯āĻŧ āĻ¨āĻž āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¨ā§āĻ¸ā§āĻā§āĻĄ āĻ āĻŦāĻā§āĻā§āĻāĻā§āĻ˛āĻŋ āĻāĻŽā§ āĻ¯āĻžāĻŦā§ āĻāĻŦāĻ "āĻāĻŋāĻĻā§āĻ° āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§āĨ¤" āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒāĻžāĻŦā§, āĻ¯āĻž āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻ° āĻ§ā§āĻ°āĻāĻ¤āĻŋ āĻŦāĻž āĻ¸ā§āĻāĻžāĻ°ā§āĻāĻāĻĒāĻā§ āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻ°āĻŦā§āĨ¤
āĻāĻŽāĻŋ āĻā§āĻāĻžāĻŦā§ āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻŽā§ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻā§āĻ¯āĻžāĻ¸āĻā§āĻĄ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ
āĻāĻŋāĻā§āĻāĻ¤āĻž āĻļā§āĻ¯āĻŧāĻžāĻ° āĻāĻ°ā§āĻāĻŋ, āĻ¯āĻž āĻāĻāĻ¨āĻ āĻŦāĻžāĻā§āĻ¸ā§āĻ° āĻŦāĻžāĻāĻ°ā§ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻĻā§āĻ°ā§āĻāĻĻāĻŋāĻ¨ āĻ§āĻ°ā§ āĻāĻĨāĻž āĻŦāĻ˛āĻž āĻšāĻā§āĻā§
āĻāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻāĻ¸āĻ¨ā§āĻ¨ āĻā§āĻšāĻžāĻ°āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻ¸āĻ¤ā§āĻ¤ā§āĻŦā§āĻ, Realm āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ¯āĻžāĻ¸āĻā§āĻĄ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻžāĻ° āĻ
āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻā§āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻŋ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻžāĻ¯āĻŧ āĻ¨āĻŋāĻ¨āĨ¤ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ Realm āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĨāĻžāĻā§āĻ¨ āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§ āĻĻā§āĻā§āĻ¨āĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com