เจ‡เจธ เจ•เจนเจพเจฃเฉ€ เจฆเฉ€ เจ•เจนเจพเจฃเฉ€ เจ•เจฟ เจ•เจฟเจตเฉ‡เจ‚ เจฐเฉ€เจ…เจฒเจฎ เจตเจฟเฉฑเจš เจ•เฉˆเจธเจ•เฉ‡เจก เจกเจฟเจฒเฉ€เจŸเฉ‡เจธเจผเจจ เจ‡เฉฑเจ• เจฒเฉฐเจฌเฉ‡ เจฒเจพเจ‚เจš เจ‰เฉฑเจคเฉ‡ เจœเจฟเฉฑเจค เจ—เจˆ

เจธเจพเจฐเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฎเฉ‹เจฌเจพเจˆเจฒ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจตเจฟเฉฑเจš เจคเฉ‡เจœเจผ เจฒเจพเจ‚เจš เจ…เจคเฉ‡ เจœเจตเจพเจฌเจฆเฉ‡เจน UI เจจเฉ‚เฉฐ เจธเจตเฉ€เจ•เจพเจฐ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจœเฉ‡เจ•เจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจฒเจพเจ‚เจš เจนเฉ‹เจฃ เจตเจฟเฉฑเจš เจฒเฉฐเจฌเจพ เจธเจฎเจพเจ‚ เจฒเฉฑเจ—เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ‰เจฆเจพเจธ เจ…เจคเฉ‡ เจ—เฉเฉฑเจธเฉ‡ เจฎเจนเจฟเจธเฉ‚เจธ เจ•เจฐเจจเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจคเฉเจธเฉ€เจ‚ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจ—เจพเจนเจ• เจ…เจจเฉเจญเจต เจจเฉ‚เฉฐ เจ–เจฐเจพเจฌ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเจพเจ‚ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ—เฉเจ† เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเจพเจฐ เจ–เฉ‹เจœ เจ•เฉ€เจคเฉ€ เจธเฉ€ เจ•เจฟ เจกเฉ‹เจกเฉ‹ เจชเฉ€เจœเจผเจพ เจเจช เจจเฉ‚เฉฐ เจ”เจธเจคเจจ เจฒเจพเจ‚เจš เจนเฉ‹เจฃ เจตเจฟเฉฑเจš 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 เจคเฉ‹เจ‚, เจฒเฉŒเจ—เจ•เฉˆเจŸ เจธเจŸเฉเจฐเจฟเฉฐเจ— เจกเจฟเจธเจชเจฒเฉ‡เจ… เจ…เจคเฉ‡ เจธเจฎเฉ‡เจ‚ เจฆเฉ‡ เจจเจพเจฒ เจฒเฉŒเจ— เจจเฉ‚เฉฐ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เจน เจธเจฎเจพเจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ‡ เจฒเจพเจ‚เจš เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจฒเฉˆ เจ•เฉ‡ เจธเจฐเจ—เจฐเจฎเฉ€ เจฐเฉˆเจ‚เจกเจฐเจฟเฉฐเจ— เจฆเฉ‡ เจ…เฉฐเจค เจคเฉฑเจ• เจ…เฉฐเจคเจฐเจพเจฒ เจฆเฉ‡ เจฌเจฐเจพเจฌเจฐ เจนเฉˆเฅค เจ‡เจธ เจธเจฎเฉ‡เจ‚ เจฆเฉŒเจฐเจพเจจ เจนเฉ‡เจ  เจฒเจฟเจ–เฉ€เจ†เจ‚ เจ˜เจŸเจจเจพเจตเจพเจ‚ เจตเจพเจชเจฐเจฆเฉ€เจ†เจ‚ เจนเจจ:

  • เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจธเจผเฉเจฐเฉ‚ เจ•เจฐเฉ‹เฅค
  • เจตเจธเจคเฉ‚เจ†เจ‚ เจฆเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจคเฅค
  • เจ—เจคเฉ€เจตเจฟเจงเฉ€เจ†เจ‚ เจฆเฉ€ เจธเจฟเจฐเจœเจฃเจพ เจ…เจคเฉ‡ เจธเจผเฉเจฐเฉ‚เจ†เจค.
  • เจ‡เฉฑเจ• เจ–เจพเจ•เจพ เจฌเจฃเจพเจ‰เจฃเจพเฅค
  • เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฐเฉˆเจ‚เจกเจฐเจฟเฉฐเจ—เฅค

เจธเจพเจกเฉ‡ เจฒเจˆ เจ…เจจเฉเจ•เฉ‚เจฒ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ -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 เจฐเจฟเจฒเฉ‡เจธเจผเจจเจฒ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเจพ เจตเจฐเจฃเจจ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจ‰เจธเฉ‡ เจธเจฎเฉ‡เจ‚, เจฐเฉ€เจ…เจฒเจฎ เจ†เจฌเจœเฉˆเจ•เจŸเจธ เจจเฉ‚เฉฐ เจธเจฟเฉฑเจงเฉ‡ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš เจ˜เฉฑเจŸ เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจชเจฐเจฟเจตเจฐเจคเจจ เจ…เจคเฉ‡ เจฎเฉˆเจชเจฟเฉฐเจ— เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ‡เจน เจคเฉเจนเจพเจจเฉ‚เฉฐ เจกเจฟเจธเจ• เจคเฉ‹เจ‚ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจฌเจนเฉเจค เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจชเฉœเฉเจนเจจ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจฐเฉ€เจ…เจฒเจฎ เจฆเฉ€ เจคเจพเจ•เจค เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจน เจ•เจฟเจ‰เจ‚ เจชเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

(เจ‡เจธ เจฒเฉ‡เจ– เจฆเฉ‡ เจ‰เจฆเฉ‡เจธเจผเจพเจ‚ เจฒเจˆ, เจ‡เจน เจตเฉ‡เจฐเจตเจพ เจธเจพเจกเฉ‡ เจฒเจˆ เจ•เจพเจซเฉ€ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค เจคเฉเจธเฉ€เจ‚ เจ•เฉ‚เจฒ เจตเจฟเฉฑเจš เจฐเฉ€เจ…เจฒเจฎ เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจชเฉœเฉเจน เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจœเจพเจ‚ เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจš เจ…เจ•เฉˆเจกเจฎเฉ€).

เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจฐเจฟเจฒเฉ‡เจธเจผเจจเจฒ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจนเฉเฉฑเจก เจฆเฉ‡ เจนเฉ‡เจ เจพเจ‚ 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). เจธเจพเจฐเฉ‡ เจธเฉ‚เจšเฉ€เจฌเฉฑเจง เจ–เฉ‡เจคเจฐ เจฐเฉ€เจ…เจฒเจฎ เจ†เจฌเจœเฉˆเจ•เจŸ เจนเจจเฅค เจœเฉ‡เจ•เจฐ เจ…เจธเฉ€เจ‚ เจ‰เจธเฉ‡ id เจจเจพเจฒ เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจ†เจฌเจœเฉˆเจ•เจŸ (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 เจจเจตเฉ‡เจ‚ เจฒเจฟเจ–เจฃ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจ‡เจ•เฉฑเจ เฉ€เจ†เจ‚ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจตเจธเจคเฉ‚เจ†เจ‚ เจจเฉ‚เฉฐ เจตเจพเจฐ-เจตเจพเจฐ เจฎเจฟเจŸเจพ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจชเฉ‚เจฐเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉŒเจฐเจพเจจ เจ‡เจธ เจชเจนเฉเฉฐเจš เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจฐเฉ€เจ…เจฒเจฎ เจตเจฟเฉฑเจš เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฒเฉ€เจ• เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ–เจคเจฎ เจนเฉ‹ เจ—เจˆ เจนเฉˆเฅค เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ‡ เจ•เฉ‹เจฒเจก เจธเจŸเจพเจฐเจŸ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ 'เจคเฉ‡ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจธเจฎเฉ‡เจ‚ เจฆเฉ€ เจจเจฟเจฐเจญเจฐเจคเจพ เจฆเฉ‡ เจ‡เฉฑเจ•เฉ‹ เจœเจฟเจนเฉ‡ เจฎเจพเจช เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ…เจธเฉ€เจ‚ เจจเจคเฉ€เจœเจพ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚เฅค

เจ‡เจธ เจ•เจนเจพเจฃเฉ€ เจฆเฉ€ เจ•เจนเจพเจฃเฉ€ เจ•เจฟ เจ•เจฟเจตเฉ‡เจ‚ เจฐเฉ€เจ…เจฒเจฎ เจตเจฟเฉฑเจš เจ•เฉˆเจธเจ•เฉ‡เจก เจกเจฟเจฒเฉ€เจŸเฉ‡เจธเจผเจจ เจ‡เฉฑเจ• เจฒเฉฐเจฌเฉ‡ เจฒเจพเจ‚เจš เจ‰เฉฑเจคเฉ‡ เจœเจฟเฉฑเจค เจ—เจˆ

เจนเจฐเฉ€ เจฒเจพเจˆเจจ เจจเฉ‡เจธเจŸเจก เจ†เจฌเจœเฉˆเจ•เจŸ เจฆเฉ‡ เจ†เจŸเฉ‹เจฎเฉˆเจŸเจฟเจ• เจ•เฉˆเจธเจ•เฉ‡เจก เจฎเจฟเจŸเจพเจ‰เจฃ เจฆเฉ‡ เจฆเฉŒเจฐเจพเจจ เจ•เฉ‹เจฒเจก เจธเจŸเจพเจฐเจŸ เจฆเฉ€ เจธเฉฐเจ–เจฟเจ† 'เจคเฉ‡ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ‡ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจธเจฎเฉ‡เจ‚ เจฆเฉ€ เจจเจฟเจฐเจญเจฐเจคเจพ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆเฅค

เจจเจคเฉ€เจœเฉ‡ เจ…เจคเฉ‡ เจธเจฟเฉฑเจŸเฉ‡

เจฒเจ—เจพเจคเจพเจฐ เจตเจง เจฐเจฟเจนเจพ Realm เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจฌเจนเฉเจค เจนเฉŒเจฒเฉ€ เจนเฉŒเจฒเฉ€ เจฒเจพเจ‚เจš เจ•เจฐเจจ เจฆเจพ เจ•เจพเจฐเจจ เจฌเจฃ เจฐเจฟเจนเจพ เจธเฉ€เฅค เจ…เจธเฉ€เจ‚ เจจเฉ‡เจธเจŸเจก เจ†เจฌเจœเฉˆเจ•เจŸเจธ เจฆเฉ‡ เจ†เจชเจฃเฉ‡ "เจ•เฉˆเจธเจ•เฉ‡เจกเจฟเฉฐเจ— เจกเจฟเจฒเฉ€เจŸ" เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจ…เจชเจกเฉ‡เจŸ เจœเจพเจฐเฉ€ เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจ…เจคเฉ‡ เจนเฉเจฃ เจ…เจธเฉ€เจ‚ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจธเจพเจกเฉ‡ เจซเฉˆเจธเจฒเฉ‡ เจจเฉ‡ _app_start เจฎเฉ€เจŸเฉเจฐเจฟเจ• เจฆเฉเจ†เจฐเจพ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ‡ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจธเจฎเฉ‡เจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจชเฉเจฐเจญเจพเจตเจฟเจค เจ•เฉ€เจคเจพ เจนเฉˆเฅค

เจ‡เจธ เจ•เจนเจพเจฃเฉ€ เจฆเฉ€ เจ•เจนเจพเจฃเฉ€ เจ•เจฟ เจ•เจฟเจตเฉ‡เจ‚ เจฐเฉ€เจ…เจฒเจฎ เจตเจฟเฉฑเจš เจ•เฉˆเจธเจ•เฉ‡เจก เจกเจฟเจฒเฉ€เจŸเฉ‡เจธเจผเจจ เจ‡เฉฑเจ• เจฒเฉฐเจฌเฉ‡ เจฒเจพเจ‚เจš เจ‰เฉฑเจคเฉ‡ เจœเจฟเฉฑเจค เจ—เจˆ

เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจฒเจˆ, เจ…เจธเฉ€เจ‚ 90 เจฆเจฟเจจเจพเจ‚ เจฆเฉ€ เจธเจฎเจพเจ‚ เจฎเจฟเจ†เจฆ เจฒเฉˆเจ‚เจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚: เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฒเจพเจ‚เจš เจ•เจฐเจจ เจฆเจพ เจธเจฎเจพเจ‚, เจฎเฉฑเจงเจฎเจพเจจ เจ…เจคเฉ‡ เจ‰เจน เจœเฉ‹ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฆเฉ‡ 95เจตเฉ‡เจ‚ เจชเฉเจฐเจคเฉ€เจธเจผเจค 'เจคเฉ‡ เจ†เจ‰เจ‚เจฆเจพ เจนเฉˆ, เจ˜เจŸเจฃเจพ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹ เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจนเฉเจฃ เจตเจงเจฆเจพ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจ‡เจธ เจ•เจนเจพเจฃเฉ€ เจฆเฉ€ เจ•เจนเจพเจฃเฉ€ เจ•เจฟ เจ•เจฟเจตเฉ‡เจ‚ เจฐเฉ€เจ…เจฒเจฎ เจตเจฟเฉฑเจš เจ•เฉˆเจธเจ•เฉ‡เจก เจกเจฟเจฒเฉ€เจŸเฉ‡เจธเจผเจจ เจ‡เฉฑเจ• เจฒเฉฐเจฌเฉ‡ เจฒเจพเจ‚เจš เจ‰เฉฑเจคเฉ‡ เจœเจฟเฉฑเจค เจ—เจˆ

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจธเฉฑเจค-เจฆเจฟเจจเจพเจ‚ เจฆเฉ‡ เจšเจพเจฐเจŸ 'เจคเฉ‡ เจจเจœเจผเจฐ เจฎเจพเจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ _app_start เจฎเฉˆเจŸเฉเจฐเจฟเจ• เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจขเฉเจ•เจตเฉ€เจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ 1 เจธเจ•เจฟเฉฐเจŸ เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจนเฉˆเฅค

เจ‡เจน เจตเฉ€ เจœเฉ‹เฉœเจจเจพ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจฃ เจนเฉˆ เจ•เจฟ เจกเจฟเจซเฉŒเจฒเจŸ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจœเฉ‡เจ•เจฐ _app_start เจฆเจพ เจฎเฉฑเจงเจฎ เจฎเฉเฉฑเจฒ 5 เจธเจ•เจฟเฉฐเจŸเจพเจ‚ เจคเฉ‹เจ‚ เจตเฉฑเจง เจนเฉˆ เจคเจพเจ‚ Firebase เจธเฉ‚เจšเจจเจพเจตเจพเจ‚ เจญเฉ‡เจœเจฆเจพ เจนเฉˆเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเจพเจ‚, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธ 'เจคเฉ‡ เจญเจฐเฉ‹เจธเจพ เจจเจนเฉ€เจ‚ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ, เจธเจ—เฉ‹เจ‚ เจ…เฉฐเจฆเจฐ เจœเจพ เจ•เฉ‡ เจ‡เจธ เจฆเฉ€ เจธเจชเฉฑเจธเจผเจŸ เจœเจพเจ‚เจš เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆเฅค

เจฐเฉ€เจ…เจฒเจฎ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ€ เจ–เจพเจธ เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ‡เจน เจ‡เฉฑเจ• เจ—เฉˆเจฐ-เจธเฉฐเจฌเฉฐเจงเฉ€ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจนเฉˆเฅค เจ‡เจธเจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฆเฉ€ เจธเฉŒเจ–, ORM เจนเฉฑเจฒเจพเจ‚ เจ…เจคเฉ‡ เจ†เจฌเจœเฉˆเจ•เจŸ เจฒเจฟเฉฐเจ•เจฟเฉฐเจ— เจฆเฉ€ เจธเจฎเจพเจจเจคเจพ เจฆเฉ‡ เจฌเจพเจตเจœเฉ‚เจฆ, เจ‡เจธ เจตเจฟเฉฑเจš เจ•เฉˆเจธเจ•เฉ‡เจก เจฎเจฟเจŸเจพเจ‰เจฃเจพ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจœเฉ‡เจ•เจฐ เจ‡เจธ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจฐเฉฑเจ–เจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจจเฉ‡เจธเจŸเจก เจตเจธเจคเฉ‚เจ†เจ‚ เจ‡เจ•เฉฑเจ เฉ€เจ†เจ‚ เจนเฉ‹ เจœเจพเจฃเจ—เฉ€เจ†เจ‚ เจ…เจคเฉ‡ "เจฒเฉ€เจ• เจนเฉ‹ เจœเจพเจฃเจ—เฉ€เจ†เจ‚เฅค" เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฒเจ—เจพเจคเจพเจฐ เจตเจงเฉ‡เจ—เจพ, เจœเฉ‹ เจฌเจฆเจฒเฉ‡ เจตเจฟเฉฑเจš เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ€ เจธเฉเจธเจคเฉ€ เจœเจพเจ‚ เจธเจผเฉเจฐเฉ‚เจ†เจค เจจเฉ‚เฉฐ เจชเฉเจฐเจญเจพเจตเจค เจ•เจฐเฉ‡เจ—เจพเฅค

เจฎเฉˆเจ‚ เจ†เจชเจฃเฉ‡ เจคเจœเจผเจฐเจฌเฉ‡ เจจเฉ‚เฉฐ เจธเจพเจ‚เจเจพ เจ•เฉ€เจคเจพ เจนเฉˆ เจ•เจฟ เจ•เจฟเจตเฉ‡เจ‚ เจฐเฉ€เจ…เจฒเจฎ เจตเจฟเฉฑเจš เจ†เจฌเจœเฉˆเจ•เจŸเจพเจ‚ เจฆเฉ‡ เจ•เฉˆเจธเจ•เฉ‡เจก เจจเฉ‚เฉฐ เจœเจฒเจฆเฉ€ เจฎเจฟเจŸเจพเจ‰เจฃเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจ…เจœเฉ‡ เจคเฉฑเจ• เจฌเจพเจ•เจธ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจชเจฐ เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจคเฉ‹เจ‚ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เฉ€เจคเฉ€ เจœเจพ เจฐเจนเฉ€ เจนเฉˆ. เจ‰เจน เจ•เจนเจฟเฉฐเจฆเฉ‡ เจนเจจ ะธ เจ‰เจน เจ•เจนเจฟเฉฐเจฆเฉ‡ เจนเจจ. เจธเจพเจกเฉ‡ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš, เจ‡เจธเจจเฉ‡ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ‡ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจธเจฎเฉ‡เจ‚ เจจเฉ‚เฉฐ เจฌเจนเฉเจค เจคเฉ‡เจœเจผ เจ•เฉ€เจคเจพ.

เจ‡เจธ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจฆเฉ€ เจจเจœเจผเจฆเฉ€เจ•เฉ€ เจฆเจฟเฉฑเจ– เจฌเจพเจฐเฉ‡ เจšเจฐเจšเจพ เจฆเฉ‡ เจฌเจพเจตเจœเฉ‚เจฆ, เจฐเฉ€เจ…เจฒเจฎ เจตเจฟเฉฑเจš เจ•เฉˆเจธเจ•เฉ‡เจก เจฎเจฟเจŸเจพเจ‰เจฃ เจฆเฉ€ เจ…เจฃเจนเฉ‹เจ‚เจฆ เจกเจฟเจœเจผเจพเจ‡เจจ เจฆเฉเจ†เจฐเจพ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ. เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจจเจตเฉ€เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจกเจฟเจœเจผเจพเจˆเจจ เจ•เจฐ เจฐเจนเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เจธ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เฉ‹เฅค เจ…เจคเฉ‡ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจฐเฉ€เจ…เจฒเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจฐเจนเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจœเจพเจ‚เจš เจ•เจฐเฉ‹ เจ•เจฟ เจ•เฉ€ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ…เจœเจฟเจนเฉ€เจ†เจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจนเจจเฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹